Windows-da tətbiq üzrə VPN tətikləyicisi və bölünmüş tunel: hansı təcrid edir
Tətbiqlə işə salınan Windows VPN profili yalnız tunel açır. Marşrutlaşdırılmış bölünmüş tunel nəyin girəcəyini müəyyən edir və hər biri bir tətbiq üçün fərqli şəkildə uğursuz olur.
İki Windows quraşdırması Parametrlərdə eyni görünür və heç də eyni davranmır. Biri tətbiq tətikləyicisi olan kopyalanmış VPN profilidir, ona görə bir icra olunan faylı başlatmaq tuneli qaldırır. Digəri bölünmüş tunel profilidir və onun marşrut siyahısı təsadüfən həmin tətbiqin danışdığı şeyi əhatə edir. Birincisi tunelin nə vaxt mövcud olduğunu cavablandırır. İkincisi hansı paketlərin girdiyini cavablandırır və yalnız ikincisi maşının qalan hissəsini fiziki keçiddə saxlayır, tətbiq isə qoşulmuş qalır.
Tətikləyici həyat dövrü qaydasıdır, marşrutlaşdırma qaydası deyil
Add-VpnConnectionTriggerApplication icra olunan fayl yolunu profil adına bağlayır. Həmin proses başlayanda Remote Access Connection Manager profili çağırır və tətikləyici şərti bitdikdə bağlantı düşə bilər. Bu mübadilədə heç nə soketləri yoxlamır. Cmdlet yüksəldilmiş shell, binar faylın tam yolu və -Force mövcud qeydi əvəz etdiyiniz zaman tələb edir. Əlaqənin qaldığını bununla təsdiqləyin: Get-VpnConnectionTrigger əmrə güvənmək əvəzinə; Microsoft-un Add-VpnConnectionTriggerApplication sənədi parametrləri və nümunələri sadalayır.
İki məhdudiyyət “tətikləyici heç nə etmir” bildirişlərinin çoxunu izah edir. Tətikləyicilər bütün istifadəçilər üçün profillər ətrafında qurulur, ona görə profil əhatəsi ilk həll edilməli məsələdir və tətbiq yolu həqiqətən işləyən binar fayla uyğun olmalıdır, qısayola və ya ikinci proses yaradan başladıcıya deyil. Digər məhdudiyyət qəsdəndir: Windows-un etibarlı kimi təsnif etdiyi şəbəkədə tətikləyici işsiz qalır, çünki profil ofisdən kənarda işləmək üçün nəzərdə tutulub.
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
Bölünmüş tunel tuneldən nəyin keçəcəyini müəyyən edir
Bölünmüş tunel söndürüldükdə Windows VPN interfeysinə aşağı metrikli sinif əsaslı standart marşrut quraşdırır. Hər soket ona tabe olur, brauzer və yeniləmə xidməti də daxil olmaqla, ona görə bu konfiqurasiyadaki tətikləyici profil qoşulduğu müddətdə bütün maşını hərəkət etdirir. Tətikləyici yenə də yalnız həyat dövrü qaydasıdır; təsir radiusu marşrutdan gəldi.
Bölünmüş tunel qoşulduqda profil yalnız şlüzün itələdiyi və ya VPN interfeysinə əlavə etdiyiniz prefiksləri daşıyır. Qalan hər şey fiziki standart marşrutdan istifadə edir. Bu, insanların adətən “ayrı çıxışdan bir tətbiq” dedikdə nəzərdə tutduğu düzümdür və başdan sona marşrutlaşdırma qərarıdır.
Set-VpnConnection -Name "APP_VPN" -SplitTunneling $true
Get-VpnConnection -Name "APP_VPN" | Select-Object SplitTunneling
Get-NetRoute -InterfaceAlias "APP_VPN" | Sort-Object DestinationPrefix
Marşrutlu bölünmə tətbiqinizi təcrid etməyi harada dayandırır
Adi nasazlıq tunelin marşrut siyahısında heç vaxt görünməyən təyinatdır. Bir ünvana daxil olub sonra CDN-dən axın edən və ya onlarla fırlanan son nöqtəni həll edən tətbiq bəzi bağlantıları VPN interfeysinə, qalanlarını Wi-Fi-ə qoyacaq. IPv6 ayrı cədvəldir, ona görə yalnız IPv4 prefiksləri itələyən profil düzgün görünə bilər, tətbiqin IPv6 trafiki isə yerli qalır.
Daha iki kiçik təsir də eyni dərəcədə vacibdir. Ən uzun prefiks uyğunluğu qazanır, ona görə daha dəqiq on-link marşrut, idarəetmə hostu üçün itələnən /32 və ya ikinci adapterin alt şəbəkəsi tunnelı məhz sizin üçün vacib olan ünvanda üstələyə bilər. Ad həlli də marşrutlaşdırmadan əvvəl baş verir: profil DNS serverləri və ya NRPT qaydası adı əhatə etmirsə, tətbiq fiziki adapter vasitəsilə həll edib sonra tunelə salınmış prefikslərin içində heç vaxt olmamış ünvanı çağıra bilər.
Üç forma və hər birinin nə qazandırdığı
Cədvəl divara yapışdıracağım hissədir, çünki qərar funksiyalar deyil, təsir radiusu ilə bağlıdır. Tətbiqin təyinatları sadalaya biləcəyiniz sabit prefikslərdirsə, marşrutlu bölünmə ən kiçik izlə təcrid verir. Belə deyilsə, VM və ya ikinci cihaz arxasındakı standart marşrut profili birdən çox prosesi hərəkət etdirmək bahasına ayrılığı dürüst saxlayır.
| Shape | What starts the tunnel | What enters it | Pick it when |
|---|---|---|---|
| Trigger plus routed split | Process start | Only pushed or added prefixes | The app's endpoints are stable prefixes and the host should stay direct |
| Trigger plus default route | Process start | Everything, machine-wide | You need one exit for all traffic and accept the wider scope |
| Separate VM or device | Guest boot or login | Everything inside that guest | The app's destinations rotate, or the host must keep its own public address |
Bunların heç biri hostda soket səviyyəsində bağlanma təqdim etmir. Klassik Windows VPN müştərisində bu prosesin o adapterdən istifadə etməli olduğunu deyən qayda yoxdur; tətikləyicilər və marşrut filtrləri müxtəlif qatlamlarda yaşayır və interfeysi seçən qatlam marşrut cədvəlidir. Təlimat yalnız kopyalanmış profildən tətbiq üzrə məcburi icranı vəd edirsə, hansı marşrutun və ya hansı filtrin işi gördüyünü soruşun.
Cütü bir keçidlə yoxlayın
Həyat dövrünü və marşrutlaşdırmanı ayrı-ayrılıqda, bu ardıcıllıqla sınaqdan keçirin. Tətbiqi bağlayın, profilin Disconnected bildirdiyini təsdiqləyin, sonra tətbiqi başladın və vəziyyətin dəyişdiyini yoxlayın. Yalnız tunel qalxdıqdan sonra konkret təyinatın hara getdiyini soruşmalısınız və təxmin əvəzinə tətbiqin həqiqətən çağırdığı ünvandan istifadə etməlisiniz.
$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 interfeysi və həmin təyinatı daşıyacaq növbəti atlamanı adlandırır. Oradakı fiziki ləqəb tunelin qalxdığını və bu axın üçün əhəmiyyətsiz olduğunu bildirir: itələnmiş prefiksləri, sonra daha dəqiq marşrutları, sonra IPv6-nı yoxlayın. Vəziyyət heç dəyişmirsə, tətikləyici işə düşməyib və icra olunan faylın yolu, profil əhatəsi və VPN müştərisinin əməliyyat jurnalı baxılacaq üç yerdir.
Növbəti sınaq dürüst olsun deyə səliqəli təmizləyin
Qurduğunuzun tərs ardıcıllığı ilə çıxarın: əvvəlcə tətbiq tətikləyicisi, sonra profil. Tətikləyici qalarkən profili silmək növbəti cəhdi çaşdıran asılı əlaqə buraxır və Remove-VpnConnection -Force cmdlet-lərdən kənarda yaradılmış telefon kitabçası qeydini həmişə təmizləmir.
İstifadəçi üzrə qeydlər istifadəçinin rasphone.pbk faylında, Roaming profili altında yerləşir; bütün istifadəçilər üçün qeydlər ProgramData altındadır. Profil əhatəsinə uyğun anbarı yoxlayın, saxladığınız profili yenidən qoşun və onun marşrutlarının və DNS-inin hələ də işlədiyini təsdiqləyin ki, sonrakı sınaq qalan vəziyyəti deyil, etdiyiniz dəyişikliyi ölçsün.
- Tunel proses başlayanda qalxır, daxil olarkən deyil.
- VPN interfeysində yalnız nəzərdə tutulan prefikslər görünür.
- Tətbiqin real uzaq ünvanı VPN ləqəbinə həll olunur.
- Profil çıxarıldıqdan sonra asılı tətikləyici qalmır.