Dve konfiguraciji Windows sta v Nastavitvah videti enaki in se ne obnašata nič podobno. Ena je kopiran profil VPN s sprožilcem aplikacije, zato zagon ene izvršljive datoteke dvigne tunel. Druga je profil z razdeljenim tunelom, katerega seznam poti slučajno pokriva to, s čimer se ta aplikacija pogovarja. Prva odgovori, kdaj tunel obstaja. Druga odgovori, kateri paketi vstopijo vanj, in le druga pusti preostanek stroja na fizični povezavi, medtem ko aplikacija ostane povezana.

Sprožilec je pravilo življenjskega cikla, ne pravilo usmerjanja

Add-VpnConnectionTriggerApplication poveže pot izvršljive datoteke z imenom profila. Ko se ta proces začne, Upravitelj povezav za oddaljeni dostop pokliče profil, in ko se pogoj sprožilca konča, lahko povezava pade. Nič v tej izmenjavi ne pregleduje vtičnic. Ukaz potrebuje povišano lupino, celotno pot do binarne datoteke in -Force ko zamenjate obstoječi vnos. Potrdite, da je povezava preživela, z Get-VpnConnectionTrigger namesto da bi zaupali pozivu; referenca Add-VpnConnectionTriggerApplication navaja parametre in primere.

Dve omejitvi pojasnjujeta večino poročil, da »sprožilec ne naredi ničesar«. Sprožilci so zgrajeni okoli profilov za vse uporabnike, zato je obseg profila prva stvar, ki jo je treba urediti, in pot aplikacije se mora ujemati z binarno datoteko, ki res teče, ne z bližnjico ali zaganjalnikom, ki ustvari drugi proces. Druga omejitev je namerna: v omrežju, ki ga Windows razvrsti kot zaupanja vredno, sprožilec ostane nedejaven, ker je profil namenjen delovanju zunaj pisarne.

Add-VpnConnectionTriggerApplication -Name "APP_VPN" -ApplicationID "C:\Program Files\Vendor\app.exe" -Force
Get-VpnConnectionTrigger -Name "APP_VPN" | Format-List *
Get-VpnConnection -Name "APP_VPN" | Format-List Name,ConnectionStatus,SplitTunneling,AllUserConnection

Razdeljeni tunel odloča, kaj prečka tunel

Z izklopljenim razdeljenim tunelom Windows na vmesnik VPN namesti privzeto pot na podlagi razreda z nizko metriko. Vsaka vtičnica ji sledi, vključno z brskalnikom in storitvijo za posodobitve, zato sprožilec v tej konfiguraciji premakne cel stroj, dokler je profil povezan. Sprožilec je še vedno le pravilo življenjskega cikla; polmer učinka je prišel s poti.

Z vklopljenim razdeljenim tunelom profil nosi le predpone, ki jih potisne prehod ali ki jih dodate vmesniku VPN. Vse ostalo še naprej uporablja fizično privzeto pot. To je ureditev, ki jo ljudje običajno mislijo z »ena aplikacija skozi ločen izhod«, in je odločitev o usmerjanju od začetka do konca.

Set-VpnConnection -Name "APP_VPN" -SplitTunneling $true
Get-VpnConnection -Name "APP_VPN" | Select-Object SplitTunneling
Get-NetRoute -InterfaceAlias "APP_VPN" | Sort-Object DestinationPrefix

Kje usmerjena razdelitev preneha izolirati vašo aplikacijo

Pogosta napaka je cilj, ki se nikoli ne pojavi na seznamu poti tunela. Aplikacija, ki se prijavi na en naslov in nato pretaka z CDN, ali razreši ducat vrtečih se končnih točk, bo nekaj povezav postavila na vmesnik VPN, ostale pa na Wi-Fi. IPv6 je ločena tabela, zato je profil, ki potiska le predpone IPv4, lahko videti pravilen, medtem ko promet aplikacije po IPv6 ostane lokalen.

