ആപ്പ് അടിസ്ഥാനമാക്കിയതും ലക്ഷ്യ അടിസ്ഥാനമാക്കിയതുമായ സ്പ്ലിറ്റ് ടണലിംഗ് ഒരേ ജോലിക്കുള്ള രണ്ട് ക്രമീകരണങ്ങളല്ല. ഒന്ന് ഏത് പ്രോസസ്സാണ് പാക്കറ്റ് അയക്കുന്നതെന്ന് ചോദിക്കുന്നു; മറ്റൊന്ന് ആ പാക്കറ്റ് എങ്ങോട്ട് പോകുന്നുവെന്ന് ചോദിക്കുന്നു. ആദ്യ ചോദ്യത്തിനായി നിർമിച്ച നിയമം ട്രാഫിക് ഒരു സഹായ പ്രോസസ്സിൽ നിന്ന് വരുമ്പോൾ നിശബ്ദമായി പരാജയപ്പെടുന്നു, രണ്ടാമത്തേതിനായി നിർമിച്ച നിയമം നിങ്ങൾ ഒരിക്കലും ലിസ്റ്റ് ചെയ്യാത്ത വിലാസത്തിലേക്ക് ഹോസ്റ്റ്നെയിം റിസോൾവ് ചെയ്യുമ്പോൾ പരാജയപ്പെടുന്നു. ആവശ്യകതയ്ക്ക് അനുയോജ്യമായ വസ്തു തിരഞ്ഞെടുക്കുക, തുടർന്ന് രണ്ട് പരീക്ഷണ പാക്കറ്റുകൾ കൊണ്ട് അത് തെളിയിക്കുക: ഒന്ന് ടണൽ ഉപയോഗിക്കണം, മറ്റൊന്ന് ഉപയോഗിക്കരുത്.

രണ്ട് നിയമങ്ങളും വ്യത്യസ്ത പാളികളിൽ പ്രവർത്തിക്കുന്നു

ആപ്പ് നിയമം നെറ്റ്വർക്ക് പാളിക്ക് മുകളിൽ, ഓപ്പറേറ്റിംഗ് സിസ്റ്റം അയക്കുന്നയാൾക്ക് നൽകുന്ന ഐഡന്റിറ്റിക്കെതിരെ നടപ്പാക്കുന്നു. Android-ൽ അത് പാക്കേജിന് പിന്നിലെ UID ആണ്, VPN സേവനം ഓരോ UID-ക്കും ട്രാഫിക് ടണലിൽ പ്രവേശിക്കുന്നുണ്ടോ എന്ന് തീരുമാനിക്കുന്നു. ലക്ഷ്യത്തെക്കുറിച്ച് ഒന്നും ചോദിക്കുന്നില്ല, അതിനാൽ തിരഞ്ഞെടുത്ത ആപ്പിന് എന്തിനും എത്താം, മറ്റൊരു ആപ്പിനും ആന്തരിക നെറ്റ്വർക്കിൽ എത്താനാവില്ല.

ലക്ഷ്യ നിയമം പാക്കറ്റിൽ തന്നെ നടപ്പാക്കുന്നു. ടണൽ ഇന്റർഫേസിന് ഒരു കൂട്ടം പ്രീഫിക്സുകൾ ഉണ്ട്, റൂട്ടിംഗ് ടേബിൾ പൊരുത്തപ്പെടുന്ന ട്രാഫിക് അങ്ങോട്ട് അയക്കുന്നു, അയക്കുന്ന പ്രോസസ്സ് പ്രസക്തമല്ല. അതുകൊണ്ടാണ് ലക്ഷ്യ നിയമം ആരും ലിസ്റ്റ് ചെയ്യാൻ ഓർത്തിരിക്കാത്ത ഒരു സേവനം, പ്രിന്റർ അല്ലെങ്കിൽ ബാച്ച് ജോലി ഉൾക്കൊള്ളുന്നത്, കൂടാതെ ക്ലയന്റ് പ്രോസസ്സ് ഒരിക്കലും നോക്കാത്ത പ്ലാറ്റ്ഫോമിൽ അതിനെ കേവലം ഈ പ്രോഗ്രാം എന്ന് പറയാനാവാത്തത്.

ആപ്പ് നിയമങ്ങൾ മൊബൈൽ ക്ലയന്റുകൾക്കും മാനേജുചെയ്ത ഏജന്റുകൾക്കും യോജിക്കുന്നു

