സെർവർ മാറുമ്പോൾ kill switch ട്രാഫിക് എന്തിന് വീഴ്ത്തുന്നു
സെർവർ മാറ്റത്തിനിടയിൽ kill switch ട്രാഫിക് എന്തിന് തടയുന്നു, അപ്പോൾ ക്ലയന്റ് എന്ത് ചെയ്യുന്നു, സാധാരണ ഇടവേളയും കുടുങ്ങിയ ബ്ലോക്കും തമ്മിൽ എങ്ങനെ വേർതിരിക്കാം.
കൂടുതൽ അടുത്ത് തോന്നുന്ന ഒരു സെർവർ തിരഞ്ഞെടുത്ത് കണക്റ്റ് അമർത്തുമ്പോൾ, പുതിയ ടണൽ ഉയരുന്നതിന് മുൻപേ ബ്രൗസർ ലോഡ് ചെയ്യുന്നത് നിർത്തുന്നു. ഐക്കൺ കണക്റ്റ് ചെയ്യുന്ന അവസ്ഥയിലേക്ക് മാറി ഓരോ ടാബിന്റെയും സമയം തീരുന്നത് വരെ അവിടെ തുടരുന്നു. ഈ ഇടവേള സാധാരണയായി kill switch രൂപകൽപ്പന പ്രകാരം പ്രവർത്തിക്കുന്നതാണ്: ക്ലയന്റിന് ട്രാഫിക് അയക്കാൻ ടണൽ ഇല്ലാത്തിടത്തോളം അത് തടയപ്പെടുന്നു. ഇടവേള സ്വീകാര്യമാണോ എന്നത് ആ നിമിഷങ്ങളിൽ ക്ലയന്റ് എന്ത് ചെയ്യുന്നു എന്നതിനെയും, അത് തുറന്നു എന്ന് പറയുമ്പോൾ ശരിക്കും തുറക്കുന്നുണ്ടോ എന്നതിനെയും ആശ്രയിച്ചിരിക്കുന്നു.
രണ്ട് സെർവറുകൾക്കിടയിൽ ക്ലയന്റ് എന്ത് ചെയ്യുന്നു
എൻഡ്പോയിന്റ് മാറ്റം ഒരു സ്വിച്ചല്ല, പല ഘട്ടങ്ങളാണ്. ക്ലയന്റ് നിലവിലെ ടണൽ പൊളിക്കുന്നു, തന്റെ തടയൽ നിയമങ്ങൾ പുതുക്കുന്നു, പുതിയ എൻഡ്പോയിന്റ് റിസോൾവ് ചെയ്ത് ടണലിന് പുറത്തുനിന്ന് അതിൽ എത്തുന്നു, എന്നിട്ട് പുതിയ റൂട്ടുകൾ ഇൻസ്റ്റാൾ ചെയ്ത് തടയൽ നീക്കുന്നു. നിങ്ങൾ അനുഭവിക്കുന്ന ഇടവേള ആദ്യ ഘട്ടത്തിനും അവസാന ഘട്ടത്തിനും ഇടയിലാണ്.
ഇവിടെ ക്രമമാണ് വേഗതയെക്കാൾ പ്രധാനം. പുതിയ എൻഡ്പോയിന്റിനുള്ള ഒഴിവാക്കലിന് മുൻപേ തടയൽ നിയമങ്ങൾ പ്രാബല്യത്തിൽ വന്നാൽ, ക്ലയന്റിന് ഹാൻഡ്ഷേക്ക് പൂർത്തിയാക്കാനാകാതെ സമയം തീരുന്നത് വരെ കണക്റ്റ് ചെയ്യുന്ന അവസ്ഥയിൽ തുടരും. ഒഴിവാക്കൽ പഴയ സെർവറിന്റെ വിലാസത്തിന്റെ പകർപ്പാണെങ്കിൽ, പുതിയ ഹാൻഡ്ഷേക്ക് മറ്റേതൊരു പുറത്തേക്കുള്ള പാക്കറ്റ് പോലെ തോന്നി ഉപേക്ഷിക്കപ്പെടും. രണ്ട് സന്ദർഭങ്ങളും ബ്രൗസറിൽ നിന്ന് ഒരേപോലെ തോന്നും, അതുകൊണ്ടാണ് ആറ് സെക്കൻഡിന് ശേഷം കരകയറുന്ന മാറ്റവും ഒരിക്കലും കരകയറാത്തതും ഒരേ കാരണം പങ്കിടാവുന്നത്.
പുതിയ എൻഡ്പോയിന്റിന് തടയലിൽ ഒരു ദ്വാരം വേണം
ടണൽ നിർമ്മിക്കാൻ ക്ലയന്റ് ഫിസിക്കൽ ഇന്റർഫേസിലൂടെ പുതിയ സെർവറിന്റെ വിലാസത്തിലേക്കും പോർട്ടിലേക്കും പാക്കറ്റുകൾ അയക്കണം, ഉദാഹരണത്തിന് സാധാരണ WireGuard പ്രൊഫൈലിന് UDP 51820 അല്ലെങ്കിൽ OpenVPN-ന് 1194 ഉം 443 ഉം, നിങ്ങളുടെ പ്രൊഫൈൽ എന്ത് നിർദ്ദേശിച്ചാലും. ആ ട്രാഫിക് ഇപ്പോൾ ഉണ്ടാകാൻ പോകുന്ന ടണലിന് ഉള്ളിലല്ല, അതിനാൽ പൊരുത്തപ്പെടുന്ന അനുമതി നിയമം ഇല്ലെങ്കിൽ മുഴുവൻ ഉപകരണത്തിനുമുള്ള തടയൽ അതിനെ വിഴുങ്ങും.
ഹോസ്റ്റ്നെയിം അടിസ്ഥാനമാക്കിയ പ്രൊഫൈലുകൾ രണ്ടാമത്തെ വ്യവസ്ഥ ചേർക്കുന്നു: ലുക്കപ്പ് തന്നെ. തടയൽ ഉയരുന്നതിന് മുൻപേ ക്ലയന്റ് എൻഡ്പോയിന്റ് റിസോൾവ് ചെയ്താൽ കാഷെ ചെയ്ത വിലാസം ഉപയോഗിക്കാം, പക്ഷേ പ്രൊഫൈൽ വിലാസങ്ങൾ മാറ്റുമ്പോഴോ കാഷെ എൻട്രി പഴകുമ്പോഴോ, അനുമതി നിയമം ഉൾക്കൊള്ളാത്ത ഒരു വിലാസത്തിലേക്കാണ് ഹാൻഡ്ഷേക്ക് പോകുന്നത്. IPv6 ഇത് ദൃശ്യമാക്കുന്നു, കാരണം ഇരട്ട-സ്റ്റാക്ക് എൻഡ്പോയിന്റിന് A, AAAA എന്നീ രണ്ട് റെക്കോർഡുകളും പ്രസിദ്ധീകരിക്കാം, v4 വിലാസം മാത്രം ഉൾക്കൊള്ളുന്ന അനുമതി നിയമം ക്ലയന്റിനെ തടയപ്പെട്ട v6 വിലാസത്തിനെതിരെ വീണ്ടും ശ്രമിക്കാൻ വിടുന്നു.
ഓപ്ഷനുകളുടെ പേരുകളും സ്ഥിരമൂല്യങ്ങളും ക്ലയന്റും പതിപ്പും അനുസരിച്ച് വ്യത്യാസപ്പെടുന്നു, അതിനാൽ സ്ക്രീൻഷോട്ടുകളിൽ നിന്ന് ഊഹിക്കാതെ നിങ്ങളുടേതിനുള്ള രേഖപ്പെടുത്തിയ പട്ടിക വായിക്കുക. OpenVPN Connect ന്റെ ക്രമീകരണ റഫറൻസ് openvpn.net/connect-docs/app-settings-windows എന്നതിൽ, ഒരു ക്ലയന്റ് തന്റെ തടയൽ, വിഭജിത ടണൽ ഓപ്ഷനുകൾ എങ്ങനെ വിവരിക്കുന്നു എന്നതിന് ഒരു ഉദാഹരണമാണ്.
Fail-closed ഒരു അവസ്ഥ യന്ത്രമാണ്, സ്വിച്ചല്ല
മിക്ക ക്ലയന്റുകളും തടയലിനെ ഫയർവാൾ നയമായി മൂന്ന് അവസ്ഥകളിൽ പ്രകടിപ്പിക്കുന്നു: ടണൽ മുകളിൽ, ട്രാഫിക് ടണലിലൂടെയും തടയൽ ഇല്ലാതെയും; ടണൽ താഴെ, തടയൽ സജീവം; കൂടാതെ സംക്രമണം, തടയൽ സജീവവും എൻഡ്പോയിന്റിനുള്ള താൽക്കാലിക ഒഴിവാക്കലുകളും. മൂന്നാമത്തെ അവസ്ഥയിലാണ് ബഗ്ഗുകൾ വസിക്കുന്നത്, കാരണം അത് കുറച്ച് സെക്കൻഡിനുള്ളിൽ രണ്ടുതവണ മാറണം, അതിൽനിന്ന് പുറത്തുകടക്കാനാകാത്തത് സ്ഥിരമായ തടയലിനെപ്പോലെത്തന്നെ തോന്നും.
സംവിധാനം പ്ലാറ്റ്ഫോമനുസരിച്ച് വ്യത്യാസപ്പെടുന്നു, പരാജയവും അങ്ങനെതന്നെ. Windows Filtering Platform ഫിൽട്ടറുകൾക്ക് ഭാരമുണ്ട്, അതിനാൽ നിങ്ങളുടെ അനുമതിയെ മറികടക്കുന്ന തടയൽ ഫിൽട്ടർ അനുമതി ഉണ്ടായിരുന്നിട്ടും പാക്കറ്റുകൾ ഉപേക്ഷിച്ചുകൊണ്ടിരിക്കും, കൂടാതെ കൊല്ലപ്പെട്ട ക്ലയന്റ് പ്രോസസ് വിട്ടുപോയ ഫിൽട്ടറുകൾ ആപ്പ് പോയതിന് ശേഷവും യന്ത്രത്തെ ഓഫ്ലൈനായി നിർത്താം. macOS ക്ലയന്റുകൾ സാധാരണയായി pf നിയമങ്ങൾ ഒരു ആങ്കറിലേക്ക് എഴുതുന്നു, അവിടെ നിയമങ്ങളുടെ ക്രമവും വേഗത്തിലുള്ള തീരുമാനങ്ങളും ഏത് നിയമം ബാധകമാകുമെന്ന് നിർണ്ണയിക്കുന്നു. Linux ക്ലയന്റുകൾ സാധാരണയായി drop നയത്തോടുകൂടിയ nftables അല്ലെങ്കിൽ iptables ചെയിൻ കൈകാര്യം ചെയ്യുന്നു, എൻഡ്പോയിന്റിനും ടണൽ ഇന്റർഫേസിനും ലൂപ്പ്ബാക്കിനും വ്യക്തമായ അനുമതികൾ നൽകുന്നു. Android-ന്റെ always-on VPN, VPN ഇല്ലാതെ കണക്ഷനുകൾ തടയുന്ന ഓപ്ഷനോടൊപ്പം, ഗ്രൂപ്പിൽ ഏറ്റവും കർശനമാണ്, കാരണം ഓപ്പറേറ്റിംഗ് സിസ്റ്റം തടയൽ ആപ്പിന് വേണ്ടിയല്ല മുഴുവൻ ഉപകരണത്തിനും ബാധകമാക്കുന്നു.
WireGuard-ന് സ്വന്തം കുറിപ്പ് വേണം, കാരണം AllowedIPs ഒരു റൂട്ടിംഗ് തിരഞ്ഞെടുക്കലാണ്, തടയുന്നതല്ല. ഏത് ലക്ഷ്യസ്ഥാനങ്ങൾ ടണലിൽ പ്രവേശിക്കുന്നു എന്ന് അത് തീരുമാനിക്കുന്നു; ഇനിയും ടണൽ ഇല്ലാത്ത ഒരു പാക്കറ്റ് Wi-Fi വഴി പുറത്തുപോകുന്നത് തടയാൻ അത് ഒന്നും ചെയ്യുന്നില്ല. WireGuard മാത്രവും ഫയർവാൾ നിയമം ഇല്ലാത്തതുമായ ക്രമീകരണത്തിൽ kill switch യഥാർത്ഥത്തിൽ ഒരു റൂട്ടിന്റെ അഭാവമാണ്, ഉപേക്ഷിക്കപ്പെട്ട ഹാൻഡ്ഷേക്കിന് ശേഷം ഫിസിക്കൽ ഇന്റർഫേസിലൂടെ യഥാർത്ഥ പാക്കറ്റ് പുറത്തുപോകാം.
ഐക്കൺ നോക്കുന്നതിനുപകരം ഇടവേള അളക്കുക
അവസ്ഥാ വിളക്കല്ല, പാക്കറ്റുകൾ നിരീക്ഷിക്കുക. Linux-ൽ ഒരു ടെർമിനലിൽ പൊതു വിലാസത്തിലേക്ക് പതുക്കെയുള്ള ping തുടങ്ങി, മറ്റൊന്നിൽ ഫിസിക്കൽ ഇന്റർഫേസിൽ ടണലിന്റെ ട്രാൻസ്പോർട്ട് പോർട്ട് പിടിക്കുക:
ping -i 0.2 -c 100 1.1.1.1 | tail -5
sudo tcpdump -ni eth0 'udp port 51820'
രണ്ടും പ്രവർത്തിക്കുമ്പോൾ ക്ലയന്റിൽ സെർവർ മാറ്റുക. മൂന്ന് കാര്യങ്ങൾ പ്രധാനമാണ്: ping എത്രനേരം നിലയ്ക്കുന്നു, പിടിച്ചെടുക്കൽ ഹാൻഡ്ഷേക്ക് പുതിയ എൻഡ്പോയിന്റിൽ എത്തുന്നു എന്ന് കാണിക്കുന്നുണ്ടോ, ട്രാഫിക് ക്ലയന്റിന്റെ അവസ്ഥ കണക്റ്റഡ് ആകുന്നതിന് മുൻപോ ശേഷമോ തിരികെ വരുന്നുണ്ടോ. ping ഇടവേള ആദ്യം അവസാനിച്ചാൽ, തടയൽ നേരത്തേ നീക്കിയതോ സൂചകൻ സമ്മതിക്കുന്നതിന് മുൻപേ ടണൽ ഉയർന്നതോ ആണ്. ഇടവേള പിന്നീട് അവസാനിച്ചാൽ, സൂചകൻ അമിതമായി ശുഭാപ്തിവിശ്വാസമാണ്.
Windows-ൽ netsh wfp show state ഒരു സ്നാപ്പ്ഷോട്ട് എഴുതുന്നു, ക്ലയന്റ് വിച്ഛേദിച്ചു എന്ന് അവകാശപ്പെടുമ്പോഴും ഇപ്പോഴും നിലനിൽക്കുന്ന തടയൽ ഫിൽട്ടറുകൾ അതിൽ തിരയാം. macOS-ൽ sudo pfctl -sr ലോഡ് ചെയ്ത നിയമങ്ങളും അവയുടെ ക്രമവും പട്ടികപ്പെടുത്തുന്നു. ഏത് സ്നാപ്പ്ഷോട്ടും ക്ലയന്റിന്റെ സ്വന്തം ലോഗുമായി ചേർത്ത് നോക്കുക; നിങ്ങളുടെ ping-ന്റെ സമയരേഖ തടയൽ വൈകി അവസാനിച്ചോ ഒരിക്കലും അവസാനിച്ചില്ലയോ എന്ന് പറയും.
സാധാരണ ഇരുളൽ കുടുങ്ങിയ തടയലിനെതിരെ
കുറച്ച് തടസ്സമാണ് ഈ സവിശേഷതയുടെ ഉദ്ദേശ്യം, അതിനാൽ ഏതെങ്കിലും ക്രമീകരണം മാറ്റുന്നതിന് മുൻപ് വർഗ്ഗീകരിക്കുക:
| What you see | Usually means | Next check |
|---|---|---|
| Two or three seconds of timeouts, then normal browsing | Expected fail-closed gap | Nothing to fix |
| State says connected, traffic stays dead | Block filter or route left behind | Firewall snapshot, client log |
| One app dead while others work | TCP session bound to the old exit address | Restart the app |
| LAN devices unreachable after the switch | LAN exception not reapplied | Allow-LAN or split-tunnel setting |
| New server hangs, the old one reconnects | Permit covers only the old address | Resolved address of the new host, including AAAA |
രണ്ടാമത്തെയോ അഞ്ചാമത്തെയോ വരിയിൽ എത്തിയാൽ, പരിശോധിക്കാൻ kill switch ഓഫ് ചെയ്യരുത്, അത് ഒരു റൂട്ടിംഗ് ബഗ്ഗിനെ ചോർച്ചയാക്കി മാറ്റുന്നു. ക്ലയന്റിന്റെ സേവനം പുനരാരംഭിക്കുക, അല്ലെങ്കിൽ പ്രോസസ് കൊന്നതിന് ശേഷവും ഫിൽട്ടറുകൾ നിലനിൽക്കുന്നയിടത്ത് യന്ത്രം റീബൂട്ട് ചെയ്യുക, എന്നിട്ട് തടയൽ മാറുന്നുണ്ടോ നോക്കുക. മാറുന്നുവെങ്കിൽ, തകരാർ തടയലിലല്ല, മാറ്റത്തിനിടയിലെ വൃത്തിയാക്കലിലാണ്.
അടുത്ത മാറ്റത്തിന് മുൻപ് നാല് കാര്യങ്ങൾ ഉറപ്പാക്കുക: എൻഡ്പോയിന്റ് അനുമതി നിങ്ങളുടെ പ്രൊഫൈൽ റിസോൾവ് ചെയ്യുന്ന എല്ലാ വിലാസ കുടുംബങ്ങളെയും ഉൾക്കൊള്ളുന്നു, ക്ലയന്റ് ലോഗ് സംക്രമണം പൂർത്തിയായത് കാണിക്കുന്നു, നിങ്ങളുടെ ping പരിശോധന ഐക്കണല്ല ഇടവേള അളക്കുന്നു, ക്ലയന്റ് അടയ്ക്കുമ്പോൾ സാധാരണ കണക്റ്റിവിറ്റി തിരികെ വരുന്നു. മാറ്റത്തിനിടയിൽ നിലനിർത്തി പിന്നീട് വിടുന്ന kill switch തന്റെ ജോലി ചെയ്യുന്നു. നേരത്തേ വിടുന്നതോ ഒരിക്കലും വിടാത്തതോ ഡീബഗ് ചെയ്യേണ്ടതാണ്.