Dvě VPN v jednom telefonu: vyberte uspořádání, ne počet aplikací
Přepínání, oddělení profilů a vnořený řetěz jsou tři různé návrhy. Vyberte podle toho, co aplikace potřebuje ve stejný okamžik, a pak zkontrolujte MTU a cestu.
Používání dvou VPN není jeden požadavek. Může znamenat dosažení dvou organizací jednu po druhé, oddělení pracovních a osobních aplikací, nebo spuštění jednoho tunelu uvnitř druhého. Android zvládá tyto tři případy zcela odlišně a počet nainstalovaných VPN aplikací v telefonu není architektura. Otázka, která je odděluje, je jednoduchá: musí pro stejnou aplikaci existovat dvě cesty ve stejný okamžik?
Tři uspořádání, jedna otázka
Pokud je odpověď ne, protože se obě sítě používají v různých časech, chcete záměrné přepínání. Pokud je odpověď ne, protože samotné aplikace jsou oddělené, chcete oddělení profilů, kde každá aplikace sídlí v kontextu, který vlastní její tunel. Pokud je odpověď ano a jedna cesta musí fyzicky nést druhou, chcete řetěz, a to je jediný ze tří, kde je pořadí součástí návrhu.
Vše ostatní z této volby vyplývá. Přepínání má přechodové okno, oddělení má hranici politiky a řetěz má režijní a závislostní náklady. Volba špatné možnosti nepadá čistě; vytvoří telefon, který vypadá připojený, a aplikaci, která se nikam nedostane.
Přepínání v jednom uživatelském kontextu
Android povoluje jednu aktivní službu VPN na uživatele. Spuštění druhé VPN aplikace ve stejném kontextu nahradí první nebo se rovnou odmítne; nikdy neskládá dvě sady tras a rozhodně nevrší jejich šifrování. V rámci jednoho uživatele jsou dva tunely sled, nikoli součet.
To je proveditelné, když je přístup skutečně postupný. Pojmenujte profily tak, aby byl aktivní zřejmý, dokončete vše citlivé před přepnutím a očekávejte krátké okno, ve kterém není ani jedna cesta plně ustanovena. Zavření karty prohlížeče není totéž jako ukončení relace: karta si může ponechat stav svého účtu a prostě poslat další požadavek přes nově zvolenou síť, a to je přesně ten únik, kterého si lidé později všimnou.
To, co přepínání nemůže dát, je stroj, který je v obou sítích současně. Pokud aplikace potřebuje privátní adresu z každé strany, žádná disciplína klienta ji nevytvoří.
Oddělení podle profilu
Spravovaný pracovní profil je samostatný uživatel s vlastními aplikacemi, úložištěm klíčů a síťovou politikou. Pracovní poštovní klient může používat tunel organizace, zatímco osobní prohlížeč používá osobní, a oba mohou být připojeny současně, protože nejsou ve stejném kontextu, který soutěží o slot.
Oddělení je také hranice. Osobní prohlížeč si nepůjčuje pracovní tunel, nevidí pracovní přípony DNS a nedostane se do pracovní sítě jen proto, že se obě služby zobrazují jako připojené. Když někdo nahlásí, že se odkaz neotevírá, zkontrolujte, která kopie aplikace jej zpracovala a který profil vlastní ten účet, než se dotknete kterékoli ze dvou VPN.
Berte hranici jako pevnou. Vytvoření druhého profilu nebo odebrání pracovního profilu, aby se obešlo rozhodnutí zaměstnavatele o směrování, ničí právě to oddělení, které uspořádání umožňovalo, a na spravovaném zařízení je to obvykle porušení politiky, nikoli úprava konfigurace.
Řetěz, kde je pořadí návrhem
Řetěz je uspořádání, které lidé obvykle mají na mysli, když řeknou obojí najednou: tunel telefonu putuje uvnitř tunelu routeru. Může fungovat a omezení jsou konkrétní. Vnější poskytovatel musí povolit funkční cestu k VPN koncovému bodu telefonu, což u protokolů založených na UDP znamená, že vnější služba nesmí tento provoz blokovat ani omezovat.
Pochopte, kdo co vidí. Vnější poskytovatel vidí spojení směrem k vnitřnímu koncovému bodu. Vnitřní poskytovatel přijímá provoz telefonu z vnějšího výstupu a předává jej dál. Konečné místo určení obvykle vidí výstup vnitřní služby a žádný poskytovatel podél řetězu není slepý; účty aplikací uživatele identifikují bez ohledu na cestu.
Očekávejte praktické náklady. Každá vrstva přidává zapouzdření, takže efektivní MTU klesá a hodnota, která byla pro jeden tunel v pořádku, se nyní fragmentuje nebo zasekává, dokud se MTU vnitřního tunelu nenastaví konzervativně. Dvě vrstvy také znamenají dvě závislosti na selhání a dvě sady udržovacích zpráv a vnitřní tunel založený na TCP přes ztrátové vnější spojení se může zaseknout způsoby, které vypadají jako mrtvý server.
Nejdůležitější je, že řetěz neslévá dvě privátní sítě. Trasy, překrývající se prefixy, rozlišení DNS a pravidla přístupu zůstávají oddělenými rozhodnutími a router nesoucí jednu VPN, zatímco telefon nese jinou, nedává telefonu oba adresní prostory.
Zkontrolujte návrh, než jej budete ladit
Napište uspořádání jednou větou a otestujte je proti aplikaci, která selhala. Postupný přístup by měl ukázat jeden tunel najednou; oddělení profilů by mělo ukázat každou aplikaci v jejím vlastním uživateli; řetěz by měl ukázat, že se vnitřní tunel ustanovuje přes vnější rozhraní, nikoli přes fyzické.
adb shell ip -br addr
adb shell ip route get 10.20.0.8
adb shell dumpsys connectivity | grep -i vpnPokud vyhledání trasy uvádí fyzické rozhraní, zatímco aplikace očekává tunel, návrh a kontext aplikace se neshodují a žádná další VPN aplikace je nesmíří. Dokumentace ke spravovaným profilům pokrývá pravidla oddělení, pokud potřebujete podrobnosti o politice, nikoli o směrování.