ഒരു ഉപഭോക്തൃ നെറ്റ്വർക്കിൽ എത്താൻ രണ്ടാമത്തെ VPN ക്ലയന്റ് ഇൻസ്റ്റാൾ ചെയ്യുക എന്നതാണ് ഇത് തുടങ്ങുന്ന സാധാരണ വഴി, രണ്ട് ക്ലയന്റുകളും വിജയം റിപ്പോർട്ട് ചെയ്യുമ്പോൾ ആദ്യ ടണൽ ഇരുളുന്നു. ഓരോ ക്ലയന്റും ഒരു ഡിഫോൾട്ട് റൂട്ട് ഇൻസ്റ്റാൾ ചെയ്തു, രണ്ടാമത്തേത് കൂടുതൽ നിർദ്ദിഷ്ടമായിരുന്നു, ഇപ്പോൾ കേർണൽ ആദ്യ ടണലിന്റെ സ്വന്തം പുറം കണക്ഷൻ ഒഴികെ എല്ലാത്തിനും അത് പിന്തുടരുന്നു. ഒന്നും തകർന്നില്ല, ഒരു പ്രൊഫൈലും തെറ്റല്ല. ഒരു റൂട്ട് മറ്റൊന്നിനെ മാറ്റി, പരിഹാരം ഏത് ടണലിന് ഡിഫോൾട്ട് ഉണ്ടായിരിക്കണം എന്ന് തീരുമാനിക്കുക എന്നതാണ്.

ലക്ഷണം: രണ്ടാമത്തെ ക്ലയന്റ് നിശബ്ദമായി വിജയിക്കുന്നു

OpenVPN: redirect-gateway def1 ഓപ്ഷൻ 0.0.0.0/0 അലേഖനം ചെയ്യുന്നില്ല. അത് 0.0.0.0/1 ഉം 128.0.0.0/1 ഉം ചേർക്കുന്നു: രണ്ടും ചേർന്ന് എല്ലാ IPv4 വിലാസവും ഉൾക്കൊള്ളുന്നു, ഓരോ പ്രിഫിക്സും നീളത്തിൽ സാധാരണ ഡിഫോൾട്ടിനെ തോൽപ്പിക്കുന്നു. യഥാർത്ഥ ഡിഫോൾട്ട് ടേബിളിൽ തുടരുന്നു, സാധാരണ ട്രാഫിക്കിന് ഉപയോഗിക്കുന്നത് നിർത്തുന്നു, VPN സെർവറിലേക്കുള്ള ഹോസ്റ്റ് റൂട്ട് ടണൽ സ്വന്തം പുറം പാക്കറ്റുകൾ പിടിക്കുന്നത് തടയുന്നു. രണ്ട് ക്ലയന്റുകളും ഇത് ചെയ്യുന്നു, രണ്ടാമത്തേത് തന്റെ ജോടി പിന്നീട് ഇൻസ്റ്റാൾ ചെയ്യുന്നു.

അതുകൊണ്ടാണ് ആദ്യ ടണൽ വിച്ഛേദിക്കപ്പെട്ടതല്ല, മരിച്ചതായി കാണുന്നത്. അതിന്റെ ഇന്റർഫേസ് മുകളിലാണ്, നിയന്ത്രണ ചാനൽ ജീവനോടെയുണ്ട്, ഇപ്പോൾ ഒരു അപ്ലിക്കേഷൻ ട്രാഫിക്കും അതിലേക്ക് എത്തുന്നില്ല. എതിർ പരാതിക്കും അതേ കാണാത്ത push ആണ്: കണക്റ്റ് ചെയ്യുന്നെങ്കിലും ഒന്നും അയക്കാത്ത ഫോൺ സാധാരണയായി redirect-gateway ഒരിക്കലും പ്രഖ്യാപിക്കാത്ത സെർവറുമായി സംസാരിക്കുന്നു, അതിനാൽ ഉപകരണം സ്വന്തം ഡിഫോൾട്ട് സൂക്ഷിച്ച് പൂളിൽ മാത്രം എത്തുന്നു.

