Kaksi Windows-asetelmaa näyttävät Asetuksissa samalta ja käyttäytyvät täysin eri tavoin. Toinen on kopioitu VPN-profiili, jossa on sovellusliipaisin, joten yhden suoritettavan tiedoston käynnistäminen nostaa tunnelin. Toinen on jaetun tunnelin profiili, jonka reittiluettelo sattuu kattamaan sen, minkä kanssa kyseinen sovellus keskustelee. Ensimmäinen vastaa siihen, milloin tunneli on olemassa. Toinen vastaa siihen, mitkä paketit siihen tulevat, ja vain toinen jättää muun koneen fyysiselle linkille sovelluksen pysyessä yhdistettynä.

Liipaisin on elinkaarisääntö, ei reitityssääntö

Add-VpnConnectionTriggerApplication sitoo suoritettavan tiedoston polun profiilin nimeen. Kun tämä prosessi käynnistyy, Remote Access Connection Manager valitsee profiilin, ja kun liipaisimen ehto päättyy, yhteys voi katketa. Mikään tuossa vaihdossa ei tarkastele socketeja. Cmdlet vaatii korotetun shellin, täyden polun binääritiedostoon ja -Force kun korvaat olemassa olevan merkinnän. Vahvista, että liitos säilyi komennolla Get-VpnConnectionTrigger sen sijaan, että luottaisit kehotteeseen; Microsoftin Add-VpnConnectionTriggerApplication-viite luettelee parametrit ja esimerkit.

Kaksi rajaa selittää useimmat raportit, joiden mukaan „liipaisin ei tee mitään”. Liipaisimet rakentuvat kaikkien käyttäjien profiilien ympärille, joten profiilin laajuus on ensimmäinen selvitettävä asia, ja sovelluksen polun on vastattava binääritiedostoa, joka todella suoritetaan, ei pikakuvaketta tai käynnistintä, joka luo toisen prosessin. Toinen raja on tarkoituksellinen: verkossa, jonka Windows luokittelee luotetuksi, liipaisin pysyy toimettomana, koska profiili on tarkoitettu toimimaan toimiston ulkopuolella.

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

Jaettu tunneli päättää, mikä ylittää tunnelin

Kun jaettu tunneli on pois päältä, Windows asentaa luokkapohjaisen oletusreitin matalalla metrijalla VPN-liitäntään. Jokainen socket seuraa sitä, myös selain ja päivityspalvelu, joten liipaisin siirtää siinä kokoonpanossa koko konetta niin kauan kuin profiili on yhdistetty. Liipaisin on edelleen vain elinkaarisääntö; vaikutussäde tuli reitistä.

Kun jaettu tunneli on päällä, profiili kuljettaa vain ne etuliitteet, jotka yhdyskäytävä työntää tai jotka lisäät VPN-liitäntään. Kaikki muu käyttää edelleen fyysistä oletusreittiä. Se on järjestely, jota ihmiset yleensä tarkoittavat sanoessaan „yksi sovellus erillisen ulostulon kautta”, ja se on reitityspäätös alusta loppuun.

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

Missä reititetty jako lakkaa eristämästä sovellustasi

Yleinen virhe on kohde, joka ei koskaan ilmesty tunnelin reittiluetteloon. Sovellus, joka kirjautuu sisään yhtä osoitetta vastaan ja striimaa sitten CDN:stä tai ratkaisee tusinan pyöriviä päätepisteitä, laittaa osan yhteyksistä VPN-liitäntään ja loput Wi-Fiin. IPv6 on erillinen taulukko, joten profiili, joka työntää vain IPv4-etuliitteitä, voi näyttää oikealta, kun sovelluksen IPv6-liikenne pysyy paikallisena.

