Dva VPN-a na jednom telefonu: odaberite raspored, a ne broj aplikacija
Prebacivanje, razdvajanje profila i ugniježđeni lanac tri su različita dizajna. Odaberite prema tome šta aplikacija treba u istom trenutku, zatim provjerite MTU i putanju.
Korištenje dva VPN-a nije jedan zahtjev. To može značiti dosezanje dvije organizacije jedna za drugom, razdvajanje radnih i ličnih aplikacija ili pokretanje jednog tunela unutar drugog. Android obrađuje ta tri slučaja na potpuno različite načine, a broj VPN aplikacija instaliranih na telefonu nije arhitektura. Pitanje koje ih razdvaja je jednostavno: moraju li dva puta postojati u istom trenutku za istu aplikaciju?
Tri rasporeda, jedno pitanje
Ako je odgovor ne, jer se dvije mreže koriste u različito vrijeme, želite namjerno prebacivanje. Ako je odgovor ne jer su same aplikacije odvojene, želite razdvajanje profila, gdje svaka aplikacija stoji u kontekstu koji posjeduje njen tunel. Ako je odgovor da i jedan put mora fizički nositi drugi, želite lanac, i to je jedini od tri gdje je redoslijed dio dizajna.
Sve ostalo proizlazi iz tog izbora. Prebacivanje ima prijelazni prozor, razdvajanje ima granicu politike, a lanac ima dodatni trošak i trošak zavisnosti. Odabir pogrešnog ne pada čisto; proizvodi telefon koji izgleda povezan i aplikaciju koja ne može doći ni do čega.
Prebacivanje unutar jednog korisničkog konteksta
Android dopušta jednu aktivnu VPN uslugu po korisniku. Pokretanje druge VPN aplikacije u istom kontekstu zamjenjuje prvu ili se odbija odmah; nikada ne sastavlja dva skupa ruta i sigurno ne slaže njihovu enkripciju. Unutar jednog korisnika dva tunela su slijed, a ne zbir.
To je izvedivo kada je pristup zaista uzastopan. Imenujte profile tako da aktivni bude očit, završite sve osjetljivo prije prebacivanja i očekujte kratak prozor u kojem nijedan put nije potpuno uspostavljen. Zatvaranje kartice preglednika nije isto kao završetak sesije: kartica može zadržati stanje svog računa i jednostavno poslati sljedeći zahtjev preko novoizabrane mreže, i to je upravo curenje koje ljudi kasnije primijete.
Ono što prebacivanje ne može dati je mašina koja je na obje mreže istovremeno. Ako aplikaciji treba privatna adresa sa svake strane, nikakva disciplina klijenta to neće proizvesti.
Razdvajanje po profilu
Upravljani radni profil je zaseban korisnik sa svojim aplikacijama, spremištem ključeva i mrežnom politikom. Radni klijent pošte može koristiti tunel organizacije dok lični preglednik koristi lični, i oba mogu biti povezana u isto vrijeme jer nisu u istom kontekstu koji se natječe za mjesto.
Razdvajanje je i granica. Lični preglednik ne posuđuje radni tunel, ne vidi radne DNS sufikse i ne doseže radnu mrežu samo zato što se obje usluge prikazuju kao povezane. Kada neko prijavi da se veza ne otvara, provjerite koja je kopija aplikacije to obradila i koji profil posjeduje taj račun prije nego što dodirnete bilo koji od dva VPN-a.
Tretirajte granicu kao fiksnu. Stvaranje drugog profila ili uklanjanje radnog profila da bi se zaobišla poslodavčeva odluka o rutiranju uništava upravo ono razdvajanje zbog kojeg je raspored funkcionirao, a na upravljanom uređaju to je obično kršenje politike, a ne izmjena konfiguracije.
Lanac, gdje je redoslijed dizajn
Lanac je raspored na koji ljudi obično misle kada kažu oba istovremeno: tunel telefona putuje unutar tunela rutera. To može funkcionirati, a ograničenja su konkretna. Vanjski provajder mora dopustiti radnu putanju do VPN endpointa telefona, što za protokole zasnovane na UDP-u znači da vanjska usluga ne smije blokirati ili ograničavati taj promet.
Razumijte ko vidi šta. Vanjski provajder vidi vezu prema unutrašnjem endpointu. Unutrašnji provajder prima promet telefona sa vanjskog izlaza i prosljeđuje ga dalje. Konačno odredište obično vidi izlaz unutrašnje usluge, i nijedan provajder duž lanca nije slijep; računi aplikacija i dalje identifikuju korisnika bez obzira na putanju.
Očekujte praktične troškove. Svaki sloj dodaje enkapsulaciju, pa efektivni MTU pada i vrijednost koja je bila dobra za jedan tunel sada se fragmentira ili zastajkuje dok se MTU unutrašnjeg tunela ne postavi konzervativno. Dva sloja također znače dvije zavisnosti od kvara i dva skupa keepalive poruka, a unutrašnji tunel zasnovan na TCP-u preko vanjske veze sa gubicima može zastajkivati na način koji izgleda kao mrtav server.
Najvažnije, lanac ne spaja dvije privatne mreže. Rute, preklapajući prefiksi, DNS razrješavanje i pravila pristupa ostaju odvojene odluke, a ruter koji nosi jedan VPN dok telefon nosi drugi ne daje telefonu oba adresna prostora.
Provjerite dizajn prije nego što ga otklanjate
Zapišite raspored u jednoj rečenici i testirajte ga na aplikaciji koja nije uspjela. Uzastopni pristup treba pokazati jedan tunel odjednom; razdvajanje profila treba pokazati svaku aplikaciju u njenom korisniku; lanac treba pokazati da se unutrašnji tunel uspostavlja preko vanjskog sučelja, a ne fizičkog.
adb shell ip -br addr
adb shell ip route get 10.20.0.8
adb shell dumpsys connectivity | grep -i vpnAko pretraga rute imenuje fizičko sučelje dok aplikacija očekuje tunel, dizajn i kontekst aplikacije se ne slažu, i nijedna dodatna VPN aplikacija ih neće pomiriti. Dokumentacija o upravljanim profilima pokriva pravila razdvajanja ako vam trebaju detalji politike, a ne rutiranja.