രണ്ടാമത്തെ ക്ലയന്റ് കണക്റ്റ് ചെയ്യുന്നതിന് മുമ്പും ശേഷവും റൂട്ടിംഗ് സ്നാപ്പ്ഷോട്ട് എടുക്കുക. ടേബിളിൽ കാണുന്ന രണ്ട് പകുതി റൂട്ടുകളാണ് മുഴുവൻ മാറ്റം, അവ രണ്ട് പരാതികളും വിശദീകരിക്കുന്നു. ലക്ഷണം പ്രത്യക്ഷപ്പെടാൻ ടേബിളിൽ മറ്റൊന്നും നീങ്ങേണ്ടതില്ല. അതുകൊണ്ടാണ് രണ്ടാമത്തെ ക്ലയന്റ് നീക്കം ചെയ്യുമ്പോൾ ആദ്യത്തേത് ഉടൻ പുനഃസ്ഥാപിക്കുന്നത്.

ഏത് ടണൽ യഥാർത്ഥത്തിൽ വിജയിക്കുന്നു എന്ന് വായിക്കുക

ക്ലയന്റുകൾ ആരംഭിച്ച ക്രമത്തിൽ നിന്നോ ട്രേയിലെ ഐക്കണിൽ നിന്നോ വിജയിയെ അനുമാനിക്കരുത്. രണ്ട് സ്വകാര്യ നെറ്റ്വർക്കുകൾക്ക് പുറത്തുള്ള ഒരു ലക്ഷ്യസ്ഥാനത്തേക്ക് കേർണൽ ഏത് റൂട്ട് ഉപയോഗിക്കും എന്ന് ചോദിക്കുക, തിരികെ വരുന്ന ഇന്റർഫേസ് വായിക്കുക.

ip route show
ip route get 198.51.100.24
route print -4
Find-NetRoute -RemoteIPAddress 198.51.100.24

ആദ്യ രണ്ടും Linux ഉത്തരവും അവസാന രണ്ടും Windows തുല്യവുമാണ്. രണ്ട് ടണലുകളും മുകളിലിരിക്കെ അവ പ്രവർത്തിപ്പിക്കുക, പിന്നീട് ഒന്ന് വിച്ഛേദിച്ച് വീണ്ടും പ്രവർത്തിപ്പിക്കുക. രണ്ട് ഔട്ട്പുട്ടുകളുടെ വ്യത്യാസമാണ് പരിഹാരം തിരഞ്ഞെടുക്കുന്നതിന് മുമ്പ് വേണ്ട വസ്തുത, അത് ഏതെങ്കിലും ക്ലയന്റിന്റെ ലോഗ് വായിക്കുന്നതിനേക്കാൾ കുറഞ്ഞ സമയമെടുക്കും.

ഫലം രേഖപ്പെടുത്തുക, ഇന്റർഫേസ് നാമവും പൊരുത്തപ്പെട്ട പ്രിഫിക്സും ഉൾപ്പെടെ. രണ്ടാമത്തെ VPN ആദ്യത്തേതിനെ തകർത്തു എന്ന് പറയുന്ന ടിക്കറ്റ് ലക്ഷണത്തിന്റെ വിവരണമാണ്, ആർക്കും പ്രവർത്തിക്കാവുന്ന റൂട്ടിംഗ് പ്രസ്താവനയല്ല. തിരയൽ അതിനെ അടുത്ത എൻജിനീയർക്ക് ഒരു കമാൻഡിൽ പുനർനിർമ്മിക്കാവുന്ന വസ്തുതയാക്കി മാറ്റുന്നു.

Windows: ഒരു പ്രൊഫൈൽ ഡിഫോൾട്ട് സ്വന്തമാക്കുന്നത് തടയുക