Dva manjša učinka štejeta prav toliko. Zmaga najdaljše ujemanje predpone, zato lahko bolj specifična pot na povezavi, /32, potisnjen za upravljavskega gostitelja, ali podomrežje drugega vmesnika premaga tunel točno za naslov, ki vas zanima. Tudi razreševanje se zgodi pred usmerjanjem: če imena ne pokrivajo strežniki DNS profila ali pravilo NRPT, ga lahko aplikacija razreši skozi fizični vmesnik in nato pokliče naslov, ki nikoli ni bil znotraj tuneliranih predpon.

Tri oblike in kaj vsaka prinese

Tabela je del, ki bi ga prilepil na steno, ker odločitev zadeva polmer učinka, ne funkcije. Če so cilji aplikacije stabilne predpone, ki jih lahko naštejete, usmerjena razdelitev daje izolacijo z najmanjšo sledjo. Če niso, profil s privzeto potjo za VM ali drugo napravo ohranja ločevanje pošteno za ceno premikanja več kot enega procesa.

ShapeWhat starts the tunnelWhat enters itPick it when
Trigger plus routed splitProcess startOnly pushed or added prefixesThe app's endpoints are stable prefixes and the host should stay direct
Trigger plus default routeProcess startEverything, machine-wideYou need one exit for all traffic and accept the wider scope
Separate VM or deviceGuest boot or loginEverything inside that guestThe app's destinations rotate, or the host must keep its own public address

Česar nobena od teh ne ponuja, je vezava na ravni vtičnice na gostitelju. Klasični odjemalec Windows VPN nima pravila, da mora ta proces uporabljati ta vmesnik; sprožilci in filtri poti živijo v različnih plasteh, in plast, ki izbere vmesnik, je usmerjevalna tabela. Če priročnik obljublja uveljavljanje po aplikacijah samo iz kopiranega profila, vprašajte, katera pot ali kateri filter opravi delo.

Preverite par v enem prehodu

Testirajte življenjski cikel in usmerjanje ločeno, v tem vrstnem redu. Zaprite aplikacijo, potrdite, da profil prikazuje Disconnected, nato zaženite aplikacijo in preverite, ali se je stanje spremenilo. Šele ko je tunel dvignjen, se smete vprašati, kam gre določen cilj, in uporabiti naslov, ki ga aplikacija dejansko pokliče, ne ugibanje.

$app = Get-Process app | Select-Object -First 1
Get-VpnConnection -Name "APP_VPN" | Select-Object ConnectionStatus
Get-NetTCPConnection -OwningProcess $app.Id -State Established | Select-Object RemoteAddress,RemotePort
Find-NetRoute -RemoteIPAddress 203.0.113.10

Find-NetRoute poimenuje vmesnik in naslednji skok, ki bi nesel ta cilj. Fizični alias tam pomeni, da je tunel dvignjen in za ta tok nepomemben: preverite potisnjene predpone, nato bolj specifične poti, nato IPv6. Če se stanje sploh ne spremeni, se sprožilec ni sprožil, in pot izvršljive datoteke, obseg profila ter operativni dnevnik odjemalca VPN so trije kraji, kamor pogledati.

Počistite urejeno, da bo naslednji test pošten

Odstranjujte v obratnem vrstnem redu, kot ste gradili: najprej sprožilec aplikacije, nato profil. Brisanje profila, medtem ko sprožilec ostane, pusti visečo povezavo, ki naslednji poskus naredi zmeden, in Remove-VpnConnection -Force ne počisti vedno vnosa v telefonskem imeniku, ustvarjenega zunaj ukazov.

Vnosi za posameznega uporabnika so v rasphone.pbk uporabnika pod profilom Roaming; vnosi za vse uporabnike so pod ProgramData. Preverite shrambo, ki ustreza obsegu profila, znova povežite profil, ki ste ga obdržali, in potrdite, da njegove poti in DNS še delujejo, da bo poznejši test izmeril spremembo, ki ste jo naredili, in ne preostalega stanja.

  • Tunel se dvigne ob zagonu procesa, ne ob prijavi.
  • Na vmesniku VPN se pokažejo le predvidene predpone.
  • Dejanski oddaljeni naslov aplikacije se razreši v alias VPN.
  • Po odstranitvi profila ne ostane noben viseči sprožilec.

Sorodni članki