Divi Windows iestatījumi izskatās vienādi sadaļā Iestatījumi un uzvedas pavisam citādi. Viens ir kopēts VPN profils ar programmas palaidēju, tāpēc vienas izpildāmās faila palaišana paceļ tuneli. Otrs ir sadalītā tuneļa profils, kura maršrutu saraksts nejauši aptver to, ar ko šī programma sazinās. Pirmais atbild, kad tunelis pastāv. Otrais atbild, kuri paketes tajā nonāk, un tikai otrais atstāj pārējo mašīnu uz fiziskās saites, kamēr programma paliek pieslēgta.

Palaidējs ir dzīves cikla noteikums, nevis maršrutēšanas noteikums

Add-VpnConnectionTriggerApplication saista izpildāmā faila ceļu ar profila nosaukumu. Kad šis process sākas, attālās piekļuves savienojuma pārvaldnieks izsauc profilu, un kad palaidēja nosacījums beidzas, savienojums var pārtrūkt. Nekas šajā apmainā nepārbauda ligzdas. Cmdlet ir nepieciešams paaugstināts shell, pilns ceļš uz bināro failu un -Force kad aizstājat esošu ierakstu. Apstipriniet, ka saistība saglabājās, ar Get-VpnConnectionTrigger tā vietā, lai uzticētos uzvednei; Microsoft Add-VpnConnectionTriggerApplication atsauce uzskaita parametrus un piemērus.

Divas robežas izskaidro lielāko daļu ziņojumu „palaidējs neko nedara”. Palaidēji ir veidoti ap profiliem visiem lietotājiem, tāpēc profila tvērums ir pirmā lieta, kas jānoskaidro, un programmas ceļam jāsakrīt ar bināro failu, kas patiešām darbojas, nevis ar saīsni vai palaidēju, kas rada otru procesu. Otra robeža ir apzināta: tīklā, ko Windows klasificē kā uzticamu, palaidējs paliek dīkstāvē, jo profils ir paredzēts darbam ārpus biroja.

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

Sadalītais tunelis izlemj, kas šķērso tuneli

Ar izslēgtu sadalīto tuneli Windows VPN saskarnē instalē uz klasi balstītu noklusējuma maršrutu ar zemu metrisko vērtību. Katra ligzda tam seko, tostarp pārlūks un atjaunināšanas pakalpojums, tāpēc palaidējs šajā konfigurācijā pārvieto visu mašīnu, kamēr profils ir pievienots. Palaidējs joprojām ir tikai dzīves cikla noteikums; ietekmes rādiuss nāca no maršruta.

Ar ieslēgtu sadalīto tuneli profils nes tikai tos prefiksus, ko spiež vārteja vai ko jūs pievienojat VPN saskarnei. Viss pārējais turpina izmantot fizisko noklusējuma maršrutu. Tas ir izkārtojums, ko cilvēki parasti domā ar „viena programma caur atsevišķu izeju”, un tas ir maršrutēšanas lēmums no sākuma līdz beigām.

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

Kur maršrutētais sadalījums pārstāj izolēt jūsu programmu

Biežā kļūda ir galamērķis, kas nekad neparādās tuneļa maršrutu sarakstā. Programma, kas piesakās pret vienu adresi un pēc tam straumē no CDN, vai atrisina duci rotējošu galapunktu, daļu savienojumu liks uz VPN saskarnes un pārējos uz Wi-Fi. IPv6 ir atsevišķa tabula, tāpēc profils, kas spiež tikai IPv4 prefiksus, var izskatīties pareizi, kamēr programmas IPv6 trafiks paliek lokāls.

Divi mazāki efekti ir tikpat svarīgi. Uzvar garākā prefiksa atbilstība, tāpēc konkrētāks on-link maršruts, pārvaldības resursdatoram spiestais /32 vai otrā adaptera apakštīkls var pārspēt tuneli tieši tai adresei, kas jums rūp. Arī nosaukumu atrisināšana notiek pirms maršrutēšanas: ja vien profila DNS serveri vai NRPT noteikums neaptver nosaukumu, programma var atrisināt caur fizisko adapteri un pēc tam izvēlēties adresi, kas nekad nav bijusi tunelēto prefiksu iekšpusē.

Trīs formas un ko katra dod

Tabula ir tā daļa, ko es uzlīmētu pie sienas, jo lēmums ir par ietekmes rādiusu, nevis funkcijām. Ja programmas galamērķi ir stabili prefiksi, ko varat uzskaitīt, maršrutētais sadalījums dod izolāciju ar mazāko pēdu. Ja nav, noklusējuma maršruta profils aiz VM vai otras ierīces uztur atdalījumu godīgu uz cenu, ka jāpārvieto vairāk nekā viens process.

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

Ko neviena no šīm nepiedāvā, ir saistīšana ligzdas līmenī uz resursdatora. Klasiskajam Windows VPN klientam nav noteikuma, ka šim procesam jāizmanto tas adapteris; palaidēji un maršrutu filtri dzīvo dažādos slāņos, un slānis, kas izvēlas saskarni, ir maršrutu tabula. Ja rokasgrāmata sola izpildi pēc programmas tikai no kopēta profila, pajautājiet, kurš maršruts vai kurš filtrs veic darbu.

Pārbaudiet pāri vienā piegājienā

Pārbaudiet dzīves ciklu un maršrutēšanu atsevišķi, šajā secībā. Aizveriet programmu, apstipriniet, ka profils rāda Disconnected, pēc tam palaidiet programmu un pārbaudiet, vai stāvoklis mainījās. Tikai pēc tam, kad tunelis ir pacelts, jums jājautā, kur dodas konkrēts galamērķis, un jāizmanto adrese, ko programma patiešām izsauc, nevis minējums.

$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 nosauc saskarni un nākamo lēcienu, kas nestu šo galamērķi. Fizisks aizstājvārds tur nozīmē, ka tunelis ir pacelts un šim plūsmam nav nozīmes: pārbaudiet spiestos prefiksus, tad konkrētākos maršrutus, tad IPv6. Ja stāvoklis nemainās vispār, palaidējs neizšāvās, un izpildāmā faila ceļš, profila tvērums un VPN klienta darbības žurnāls ir trīs vietas, kur skatīties.

Notīriet kārtīgi, lai nākamais tests būtu godīgs

Noņemiet apgrieztā secībā, kā būvējāt: vispirms programmas palaidēju, pēc tam profilu. Dzēšot profilu, kamēr palaidējs paliek, tiek atstāta karājoša saistība, kas padara nākamo mēģinājumu mulsinošu, un Remove-VpnConnection -Force ne vienmēr notīra tālruņu grāmatas ierakstu, kas izveidots ārpus cmdlet komandām.

Ieraksti katram lietotājam atrodas lietotāja rasphone.pbk failā zem Roaming profila; ieraksti visiem lietotājiem atrodas zem ProgramData. Pārbaudiet krātuvi, kas atbilst profila tvērumam, atkārtoti pievienojiet saglabāto profilu un apstipriniet, ka tā maršruti un DNS joprojām darbojas, lai vēlāks tests mērītu jūsu veikto izmaiņu, nevis atlikušo stāvokli.

  • Tunelis paceļas procesa palaišanas laikā, nevis pieteikšanās laikā.
  • VPN saskarnē parādās tikai paredzētie prefiksi.
  • Programmas īstā attālā adrese tiek atrisināta uz VPN aizstājvārdu.
  • Pēc profila noņemšanas nepaliek neviens karājošs palaidējs.

Saistītie raksti