Kaksi pienempää vaikutusta merkitsevät yhtä paljon. Pisin etuliite voittaa, joten tarkempi on-link-reitti, hallintakoneelle työnnetty /32 tai toisen sovittimen aliverkko voi päihittää tunnelin juuri sen osoitteen kohdalla, joka sinua kiinnostaa. Myös nimien ratkaisu tapahtuu ennen reititystä: elleivät profiilin DNS-palvelimet tai NRPT-sääntö kata nimeä, sovellus voi ratkaista fyysisen sovittimen kautta ja valita sitten osoitteen, joka ei koskaan ollut tunneloitujen etuliitteiden sisällä.

Kolme muotoa ja mitä kukin ostaa

Taulukko on se osa, jonka teippaisin seinälle, koska päätös koskee vaikutussädettä eikä ominaisuuksia. Jos sovelluksen kohteet ovat vakaita etuliitteitä, jotka voit luetella, reititetty jako antaa eristyksen pienimmällä jalanjäljellä. Jos eivät, oletusreititysprofiili VM:n tai toisen laitteen takana pitää erottelun rehellisenä sillä hinnalla, että siirtää useampaa kuin yhtä prosessia.

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

Mitään näistä ei tarjoa socket-tason sidontaa isännässä. Klassisella Windows-VPN-asiakasohjelmalla ei ole sääntöä, jonka mukaan tämän prosessin on käytettävä tuota sovitinta; liipaisimet ja reittisuodattimet elävät eri kerroksissa, ja liitännän valitseva kerros on reititystaulukko. Jos opas lupaa sovelluskohtaisen valvonnan pelkästään kopioidusta profiilista, kysy, mikä reitti tai mikä suodatin tekee työn.

Vahvista pari yhdellä kierroksella

Testaa elinkaari ja reititys erikseen, tässä järjestyksessä. Sulje sovellus, vahvista, että profiili näyttää Disconnected, käynnistä sitten sovellus ja tarkista, että tila muuttui. Vasta kun tunneli on ylhäällä, sinun pitäisi kysyä, minne tietty kohde menee, ja sinun pitäisi käyttää osoitetta, jonka sovellus todella valitsee, ei arvausta.

$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 nimeää liitännän ja seuraavan hypyn, joka kuljettaisi kyseisen kohteen. Fyysinen alias siellä tarkoittaa, että tunneli on ylhäällä ja merkityksetön tuolle virralle: tarkista työnnetyt etuliitteet, sitten tarkemmat reitit, sitten IPv6. Jos tila ei muutu lainkaan, liipaisin ei lauennut, ja suoritettavan tiedoston polku, profiilin laajuus ja VPN-asiakasohjelman toimintaloki ovat kolme paikkaa, joista katsoa.

Pura siististi, jotta seuraava testi on rehellinen

Poista päinvastaisessa järjestyksessä kuin rakensit: ensin sovellusliipaisin, sitten profiili. Profiilin poistaminen liipaisimen jäädessä jättää roikkuvan liitoksen, joka tekee seuraavasta yrityksestä sekavan, ja Remove-VpnConnection -Force ei aina tyhjennä puhelinluettelomerkintää, joka luotiin cmdletien ulkopuolella.

Käyttäjäkohtaiset merkinnät ovat käyttäjän rasphone.pbk alla Roaming-profiilissa; kaikkien käyttäjien merkinnät ovat ProgramDatan alla. Tarkista profiilin laajuutta vastaava varasto, yhdistä uudelleen säilyttämäsi profiili ja vahvista, että sen reitit ja DNS toimivat edelleen, jotta myöhempi testi mittaa tekemääsi muutosta eikä jäänyt tilaa.

  • Tunneli nousee prosessin käynnistyessä, ei kirjautumisessa.
  • Vain aiotut etuliitteet näkyvät VPN-liitännässä.
  • Sovelluksen todellinen etäosoite ratkeaa VPN-aliakseksi.
  • Profiilin poistamisen jälkeen ei jää roikkuvaa liipaisinta.

Aiheeseen liittyvät artikkelit