Windows സംഭരിച്ച പ്രൊഫൈലുകൾ സൂക്ഷിക്കുന്നു, ഒരു പ്രൊഫൈൽ മറ്റൊന്നിനെ ആശ്രയിക്കാൻ അനുവദിക്കുന്നതിനാൽ രണ്ടാമത്തേത് കണക്റ്റ് ചെയ്യുമ്പോൾ ആദ്യത്തേത് സ്വയമേവ ഉയരുന്നു. അവസാനം കണക്റ്റ് ചെയ്ത പ്രൊഫൈൽ ഡിഫോൾട്ട് നിലനിർത്താൻ സാധ്യതയുണ്ട്, അതിനാൽ യഥാർത്ഥ ഉടമ ആദ്യത്തേതല്ല, അവസാന കണക്ഷനാണ്. ഓരോ പ്രൊഫൈലിനും സ്വന്തം push റൂട്ടുകൾ നൽകി ഡിഫോൾട്ട് ഉണ്ടാകരുതാത്തതിന് സ്പ്ലിറ്റ് ടണലിംഗ് ഓണാക്കുക.

Set-VpnConnection -Name "Contoso" -SplitTunneling $true
rasdial Contoso

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

ആപ്പ്-ട്രിഗർ പ്രൊഫൈലുകൾ മറ്റൊരു സവിശേഷതയാണ്, അറിയേണ്ടതാണ്: ഒരു Windows പ്രൊഫൈൽ നിർദ്ദിഷ്ട എക്സിക്യൂട്ടബിൾ ആരംഭിക്കുമ്പോൾ ആരംഭിക്കാം, ട്രാഫിക് ഫിൽട്ടറുകൾ എന്ത് കൊണ്ടുപോകുന്നു എന്ന് തീരുമാനിക്കുന്നു. ഇത് ഫയർവാൾ നിയമമല്ല, പ്രൊഫൈൽ ക്രമീകരണമാണ്, ഡിഫോൾട്ട് റൂട്ട് സംഘർഷത്തിൽ നിന്ന് വ്യത്യസ്തമായ പ്രശ്നം പരിഹരിക്കുന്നു.

Linux: രണ്ടാമത്തെ ടണൽ പ്രധാന ടേബിളിന് പുറത്ത് നിർത്തുക

ഒരു മെഷീനിൽ openvpn --config രണ്ട് ഇൻസ്റ്റൻസുകൾ പ്രവർത്തിപ്പിക്കുന്നത് രണ്ട് ക്ലയന്റുകളെയും ഒരേ ടേബിളിൽ ഇടുന്നു, മൂന്ന് ഓപ്ഷനുകൾ കൂടുന്ന ഐസൊലേഷനോടെ അവയെ വേർതിരിക്കുന്നു. ഏറ്റവും ലഘുവായത് രണ്ടാമത്തെ ക്ലയന്റിനെ ടേബിൾ ഒട്ടും എഡിറ്റ് ചെയ്യാനനുവദിക്കാതിരിക്കുകയാണ്: വ്യക്തമായ റൂട്ടുകളോടെ route-nopull, അല്ലെങ്കിൽ ഉദ്ദേശിച്ചത് മാത്രം ഇൻസ്റ്റാൾ ചെയ്യുന്ന route-up സ്ക്രിപ്റ്റ്. അപ്പോൾ രണ്ടാമത്തെ ടണൽ നിങ്ങൾ പേരിട്ട പ്രിഫിക്സുകൾ മാത്രം കൊണ്ടുപോകും, മറ്റൊന്നുമില്ല. അപ്പോൾ ഏത് പ്രിഫിക്സ് എവിടെ പോകണം എന്ന് പിന്നീട് കണ്ടെത്തുന്നതിന് പകരം നിങ്ങൾ തീരുമാനിക്കുന്നു.

