ബ്ലാക്ക്ഹോൾ റൂട്ടും VPN കിൽ സ്വിച്ചും: ഓരോന്നും എന്തു ചെയ്യുന്നു
ബ്ലാക്ക്ഹോൾ റൂട്ട് പൊരുത്തപ്പെടുന്ന ട്രാഫിക്ക് ഉപേക്ഷിക്കുകയും പരാജയത്തിൽ അടഞ്ഞ പാത നിർബന്ധിക്കുകയും ചെയ്യുന്നു. അതിന്റെ വ്യാപ്തിയും അന്ധമായ ഇടങ്ങളും പാക്കറ്റ് ഫിൽട്ടർ അടിസ്ഥാനമാക്കിയ കിൽ സ്വിച്ചുമായി താരതമ്യം ചെയ്യുക.
ഒരു പാക്കറ്റ് ലാപ്ടോപ്പിൽ നിന്ന് പുറപ്പെടുന്നു, VPN ഗേറ്റ്വേയിൽ എത്തുന്നില്ല, ഒരു ഫയർവാൾ കൗണ്ടറും നീങ്ങുന്നില്ല. റൂട്ട് പട്ടിക ഇതിനകം പാക്കറ്റിന്റെ വിധി തീരുമാനിച്ചു: ഒരു ബ്ലാക്ക്ഹോൾ എൻട്രി അതുമായി പൊരുത്തപ്പെട്ടു, ഏതെങ്കിലും ഇന്റർഫേസ് അതു കാണുന്നതിനു മുൻപേ കേർണൽ അത് ഉപേക്ഷിച്ചു. ഒരു ലക്ഷ്യസ്ഥാനം അടഞ്ഞ രീതിയിൽ പരാജയപ്പെടേണ്ടിവരുമ്പോൾ ഈ സ്വഭാവം ഉപയോഗപ്രദമാണ്, പക്ഷേ ഇത് ഇടുങ്ങിയ വ്യാപ്തിയുള്ള റൂട്ടിംഗ് പ്രവർത്തനമാണ്. ഇതിനെ പൂർണ്ണ കിൽ സ്വിച്ചായി കാണുന്നതാണ് ഡിസൈനുകൾ പിഴയ്ക്കുന്ന ഇടം.
ഉപേക്ഷിക്കൽ പ്രവർത്തനം യഥാർത്ഥത്തിൽ എന്തിനോട് പൊരുത്തപ്പെടുന്നു
ഒരു റൂട്ട് അന്വേഷണം ഒരു പട്ടിക തിരഞ്ഞെടുക്കുന്നു, പിന്നീട് അതിനുള്ളിൽ ഏറ്റവും നീളമുള്ള പൊരുത്തപ്പെടുന്ന പ്രിഫിക്സ് തിരഞ്ഞെടുക്കുന്നു. ബ്ലാക്ക്ഹോൾ റൂട്ട് ഒരു സാധാരണ എൻട്രിയാണ്, അതിന്റെ പ്രവർത്തനം ഉപേക്ഷിക്കലാണ്, അതിനാൽ മുഴുവൻ തീരുമാനത്തിനും ശേഷം ആ എൻട്രി തിരഞ്ഞെടുക്കുമായിരുന്ന പാക്കറ്റുകളെ മാത്രമേ അത് ബാധിക്കൂ. പോളിസി നിയമം കൊണ്ട് പട്ടിക മാറ്റുക, അല്ലെങ്കിൽ കൂടുതൽ നിർദ്ദിഷ്ടമായ ഒരു പ്രിഫിക്സ് ചേർക്കുക, ഉപേക്ഷിക്കൽ ഇനി ബാധകമല്ല.
അതുകൊണ്ട് ബ്ലാക്ക്ഹോളിന്റെ വ്യാപ്തി കൃത്യവും പറയാൻ എളുപ്പവുമാണ്: അത് പ്രിഫിക്സ്, പട്ടികയിൽ, ആ വിലാസ കുടുംബത്തിനായി ഉൾക്കൊള്ളുന്നു. മറ്റൊരു പട്ടിക നേടുന്ന ലക്ഷ്യസ്ഥാനം അത് ഉൾക്കൊള്ളുന്നില്ല, IPv4 പ്രിഫിക്സ് ഉപേക്ഷിക്കുന്നതു കൊണ്ടു മാത്രം IPv6 ഉൾക്കൊള്ളുന്നുമില്ല.
ip route get എന്തെങ്കിലും വിന്യസിക്കുന്നതിനു മുൻപ് തീരുമാനം കാണിക്കുന്നു, പട്ടികയും റൂട്ട് തരവും ഉൾപ്പെടെ. ആ ഔട്ട്പുട്ട് വായിക്കുന്നത് പരാജയപ്പെട്ട അഭ്യർത്ഥനയിൽ നിന്ന് ഏത് നിയമമോ പ്രിഫിക്സോ പ്രവർത്തിച്ചു എന്ന് ഊഹിക്കുന്നതിനേക്കാൾ വേഗമാണ്.
ബ്ലാക്ക്ഹോൾ unreachable അല്ലെങ്കിൽ prohibit പോലെയല്ല
Linux ഉപേക്ഷിക്കലിനോട് സദൃശമായ മൂന്ന് റൂട്ട് തരങ്ങൾ നൽകുന്നു, അവ അയയ്ക്കുന്നയാൾ എന്ത് നിരീക്ഷിക്കുന്നു എന്നതിൽ വ്യത്യസ്തമാണ്. ബ്ലാക്ക്ഹോൾ മറുപടിയില്ലാതെ പാക്കറ്റ് ഇടുന്നു, അതിനാൽ ക്ലയന്റ് സമയപരിധി കാണുന്നു. unreachable റൂട്ട് ICMP unreachable സന്ദേശം തിരികെ നൽകുന്നു, അതിനാൽ കണക്ഷൻ ഹോസ്റ്റ് അല്ലെങ്കിൽ നെറ്റ്വർക്ക് പിശകോടെ വേഗം പരാജയപ്പെടുന്നു. prohibit റൂട്ട് ഭരണപരമായ വിലക്കിന്റെ പിശക് നൽകുന്നു, ഇത് ബോധപൂർവമായ പോളിസി നിരസിക്കലിനോട് അടുത്താണ്.
അപ്ലിക്കേഷൻ കാണേണ്ട സ്വഭാവം തിരഞ്ഞെടുക്കുക. പോളിസി വെളിപ്പെടുത്താൻ ആഗ്രഹിക്കാത്തപ്പോൾ നിശ്ശബ്ദ ഉപേക്ഷിക്കൽ അനുയോജ്യമാണ്, ലക്ഷ്യസ്ഥാനം എന്തുകൊണ്ട് ലഭ്യമല്ല എന്ന് ഉപയോക്താക്കൾ മനസ്സിലാക്കേണ്ടിവരുമ്പോൾ തൽക്ഷണ പിശക് മികച്ചതാണ്. നെറ്റ്വർക്കിലുടനീളം തരങ്ങൾ കലർത്തുന്നത് ഒരേ പോളിസിയെ മൂന്ന് വ്യത്യസ്ത തകരാറുകളായി വിവരിക്കുന്ന പിന്തുണാ ടിക്കറ്റുകൾ സൃഷ്ടിക്കുന്നു.
ഒരു കണക്ഷൻ രോഗനിർണയം ചെയ്യുമ്പോൾ ഓരോ ഉപേക്ഷിക്കൽ എൻട്രിയും പരസ്പരം മാറ്റാവുന്നതാണെന്ന് കരുതരുത്. പിശക് പാഠം, സമയം, പാക്കറ്റ് ക്യാപ്ചർ എന്നിവ വ്യത്യസ്തമാണ്, പട്ടികയിലെ റൂട്ട് തരം നിങ്ങൾ ഏതാണ് നോക്കുന്നതെന്ന് പറയുന്നു. ip-route കൈപ്പുസ്തകം തരങ്ങളും അവയുടെ പിശക് സ്വഭാവവും പട്ടികപ്പെടുത്തുന്നു.
കിൽ സ്വിച്ചുമായി അത് എങ്ങനെ താരതമ്യപ്പെടുന്നു
കിൽ സ്വിച്ച് പാക്കറ്റ് ഫിൽട്ടറിംഗ് ആണ്: ടണലിന് പുറത്തേക്ക് പോകുമായിരുന്ന ഔട്ട്ബൗണ്ട് ട്രാഫിക്ക് ഉപേക്ഷിക്കുന്ന ഫയർവാൾ നിയമം. ബ്ലാക്ക്ഹോൾ റൂട്ട് സ്റ്റാക്കിൽ നേരത്തെ എടുക്കുന്ന ഫോർവേഡിംഗ് തീരുമാനമാണ്. രണ്ടും ട്രാഫിക്ക് നിർത്താം, പക്ഷേ അവ വ്യത്യസ്ത കാര്യങ്ങൾ കാണുന്നു, വ്യത്യസ്ത കേസുകൾ വിട്ടുകളയുന്നു.
| Mechanism | What it blocks | What it misses | How failure looks |
|---|---|---|---|
| Blackhole route | Destinations matching the prefix and table | Other tables, other address families, traffic with a different route | Silent timeout |
| Firewall kill switch | Egress not bound to the tunnel interface | Rules that are too broad can break the endpoint or DHCP | Dropped packets with counters |
| WireGuard AllowedIPs | Destinations not routed into the interface | Traffic that never enters the interface at all | No tunnel route, direct egress |
താരതമ്യം പ്രധാനമാകുന്നത് വ്യാപ്തിയിലാണ്. ഫയർവാൾ ഉടമയെയോ പോർട്ടിനെയോ ഇന്റർഫേസിനെയോ പൊരുത്തപ്പെടുത്തി എൻഡ്പോയിന്റ് എത്താവുന്നതായി നിർത്തി ഒരു അപ്ലിക്കേഷനെ തടയാം; ഒരു റൂട്ടിന് അത് സാധ്യമല്ല. നേരെമറിച്ച്, ഒരു പാക്കറ്റ് ഫിൽട്ടറും ലോഡ് ചെയ്യാതെ ഒരു റൂട്ടിന് മുഴുവൻ പ്രിഫിക്സും ഉപേക്ഷിക്കലിലേക്ക് അയയ്ക്കാം, ഇത് ഏറ്റവും ചെറിയ സിസ്റ്റത്തിൽ ഉപയോഗപ്രദമാണ്.
WireGuard-ന്റെ AllowedIPs ക്രിപ്റ്റോകീ റൂട്ടിംഗ് ആണ്, ഫയർവാൾ അല്ല. ഏത് ലക്ഷ്യ പ്രിഫിക്സുകൾ ഇന്റർഫേസിൽ സ്വീകരിക്കണം എന്ന് അത് തീരുമാനിക്കുന്നു, ടണൽ സബ്നെറ്റ് മാത്രം പട്ടികപ്പെടുത്തുന്ന പ്രൊഫൈൽ മറ്റ് ലക്ഷ്യസ്ഥാനങ്ങളെ സാധാരണ ഡിഫോൾട്ട് റൂട്ടിന് വിടുന്നു. അതുകൊണ്ടാണ് പൂർണ്ണ ടണൽ പ്രൊഫൈലുകൾ 0.0.0.0/0 ഉപയോഗിക്കുന്നത്, അതുകൊണ്ടാണ് wg-quick കഴിയുമ്പോൾ ഫയർവാൾ നിയമങ്ങളും ഇൻസ്റ്റാൾ ചെയ്യുന്നത്.
ടണൽ എൻഡ്പോയിന്റ് ഉപേക്ഷിക്കലിന് പുറത്ത് നിർത്തുക
എൻഡ്പോയിന്റിന്റെ പുറം വിലാസം ഭൗതിക ഇന്റർഫേസിലൂടെ എത്താവുന്നതായി തുടരണം. ആ വിലാസവും പിടിക്കുന്ന ഉപേക്ഷിക്കൽ ഹാൻഡ്ഷേക്ക് പുറത്തുപോകുന്നത് തടയുന്നു, ടണൽ ഒരിക്കലും ഉയരുന്നില്ല, ഇത് റൂട്ടിംഗ് പോളിസിയല്ല VPN തകരാറായി തോന്നുന്നു. മാറ്റത്തിന് മുൻപും ശേഷവും എൻഡ്പോയിന്റിലേക്കുള്ള റൂട്ട് പരിശോധിക്കുക.
മാനേജ്മെന്റ് ആക്സസും അതേ അവലോകനത്തിൽ ഉൾപ്പെടുന്നു. റൗട്ടറിലേക്കോ ക്ലയന്റിലേക്കോ ഉള്ള ഏക മാർഗം ടണൽ ആണെങ്കിൽ, അത് നീക്കം ചെയ്യാൻ അനുവദിക്കുന്ന യന്ത്രത്തിൽ നിന്ന് വളരെ വിശാലമായ ഉപേക്ഷിക്കൽ നിങ്ങളെ പുറത്താക്കാം. രേഖപ്പെടുത്തിയ ഔട്ട്-ഓഫ്-ബാൻഡ് റൂട്ട്, കൺസോൾ, അല്ലെങ്കിൽ സമയബന്ധിത റോൾബാക്ക് സൂക്ഷിക്കുക.
IPv6-ന് സ്വന്തം എൻട്രിയും സ്വന്തം അവലോകനവും വേണം. IPv4-നെ ബ്ലാക്ക്ഹോളിലേക്ക് ഇട്ട് IPv6-നെ ഡിഫോൾട്ട് റൂട്ടിൽ വിടുന്ന ഡിസൈൻ പോളിസി നിർത്താൻ ഉദ്ദേശിച്ച അതേ ട്രാഫിക്ക് ചോർത്തുന്നു, IPv4 മാത്രമുള്ള പരീക്ഷണത്തിൽ ആ പിശക് അദൃശ്യമാണ്.
ടൈമറും റോൾബാക്കും ഉപയോഗിച്ച് ഘട്ടം ഘട്ടമായി നടപ്പാക്കുക
ചെറിയ സ്വയം നീക്കം ചെയ്യലോടെ റൂട്ട് പ്രയോഗിക്കുക, റീബൂട്ടിന് ശേഷവും പിശക് നിലനിൽക്കാതിരിക്കാൻ. താഴെയുള്ള കമാൻഡുകൾ ഒരു ഡോക്യുമെന്റേഷൻ ശ്രേണി ഉപയോഗിക്കുന്നു; നിങ്ങളുടെ ഡിസൈൻ യഥാർത്ഥത്തിൽ ഉപേക്ഷിക്കുന്ന പ്രിഫിക്സ് കൊണ്ട് അത് മാറ്റുക:
sudo ip route replace blackhole 10.0.0.0/8
ip route get 10.1.2.3
sudo systemd-run --on-active=60 /sbin/ip route del blackhole 10.0.0.0/8രണ്ടാമത്തെ കമാൻഡ് ബ്ലാക്ക്ഹോൾ റൂട്ടും അത് വന്ന പട്ടികയും റിപ്പോർട്ട് ചെയ്യണം. മൂന്നാമത്തേത് ഒരു മിനിറ്റിനുള്ളിൽ നീക്കം ചെയ്യൽ ഷെഡ്യൂൾ ചെയ്യുന്നു, ഇത് പോളിസി സ്ഥിരീകരിക്കാൻ മതിയായ സമയവും ദൂരെയുള്ള ഹോസ്റ്റിൽ പിശകിൽ നിന്ന് കരകയറാൻ മതിയായ ചെറുതുമാണ്. സ്വഭാവം സ്ഥിരീകരിച്ച ശേഷം, മറ്റ് റൂട്ടുകളുടെ ഉടമയായ അതേ കോൺഫിഗറേഷൻ മാനേജ്മെന്റിലൂടെ എൻട്രി സ്ഥിരമാക്കുക.
പ്രിഫിക്സ്, പട്ടിക, വിലാസ കുടുംബം, റോൾബാക്ക് രീതി എന്നിവ രേഖപ്പെടുത്തി മാറ്റം അവസാനിപ്പിക്കുക. ഉപേക്ഷിക്കൽ റൂട്ടിംഗ് ഡിസൈനിലെ ബോധപൂർവമായ ഒഴിവാക്കലാണ്, അടുത്ത എഞ്ചിനീയർ അത് ഇപ്പോഴും അവിടെ ഉണ്ടോ എന്ന് തീരുമാനിക്കുന്നതിന് മുൻപ് ഏത് ട്രാഫിക്ക് നിർത്താനാണ് അത് ഉദ്ദേശിച്ചതെന്ന് അറിയണം.