Windows-ൽ ഓരോ ആപ്പിനും VPN ട്രിഗർ vs വിഭജിത ടണൽ: ഏതാണ് വേർതിരിക്കുന്നത്
ആപ്പ് പ്രവർത്തിപ്പിക്കുന്ന Windows VPN പ്രൊഫൈൽ ഒരു ടണൽ മാത്രം തുറക്കുന്നു. റൂട്ട് ചെയ്ത വിഭജിത ടണൽ അതിലേക്ക് എന്ത് കയറുന്നു എന്ന് തീരുമാനിക്കുന്നു, രണ്ടും ഒരു ആപ്പിന് വ്യത്യസ്തമായി പരാജയപ്പെടുന്നു.
Windows-ലെ രണ്ട് സെറ്റപ്പുകൾ സെറ്റിംഗ്സിൽ ഒരുപോലെ കാണപ്പെടുന്നു, പക്ഷേ ഒട്ടും ഒരുപോലെ പെരുമാറുന്നില്ല. ഒന്ന് ആപ്പ് ട്രിഗറുള്ള പകർത്തിയ VPN പ്രൊഫൈൽ, അതിനാൽ ഒരു എക്സിക്യൂട്ടബിൾ തുടങ്ങുമ്പോൾ ടണൽ ഉയരുന്നു. മറ്റൊന്ന് വിഭജിത ടണൽ പ്രൊഫൈൽ, അതിന്റെ റൂട്ട് പട്ടിക യാദൃശ്ചികമായി ആ ആപ്പ് സംസാരിക്കുന്നതിനെ ഉൾക്കൊള്ളുന്നു. ആദ്യത്തേത് ടണൽ എപ്പോൾ നിലനിൽക്കുന്നു എന്ന് പറയുന്നു. രണ്ടാമത്തേത് ഏത് പാക്കറ്റുകൾ അകത്തേക്ക് കയറുന്നു എന്ന് പറയുന്നു, രണ്ടാമത്തേത് മാത്രം ബാക്കി യന്ത്രത്തെ ഭൗതിക ലിങ്കിൽ വിട്ട് ആപ്പ് ബന്ധിപ്പിച്ചിരിക്കും.
ട്രിഗർ ഒരു ജീവിതചക്ര നിയമമാണ്, റൂട്ടിംഗ് നിയമമല്ല
Add-VpnConnectionTriggerApplication എക്സിക്യൂട്ടബിളിന്റെ പാത പ്രൊഫൈൽ പേരിനോട് ബന്ധിപ്പിക്കുന്നു. ആ പ്രക്രിയ തുടങ്ങുമ്പോൾ, റിമോട്ട് ആക്സസ് കണക്ഷൻ മാനേജർ പ്രൊഫൈൽ ഡയൽ ചെയ്യുന്നു, കൂടാതെ ട്രിഗർ വ്യവസ്ഥ അവസാനിക്കുമ്പോൾ കണക്ഷൻ വീഴാം. ആ കൈമാറ്റത്തിൽ ഒന്നും സോക്കറ്റുകൾ പരിശോധിക്കുന്നില്ല. കമാൻഡിന് ഉയർത്തിയ ഷെൽ, ബൈനറിയുടെ പൂർണ പാത, കൂടാതെ -Force നിലവിലുള്ള എൻട്രി മാറ്റുമ്പോൾ ആവശ്യമാണ്. ബന്ധം നിലനിന്നു എന്ന് ഇതിലൂടെ ഉറപ്പാക്കുക: Get-VpnConnectionTrigger പ്രോംപ്റ്റിൽ വിശ്വസിക്കുന്നതിന് പകരം; Microsoft-ന്റെ Add-VpnConnectionTriggerApplication റഫറൻസ് പാരാമീറ്ററുകളും ഉദാഹരണങ്ങളും പട്ടികപ്പെടുത്തുന്നു.
രണ്ട് പരിധികൾ “ട്രിഗർ ഒന്നും ചെയ്യുന്നില്ല” എന്ന പല റിപ്പോർട്ടുകളും വിശദീകരിക്കുന്നു. ട്രിഗറുകൾ എല്ലാ ഉപയോക്താക്കളുടെയും പ്രൊഫൈലുകൾക്ക് ചുറ്റും നിർമ്മിക്കുന്നു, അതിനാൽ പ്രൊഫൈലിന്റെ പരിധി ആദ്യം പരിഹരിക്കേണ്ടതാണ്, ആപ്പിന്റെ പാത യഥാർത്ഥത്തിൽ പ്രവർത്തിക്കുന്ന ബൈനറിയുമായി പൊരുത്തപ്പെടണം, കുറുക്കുവഴിയോടോ രണ്ടാമത് ഒരു പ്രക്രിയ സൃഷ്ടിക്കുന്ന ലോഞ്ചറിനോടോ അല്ല. മറ്റൊരു പരിധി ബോധപൂർവമാണ്: Windows വിശ്വസനീയമെന്ന് തരംതിരിക്കുന്ന നെറ്റ്വർക്കിൽ ട്രിഗർ നിഷ്ക്രിയമായിരിക്കും, കാരണം പ്രൊഫൈൽ ഓഫീസിന് പുറത്ത് പ്രവർത്തിക്കാൻ രൂപകൽപ്പന ചെയ്തതാണ്.
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
വിഭജിത ടണൽ ടണലിലൂടെ എന്ത് കടക്കുന്നു എന്ന് തീരുമാനിക്കുന്നു
വിഭജിത ടണൽ ഓഫാണെങ്കിൽ, Windows VPN ഇന്റർഫേസിൽ കുറഞ്ഞ മെട്രിക് ഉള്ള വർഗ്ഗാധിഷ്ഠിത ഡിഫോൾട്ട് റൂട്ട് ഇൻസ്റ്റാൾ ചെയ്യുന്നു. ഓരോ സോക്കറ്റും അത് പിന്തുടരുന്നു, ബ്രൗസറും അപ്ഡേറ്റ് സേവനവും ഉൾപ്പെടെ, അതിനാൽ ആ കോൺഫിഗറേഷനിൽ ട്രിഗർ പ്രൊഫൈൽ ബന്ധിപ്പിച്ചിരിക്കുന്നിടത്തോളം മുഴുവൻ യന്ത്രവും നീക്കുന്നു. ട്രിഗർ ഇപ്പോഴും ജീവിതചക്ര നിയമം മാത്രം; സ്വാധീനത്തിന്റെ ആരം റൂട്ടിൽ നിന്ന് വന്നു.
വിഭജിത ടണൽ ഓണാണെങ്കിൽ, ഗേറ്റ്വേ തള്ളുന്ന അല്ലെങ്കിൽ നിങ്ങൾ VPN ഇന്റർഫേസിൽ ചേർക്കുന്ന പ്രിഫിക്സുകൾ മാത്രം പ്രൊഫൈൽ വഹിക്കുന്നു. ബാക്കിയെല്ലാം ഭൗതിക ഡിഫോൾട്ട് റൂട്ട് ഉപയോഗിക്കുന്നു. ഇതാണ് ആളുകൾ സാധാരണയായി “ഒരു ആപ്പ് വേറിട്ട ഔട്ട്ലെറ്റിലൂടെ” എന്ന് ഉദ്ദേശിക്കുന്ന ക്രമീകരണം, ഇത് തുടക്കം മുതൽ അവസാനം വരെ റൂട്ടിംഗ് തീരുമാനമാണ്.
Set-VpnConnection -Name "APP_VPN" -SplitTunneling $true
Get-VpnConnection -Name "APP_VPN" | Select-Object SplitTunneling
Get-NetRoute -InterfaceAlias "APP_VPN" | Sort-Object DestinationPrefix
റൂട്ട് ചെയ്ത വിഭജനം നിങ്ങളുടെ ആപ്പിനെ വേർതിരിക്കുന്നത് നിർത്തുന്നിടം
സാധാരണ പരാജയം ടണലിന്റെ റൂട്ട് പട്ടികയിൽ ഒരിക്കലും പ്രത്യക്ഷപ്പെടാത്ത ലക്ഷ്യമാണ്. ഒരു വിലാസത്തിൽ സൈൻ ഇൻ ചെയ്ത് പിന്നീട് CDN-ൽ നിന്ന് സ്ട്രീം ചെയ്യുന്ന ആപ്പ്, അല്ലെങ്കിൽ ഡസൻ കണക്കിന് തിരിയുന്ന എൻഡ്പോയിന്റുകൾ പരിഹരിക്കുന്ന ആപ്പ്, ചില കണക്ഷനുകൾ VPN ഇന്റർഫേസിലും ബാക്കി Wi-Fi-ലും ഇടും. IPv6 വേറിട്ട പട്ടികയാണ്, അതിനാൽ IPv4 പ്രിഫിക്സുകൾ മാത്രം തള്ളുന്ന പ്രൊഫൈൽ ശരിയാണെന്ന് തോന്നാം, ആപ്പിന്റെ IPv6 ട്രാഫിക് പ്രാദേശികമായി തുടരും.
രണ്ട് ചെറിയ ഫലങ്ങളും അത്രതന്നെ പ്രധാനമാണ്. ഏറ്റവും നീളമുള്ള പ്രിഫിക്സ് പൊരുത്തം വിജയിക്കുന്നു, അതിനാൽ കൂടുതൽ നിർദ്ദിഷ്ട ഓൺ-ലിങ്ക് റൂട്ട്, മാനേജ്മെന്റ് ഹോസ്റ്റിനായി തള്ളുന്ന /32, അല്ലെങ്കിൽ രണ്ടാം അഡാപ്റ്ററിന്റെ സബ്നെറ്റ് നിങ്ങൾക്ക് പ്രധാനമായ വിലാസത്തിന് ടണലിനെ തോൽപ്പിക്കാം. പേര് പരിഹരണവും റൂട്ടിംഗിന് മുമ്പ് സംഭവിക്കുന്നു: പ്രൊഫൈലിന്റെ DNS സെർവറുകളോ NRPT നിയമമോ പേര് ഉൾക്കൊള്ളുന്നില്ലെങ്കിൽ, ആപ്പ് ഭൗതിക അഡാപ്റ്റർ വഴി പരിഹരിച്ച് ടണൽ ചെയ്ത പ്രിഫിക്സുകൾക്കുള്ളിൽ ഒരിക്കലും ഇല്ലാത്ത ഒരു വിലാസം ഡയൽ ചെയ്യാം.
മൂന്ന് രൂപങ്ങൾ, ഓരോന്നും എന്ത് നൽകുന്നു
പട്ടിക ഞാൻ ചുവരിൽ ഒട്ടിക്കുന്ന ഭാഗമാണ്, കാരണം തീരുമാനം സ്വാധീനത്തിന്റെ ആരത്തെക്കുറിച്ചാണ്, സവിശേഷതകളെക്കുറിച്ചല്ല. ആപ്പിന്റെ ലക്ഷ്യങ്ങൾ നിങ്ങൾക്ക് പട്ടികപ്പെടുത്താവുന്ന സ്ഥിരമായ പ്രിഫിക്സുകളാണെങ്കിൽ, റൂട്ട് ചെയ്ത വിഭജനം ഏറ്റവും ചെറിയ കാൽപ്പാടോടെ വേർതിരിക്കൽ നൽകുന്നു. അല്ലെങ്കിൽ, VM അല്ലെങ്കിൽ രണ്ടാം ഉപകരണത്തിന് പിന്നിൽ ഡിഫോൾട്ട് റൂട്ട് പ്രൊഫൈൽ ഒന്നിലധികം പ്രക്രിയകൾ നീക്കുന്ന ചെലവിൽ വിഭജനം സത്യസന്ധമായി നിലനിർത്തുന്നു.
| 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 |
ഇവയൊന്നും ഹോസ്റ്റിൽ സോക്കറ്റ് തലത്തിലുള്ള ബൈൻഡിംഗ് നൽകുന്നില്ല. Windows-ന്റെ ക്ലാസിക് VPN ക്ലയന്റിൽ ഈ പ്രക്രിയ ആ അഡാപ്റ്റർ ഉപയോഗിക്കണം എന്ന നിയമമില്ല; ട്രിഗറുകളും റൂട്ട് ഫിൽട്ടറുകളും വ്യത്യസ്ത പാളികളിൽ ജീവിക്കുന്നു, ഇന്റർഫേസ് തിരഞ്ഞെടുക്കുന്ന പാളി റൂട്ടിംഗ് പട്ടികയാണ്. ഒരു ഗൈഡ് പകർത്തിയ പ്രൊഫൈലിൽ നിന്ന് മാത്രം ഓരോ ആപ്പിനുമുള്ള നിർവഹണം വാഗ്ദാനം ചെയ്താൽ, ഏത് റൂട്ട് അല്ലെങ്കിൽ ഏത് ഫിൽട്ടർ ജോലി ചെയ്യുന്നു എന്ന് ചോദിക്കുക.
ഒരേ ഒരു പാസിൽ ജോടി പരിശോധിക്കുക
ജീവിതചക്രവും റൂട്ടിംഗും വെവ്വേറെ പരിശോധിക്കുക, അതേ ക്രമത്തിൽ. ആപ്പ് അടയ്ക്കുക, പ്രൊഫൈൽ Disconnected എന്ന് റിപ്പോർട്ട് ചെയ്യുന്നു എന്ന് ഉറപ്പാക്കുക, തുടർന്ന് ആപ്പ് തുടങ്ങി അവസ്ഥ മാറിയോ എന്ന് നോക്കുക. ടണൽ ഉയർന്നതിന് ശേഷം മാത്രം ഒരു നിർദ്ദിഷ്ട ലക്ഷ്യം എവിടെ പോകുന്നു എന്ന് ചോദിക്കണം, ഊഹത്തിന് പകരം ആപ്പ് യഥാർത്ഥത്തിൽ ഡയൽ ചെയ്യുന്ന വിലാസം ഉപയോഗിക്കണം.
$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 ഇന്റർഫേസും ആ ലക്ഷ്യം വഹിക്കുന്ന അടുത്ത ഹോപ്പും പേരിടുന്നു. അവിടെ ഭൗതിക ഉപനാമം ഉണ്ടെങ്കിൽ ടണൽ ഉയർന്നിരിക്കുന്നു, ആ പ്രവാഹത്തിന് അത് അപ്രസക്തമാണ്: തള്ളിയ പ്രിഫിക്സുകൾ, പിന്നീട് കൂടുതൽ നിർദ്ദിഷ്ട റൂട്ടുകൾ, പിന്നീട് IPv6 പരിശോധിക്കുക. അവസ്ഥ ഒട്ടും മാറുന്നില്ലെങ്കിൽ ട്രിഗർ പ്രവർത്തിച്ചില്ല, എക്സിക്യൂട്ടബിളിന്റെ പാത, പ്രൊഫൈലിന്റെ പരിധി, VPN ക്ലയന്റിന്റെ പ്രവർത്തന ലോഗ് എന്നിവ നോക്കേണ്ട മൂന്ന് സ്ഥലങ്ങളാണ്.
അടുത്ത പരിശോധന സത്യസന്ധമാകാൻ വൃത്തിയായി നീക്കം ചെയ്യുക
നിർമ്മിച്ചതിന്റെ വിപരീത ക്രമത്തിൽ നീക്കം ചെയ്യുക: ആദ്യം ആപ്പ് ട്രിഗർ, പിന്നീട് പ്രൊഫൈൽ. ട്രിഗർ നിലനിൽക്കെ പ്രൊഫൈൽ ഡിലീറ്റ് ചെയ്താൽ അടുത്ത ശ്രമത്തെ ആശയക്കുഴപ്പത്തിലാക്കുന്ന തൂങ്ങിക്കിടക്കുന്ന ബന്ധം അവശേഷിക്കും, കൂടാതെ Remove-VpnConnection -Force കമാൻഡുകൾക്ക് പുറത്ത് സൃഷ്ടിച്ച ഫോൺബുക്ക് എൻട്രി എപ്പോഴും വൃത്തിയാക്കുന്നില്ല.
ഓരോ ഉപയോക്താവിന്റെയും എൻട്രികൾ ഉപയോക്താവിന്റെ rasphone.pbk ൽ Roaming പ്രൊഫൈലിന് കീഴിൽ ഉണ്ട്; എല്ലാ ഉപയോക്താക്കൾക്കുമുള്ള എൻട്രികൾ ProgramData-ക്ക് കീഴിൽ ഉണ്ട്. പ്രൊഫൈലിന്റെ പരിധിയുമായി പൊരുത്തപ്പെടുന്ന സ്റ്റോർ പരിശോധിക്കുക, സൂക്ഷിച്ച പ്രൊഫൈൽ വീണ്ടും ബന്ധിപ്പിക്കുക, അതിന്റെ റൂട്ടുകളും DNS-ഉം ഇപ്പോഴും ശരിയായി പെരുമാറുന്നു എന്ന് ഉറപ്പാക്കുക, അതിനാൽ പിന്നീടുള്ള പരിശോധന നിങ്ങൾ വരുത്തിയ മാറ്റം അളക്കും, അവശേഷിക്കുന്ന അവസ്ഥയല്ല.
- ടണൽ പ്രക്രിയ തുടങ്ങുമ്പോൾ ഉയരുന്നു, ലോഗിൻ ചെയ്യുമ്പോഴല്ല.
- VPN ഇന്റർഫേസിൽ ഉദ്ദേശിച്ച പ്രിഫിക്സുകൾ മാത്രം പ്രത്യക്ഷപ്പെടുന്നു.
- ആപ്പിന്റെ യഥാർത്ഥ റിമോട്ട് വിലാസം VPN ഉപനാമത്തിലേക്ക് പരിഹരിക്കപ്പെടുന്നു.
- പ്രൊഫൈൽ നീക്കം ചെയ്തതിന് ശേഷം തൂങ്ങിക്കിടക്കുന്ന ട്രിഗർ ഒന്നും അവശേഷിക്കുന്നില്ല.