പോളിസി റൂട്ടിംഗ് ഇടത്തരം ഓപ്ഷനാണ്. ഒരു നിയമം ഒരു സോഴ്സ് വിലാസത്തിനോ ഫയർവാൾ അടയാളത്തിനോ വേറിട്ട ടേബിൾ തിരഞ്ഞെടുക്കുന്നു, ആ ടേബിൾ രണ്ടാമത്തെ ടണലിന്റെ റൂട്ടുകൾ കൊണ്ടുപോകുന്നു. ഇവിടെ കെണി റിവേഴ്സ്-പാത്ത് ഫിൽട്ടറിംഗ് ആണ്, കാരണം ടേബിൾ തിരഞ്ഞെടുക്കുന്ന ഇന്റർഫേസിൽ നിന്ന് വ്യത്യസ്തമായ ഇന്റർഫേസിൽ എത്തുന്ന മറുപടി ഉപേക്ഷിക്കപ്പെടുന്നു, അതിനാൽ ടണൽ തകർന്നു എന്ന് തീരുമാനിക്കുന്നതിന് മുമ്പ് rp_filter ക്രമീകരണം പരിശോധിക്കുക.

ip rule add from 10.44.7.0/24 table 100
ip route add default dev tun1 table 100
sysctl net.ipv4.conf.all.rp_filter

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

അപ്ലിക്കേഷൻ അനുസരിച്ച്, ചെയിനിംഗ് വേറിട്ട പ്രശ്നമായി

ചിലപ്പോൾ ഒരു പ്രോഗ്രാം മാത്രം രണ്ടാമത്തെ ടണൽ ഉപയോഗിക്കണം. Linux ൽ ഉപയോക്താവ്, cgroup അല്ലെങ്കിൽ പോർട്ട് അനുസരിച്ചുള്ള പോളിസി റൂട്ടിംഗ് ആ ഫലം നേടുന്നു, ഡിഫോൾട്ട് ഒട്ടും തൊടാതെ ഒരു ലക്ഷ്യസ്ഥാനം ഒരു ഇന്റർഫേസിൽ പിൻ ചെയ്യാം. സ്വന്തം സോക്കറ്റ് ഒരു ഇന്റർഫേസിൽ പിൻ ചെയ്യുന്ന അപ്ലിക്കേഷൻ റൂട്ടിംഗ് ടേബിളിനോട് ഒട്ടും ചോദിക്കുന്നില്ല, അതിനാൽ ലോഞ്ചർ സ്വന്തം ക്രമീകരണങ്ങളിൽ വിലാസം തിരഞ്ഞെടുക്കുന്നതുവരെ ഭൗതിക അഡാപ്റ്റർ ഉപയോഗിക്കുന്നത് തുടരാം.

ചെയിനിംഗ് രണ്ട് ടണലുകൾ അടുത്തടുത്ത് പ്രവർത്തിപ്പിക്കുന്നതിൽ നിന്ന് വ്യത്യസ്തമായ പ്രവർത്തനമാണ്. A യെ B യുടെ മുകളിലൂടെ ചെയിൻ ചെയ്യുക എന്നാൽ ആന്തരിക സെർവറിന്റെ വിലാസം പുറം ടണലിനുള്ളിൽ നിന്ന് എത്താവുന്നതായിരിക്കണം. പുറം ക്ലയന്റും ആന്തരിക ക്ലയന്റിന്റെ എൻക്രിപ്റ്റ് ചെയ്ത പാക്കറ്റുകളെ ചോർച്ചയായി കാണരുത്. വിർച്വൽ മെഷീനിനുള്ളിൽ ഒരു ക്ലയന്റ് പരുക്കനെങ്കിലും വിശ്വസനീയമായ പതിപ്പാണ്; രണ്ടും ഒരു ഹോസ്റ്റിൽ ആണെങ്കിൽ മേൽപ്പറഞ്ഞ റൂട്ടിംഗ് ജോലിയും ആന്തരിക ടണലിൽ ഒരിക്കലും പ്രവേശിക്കാത്ത പുറം വഴിയും ആന്തരിക സെർവറിലേക്ക് വേണം.

ഡിഫോൾട്ടിന്റെ ഉടമ, ഓരോ ടണലും കൊണ്ടുപോകുന്ന പ്രിഫിക്സ് പട്ടിക, DNS പാത എന്നിവ എഴുതിവയ്ക്കുക. ആ മൂന്ന് വസ്തുതകൾ അടുത്ത സംഭവത്തെ അന്വേഷണത്തിന് പകരം തിരയലാക്കി മാറ്റുന്നു.

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