തുടർച്ചയായി രണ്ട് VPN ഹോപ്പുകൾ: നിങ്ങളുടെ ട്രാഫിക് യഥാർത്ഥത്തിൽ കാണുന്നത് ആര്?
സീരിയൽ ഹോപ്പുകൾ ആദ്യ ഗേറ്റ്വേയിൽ ഡീക്രിപ്റ്റ് ചെയ്ത് വീണ്ടും എൻക്രിപ്റ്റ് ചെയ്യുന്നു; നെസ്റ്റഡ് ഹോപ്പുകൾ പുറം പാളി മാത്രം നീക്കുന്നു. രണ്ട് ഡിസൈനുകളും പരിശോധിച്ച് ഏത് ഓപ്പറേറ്റർ എന്ത് വായിക്കുന്നു എന്ന് കാണുക.
ഓരോ ക്ലയന്റ് പ്രൊഫൈലും ഒരു സെർവറിനെ പേരിടുന്നു, അതിനാൽ ഉപയോക്താവിന്റെ സ്ഥാനത്തുനിന്ന് ഒരു ടണലും സംരക്ഷണം അവസാനിക്കുന്ന ഒരു സ്ഥലവുമുണ്ട്. ആ ആദ്യ ഗേറ്റ്വേയ്ക്ക് ശേഷം എന്ത് സംഭവിക്കുന്നു എന്നത് ക്ലയന്റ് ഒരിക്കലും കാണാത്ത ഒരു ഡിസൈൻ തീരുമാനമാണ്, കൂടാതെ രണ്ട് സാധാരണ ഡിസൈനുകളും പരിശോധനയിൽ വളരെ വ്യത്യസ്തമായി പ്രവർത്തിക്കുന്നു. സീരിയൽ ചെയിനിൽ ആദ്യ ഗേറ്റ്വേ ഡീക്രിപ്റ്റ് ചെയ്ത് വീണ്ടും എൻക്രിപ്റ്റ് ചെയ്യുന്നു. നെസ്റ്റഡ് ചെയിനിൽ അത് പുറം പാളി നീക്കി തനിക്ക് തുറക്കാനാകാത്ത ഉൾ ടണൽ കൈമാറുന്നു. ഹോപ്പുകളുടെ എണ്ണം രണ്ടിലും ഒന്നുതന്നെ, അതിനാൽ വ്യത്യാസം എണ്ണേണ്ടതല്ല, വരയ്ക്കേണ്ടതാണ്.
ക്ലയന്റിൽ നിന്ന് തുടങ്ങി രണ്ട് അറ്റങ്ങളും പേരിടുക
ഉപയോക്താവ് തുടങ്ങുന്നിടത്തുനിന്ന്, അതായത് കണക്ഷൻ പ്രൊഫൈലിൽ നിന്ന് തുടങ്ങുക. അതിൽ ഒരു വിദൂര വിലാസം, ഒരു ആധികാരികതാ രീതി, ഡിസൈൻ പിന്തുണയ്ക്കുന്നുവെങ്കിൽ റൂട്ടുകളുടെ പട്ടിക എന്നിവയുണ്ട്. ക്ലയന്റിൽ നിന്ന് A ഗേറ്റ്വേയിലേക്കുള്ള ആ പുറം ടണലിന് പേരിട്ട് ഉദാഹരണ വിലാസങ്ങൾ നൽകുക: ക്ലയന്റിന്റെ ടണൽ വിലാസം 10.77.0.2, A യുടേത് 10.77.0.1, A യുടെ പൊതു അന്ത്യബിന്ദു 198.51.100.10, TEST-NET-2 ഡോക്യുമെന്റേഷൻ ശ്രേണിയിൽനിന്ന് എടുത്തത്, ഉദാഹരണത്തിലെ ഒന്നും യഥാർത്ഥ ഹോസ്റ്റുമായി കൂട്ടിയിടിക്കാതിരിക്കാൻ.
ആ പ്രൊഫൈലിൽ B ഗേറ്റ്വേയെക്കുറിച്ച് ഒന്നും പറയുന്നില്ല, അത് ഒരു കുറവല്ല. രണ്ടാം ഹോപ്പ് A യുടേതാണ്, ക്ലയന്റിന്റെ ഒരേയൊരു ബാധ്യത ട്രാഫിക് A യിലെത്തിക്കുകയും തിരികെ വരുന്നത് സ്വീകരിക്കുകയും ചെയ്യുകയാണ്. A ടണൽ അവസാനിപ്പിക്കുന്നുവോ, കൈമാറുന്നുവോ, പുതിയത് തുറക്കുന്നുവോ എന്നത് ഈ യാത്രയുടെ ബാക്കി ഭാഗം ഉത്തരം നൽകുന്ന ചോദ്യമാണ്, അതാണ് A എന്ത് വായിക്കാമെന്ന് തീരുമാനിക്കുന്നത്.
സീരിയൽ: A ഡീക്രിപ്റ്റ് ചെയ്ത് വീണ്ടും എൻക്രിപ്റ്റ് ചെയ്യുന്നു
സീരിയൽ ഡിസൈനിൽ A ട്രാഫിക് രണ്ടുതവണ അവസാനിപ്പിക്കുന്നു. അത് ക്ലയന്റിൽനിന്ന് സംരക്ഷണം നീക്കി, ആപ്ലിക്കേഷന്റെ IP പാക്കറ്റ് നേടി, പിന്നീട് ആ പാക്കറ്റ് A, B യിലേക്ക് സൃഷ്ടിക്കുന്ന രണ്ടാം ടണലിലൂടെ അയയ്ക്കുന്നു. ഈ രണ്ട് പ്രവർത്തനങ്ങൾക്കിടയിൽ പാക്കറ്റ് A യുടെ കൈമാറ്റ പാതയിൽ സ്വകാര്യ ലക്ഷ്യത്തിലേക്ക് വിലാസമിട്ട ഒരു സാധാരണ IP പാക്കറ്റായി ഇരിക്കുന്നു.
അതിൽനിന്ന് വ്യക്തമായി പറയേണ്ട രണ്ട് പ്രത്യാഘാതങ്ങളുണ്ട്. A ഉൾ പാക്കറ്റിൽ നയം പ്രയോഗിക്കാം, റൂട്ടുകൾ, ഫിൽട്ടർ നിയമങ്ങൾ, ഉറവിടത്തിന്റെയും ലക്ഷ്യത്തിന്റെയും രേഖപ്പെടുത്തൽ എന്നിവയുടെ രൂപത്തിൽ, കൂടാതെ A രണ്ട് സെറ്റ് ആധികാരികതകൾ സൂക്ഷിക്കണം: ഒന്ന് ക്ലയന്റിന് സെർവറായി, മറ്റൊന്ന് B യുടെ ക്ലയന്റായി. ഓരോ നിമിഷവും സംരക്ഷണമുണ്ട്, എന്നാൽ സംരക്ഷിക്കപ്പെടുന്ന വസ്തു A യിൽ വ്യക്തിത്വം മാറുന്നു.
അതിൽനിന്ന് A ആപ്ലിക്കേഷന്റെ വ്യക്തമായ എഴുത്ത് വായിക്കുന്നു എന്ന് അർത്ഥമില്ല. ക്ലയന്റും സേവനവും TLS പ്രവർത്തിപ്പിച്ച് പരസ്പരം സർട്ടിഫിക്കറ്റുകൾ പരിശോധിക്കുമ്പോൾ, A വായിക്കാവുന്ന അഭ്യർത്ഥനയല്ല, TLS രേഖാ പ്രവാഹം കാണുന്നു. ആ സംരക്ഷണം എവിടെ അവസാനിക്കുന്നു എന്ന് ഉറപ്പാക്കാൻ ടണലിന്റെ രേഖാചിത്രമല്ല, സേവനത്തിന്റെ സർട്ടിഫിക്കറ്റ് ശൃംഖല കാണണം.
നെസ്റ്റഡ്: A പുറം പാളി മാത്രം നീക്കുന്നു
നെസ്റ്റഡ് ഡിസൈനിൽ ക്ലയന്റ് ആദ്യം B യിലേക്ക് ഉൾ ടണൽ നിർമ്മിച്ച് പിന്നീട് ആ ടണൽ പുറം ടണലിനുള്ളിൽ A യിലേക്ക് കൊണ്ടുപോകുന്നു. A പുറം തലക്കെട്ട് നീക്കി ഉൾ ടണൽ കണ്ടെത്തി അതിന്റെ താക്കോലുകൾ സൂക്ഷിക്കാതെ കൈമാറുന്നു, അതിനാൽ ഉൾ സംരക്ഷണം ഇപ്പോഴും B യിൽ അവസാനിക്കുന്നു.
അപ്പോൾ ക്ലയന്റിന്റെ മേലോട്ട് ലിങ്ക് രണ്ട് പാളികൾ വഹിക്കുന്നു, A യും B യും തമ്മിലുള്ള പാത ഒന്ന്. A ഉൾ ടണലിന്റെ പുറം വിലാസങ്ങൾ കാണുന്നു, അത് ട്രാഫിക് ഉണ്ടെന്നും ഏകദേശം എങ്ങോട്ട് പോകുന്നു എന്നും അറിയാൻ മതി, പേലോഡ് വായിക്കാൻ പോരാ. സീരിയൽ കേസിൽനിന്നുള്ള മുഴുവൻ വ്യത്യാസം അതാണ്, ഒരു ഹോപ്പ് കൗണ്ടറും അത് കാണിക്കുന്നില്ല. A ഇനിയും ചെയ്യാനാകുന്നത് വായിക്കാനാകാത്തത് കൈമാറാൻ വിസമ്മതിക്കുകയാണ്, അത് ആ ഗേറ്റ്വേയുടെ ഓപ്പറേറ്റർക്ക് എപ്പോഴും ലഭ്യമാണ്.
നെസ്റ്റിംഗ് ആ ഗുണത്തിന് വില ഈടാക്കുന്നു. ഓരോ പാളിയും തലക്കെട്ട് ചെലവ് കൂട്ടുന്നു, അതിനാൽ MTU, MSS ആസൂത്രണം വെറും ചിട്ടയല്ല, നിർബന്ധമാകുന്നു, ഒരു പാളിയിൽ പ്രവർത്തിക്കുന്ന പാത രണ്ടിൽ വലിയ പാക്കറ്റുകൾ നിശ്ശബ്ദമായി വീഴ്ത്തിയേക്കാം. ഓരോ പാളിക്കും സ്വന്തം പുനഃസംയോജനവും ജീവനിലാക്കലും ആവശ്യമാണ്, ഒരു പാളിയിലെ പരാജയം മറ്റതിലൂടെ ഭാഗിക തടസ്സമായി കാണപ്പെടുന്നു.
ടണലുകൾ മാത്രമല്ല, നിരീക്ഷകരെ വരയ്ക്കുക
ടണലുകൾ ചിത്രത്തിന്റെ എളുപ്പമുള്ള ഭാഗമാണ്. നിരീക്ഷകരാണ് ഡിസൈന്റെ വിഷയം, അതിനാൽ ഓരോ വീക്ഷണ കോണിനും ഒരു വരി എഴുതി ഓരോരുത്തർക്കും യഥാർത്ഥത്തിൽ എന്ത് വായിക്കാമെന്ന് പൂരിപ്പിക്കുക.
| Vantage point | Serial chain | Nested chain |
|---|---|---|
| Client's access network | Outer tunnel only | Outer tunnel only |
| Operator of A | Inner IP packet between A and B | Outer addresses of the inner tunnel, not its payload |
| Path between A and B | Second tunnel | Second tunnel |
| Operator of B | Inner packet re-originated by A | Payload after the inner layer is removed |
| Service edge | Traffic from the exit address | Traffic from the exit address |
രണ്ട് വരികൾ എപ്പോഴും കൂടിച്ചേരുന്നു: A യുടെ ഓപ്പറേറ്ററും ക്ലയന്റിന്റെ ടണലിന്റെ ദാതാവും. അവർ ഒരു സ്ഥാപനമായിരിക്കാം, വേറിട്ട ഗേറ്റ്വേ പേരുകൾ അവരെ സ്വതന്ത്രരാക്കുന്നില്ല. സ്വതന്ത്ര ഉടമസ്ഥതയ്ക്ക് വേറിട്ട ഭരണ നിയന്ത്രണം, വേറിട്ട ആധികാരികതകൾ, വേറിട്ട രേഖപ്പെടുത്തൽ എന്നിവ വേണം.
മെറ്റാഡാറ്റ രണ്ട് ഡിസൈനുകളിലും അതിജീവിക്കുന്നു. സമയം, പാക്കറ്റ് വലിപ്പങ്ങൾ, കണക്ഷൻ എണ്ണം എന്നിവ ഓരോ ഹോപ്പിലും നിരീക്ഷിക്കാവുന്നതായി തുടരുന്നു, അതിനാൽ രണ്ട് ഹോപ്പുകൾ സിഗ്നൽ നീക്കം ചെയ്യുന്നതിനുപകരം പരസ്പരബന്ധത്തിന്റെ ചെലവ് കൂട്ടുന്നു. അദൃശ്യത വാഗ്ദാനം ചെയ്യുന്ന ഡിസൈൻ ആരെങ്കിലും അതിൽ ആശ്രയിക്കുന്നതിന് മുമ്പ് ആ പട്ടികയ്ക്കെതിരെ പരിശോധിക്കണം.
തിരഞ്ഞെടുക്കുന്നതിന് മുമ്പ് പരാജയ പാതകളിലൂടെ നടക്കുക
ഉപയോക്താവ് നേരിടുന്ന ക്രമത്തിൽ ക്ലയന്റിൽനിന്ന് മനഃപൂർവ്വം കാര്യങ്ങൾ തകർക്കുക. ഇന്റർഫേസും അതിന്റെ MTU യും കൊണ്ട് തുടങ്ങുക, കാരണം നെസ്റ്റിംഗ് ആധികാരികതയിൽ പരാജയപ്പെടുന്നതിന് വളരെ മുമ്പേ പാക്കറ്റ് വലിപ്പത്തിൽ പരാജയപ്പെടുന്നു.
ip -4 addr show dev tun0
ip link show dev tun0 | grep mtu
ping -M do -s 1380 -c 2 10.77.1.1
പിന്നീട് സംരക്ഷണ അന്ത്യബിന്ദുക്കൾ അനുമാനിക്കാതെ ഉറപ്പാക്കുക. ഏത് ടണൽ ഉയർന്നിരിക്കുന്നുവോ അതിനുള്ളിൽനിന്ന് സേവനത്തോട് അതിന്റെ സർട്ടിഫിക്കറ്റ് ആവശ്യപ്പെടുക, ക്ലയന്റ് കാണുന്ന ശൃംഖലയെ സേവനം യഥാർത്ഥത്തിൽ അവതരിപ്പിക്കുന്ന ശൃംഖലയുമായി താരതമ്യം ചെയ്യുക. വീണ്ടും ഒപ്പിടുന്നതോ തടയുന്നതോ ആയ ഗേറ്റ്വേ ആ സർട്ടിഫിക്കറ്റ് മാറ്റുന്നു, പരിശോധന ഒരു കമാൻഡിൽ ദൃശ്യമാകുന്നു.
openssl s_client -connect intranet.example.com:443 -brief < /dev/null
പുനഃസംയോജന മാട്രിക്സോടെ അവസാനിപ്പിക്കുക: ക്ലയന്റിന്റെ ടണൽ വീഴുന്നു, B യുടെ ടണൽ വീഴുന്നു, A യും B യും തമ്മിലുള്ള പാത മാറുന്നു. എന്ത് തിരികെ വരുന്നു, എന്ത് വരുന്നില്ല, ഉൾ കണക്ഷൻ എപ്പോഴെങ്കിലും അതിന്റെ ഉദ്ദിഷ്ട വാഹകന് പുറത്തുള്ള പാതയിലേക്ക് വീഴുന്നുവോ എന്ന് രേഖപ്പെടുത്തുക. ഓരോ പരിശോധനയും ഉപയോഗിച്ച വിലാസങ്ങൾ രേഖപ്പെടുത്തുക, മറ്റൊരു ആക്സസ് നെറ്റ്വർക്കിൽ അത് ആവർത്തിക്കുന്നത് മറ്റൊരു ചോദ്യത്തിന് ഉത്തരം നൽകുന്നു. ഓരോ പുനഃസംയോജനത്തിനും ശേഷം MTU പരിശോധനയും ആവർത്തിക്കുക, മാറിയ പാത ഒരു കോൺഫിഗറേഷൻ വരിപോലും അനങ്ങാതെ ഉപയോഗയോഗ്യമായ വലിപ്പം കുറയ്ക്കാം.
A ഉൾ പാക്കറ്റിൽ നയം പ്രയോഗിക്കേണ്ടിവരുമ്പോൾ, അല്ലെങ്കിൽ ക്ലയന്റിന് രണ്ട് അടുക്കിയ ടണലുകൾ ഓടിക്കാനാകാത്തപ്പോൾ സീരിയൽ തിരഞ്ഞെടുക്കുക. ഉൾ പേലോഡ് A യിൽ വായിക്കാനാകാതെ നിൽക്കേണ്ടിവരുമ്പോൾ നെസ്റ്റിംഗ് തിരഞ്ഞെടുക്കുക. തിരഞ്ഞെടുപ്പ് അതിന്റെ നിരീക്ഷകരോടും MTU സംഖ്യകളോടും കൂടി എഴുതിവയ്ക്കുക, അപ്പോൾ അടുത്തയാൾ ഒരു ചോദ്യത്തിന് ഉത്തരം നൽകാൻ മുഴുവൻ ചിത്രവും വീണ്ടും വരയ്ക്കേണ്ടിവരില്ല.