App-basearre en bestimming-basearre split tunneling binne net twa ynstellings foar itselde wurk. De iene freget hokker proses in pakket stjoert; de oare freget wêr't dat pakket hinne giet. In regel boud foar de earste fraach mislearret stil as it ferkear fan in helpproses komt, en in regel boud foar de twadde mislearret as in hostnamme oplost nei in adres dat jo nea neamd hawwe. Kies it objekt dat by de eask past, en bewiis it mei twa testpakketten: ien dat de tunnel brûke moat en ien dat net.

De twa regels wurkje op ferskillende lagen

In app-regel wurdt ôftwongen boppe de netwurklagen, tsjin de identiteit dy't it bestjoeringssysteem oan de stjoerder jout. Op Android is dat de UID efter in pakket, en de VPN-tsjinst beslút per UID oft ferkear de tunnel yn giet. Oer de bestimming wurdt neat frege, dat de keazen app kin alles berikke en gjin oare app kin it ynterne netwurk berikke.

In bestimming-regel wurdt ôftwongen op it pakket sels. De tunnelinterface hat in set foarheaksels, de routingtabel stjoert oerienkommend ferkear dêryn, en it stjoerende proses is net fan belang. Dêrom beslacht in bestimming-regel in tsjinst, in printer of in batchtaak dy't nimmen betocht om te neamen, en dêrom kin it net as krekt dit programma útdrukt wurde op in platfoarm wêrfan't de klant nea nei it proses sjocht.

App-regels passe by mobile klanten en behearde aginten

Android toant de kar direkt: VpnService.Builder.addAllowedApplication() en addDisallowedApplication() nimme pakketnammen en twinge de beslissing per UID ôf, sa't beskreaun is yn de VPN-ûntwikkelersgids fan Android. iOS hat in ekwivalent fia VPN-regels per app basearre op bondel-identifiers, meastentiids levere troch in MDM-profyl ynstee fan mei de hân typt.

Desktopklanten binne it swakke punt. De measte Windows- en macOS-VPN-klanten routearje op bestimming en biede hielendal gjin kar per proses, om't de tunneldriver pakketten sjocht, gjin prosessen. As jo plan ôfhinget fan it tunnelen fan ien applikaasje op in laptop, kontrolearje dan de echte mooglikheden fan de klant foardat jo dêromhinne ûntwerpe; miskien kiest jo tusken in list mei bestimmingen en in twadde masine.

In gefolch dat minsken misse: jo kinne in app-regel net neibeitsje mei routes op dy platfoarms. It tafoegjen fan in hostroute foar de server fan de app tunnellet it ferkear fan alle minsken nei dy server, ynklusyf de browser en it bywurkingsprogramma.

Bestimming-regels passe by subnetlisten en berikberens fan siden

WireGuard makket it model eksplisyt. AllowedIPs is kryptokaaike-routing: in ynterne pakket wêrfan't de bestimming yn de list fan in peer falt, wurdt nei dy peer fersifere, en al it oare giet ûnfersifere oer it normale paad fuort. Der is gjin proses om te neamen en gjin ûndúdlikens oer wat opnommen is.

OpenVPN berikt itselde plak fia de trochstjoerde routingtabel. route-nopull stopet de server om routes foar te skriuwen, wêrnei't in kliïntside route 10.20.0.0 255.255.0.0 vpn_gateway krekt it kantoarfoarheaksel beslacht. IPv6 is in aparte útspraak yn elkenien fan dizze klanten, en it ferjitten is de meast foarkommende manier om om in goed-lykjend IPv4-split hinne te lekken.

In hostnamme is gjin route. As it profyl in domein-fjild biedt, behannelje it as in namme dy't de klant ien kear oplost, net as in permanint adresberik; ynhâldleveringsnetwurken en loadbalancers jouwe moarn oare adressen.

Wêr't beide modellen brekke: helpers, dielde tsjinsten, oplossers

Helpprosessen brekke app-regels op in manier dy't op in serverflater liket. It bywurkingsprogramma fan in browser, in crash-rapporteur, in syngronisaasjetsjinst dy't as SYSTEM rint en in WebView ynbêde yn in oar pakket binne allegear aparte identiteiten, dat it tunnelen fan de browser kin it echte fersyk bûten de tunnel litte. It omkearde is like betiizjend: in útsletten app dy't in dielde bibleteek yn in tunnelisearre proses oanropt, hat dochs syn ferkear troch de tunnel.

Bestimming-regels brekke op dielde tsjinsten en op nammen. Bestânsdielingen, printers, ynterne DNS en de lisinsjeserver libje op adressen, dat in tunnel foar ien app jout de browser tagong wylst it mappte stasjon dea bliuwt. Dat ferskil yn dekking is gjin bug yn ien fan beide modellen, mar it is de reden dat in tunnel foar ien app sa faak oplevert dat de VPN oan is en de dieling fuort.

Oplossers snije troch beide. As de klant ynterne DNS-servers ynstelt mar it bestjoeringssysteem brûkt DNS oer HTTPS nei in iepenbiere oplosser, komt it antwurd fan bûten de tunnel en de bestimming-regel kin nea oerienkomme. Kontrolearje hokker oplosser eins antwurde foardat jo konkludearje dat de regel ferkeard is, en befêstigje oan de kliïntkant oft it de tunneloplosser hielendal ynstallearre hat. In split dy't DNS bûten de tunnel lit, liket perfekt yn de routingtabel en mislearret dochs op elke ynterne namme.

Wurkplan: kieze, tapasse, ferifiearje

Begjin by de eask, net by it menu. As it doel is allinnich dizze app mei de tunnel brûke, hawwe jo app-regels nedich en in platfoarm dat se stipet. As it doel is dizze netwurken binne fia de tunnel berikber, hawwe jo foarheaksels nedich. As it antwurd beide is, ymplemintearje se as twa aparte kontrôles en skriuw op hokker ien hokker flater hat.

Pas de smelste foarm ta dy't jo útdrukke kinne, en ferifiearje dan troch de routingtabel te freegjen ynstee fan it statusbyld fan de klant:

ip route get 10.20.30.40
ip -6 route get 2001:db8:10::40
wg show wg0 allowed-ips
Get-NetRoute -DestinationPrefix 10.20.0.0/16
Find-NetRoute -RemoteIPAddress 10.20.30.40

De earste twa rigels neame de interface dy't in echte bestimming brûke soe; wg show printsje de konfigurearre foarheakselflis; op Windows antwurdet Find-NetRoute op deselde fraach dy't de stack antwurdet as it pakket stjoerd wurdt. As de interface de tunnel is, hat de regel oerienkomst.

Test dan in twadde pakket dat útsletten wurde moat, fan in oare applikaasje, nei deselde bestimming. Skriuw yn de ticket de klantferzje, it regeltype, de foarheaksel- of pakketlist en de twa waarnommen resultaten. Krekt dat pear resultaten fertelt de folgjende yngenieur oft it belied ferkeard konfigurearre is of dat it ferkear der nea by hearde.

Relatearre artikelen