Използването на две VPN не е една заявка. Това може да означава достигане до две организации една след друга, отделяне на работните от личните приложения или пускане на един тунел в друг. Android обработва тези три случая по напълно различни начини, а броят на инсталираните VPN приложения на телефона не е архитектурата. Въпросът, който ги разделя, е прост: трябва ли два пътя да съществуват в един и същ момент за едно и също приложение?

Три подредби, един въпрос

Ако отговорът е не, защото двете мрежи се използват по различно време, ви е нужно умишлено превключване. Ако отговорът е не, защото самите приложения са отделни, ви е нужно разделяне по профили, при което всяко приложение стои в контекста, който притежава неговия тунел. Ако отговорът е да и един път трябва физически да носи другия, ви е нужна верига и това е единствената от трите, при която редът е част от дизайна.

Всичко останало следва от този избор. Превключването има прозорец на преход, разделянето има граница на политиката, а веригата има допълнителни разходи и цена на зависимостите. Изборът на грешната не се проваля чисто; той създава телефон, който изглежда свързан, и приложение, което не може да достигне до нищо.

Превключване в един потребителски контекст

Android позволява една активна VPN услуга на потребител. Стартирането на второ VPN приложение в същия контекст замества първото или се отказва направо; то никога не обединява двата набора маршрути и със сигурност не наслагва шифроването им. В рамките на един потребител два тунела са последователност, а не сбор.

Това е приложимо, когато достъпът наистина е последователен. Наречете профилите така, че активният да е очевиден, приключете всичко чувствително преди превключване и очаквайте кратък прозорец, в който нито един от двата пътя не е напълно установен. Затварянето на раздел в браузъра не е същото като прекратяване на сесия: разделът може да запази състоянието на профила си и просто да изпрати следващата заявка през новоизбраната мрежа и това е точно течът, който хората забелязват после.

Това, което превключването не може да ви даде, е машина, която е в двете мрежи едновременно. Ако на приложението е нужен частен адрес от всяка страна, никаква дисциплина на клиента няма да го създаде.

Разделяне по профил

Управляваният работен профил е отделен потребител със свои приложения, хранилище за ключове и мрежова политика. Работен пощенски клиент може да използва тунела на организацията, докато личен браузър използва личен, и двата могат да са свързани едновременно, защото не са в един и същ контекст, състезаващ се за слота.

Разделянето е и границата. Личният браузър не заема работния тунел, не вижда работните DNS наставки и не достига до работната мрежа само защото и двете услуги се показват като свързани. Когато някой съобщи, че връзка не се отваря, проверете кое копие на приложението я е обработило и кой профил притежава този акаунт, преди да пипате някоя от двете VPN.

Третирайте границата като фиксирана. Създаването на втори профил или премахването на работен профил, за да се заобиколи решение за маршрутизация на работодателя, унищожава именно разделянето, което правеше подредбата работеща, а на управлявано устройство това обикновено е нарушение на политиката, а не промяна в настройките.

Верига, при която редът е дизайнът

Веригата е подредбата, която хората обикновено имат предвид, когато кажат двете едновременно: тунелът на телефона пътува вътре в тунела на рутера. Това може да работи и ограниченията са конкретни. Външният доставчик трябва да разреши работещ път до VPN крайната точка на телефона, което за протоколи на базата на UDP означава, че външната услуга не трябва да блокира или ограничава този трафик.

Разберете кой какво вижда. Външният доставчик вижда връзка към вътрешната крайна точка. Вътрешният доставчик получава трафика на телефона от външния изход и го препраща нататък. Крайната дестинация обикновено вижда изхода на вътрешната услуга и никой доставчик по веригата не е сляп; профилите в приложенията все още идентифицират потребителя независимо от пътя.

Очаквайте практически разходи. Всеки слой добавя инкапсулация, така че ефективният MTU пада и стойност, която беше добра за един тунел, сега се фрагментира или засича, докато MTU на вътрешния тунел не се зададе консервативно. Двата слоя означават и две зависимости от отказ и два набора от съобщения за поддържане на връзката, а вътрешен тунел на базата на TCP през загубена външна връзка може да засича по начин, който изглежда като мъртъв сървър.

Най-важното: веригата не обединява две частни мрежи. Маршрутите, припокриващите се префикси, разрешаването на DNS и правилата за достъп остават отделни решения и рутер, който носи една VPN, докато телефон носи друга, не дава на телефона двете адресни пространства.

Проверете дизайна, преди да го отстранявате

Запишете подредбата в едно изречение и я тествайте срещу приложението, което се провали. Последователният достъп трябва да показва един тунел наведнъж; разделянето по профили трябва да показва всяко приложение в собствения му потребител; веригата трябва да показва вътрешния тунел установен през външен интерфейс, а не през физическия.

adb shell ip -br addr
adb shell ip route get 10.20.0.8
adb shell dumpsys connectivity | grep -i vpn

Ако търсенето на маршрут посочва физическия интерфейс, докато приложението очаква тунела, дизайнът и контекстът на приложението не съвпадат и никакво допълнително VPN приложение няма да ги помири. Документацията за управлявани профили покрива правилата за разделяне, ако ви трябват подробности за политиката, а не за маршрутизацията.

Подобни статии