കിൽ സ്വിച്ച് IPv4 മാത്രം തടയുന്നു: IPv6 ഇപ്പോഴും പുറത്തുപോകുന്നത് എന്തുകൊണ്ട്
IPv4-നുള്ള ഫയർവാൾ നിയമങ്ങളുടെ ഒരു കൂട്ടം IPv6-നെക്കുറിച്ച് ഒന്നും പറയുന്നില്ല. ഡ്യുവൽ-സ്റ്റാക്ക് ഉപകരണത്തിൽ ഒരു ആപ്പ് ചുറ്റും പ്രവർത്തിക്കുന്ന വഴി നിലനിർത്തുമ്പോൾ ടണൽ വീണേക്കാം.
ടണൽ വീഴുന്നു, കിൽ സ്വിച്ച് അത് പ്രവർത്തിച്ചുവെന്ന് റിപ്പോർട്ട് ചെയ്യുന്നു, ഡൗൺലോഡ് തുടരുന്നു. IPv4 നിയമങ്ങളിൽ ഒന്നും തകർന്നിട്ടില്ല. ആ നിയമങ്ങൾ ഒരിക്കലും എഴുതപ്പെടാത്ത ഒരു വഴിയിലേക്ക് ആപ്പ് മാറി എന്നു മാത്രം.
ഡ്യുവൽ-സ്റ്റാക്ക് ഉപകരണങ്ങൾക്ക് രണ്ട് സ്വതന്ത്ര പുറത്തേക്കുള്ള വഴികളുണ്ട്. അവയിലൊന്ന് തടയുന്നത് പകുതി തടയലാണ്.
രണ്ട് നിയമ കൂട്ടങ്ങൾ, രണ്ട് സ്ഥിരസ്ഥിതികൾ
Linux-ൽ, iptablesഉം ip6tablesഉം വെവ്വേറെ നയങ്ങളുള്ള വെവ്വേറെ പട്ടികകളാണ്. IPv4 പട്ടികയുടെ INPUT, OUTPUT ചെയിനുകൾ DROP-ലേക്ക് സജ്ജീകരിക്കുന്നത് IPv6 പട്ടികയിൽ ഒന്നും മാറ്റുന്നില്ല, അവിടെ സ്ഥിരസ്ഥിതി സാധാരണയായി ACCEPT ആണ്. അതേ വിഭജനം nftables-ലും ഉണ്ട്, അവിടെ ഒരു കുടുംബം പരിശോധിച്ച് അവയിലൊന്ന് മാത്രമാണ് നിങ്ങളുടെ നിയമങ്ങൾ വഹിക്കുന്നതെന്ന് കണ്ടെത്താം. ആ അസമമിതി സാധാരണമാണ്, മുഴുവൻ പ്രശ്നവും അതുതന്നെ.
അതുകൊണ്ടാണ് ഒരു കിൽ സ്വിച്ച് സമഗ്രമായി തോന്നുകയും ഭാഗികമായി പ്രവർത്തിക്കുകയും ചെയ്യുന്നത്. IPv4 നിയമങ്ങൾ എഴുതിയ സ്ക്രിപ്റ്റ് പ്രവർത്തിച്ചു, കൗണ്ടറുകൾ കൂടുന്നു, ലോഗ് ലൈൻ പ്രത്യക്ഷപ്പെടുന്നു, IPv6 പാക്കറ്റ് ഭൗതിക ഇന്റർഫേസിൽ നിന്ന് പൂർണ്ണമായി സ്പർശിക്കപ്പെടാതെ പുറത്തുപോകുന്നു.
നിങ്ങളുടെ ക്ലയന്റ് യഥാർത്ഥത്തിൽ എന്ത് ഇൻസ്റ്റാൾ ചെയ്യുന്നു എന്ന് വായിക്കുക, മാർക്കറ്റിംഗ് പേജ് എന്ത് വാഗ്ദാനം ചെയ്യുന്നു എന്നല്ല. ചില ക്ലയന്റുകൾ IPv6 ടണലിലേക്ക് റൂട്ട് ചെയ്യുന്നു, ചിലത് അത് ബോധപൂർവ്വം തടയുന്നു, മറ്റുള്ളവ പ്ലാറ്റ്ഫോം തലത്തിലുള്ള ലോക്ക്ഡൗൺ മറ്റൊരു നിയമം നടപ്പിലാക്കുമ്പോൾ അത് അതേപടി വിടുന്നു. ഇവിടെ വിശ്വസിക്കാൻ യോഗ്യമായ ഏക സ്രോതസ്സ് വെണ്ടറിന്റെ ഡോക്യുമെന്റേഷനാണ്.
ഇന്റർഫേസ് കോൺഫിഗറേഷൻ നിങ്ങളോട് എന്ത് പറയുന്നു
wg-quick-ന്റെ മാനുവൽ പേജ് അതിന്റെ ഉദാഹരണ കോൺഫിഗറേഷനിൽ IPv6 നിയമങ്ങൾ ഉൾപ്പെടുത്തുന്നു, കാരണം കൃത്യമായി ഈ വിടവാണ്. ഉദാഹരണം അലങ്കാരമല്ല. IPv4 നിയമങ്ങൾ മാത്രം രണ്ടാം കുടുംബത്തെ തുറന്നിടുമായിരുന്നതിനാലാണ് അത് നിലനിൽക്കുന്നത്.
ഒരു ഉദാഹരണത്തിന്റെ പകുതി പകർത്തുന്നത് ഒരു നയത്തിന്റെ പകുതി ഉണ്ടാക്കുന്നു. ഈ ചോർച്ചയുടെ ഏറ്റവും സാധാരണ ഉത്ഭവം ഇതാണ്. ഒരു ബ്ലോഗ് പോസ്റ്റ് നീളത്തിനായി ഉദാഹരണം വെട്ടിച്ചുരുക്കി. പിന്നീട് വെട്ടിച്ചുരുക്കിയ പതിപ്പ് എല്ലാവരും വീണ്ടും ഉപയോഗിച്ച ടെംപ്ലേറ്റായി മാറി.
# what is actually installed, per family?
sudo iptables -S OUTPUT | head -20
sudo ip6tables -S OUTPUT | head -20
# nftables: inspect each family separately
sudo nft list ruleset inet | head -40
# does this host even have a usable IPv6 path?
ip -6 route show default
രണ്ടാമത്തെ കമാൻഡ് അനുവദിക്കുന്ന നയം പ്രിന്റ് ചെയ്യുകയും ആദ്യത്തേത് DROP പ്രിന്റ് ചെയ്യുകയും ചെയ്താൽ, ക്ലയന്റിനെ തൊടാതെ നിങ്ങൾ ഉത്തരം കണ്ടെത്തി. ആ അസമമിതിയാണ് ബഗ്.
ഒരു തിരയൽ മുഴുവൻ കഥയല്ലാത്തത് എന്തുകൊണ്ട്
ഒരു പേരിന് A റെക്കോർഡും AAAA റെക്കോർഡും ഒരുമിച്ച് തിരികെ നൽകാം, എല്ലാ ആപ്പുകളും ഒരേ രീതിയിൽ തിരഞ്ഞെടുക്കുന്നില്ല. നെറ്റ്വർക്ക് IPv6 വാഗ്ദാനം ചെയ്യുമ്പോൾ ബ്രൗസർ അതിന് മുൻഗണന നൽകി പരാജയത്തിൽ പിന്നോട്ട് പോകാം, അതേസമയം പശ്ചാത്തല സമന്വയമോ അപ്ഡേറ്ററോ സ്വന്തം റിസോൾവറും സ്വന്തം മുൻഗണനയും ഉപയോഗിക്കുന്നു. അതിനാൽ IPv4-ന് മേലുള്ള ഒരു വിജയകരമായ പരിശോധന ഒരു വഴി തെളിയിക്കുന്നു, നയമല്ല.
നെറ്റ്വർക്ക് മാറ്റങ്ങളും ഉത്തരം മാറ്റുന്നു. മറ്റൊരു Wi-Fi നെറ്റ്വർക്കിൽ ചേരുക, ഉറക്കത്തിൽ നിന്ന് ഉണരുക അല്ലെങ്കിൽ മൊബൈലിലേക്ക് മാറുക എന്നിവ ഉപകരണത്തിന് പുതിയ IPv6 പ്രിഫിക്സ് നൽകിയേക്കാം, ഓഫീസ് LAN-ൽ മതിയെന്ന് തോന്നിയ നയം അതിനെ ഉൾക്കൊള്ളണമെന്നില്ല.
ടണൽ ഓഫ് ആയിരിക്കുന്ന അവസ്ഥ പരിശോധിക്കുക
കണക്റ്റ് ചെയ്തിരിക്കുമ്പോൾ പരിശോധിക്കുന്നത് ടണൽ പ്രവർത്തിക്കുന്നുവെന്ന് പറയുന്നു. രസകരമായ പരിശോധന ലഭ്യമല്ലാത്ത അവസ്ഥയാണ്, അപ്പോഴാണ് കിൽ സ്വിച്ച് പിടിച്ചുനിൽക്കേണ്ടത്. ടണൽ ബോധപൂർവ്വം നിർത്തുക, തുടർന്ന് നിങ്ങൾ സംരക്ഷിക്കുന്ന ആപ്പിൽ നിന്ന് പ്രധാന ലക്ഷ്യസ്ഥാനങ്ങൾ പരീക്ഷിക്കുക.
# with the tunnel stopped, does anything still leave?
ip -6 route get 2606:4700:4700::1111
curl -6 -sS -o /dev/null -w '%{http_code}\n' --max-time 5 https://ipv6.example.net/
curl -4 -sS -o /dev/null -w '%{http_code}\n' --max-time 5 https://ipv4.example.net/
രണ്ട് കുടുംബങ്ങളും അടച്ച് പരാജയപ്പെടണം. IPv4 അഭ്യർത്ഥന സമയം കഴിയുകയും IPv6 അഭ്യർത്ഥന ഒരു സ്റ്റാറ്റസ് കോഡ് തിരികെ നൽകുകയും ചെയ്താൽ, നയം അപൂർണ്ണമാണ്, ടണൽ എത്ര തവണ വീണ്ടും പരിശോധിച്ചാലും അത് മാറില്ല.
ആ പരിശോധനയിൽ ഡോക്യുമെന്റ് ചെയ്ത ഒഴിവുകളും നിലനിർത്തുക. പ്രാദേശിക നെറ്റ്വർക്ക് കണ്ടെത്തൽ, DHCP പുതുക്കൽ അല്ലെങ്കിൽ VPN എൻഡ്പോയിന്റിലേക്കുള്ള ബൂട്ട്സ്ട്രാപ്പ് വഴി എന്നിവ എത്തിച്ചേരാവുന്നതായി തുടരേണ്ടി വന്നേക്കാം, ആ ഒഴിവുകൾ ഒരു തടസ്സവേളയിൽ കണ്ടെത്തുന്നതിന് പകരം നയത്തിൽ പേരിടേണ്ടതാണ്. ടണൽ തിരികെ വരാൻ കഴിയാത്തതിനാൽ പരാജയപ്പെടുന്ന ചോർച്ചാ പരിശോധന സുരക്ഷാ കണ്ടെത്തലല്ല, അത് കണക്ടിവിറ്റി കണ്ടെത്തലാണ്.