നെസ്റ്റഡ് VPN: ബാഹ്യ കണക്ഷൻ ഏത് തുരങ്കമാണ് വഹിക്കുന്നത്?
ഉള്ളിലെ തുരങ്കത്തിന് അതിന്റെ അവസാന പോയിന്റ് വരെ ബാഹ്യ പാത ആവശ്യമാണ്. തെറ്റായ ക്രമത്തിൽ ആരംഭിച്ച രണ്ട് ക്ലയന്റുകൾ റൂട്ട് സംഘർഷം സൃഷ്ടിക്കുന്നു, അതിനാൽ ആദ്യം നെസ്റ്റിംഗ് ശരിയാക്കുക.
ഒരേ സമയം പ്രവർത്തിക്കുന്ന രണ്ട് VPN ക്ലയന്റുകൾ നെസ്റ്റഡ് തുരങ്കം സൃഷ്ടിക്കുന്നില്ല; അവ രണ്ട് തുരങ്കങ്ങളും റൂട്ടിംഗിനെക്കുറിച്ച് തർക്കവും സൃഷ്ടിക്കുന്നു. ഉള്ളിലെ ക്ലയന്റിന്റെ സ്വന്തം സർവറിലേക്കുള്ള കണക്ഷൻ ബാഹ്യ തുരങ്കം തന്നെ വഹിക്കുമ്പോഴാണ് നെസ്റ്റഡ് തുരങ്കം ഉണ്ടാകുന്നത്, അത് ബോധപൂർവം നിർമ്മിക്കുന്ന ക്രമീകരണമാണ്. ശരിയായാൽ ഉള്ളിലെ സർവർ ബാഹ്യ സർവറിന്റെ വിലാസം കാണുന്നു; തെറ്റായാൽ ഒരു ക്ലയന്റ് നിശ്ശബ്ദമായി മറ്റൊന്നിനെ ചുറ്റി വീണ്ടും ബന്ധിപ്പിക്കുന്നു. നെസ്റ്റിംഗ് യഥാർത്ഥമാണോ യാദൃച്ഛികമാണോ എന്ന് മൂന്ന് വ്യവസ്ഥകൾ തീരുമാനിക്കുന്നു.
നെസ്റ്റിംഗ് മൂന്ന് വ്യവസ്ഥകൾ തീരുമാനിക്കുന്നു
ആദ്യത്തേത് ഏത് അവസാന പോയിന്റിന് ഏത് പാത വേണം എന്നതാണ്. ഉള്ളിലെ സർവറിന്റെ വിലാസം പറയുക, ബാഹ്യ സർവറിന്റെ വിലാസം പറയുക, ഉള്ളിലെ സർവർ ബാഹ്യ തുരങ്കം വഴി മാത്രമേ എത്താനാകൂ എന്ന് വ്യക്തമായി പറയുക. ബാക്കിയെല്ലാം ആ വാക്യത്തിൽ നിന്നാണ് വരുന്നത്, ഏത് റൂട്ടുകൾ ഏത് പട്ടികയിൽ എന്നതും ഉൾപ്പെടെ.
രണ്ടാമത്തേത് ഓരോ പാളിയിലും നിങ്ങൾക്ക് പാത കാണാനാകുമോ എന്നതാണ്. ഒരു നിർദ്ദിഷ്ട ലക്ഷ്യം ഏത് റൂട്ട് ഉപയോഗിക്കുമെന്ന് നിങ്ങൾക്ക് കേർണലിനോട് ചോദിക്കാനാകുന്നില്ലെങ്കിൽ, നിങ്ങൾ അവസാന പുറത്തുപോകുന്ന IP-യിൽ നിന്ന് ശൃംഖല അനുമാനിക്കുകയാണ്, അതാണ് നെസ്റ്റിംഗിനെ യാദൃച്ഛികതയിൽ നിന്ന് വേർതിരിക്കാനാകാത്ത തെളിവ്.
മൂന്നാമത്തേത് ബാഹ്യ തുരങ്കം വീഴുമ്പോൾ എന്ത് സംഭവിക്കുന്നു എന്നതാണ്. ഉള്ളിലെ തുരങ്കത്തിന് അതിനൊപ്പം നിൽക്കാം, സാധാരണ നെറ്റ്വർക്ക് വഴി വീണ്ടും ബന്ധിപ്പിക്കാം, അല്ലെങ്കിൽ ബാഹ്യ പാത തിരികെ വരുന്നതുവരെ തടയപ്പെട്ടിരിക്കാം, മൂന്നും സംരക്ഷിക്കാവുന്ന നയങ്ങളാണ്. അവ ഒരേ നയമല്ല, മിക്ക ക്ലയന്റുകളുടെയും സ്വതവേയുള്ള സ്വഭാവം രണ്ടാമത്തേതാണ്. തന്റെ അവസാന പോയിന്റ് ഭൗതിക നെറ്റ്വർക്ക് വഴി വീണ്ടും ബന്ധിപ്പിക്കുകയും അതേസമയം ആരോഗ്യകരമായ കണക്ഷൻ കാണിക്കുകയും ചെയ്യുന്ന ക്ലയന്റാണ്, ഉദ്ദേശിച്ച ശൃംഖല നിശ്ശബ്ദമായി രണ്ട് ബന്ധമില്ലാത്ത തുരങ്കങ്ങളാകാനുള്ള ഏറ്റവും സാധാരണ വഴി.
ആദ്യ വ്യവസ്ഥ: ഏത് അവസാന പോയിന്റിന് ഏത് പാത വേണം
ip route get 203.0.113.10 ആ ചോദ്യത്തിന് നേരിട്ട് ഉത്തരം നൽകുന്നു: പാത, ഉറവിട വിലാസം, കേർണൽ ഇപ്പോൾ ആ ലക്ഷ്യത്തിന് ഉപയോഗിക്കുന്ന ഇന്റർഫേസ് എന്നിവ അത് അച്ചടിക്കുന്നു.
ഉള്ളിലെ ക്ലയന്റ് ആരംഭിക്കുന്നതിന് മുമ്പ് ഉള്ളിലെ സർവറിനായി, ശേഷം വീണ്ടും ഒരിക്കൽ ഇത് പ്രവർത്തിപ്പിച്ച് താരതമ്യം ചെയ്യുക. ഉത്തരം ഭൗതിക ഇന്റർഫേസിൽ നിന്ന് ബാഹ്യ തുരങ്കത്തിന്റെ ഇന്റർഫേസിലേക്ക് മാറുന്നുവെങ്കിൽ ആ നിമിഷം നെസ്റ്റിംഗ് യഥാർത്ഥമാണ്. മാറുന്നില്ലെങ്കിൽ ഉള്ളിലെ ക്ലയന്റ് നേരിട്ട് ബന്ധിപ്പിക്കുകയാണ്, പാനൽ എന്ത് പറഞ്ഞാലും. ബാഹ്യ സർവറിന്റെ വിലാസത്തിനും ഇത് ആവർത്തിക്കുക, അത് ഇപ്പോഴും ഭൗതിക ഇന്റർഫേസ് വഴി പരിഹരിക്കേണ്ടതാണ്, കാരണം രണ്ട് അവസാന പോയിന്റുകളെയും ആവർത്തനപരമായി പിടിക്കുന്ന പാത യന്ത്രത്തെ നെറ്റ്വർക്കിൽ നിന്ന് പൂർണ്ണമായി നീക്കുന്ന തകരാറാണ്.
രണ്ടാം വ്യവസ്ഥ: ഓരോ പാളിയിലും പാത പരിശോധിക്കുക
ആധുനിക ക്ലയന്റിൽ റൂട്ട് തിരഞ്ഞെടുപ്പ് പ്രധാന പട്ടികയെക്കാൾ കൂടുതലാണ്. നയ നിയമങ്ങൾക്ക് അടയാളപ്പെടുത്തിയ പാക്കറ്റുകൾ മറ്റൊരു പട്ടികയിലേക്ക് അയക്കാം, ക്ലയന്റിന് അതിന്റെ സോക്കറ്റ് ഒരു ഇന്റർഫേസിലേക്ക് ബന്ധിക്കാം, കണ്ടെയ്നറിനോ നെയിംസ്പേസിനോ സ്വന്തം പട്ടികകളുണ്ട്. ip rule ഉം ip route show table all ഉം ഇവയിൽ ഏത് സംവിധാനമാണ് പ്രവർത്തിക്കുന്നത് എന്ന് കണ്ടെത്താനുള്ള വഴിയാണ്.
സ്വന്തം സോക്കറ്റിൽ SO_MARK ഇടുന്ന, അല്ലെങ്കിൽ ഒരു നിർദ്ദിഷ്ട ഉപകരണത്തിലേക്ക് ബന്ധിക്കാൻ ക്രമീകരിച്ച ക്ലയന്റ്, നിങ്ങൾ ക്രമീകരിച്ചുവെന്ന് കരുതിയ സ്വതവേയുള്ള പാത ഒഴിവാക്കുന്നു. ഇത് ഒരു സവിശേഷതയാണ്, തകരാറല്ല, കൂടാതെ വിശ്വസനീയമായ ഏക പരിശോധന ക്ലയന്റിന്റെ അതേ നെയിംസ്പേസിൽ പ്രവർത്തിക്കുന്നതാണ് എന്ന് ഇത് അർത്ഥമാക്കുന്നു. ക്ലയന്റുകൾ കണ്ടെയ്നറുകളിൽ പ്രവർത്തിക്കുന്നുവെങ്കിൽ, പരിശോധനകൾ ആ കണ്ടെയ്നറുകളിൽ നടത്തുക, ഹോസ്റ്റിൽ അല്ല.
മൂന്നാം വ്യവസ്ഥ: ബാഹ്യ തുരങ്കം വീഴുമ്പോൾ എന്ത് സംഭവിക്കുന്നു
പരാജയ സ്വഭാവത്തിന് ഒരു തീരുമാനം വേണം, സ്വതവേയുള്ള മൂല്യമല്ല. ബാഹ്യ തുരങ്കം അപ്രത്യക്ഷമാകുമ്പോൾ ഉള്ളിലെ തുരങ്കത്തിന് എന്ത് സംഭവിക്കണം എന്ന് എഴുതുക, തുടർന്ന് ക്ലയന്റുകളെ അങ്ങനെ ചെയ്യാൻ നിർബന്ധിക്കുക.
ഓപ്ഷനുകൾ വ്യക്തമാണ്. ബാഹ്യ പാത അപ്രത്യക്ഷമാകുമ്പോൾ ഉള്ളിലെ ക്ലയന്റ് നിർത്തുന്നത് വൃത്തിയുള്ള ശൃംഖലയും വ്യക്തമായ തടസ്സവും നൽകുന്നു. അതിനെ നേരിട്ട് വീണ്ടും ബന്ധിപ്പിക്കാൻ അനുവദിക്കുന്നത് ലഭ്യത നൽകുകയും ശൃംഖല നിർമ്മിച്ച ഗുണം നിശ്ശബ്ദമായി നീക്കുകയും ചെയ്യുന്നു. ബാഹ്യ പാത തിരികെ വരുന്നതുവരെ തടയുന്നത് ഏറ്റവും കർശനവും പ്രവർത്തിപ്പിക്കാൻ ഏറ്റവും അസ്വസ്ഥജനകവുമാണ്, കാരണം ബാഹ്യ തുരങ്കത്തിന്റെ ഓരോ ആട്ടവും ദൃശ്യമായ സംഭവമായി മാറുന്നു.
മൂന്നും ഹാനികരമല്ലാത്ത ട്രാഫിക്കും ബാഹ്യ തുരങ്കത്തിന്റെ ബോധപൂർവമായ പരാജയവും ഉപയോഗിച്ച് പരിശോധിക്കുക, കാരണം കോൺഫിഗറേഷൻ വായിക്കുന്നത് നിങ്ങളുടെ പക്കൽ ഏതാണ് എന്ന് പറയില്ല. ബാഹ്യ തുരങ്കം കൊല്ലുക, ഉള്ളിലെ ക്ലയന്റ് എന്ത് ചെയ്യുന്നു എന്ന് നോക്കുക, അത് വീണുകിടക്കുമ്പോൾ പാത വീണ്ടും പരിശോധിക്കുക. തുടർന്ന് ബാഹ്യ തുരങ്കം തിരികെ കൊണ്ടുവന്ന് ശൃംഖല വീണ്ടും രൂപപ്പെടുന്നു എന്ന് ഉറപ്പാക്കുക, ഉള്ളിലെ ക്ലയന്റിനെ ഇടയ്ക്ക് തിരഞ്ഞെടുത്ത നേരിട്ടുള്ള പാതയിൽ വിടാതെ.
ശൃംഖല നിങ്ങൾക്ക് നൽകാത്തത്
അധിക പാളികൾ അവസാന പോയിന്റുകൾ, കീകൾ, പരാജയ രീതികൾ എന്നിവ ചേർക്കുന്നു; അവ അജ്ഞാതത്വത്തിന് യാതൊരു ഉറപ്പും ചേർക്കുന്നില്ല, ബാഹ്യ ഓപ്പറേറ്ററെ ഒരു തുരങ്കം ഉണ്ടെന്ന് കാണുന്നതിൽ നിന്ന് തടയുന്നുമില്ല. നെസ്റ്റിംഗ് എന്തിൽ നിന്ന് സംരക്ഷിക്കുന്നു എന്നതിനെക്കുറിച്ചുള്ള ഓരോ പ്രസ്താവനയും ഏത് നിരീക്ഷകനിൽ നിന്നാണ് അത് സംരക്ഷിക്കുന്നത് എന്ന് പേരിടണം.
ഫലം ഒരു ചെറിയ രേഖയാണ്, പ്രവർത്തിക്കുന്ന കണക്ഷനല്ല: ഏത് അവസാന പോയിന്റ് ഏത് പാത ഉപയോഗിക്കുന്നു, ബാഹ്യ പരാജയത്തിൽ എന്ത് സംഭവിക്കുന്നു, നിലവിലെ അവസ്ഥ കാണിക്കുന്ന ആ മൂന്ന് കമാൻഡുകൾ. strongSwan-ന്റെ ഫോർവേഡിംഗ് രേഖ Linux ഹോസ്റ്റിൽ തുരങ്ക ട്രാഫിക് ഇന്റർഫേസുകൾക്കിടയിൽ എങ്ങനെ കൈമാറ്റം ചെയ്യപ്പെടുന്നു എന്നതിന് ഉപയോഗപ്രദമായ റഫറൻസാണ്. ഓരോ ക്ലയന്റ് അപ്ഡേറ്റിനും ശേഷം പരിശോധനകൾ വീണ്ടും പ്രവർത്തിപ്പിക്കുക, കാരണം നിങ്ങളുടെ ശൃംഖല സൃഷ്ടിച്ച സ്വതവേയുള്ള മൂല്യങ്ങൾ കരാറല്ല. നിങ്ങൾക്ക് പരിശോധിക്കാനാകാത്ത നെസ്റ്റഡ് തുരങ്കം സ്ഥിതി വിളക്കുള്ള കിംവദന്തിയാണ്.