Android തിരഞ്ഞെടുപ്പ് നേരിട്ട് അവതരിപ്പിക്കുന്നു: VpnService.Builder.addAllowedApplication(), addDisallowedApplication() പാക്കേജ് പേരുകൾ സ്വീകരിച്ച് ഓരോ UID-ക്കും തീരുമാനം നടപ്പാക്കുന്നു, Android-ന്റെ VPN ഡെവലപ്പർ ഗൈഡിൽ വിവരിച്ചിരിക്കുന്നതുപോലെ. iOS-ൽ ബണ്ടിൽ ഐഡന്റിഫയറുകളെ അടിസ്ഥാനമാക്കിയ ഓരോ ആപ്പിനുമുള്ള VPN നിയമങ്ങളിലൂടെ സമാന സംവിധാനമുണ്ട്, സാധാരണയായി കൈകൊണ്ട് എഴുതുന്നതിന് പകരം MDM പ്രൊഫൈൽ വഴി നൽകുന്നു.

ഡെസ്ക്ടോപ്പ് ക്ലയന്റുകളാണ് ദുർബലമായ സ്ഥാനം. മിക്ക Windows, macOS VPN ക്ലയന്റുകളും ലക്ഷ്യം അനുസരിച്ച് റൂട്ട് ചെയ്യുന്നു, പ്രോസസ്സ് അനുസരിച്ച് തിരഞ്ഞെടുക്കൽ ഒട്ടും നൽകുന്നില്ല, കാരണം ടണൽ ഡ്രൈവർ പ്രോസസ്സുകളല്ല, പാക്കറ്റുകളാണ് കാണുന്നത്. ലാപ്ടോപ്പിൽ ഒരു ആപ്പ് ടണൽ ചെയ്യുന്നതിനെ ആശ്രയിച്ചാണ് നിങ്ങളുടെ പദ്ധതിയെങ്കിൽ, അതിനെ ചുറ്റിപ്പറ്റി രൂപകൽപ്പന ചെയ്യുന്നതിന് മുമ്പ് ക്ലയന്റിന്റെ യഥാർത്ഥ കഴിവുകൾ പരിശോധിക്കുക; ഒരുപക്ഷേ നിങ്ങൾ ലക്ഷ്യ പട്ടികയും രണ്ടാമത്തെ യന്ത്രവും തമ്മിൽ തിരഞ്ഞെടുക്കുകയായിരിക്കാം.

ആളുകൾ വിട്ടുപോകുന്ന ഒരു പരിണിതഫലം: ആ പ്ലാറ്റ്ഫോമുകളിൽ റൂട്ടുകൾ ഉപയോഗിച്ച് ആപ്പ് നിയമം അനുകരിക്കാനാവില്ല. ആപ്പിന്റെ സെർവറിലേക്ക് ഒരു ഹോസ്റ്റ് റൂട്ട് ചേർത്താൽ ബ്രൗസറും അപ്ഡേറ്ററും ഉൾപ്പെടെ എല്ലാവരുടെയും ട്രാഫിക് ആ സെർവറിലേക്ക് ടണൽ ചെയ്യപ്പെടും.

ലക്ഷ്യ നിയമങ്ങൾ സബ്നെറ്റ് പട്ടികകൾക്കും സൈറ്റ് ലഭ്യതയ്ക്കും യോജിക്കുന്നു

WireGuard മാതൃക വ്യക്തമാക്കുന്നു. AllowedIPs എന്നത് ക്രിപ്റ്റോകീ റൂട്ടിംഗ് ആണ്: ലക്ഷ്യം ഒരു പിയറിന്റെ പട്ടികയ്ക്കുള്ളിൽ വരുന്ന ആന്തരിക പാക്കറ്റ് ആ പിയറിലേക്ക് എൻക്രിപ്റ്റ് ചെയ്യുന്നു, ബാക്കിയെല്ലാം സാധാരണ പാതയിലൂടെ എൻക്രിപ്ഷൻ ഇല്ലാതെ പുറത്തുപോകുന്നു. പേര് നൽകാൻ പ്രോസസ്സില്ല, എന്താണ് ഉൾപ്പെട്ടിരിക്കുന്നതെന്നതിൽ ഒരു ആശയക്കുഴപ്പവുമില്ല.

