Kaks Windowsi seadistust näevad seadetes ühesugused välja ja käituvad täiesti erinevalt. Üks on kopeeritud VPN-profiil rakenduse päästikuga, nii et ühe käivitatava faili käivitamine tõstab tunneli üles. Teine on jagatud tunneliga profiil, mille marsruudiloend kattub juhuslikult sellega, millega see rakendus suhtleb. Esimene vastab küsimusele, millal tunnel olemas on. Teine vastab, millised paketid sellesse sisenevad, ja ainult teine jätab ülejäänud masina füüsilisele lingile, samal ajal kui rakendus jääb ühendatuks.

Päästik on elutsükli reegel, mitte marsruutimisreegel

Add-VpnConnectionTriggerApplication seob käivitatava faili tee profiili nimega. Kui see protsess käivitub, valib Remote Access Connection Manager profiili, ja kui päästiku tingimus lõpeb, võib ühendus katkeda. Miski selles vahetuses ei kontrolli socketeid. Cmdlet vajab kõrgendatud shelli, täielikku teed binaarfailini ja -Force kui asendate olemasoleva kirje. Kinnitage, et seos püsis, käsuga Get-VpnConnectionTrigger selle asemel, et usaldada viipa; Microsofti viide Add-VpnConnectionTriggerApplicationile loetleb parameetrid ja näited.

Kaks piirangut selgitavad enamikku teateid, et „päästik ei tee midagi”. Päästikud on ehitatud kõigi kasutajate profiilide ümber, seega tuleb kõigepealt selgitada profiili ulatus, ja rakenduse tee peab vastama binaarfailile, mis tegelikult töötab, mitte otseteele või käivitajale, mis loob teise protsessi. Teine piirang on tahtlik: võrgus, mille Windows liigitab usaldusväärseks, jääb päästik jõude, sest profiil on mõeldud töötama väljaspool kontorit.

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

Jagatud tunnel otsustab, mis tunnelist läbi läheb

Kui jagatud tunnel on väljas, paigaldab Windows VPN-liidesele klassipõhise vaikemarsruudi madala mõõdikuga. Iga socket järgib seda, sealhulgas brauser ja värskendusteenus, nii et päästik selles seadistuses liigutab tervet masinat seni, kuni profiil on ühendatud. Päästik on endiselt vaid elutsükli reegel; mõjuraadius tuli marsruudilt.

Kui jagatud tunnel on sees, kannab profiil ainult neid prefikseid, mille lüüs saadab või mille te VPN-liidesele lisate. Kõik muu kasutab edasi füüsilist vaikemarsruuti. See on korraldus, mida inimesed tavaliselt mõtlevad „üks rakendus eraldi väljapääsu kaudu”, ja see on otsast lõpuni marsruutimisotsus.

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

Kus marsruuditud jagamine lõpetab teie rakenduse isoleerimise

Levinud tõrge on sihtkoht, mis ei ilmu kunagi tunneli marsruudiloendisse. Rakendus, mis logib sisse ühe aadressi vastu ja voogab seejärel CDN-ist või lahendab tosinat pöörlevat lõpp-punkti, paneb osa ühendusi VPN-liidesele ja ülejäänud Wi-Fi-le. IPv6 on eraldi tabel, nii et profiil, mis saadab ainult IPv4 prefikseid, võib tunduda korrektne, samal ajal kui rakenduse IPv6-liiklus jääb kohalikuks.

Kaks väiksemat mõju loevad sama palju. Võidab pikim prefiks, nii et täpsem on-link marsruut, haldushosti jaoks saadetud /32 või teise adapteri alamvõrk võivad tunneli lüüa täpselt selle aadressi puhul, mis teile korda läheb. Nime lahendamine toimub samuti enne marsruutimist: kui profiili DNS-serverid või NRPT reegel seda nime ei kata, võib rakendus lahendada füüsilise adapteri kaudu ja valida seejärel aadressi, mis ei olnud kunagi tunnelitatud prefiksite sees.

Kolm kuju ja mida igaüks ostab

Tabel on see osa, mille kleepiksin seinale, sest otsus käib mõjuraadiuse, mitte funktsioonide kohta. Kui rakenduse sihtkohad on stabiilsed prefiksid, mille saate loetleda, annab marsruuditud jagamine isoleerituse väikseima jalajäljega. Kui ei ole, hoiab vaikemarsruudiga profiil VM-i või teise seadme taga eraldatuse ausana, kuid liigutab rohkem kui ühte protsessi.

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

Mida ükski neist ei paku, on socket-tasandi sidumine hostis. Klassikalisel Windowsi VPN-kliendil pole reeglit, mis ütleks, et see protsess peab kasutama seda adapterit; päästikud ja marsruudifiltrid elavad eri kihtides ja liidese valib marsruuditabeli kiht. Kui juhend lubab rakendusepõhist jõustamist ainult kopeeritud profiilist, küsige, milline marsruut või filter töö ära teeb.

Kontrollige paari ühe käiguga

Testige elutsüklit ja marsruutimist eraldi, selles järjekorras. Sulgege rakendus, kinnitage, et profiil näitab Disconnected, seejärel käivitage rakendus ja kontrollige, kas olek muutus. Alles siis, kui tunnel on üleval, peaksite küsima, kuhu konkreetne sihtkoht läheb, ja peaksite kasutama aadressi, mille rakendus tegelikult valib, mitte oletust.

$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 nimetab liidese ja järgmise hüppe, mis selle sihtkoha kannaks. Füüsiline alias seal tähendab, et tunnel on üleval ja selle voo jaoks ebaoluline: kontrollige saadetud prefikseid, siis täpsemaid marsruute, siis IPv6-t. Kui olek ei muutu üldse, ei vallandunud päästik, ja käivitatava faili tee, profiili ulatus ning VPN-kliendi tööpäevik on kolm kohta, kust vaadata.

Koristage puhtalt, et järgmine test oleks aus

Eemaldage vastupidises järjekorras, kui ehitasite: esmalt rakenduse päästik, seejärel profiil. Profiili kustutamine päästiku allesjäädes jätab rippuva seose, mis muudab järgmise katse segaseks, ja Remove-VpnConnection -Force ei kustuta alati telefoniraamatu kirjet, mis loodi väljaspool cmdlete.

Kasutajapõhised kirjed asuvad kasutaja rasphone.pbk all Roaming-profiilis; kõigi kasutajate kirjed asuvad ProgramData all. Kontrollige profiili ulatusega sobivat hoidlat, ühendage uuesti profiil, mille alles jätsite, ja kinnitage, et selle marsruudid ja DNS toimivad endiselt, et hilisem test mõõdaks teie tehtud muudatust, mitte jääknähtust.

  • Tunnel tõuseb protsessi käivitamisel, mitte sisselogimisel.
  • VPN-liidesele ilmuvad ainult kavandatud prefiksid.
  • Rakenduse tegelik kaugaadress lahendub VPN-i aliaseks.
  • Pärast profiili eemaldamist ei jää ühtegi rippuvat päästikut.

Seotud artiklid