Twa VPN’s brûke is net ien fersyk. It kin betsjutte twa organisaasjes ien nei de oare te berikken, wurk- en persoanlike apps skieden te hâlden, of ien tunnel yn in oare rinne te litten. Android behannelt dy trije gefallen op folslein ferskillende manieren, en it tal VPN-apps dat op ’e telefoan ynstalleare is, is net de arsjitektuer. De fraach dy’t se skiedt is ienfâldich: moatte twa paden op itselde momint foar deselde app bestean?

Trije opstellings, ien fraach

As it antwurd nee is, om’t de beide netwurken op ferskillende tiden brûkt wurde, wolle jo in bewuste wiksel. As it antwurd nee is om’t de apps sels skieden binne, wolle jo profylskieding, wêrby’t elke app yn it kontekst sit dat syn eigen tunnel hat. As it antwurd ja is, en ien paad it oare fysyk drage moat, wolle jo in keten, en dat is de iennichste fan ’e trije wêrby’t de oarder diel fan it ûntwerp is.

Al it oare folget út dy kar. Wikselje hat in oergongsraam, skieding hat in beliedsgrens, en in keten hat in oerhaadkost en in ôfhinklikheidskost. De ferkearde kieze mislearret net skjin; it produsearret in telefoan dy’t ferbûn liket en in app dy’t neat berikke kin.

Wikselje binnen ien brûkerskontekst

Android lit ien aktive VPN-tsjinst per brûker ta. In twadde VPN-app yn itselde kontekst starte ferfangt de earste of wurdt daliks wegere; it stelt nea de beide rûtesets byinoar, en it stapelt grif net harren fersifering. Binnen ien brûker binne twa tunnels in folchoarder, net in som.

Dat is wurkber as tagong wier sekuensjeel is. Nammje de profilen sa dat de aktive fanselssprekkend is, meitsje alles gefoelichs klear foar’t jo wikselje, en ferwachtsje in koart raam wêryn’t gjin fan ’e beide paden folslein fêststeld is. In browser-tab slute is net itselde as in sesje einigje: de tab kin syn akkountsteat hâlde en gewoan it folgjende fersyk oer it nij keasene netwurk stjoere, en dat is krekt it lek dat minsken letter merke.

Wat wikselje jo net jaan kin, is in masine dy’t tagelyk op beide netwurken is. As in app in privee-adres fan elke kant nedich hat, sil gjin inkele klantdissipline dat produsearje.

Skieding neffens profyl

In behearrene wurkprofyl is in aparte brûker mei syn eigen apps, kaaiopslach en netwurkbelied. In wurk-e-postklant kin de tunnel fan ’e organisaasje brûke wylst in persoanlike browser in persoanlike brûkt, en beide kinne tagelyk ferbûn wêze om’t se net yn itselde kontekst sitte te konkurrearjen om it plak.

De skieding is ek de grins. De persoanlike browser lient de wurktunnel net, sjocht de wurk-DNS-achterheaksels net en berikt it wurknetwurk net allinnich om’t beide tsjinsten as ferbûn sjen litte. As immen rapportearet dat in keppeling net iepengiet, kontrolearje dan hokker kopy fan ’e app it behannele hat en hokker profyl dat akkount hat, foar’t jo ien fan ’e beide VPN’s oanreitsje.

Behannel de grins as fêst. In twadde profyl oanmeitsje of in wurkprofyl fuorthelje om in routingbeslissing fan in wurkjouwer hinne te gean, ferneatiget krekt de skieding dy’t de opstelling wurkje liet, en op in beheard apparaat is it meastentiids in beliedsskeining ynstee fan in konfiguraasje-oanpassing.

In keten, wêrby’t de oarder it ûntwerp is

In keten is de opstelling dy’t minsken meastentiids bedoele as se beide tagelyk sizze: de tunnel fan ’e telefoan reizget binnen de tunnel fan ’e router. It kin wurkje, en de beheiningen binne konkreet. De bûtenste provider moat in wurkjend paad nei it VPN-einpunt fan ’e telefoan tastean, wat foar UDP-basearre protokollen betsjut dat de bûtenste tsjinst dat ferkear net blokkearje of beheine mei.

Begryp wa’t wat sjocht. De bûtenste provider sjocht in ferbining nei it binnenste einpunt. De binnenste provider ûntfangt it ferkear fan ’e telefoan fan ’e bûtenste útgong en stjoert it fierder. It definitive bestimmingsplak sjocht meastentiids de útgong fan ’e binnenste tsjinst, en gjin provider lâns de keten is blyn; app-akkounts identifisearje de brûker noch altyd, itsij hokker paad.

Ferwachtsje praktyske kosten. Elke laach foegt ynkapseling ta, dus it effektive MTU sakket en in wearde dy’t goed wie foar ien tunnel fragmintearret of stûket no oant it MTU fan ’e binnenste tunnel konservatyf ynsteld wurdt. Twa lagen betsjutte ek twa flaterôfhinklikheden en twa sets keepalive-berjochten, en in TCP-basearre binnenste tunnel oer in ferliesrike bûtenste keppeling kin stûkje op manieren dy’t op in deade tsjinner lykje.

It wichtichste: in keten smyt twa privee-netwurken net byinoar. Rûtes, oerlaapjende foarheaksels, DNS-oplossing en tagongsregels bliuwe aparte beslissingen, en in router dy’t ien VPN draacht wylst in telefoan in oare draacht, jout de telefoan net beide adresromten.

Kontrolearje it ûntwerp foar’t jo it debugge

Skriuw de opstelling yn ien sin op en test it tsjin ’e app dy’t mislearre. Sekuensjele tagong heart ien tunnel tagelyk te sjen te jaan; profylskieding heart elke app yn syn eigen brûker te sjen te jaan; in keten heart te sjen te jaan dat de binnenste tunnel oer in bûtenste ynterface fêststeld wurdt ynstee fan oer de fysike.

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

As de rûtesyktocht it fysike ynterface neamt wylst in app de tunnel ferwachtet, binne it ûntwerp en it app-kontekst it net iens, en gjin ekstra VPN-app sil se fermoedsoenje. De dokumintaasje oer behearrene profilen beslacht de skiedingsregels as jo it beliedsdetail nedich hawwe ynstee fan it routingdetail.

Relatearre artikelen