OpenVPN തള്ളിവിട്ട റൂട്ടിംഗ് ടേബിളിലൂടെ അതേ സ്ഥലത്ത് എത്തുന്നു. route-nopull സെർവർ റൂട്ടുകൾ നിർദ്ദേശിക്കുന്നത് തടയുന്നു, തുടർന്ന് ക്ലയന്റ് ഭാഗത്തെ route 10.20.0.0 255.255.0.0 vpn_gateway കൃത്യമായി ഓഫീസ് പ്രീഫിക്സ് ഉൾക്കൊള്ളുന്നു. IPv6 ഈ ക്ലയന്റുകളിൽ ഓരോന്നിലും പ്രത്യേക പ്രസ്താവനയാണ്, അത് മറക്കുന്നതാണ് ശരിയായി തോന്നുന്ന IPv4 സ്പ്ലിറ്റിന് ചുറ്റും ചോരുന്നതിനുള്ള ഏറ്റവും സാധാരണ വഴി.

ഹോസ്റ്റ്നെയിം ഒരു റൂട്ടല്ല. പ്രൊഫൈൽ ഒരു ഡൊമെയ്ൻ ഫീൽഡ് നൽകുന്നുവെങ്കിൽ, അതിനെ ക്ലയന്റ് ഒരിക്കൽ റിസോൾവ് ചെയ്യുന്ന പേരായി കാണുക, സ്ഥിരമായ വിലാസ ശ്രേണിയായി അല്ല; ഉള്ളടക്ക വിതരണ നെറ്റ്വർക്കുകളും ലോഡ് ബാലൻസറുകളും നാളെ മറ്റ് വിലാസങ്ങൾ നൽകും.

രണ്ട് മാതൃകകളും തകരുന്നിടം: സഹായികൾ, പങ്കിട്ട സേവനങ്ങൾ, റിസോൾവർമാർ

സഹായ പ്രോസസ്സുകൾ ആപ്പ് നിയമങ്ങൾ തകർക്കുന്നു സെർവർ തകരാറുപോലെ തോന്നിക്കുന്ന രീതിയിൽ. ബ്രൗസറിന്റെ അപ്ഡേറ്റർ, ക്രാഷ് റിപ്പോർട്ടർ, SYSTEM ആയി പ്രവർത്തിക്കുന്ന സമന്വയ സേവനം, മറ്റൊരു പാക്കേജിൽ ഉൾച്ചേർത്ത WebView എന്നിവയെല്ലാം വെവ്വേറെ ഐഡന്റിറ്റികളാണ്, അതിനാൽ ബ്രൗസർ ടണൽ ചെയ്യുമ്പോൾ യഥാർത്ഥ അഭ്യർത്ഥന ടണലിന് പുറത്ത് അവശേഷിക്കാം. നേരെ മറിച്ചും അത്രതന്നെ ആശയക്കുഴപ്പമുണ്ടാക്കുന്നു: ടണൽ ചെയ്ത പ്രോസസ്സിനുള്ളിലെ പങ്കിട്ട ലൈബ്രറിയെ വിളിക്കുന്ന ഒഴിവാക്കിയ ആപ്പിന്റെ ട്രാഫിക്കും ടണലിലൂടെ തന്നെ പോകുന്നു.

ലക്ഷ്യ നിയമങ്ങൾ പങ്കിട്ട സേവനങ്ങളിലും പേരുകളിലും തകരുന്നു. ഫയൽ പങ്കിടലുകൾ, പ്രിന്ററുകൾ, ആന്തരിക DNS, ലൈസൻസ് സെർവർ എന്നിവയെല്ലാം വിലാസങ്ങളിൽ ജീവിക്കുന്നു, അതിനാൽ ഒരു ആപ്പ് ടണൽ ബ്രൗസറിന് പ്രവേശനം നൽകുമ്പോൾ മാപ്പ് ചെയ്ത ഡ്രൈവ് മരിച്ചതായി തുടരുന്നു. ആ കവറേജ് വ്യത്യാസം ഒരു മാതൃകയിലെയും ബഗ് അല്ല, പക്ഷേ ഒരു ആപ്പ് ടണൽ ഇത്രയധികം തവണ VPN ഓണാണ്, പങ്കിടൽ പോയി എന്ന അവസ്ഥ ഉണ്ടാക്കുന്നതിന്റെ കാരണം അതാണ്.

