Uporaba dveh VPN-ov ni ena sama zahteva. Lahko pomeni doseganje dveh organizacij ene za drugo, ločevanje delovnih in osebnih aplikacij ali izvajanje enega tunela znotraj drugega. Android te tri primere obravnava povsem različno, število nameščenih aplikacij VPN v telefonu pa ni arhitektura. Vprašanje, ki jih loči, je preprosto: ali morata za isto aplikacijo v istem trenutku obstajati dve poti?

Tri razporeditve, eno vprašanje

Če je odgovor ne, ker se dve omrežji uporabljata ob različnih časih, želite namerno preklopitev. Če je odgovor ne, ker so same aplikacije ločene, želite ločevanje profilov, kjer vsaka aplikacija sedi v kontekstu, ki ima v lasti njen tunel. Če je odgovor da in mora ena pot fizično nositi drugo, želite verigo, in to je edina od treh, kjer je vrstni red del zasnove.

Vse ostalo izhaja iz te izbire. Preklopitev ima prehodno okno, ločevanje ima mejo politike, veriga pa ima strošek režije in strošek odvisnosti. Izbira napačne ne odpove čisto; ustvari telefon, ki je videti povezan, in aplikacijo, ki ne doseže ničesar.

Preklapljanje znotraj enega uporabniškega konteksta

Android dovoljuje eno aktivno storitev VPN na uporabnika. Zagon druge aplikacije VPN v istem kontekstu nadomesti prvo ali se gladko zavrne; nikoli ne sestavi obeh nizov poti in zagotovo ne zloži njunega šifriranja. Znotraj enega uporabnika sta dva tunela zaporedje, ne vsota.

To je izvedljivo, ko je dostop resnično zaporedno. Poimenujte profile tako, da je aktivni očiten, dokončajte vse občutljivo pred preklopitvijo in pričakujte kratko okno, v katerem nobena od poti ni v celoti vzpostavljena. Zapiranje zavihka brskalnika ni isto kot končanje seje: zavihek lahko obdrži stanje svojega računa in preprosto pošlje naslednjo zahtevo po na novo izbranem omrežju, in to je natanko tisto uhajanje, ki ga ljudje opazijo pozneje.

Česa preklapljanje ne more dati, je stroj, ki je hkrati v obeh omrežjih. Če aplikacija potrebuje zasebni naslov z vsake strani, tega ne bo ustvarila nobena disciplina odjemalca.

Ločevanje po profilu

Upravljani delovni profil je ločen uporabnik z lastnimi aplikacijami, lastnim shrambo ključev in lastno omrežno politiko. Delovni poštni odjemalec lahko uporablja tunel organizacije, medtem ko osebni brskalnik uporablja osebnega, in oba sta lahko povezana hkrati, ker nista v istem kontekstu, ki bi tekmoval za mesto.

Ločevanje je tudi meja. Osebni brskalnik si ne izposoja delovnega tunela, ne vidi delovnih pripon DNS in ne doseže delovnega omrežja samo zato, ker sta obe storitvi prikazani kot povezani. Ko nekdo sporoči, da se povezava ne odpre, preverite, katera kopija aplikacije jo je obravnavala in kateremu profilu pripada ta račun, preden se dotaknete katerega od dveh VPN-ov.

Mejo obravnavajte kot fiksno. Ustvarjanje drugega profila ali odstranitev delovnega profila, da bi se izognili odločitvi delodajalca o usmerjanju, uniči prav tisto ločevanje, ki je omogočilo delovanje razporeditve, in na upravljani napravi je to običajno kršitev politike in ne sprememba konfiguracije.

Veriga, kjer je vrstni red zasnova

Veriga je razporeditev, ki jo ljudje običajno mislijo, ko rečejo oboje hkrati: tunel telefona potuje znotraj tunela usmerjevalnika. Lahko deluje, in omejitve so konkretne. Zunanji ponudnik mora dovoliti delujočo pot do končne točke VPN telefona, kar pri protokolih na osnovi UDP pomeni, da zunanja storitev tega prometa ne sme blokirati ali omejiti.

Razumite, kdo kaj vidi. Zunanji ponudnik vidi povezavo proti notranji končni točki. Notranji ponudnik prejme promet telefona z zunanjega izhoda in ga posreduje naprej. Končni cilj običajno vidi izhod notranje storitve in noben ponudnik vzdolž verige ni slep; računi aplikacij še vedno prepoznajo uporabnika ne glede na pot.

Pričakujte praktične stroške. Vsak sloj doda enkapsulacijo, zato efektivni MTU pade in vrednost, ki je bila v redu za en tunel, se zdaj razdrobi ali ustavi, dokler se MTU notranjega tunela ne nastavi konservativno. Dva sloja pomenita tudi dve odvisnosti od napake in dva niza ohranitvenih sporočil, notranji tunel na osnovi TCP čez izgubno zunanjo povezavo pa se lahko ustavi tako, da je videti kot mrtev strežnik.

Najpomembneje, veriga ne združi dveh zasebnih omrežij. Poti, prekrivajoče se predpone, razreševanje DNS in pravila dostopa ostajajo ločene odločitve, in usmerjevalnik, ki nosi en VPN, medtem ko telefon nosi drugega, telefonu ne daje obeh naslovnih prostorov.

Preverite zasnovo, preden jo odpravljate

Zapišite razporeditev v enem stavku in jo preizkusite na aplikaciji, ki ni uspela. Zaporedni dostop bi moral pokazati en tunel naenkrat; ločevanje profilov bi moralo pokazati vsako aplikacijo v njenem uporabniku; veriga bi morala pokazati, da se notranji tunel vzpostavlja prek zunanjega vmesnika in ne prek fizičnega.

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

Če iskanje poti navaja fizični vmesnik, medtem ko aplikacija pričakuje tunel, se zasnova in kontekst aplikacije ne strinjata, in nobena dodatna aplikacija VPN ju ne bo uskladila. Dokumentacija o upravljanih profilih pokriva pravila ločevanja, če potrebujete podrobnost politike in ne usmerjanja.

Sorodni članki