Windows'da ilova bo'yicha VPN triggeri va bo'lingan tunnel: nima izolyatsiya qiladi
Ilova bilan ishga tushirilgan Windows VPN profili faqat tunnelni ochadi. Yo'naltirilgan bo'lingan tunnel nima kirishini hal qiladi va ikkalasi bitta ilova uchun turlicha muvaffaqiyatsiz bo'ladi.
Ikki Windows sozlamasi Sozlamalarda bir xil ko'rinadi va umuman bir xil ishlamaydi. Biri ilova triggeri bo'lgan nusxalangan VPN profili, shuning uchun bitta bajariladigan faylni ishga tushirish tunnelni ko'taradi. Ikkinchisi bo'lingan tunnel profili bo'lib, uning marshrutlar ro'yxati tasodifan o'sha ilova gaplashadigan narsani qamrab oladi. Birinchisi tunnel qachon mavjudligiga javob beradi. Ikkinchisi qaysi paketlar kirishiga javob beradi va faqat ikkinchisi mashinaning qolgan qismini jismoniy havolada qoldiradi, ilova esa ulangan bo'lib qoladi.
Trigger hayot sikli qoidasi, marshrutlash qoidasi emas
Add-VpnConnectionTriggerApplication bajariladigan fayl yo'lini profil nomiga bog'laydi. Bu jarayon boshlanganda, Remote Access Connection Manager profilni chaqiradi va trigger sharti tugaganda ulanish uzilishi mumkin. Bu almashinuvda hech narsa soketlarni tekshirmaydi. Cmdlet ko'tarilgan shell, binar faylning to'liq yo'li va -Force mavjud yozuvni almashtirganingizda kerak bo'ladi. Bog'lanish saqlanib qolganini quyidagi bilan tasdiqlang: Get-VpnConnectionTrigger so'rovga ishonish o'rniga; Microsoft'ning Add-VpnConnectionTriggerApplication ma'lumotnomasi parametrlar va misollarni sanab o'tadi.
Ikki chegara „trigger hech narsa qilmayapti“ degan xabarlarning ko'pini tushuntiradi. Triggerlar barcha foydalanuvchilar uchun profillar atrofida qurilgan, shuning uchun profil qamrovi birinchi hal qilinadigan masala, ilova yo'li esa haqiqatda ishlaydigan binar faylga mos kelishi kerak, yorliq yoki ikkinchi jarayon yaratuvchi ishga tushirgichga emas. Boshqa chegara ataylab qo'yilgan: Windows ishonchli deb tasniflaydigan tarmoqda trigger ishlamaydi, chunki profil ofisdan tashqarida ishlash uchun mo'ljallangan.
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
Bo'lingan tunnel tunneldan nima o'tishini hal qiladi
Bo'lingan tunnel o'chirilganda Windows VPN interfeysiga past metrikali sinfga asoslangan standart marshrut o'rnatadi. Har bir soket unga ergashadi, brauzer va yangilanish xizmati ham, shuning uchun bu konfiguratsiyadagi trigger profil ulangan bo'lsa butun mashinani ko'chiradi. Trigger baribir faqat hayot sikli qoidasi; ta'sir radiusi marshrutdan kelgan.
Bo'lingan tunnel yoqilganda profil faqat shlyuz itaradigan yoki VPN interfeysiga qo'shgan prefikslarni olib yuradi. Qolgan hamma narsa jismoniy standart marshrutdan foydalanadi. Bu odamlar odatda „bitta ilova alohida chiqish orqali“ deganda tushunadigan tartib va bu boshidan oxirigacha marshrutlash qarori.
Set-VpnConnection -Name "APP_VPN" -SplitTunneling $true
Get-VpnConnection -Name "APP_VPN" | Select-Object SplitTunneling
Get-NetRoute -InterfaceAlias "APP_VPN" | Sort-Object DestinationPrefix
Yo'naltirilgan bo'linish ilovangizni izolyatsiya qilishni qayerda to'xtatadi
Odatiy nosozlik — tunnel marshrutlar ro'yxatida hech qachon ko'rinmaydigan manzil. Bir manzilga kirib, keyin CDN'dan oqim qiladigan yoki o'nlab aylanuvchi so'nggi nuqtalarni hal qiladigan ilova ba'zi ulanishlarni VPN interfeysiga, qolganlarini Wi-Fi'ga qo'yadi. IPv6 alohida jadval, shuning uchun faqat IPv4 prefikslarini itaradigan profil to'g'ri ko'rinishi mumkin, ilovaning IPv6 trafigi esa mahalliy bo'lib qoladi.
Yana ikkita kichik ta'sir ham shunchalik muhim. Eng uzun prefiks mosligi yutuq, shuning uchun aniqroq on-link marshrut, boshqaruv hosti uchun itarilgan /32 yoki ikkinchi adapterning quyi tarmog'i tunneldan sizni qiziqtirgan manzil uchun ustun kelishi mumkin. Nomlash ham marshrutlashdan oldin bo'ladi: profil DNS serverlari yoki NRPT qoidasi nomni qamrab olmasa, ilova jismoniy adapter orqali hal qilib, keyin tunnel prefikslari ichida hech qachon bo'lmagan manzilni chaqirishi mumkin.
Uch shakl va har biri nima beradi
Jadval — devorga yopishtiradigan qismim, chunki qaror funksiyalar emas, ta'sir radiusi haqida. Agar ilova manzillari sanab chiqa oladigan barqaror prefikslar bo'lsa, yo'naltirilgan bo'linish eng kichik iz bilan izolyatsiya beradi. Aks holda, VM yoki ikkinchi qurilma orqasidagi standart marshrut profili bir nechta jarayonni ko'chirish evaziga ajratishni halol saqlaydi.
| 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 |
Bularning hech biri hostda soket darajasidagi bog'lanishni bermaydi. Klassik Windows VPN mijozi bu jarayon o'sha adapterdan foydalanishi kerak degan qoidaga ega emas; triggerlar va marshrut filtrlari turli qatlamlarda yashaydi, interfeysni tanlaydigan qatlam esa marshrutlar jadvali. Agar qo'llanma faqat nusxalangan profildan ilova bo'yicha majburlashni va'da qilsa, qaysi marshrut yoki qaysi filtr ishni bajarayotganini so'rang.
Juftlikni bir o'tishda tekshiring
Hayot siklini va marshrutlashni alohida sinab ko'ring, shu tartibda. Ilovani yoping, profil Disconnected deb xabar berishini tasdiqlang, keyin ilovani ishga tushiring va holat o'zgarganini tekshiring. Tunnel ko'tarilgandan keyingina aniq manzil qayerga ketishini so'rash kerak va taxmin o'rniga ilova haqiqatda chaqiradigan manzildan foydalanish kerak.
$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 interfeys va o'sha manzilni olib boradigan keyingi sakrashni nomlaydi. U erdagi jismoniy taxallus tunnel ko'tarilganini va bu oqim uchun ahamiyatsizligini bildiradi: itarilgan prefikslarni, keyin aniqroq marshrutlarni, keyin IPv6'ni tekshiring. Agar holat umuman o'zgarmasa, trigger ishga tushmagan va bajariladigan fayl yo'li, profil qamrovi hamda VPN mijozining operatsion jurnali — qarash kerak bo'lgan uch joy.
Keyingi sinov halol bo'lishi uchun toza tozalang
Qurgan tartibingizning teskarisida olib tashlang: avval ilova triggeri, keyin profil. Trigger qolgan holda profilni o'chirish keyingi urinishni chalkashtiradigan osilib qolgan bog'lanish qoldiradi va Remove-VpnConnection -Force cmdletlardan tashqarida yaratilgan telefon kitobi yozuvini har doim ham tozalamaydi.
Har bir foydalanuvchi yozuvlari foydalanuvchining rasphone.pbk faylida, Roaming profili ostida joylashgan; barcha foydalanuvchilar uchun yozuvlar ProgramData ostida. Profil qamroviga mos omborni tekshiring, saqlab qolgan profilingizni qayta ulang va uning marshrutlari hamda DNS hali ham ishlashini tasdiqlang, keyingi sinov qolgan holatni emas, siz kiritgan o'zgarishni o'lchashi uchun.
- Tunnel jarayon boshlanganda ko'tariladi, tizimga kirishda emas.
- VPN interfeysida faqat mo'ljallangan prefikslar ko'rinadi.
- Ilovaning haqiqiy uzoq manzili VPN taxallusiga hal qilinadi.
- Profil olib tashlangandan keyin osilib qolgan trigger qolmaydi.