റിസോൾവർമാർ രണ്ടിനെയും മുറിക്കുന്നു. ക്ലയന്റ് ആന്തരിക DNS സെർവറുകൾ സജ്ജീകരിക്കുന്നുവെങ്കിലും ഓപ്പറേറ്റിംഗ് സിസ്റ്റം പൊതു റിസോൾവറിലേക്ക് HTTPS വഴി DNS ഉപയോഗിക്കുന്നുവെങ്കിൽ, ഉത്തരം ടണലിന് പുറത്തുനിന്ന് വരുന്നു, ലക്ഷ്യ നിയമം ഒരിക്കലും പൊരുത്തപ്പെട്ടെന്നും വരില്ല. നിയമം തെറ്റാണെന്ന് തീരുമാനിക്കുന്നതിന് മുമ്പ് ഏത് റിസോൾവർ യഥാർത്ഥത്തിൽ ഉത്തരം നൽകി എന്ന് പരിശോധിക്കുക, ക്ലയന്റ് ഭാഗത്ത് ടണൽ റിസോൾവർ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ടോ എന്ന് സ്ഥിരീകരിക്കുക. DNS ടണലിന് പുറത്ത് വിടുന്ന സ്പ്ലിറ്റ് റൂട്ടിംഗ് ടേബിളിൽ തികഞ്ഞതായി കാണപ്പെടുന്നു, എന്നിട്ടും എല്ലാ ആന്തരിക നാമത്തിലും പരാജയപ്പെടുന്നു.

പ്രവർത്തനക്രമം: തിരഞ്ഞെടുക്കുക, പ്രയോഗിക്കുക, സ്ഥിരീകരിക്കുക

മെനുവിൽ നിന്നല്ല, ആവശ്യകതയിൽ നിന്ന് തുടങ്ങുക. ലക്ഷ്യം ഈ ആപ്പ് മാത്രം ടണൽ ഉപയോഗിക്കാം എന്നതാണെങ്കിൽ ആപ്പ് നിയമങ്ങളും അവയെ പിന്തുണയ്ക്കുന്ന പ്ലാറ്റ്ഫോമും വേണം. ലക്ഷ്യം ഈ നെറ്റ്വർക്കുകളിൽ ടണലിലൂടെ എത്താം എന്നതാണെങ്കിൽ പ്രീഫിക്സുകൾ വേണം. ഉത്തരം രണ്ടുമാണെങ്കിൽ, അവയെ രണ്ട് വേറിട്ട നിയന്ത്രണങ്ങളായി നടപ്പാക്കി ഏത് ഏത് പരാജയത്തിന്റെ ഉത്തരവാദിയെന്ന് എഴുതിവയ്ക്കുക.

നിങ്ങൾക്ക് പ്രകടിപ്പിക്കാവുന്ന ഏറ്റവും ഇടുങ്ങിയ രൂപം പ്രയോഗിക്കുക, തുടർന്ന് ക്ലയന്റിന്റെ സ്റ്റാറ്റസ് ഐക്കണിന് പകരം റൂട്ടിംഗ് ടേബിളിനോട് ചോദിച്ച് സ്ഥിരീകരിക്കുക:

ip route get 10.20.30.40
ip -6 route get 2001:db8:10::40
wg show wg0 allowed-ips
Get-NetRoute -DestinationPrefix 10.20.0.0/16
Find-NetRoute -RemoteIPAddress 10.20.30.40

ആദ്യ രണ്ട് വരികൾ യഥാർത്ഥ ലക്ഷ്യം ഉപയോഗിക്കുന്ന ഇന്റർഫേസിനെ പേരിടുന്നു; wg show കോൺഫിഗർ ചെയ്ത പ്രീഫിക്സ് പട്ടിക അച്ചടിക്കുന്നു; Windows-ൽ Find-NetRoute പാക്കറ്റ് അയക്കുമ്പോൾ സ്റ്റാക്ക് ഉത്തരം നൽകുന്ന അതേ ചോദ്യത്തിന് ഉത്തരം നൽകുന്നു. ഇന്റർഫേസ് ടണലാണെങ്കിൽ, നിയമം പൊരുത്തപ്പെട്ടു.

തുടർന്ന് ഒഴിവാക്കേണ്ട രണ്ടാമത്തെ പാക്കറ്റ് മറ്റൊരു ആപ്ലിക്കേഷനിൽ നിന്ന് അതേ ലക്ഷ്യത്തിലേക്ക് പരിശോധിക്കുക. ടിക്കറ്റിൽ ക്ലയന്റ് പതിപ്പ്, നിയമത്തിന്റെ തരം, പ്രീഫിക്സ് അല്ലെങ്കിൽ പാക്കേജ് പട്ടിക, കണ്ട രണ്ട് ഫലങ്ങൾ എന്നിവ രേഖപ്പെടുത്തുക. ആ ഫലജോടിയാണ് അടുത്ത എഞ്ചിനീയറിനോട് നയം തെറ്റായി കോൺഫിഗർ ചെയ്തതാണോ അതോ ട്രാഫിക് ഒരിക്കലും അതിന്റേതായിരുന്നില്ലേ എന്ന് പറയുന്നത്.

അനുബന്ധ ലേഖനങ്ങൾ