Rruga blackhole kundrejt kill switch VPN: çfarë bën secila
Një rrugë blackhole hedh poshtë trafikun që përputhet dhe imponon një shteg të mbyllur në rast dështimi. Krahasoni shtrirjen dhe pikat e verbëra me një kill switch të bazuar në filtrimin e paketave.
Një paketë largohet nga një laptop, nuk arrin kurrë te porta VPN dhe asnjë numërues i firewall-it nuk lëviz. Tabela e rrugëzimit e ka vendosur tashmë fatin e paketës: një zë blackhole përputhej me të dhe kerneli e hodhi poshtë përpara se ta shihte ndonjë ndërfaqe. Kjo sjellje është e dobishme kur një destinacion duhet të dështojë i mbyllur, por është veprim rrugëzimi me shtrirje të ngushtë. Trajtimi i saj si kill switch i plotë është vendi ku dështojnë projektet.
Çfarë përputh veprimi i hedhjes në të vërtetë
Kërkimi i rrugës zgjedh një tabelë, pastaj parashtesën përputhëse më të gjatë brenda saj. Rruga blackhole është një zë normal, veprimi i të cilit është hedhja, prandaj prek vetëm paketat që do të kishin zgjedhur atë zë pas gjithë vendimit. Ndryshoni tabelën me një rregull politike, ose shtoni një parashtesë më specifike, dhe hedhja nuk zbatohet më.
Prandaj shtrirja e blackhole është e saktë dhe e lehtë për t'u deklaruar: mbulon parashtesën, në tabelë, për atë familje adresash. Nuk mbulon një destinacion që do të fitonte një tabelë tjetër dhe nuk mbulon IPv6 vetëm sepse parashtesa IPv4 hidhet.
ip route get tregon vendimin para se të vendosni çdo gjë, duke përfshirë tabelën dhe llojin e rrugës. Leximi i atij rezultati është më i shpejtë sesa të nxirrni nga një kërkesë e dështuar se cili rregull ose parashtesë veproi.
Blackhole nuk është njësoj si unreachable ose prohibit
Linux ofron tre lloje rrugësh të ngjashme me hedhjen dhe ato ndryshojnë në atë që vëzhgon dërguesi. Blackhole e lëshon paketën pa përgjigje, prandaj klienti sheh një afat të skaduar. Rruga unreachable kthen një mesazh ICMP unreachable, prandaj lidhja dështon shpejt me një gabim hosti ose rrjeti. Rruga prohibit kthen një gabim ndalimi administrativ, më afër një refuzimi të qëllimshëm të politikës.
Zgjidhni sjelljen që dëshironi të shohë aplikacioni. Hedhja e heshtur është e përshtatshme kur nuk doni të zbuloni politikën, dhe gabimi i menjëhershëm është më i mirë kur përdoruesit duhet të kuptojnë pse një destinacion nuk është i disponueshëm. Përzierja e llojeve në një rrjet prodhon tiketa mbështetjeje që përshkruajnë të njëjtën politikë si tre defekte të ndryshme.
Mos supozoni se çdo zë hedhjeje është i këmbyeshëm kur diagnostikoni një lidhje. Teksti i gabimit, koha dhe kapja e paketave ndryshojnë, dhe lloji i rrugës në tabelë ju tregon se cilën po shikoni. manuali i ip-route rendit llojet dhe sjelljen e tyre në gabim.
Si krahasohet me një kill switch
Një kill switch është filtrim paketash: një rregull firewall që hedh poshtë trafikun dalës që do të dilte jashtë tunelit. Rruga blackhole është një vendim përcjelljeje i marrë më herët në stivë. Të dyja mund të ndalin trafikun, por shohin gjëra të ndryshme dhe humbasin raste të ndryshme.
| 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 |
Mbulimi është vendi ku krahasimi ka rëndësi. Një firewall mund të përputhë pronarin, portën ose ndërfaqen dhe të bllokojë një aplikacion duke e lënë pikën fundore të arritshme; një rrugë nuk mundet. Anasjelltas, një rrugë mund të dërgojë një parashtesë të tërë në hedhje pa u ngarkuar asnjë filtër paketash, gjë e dobishme në një sistem minimal.
AllowedIPs i WireGuard është rrugëzim me çelës kriptografik, jo firewall. Vendos cilat parashtesa destinacioni pranohen në ndërfaqe, dhe një profil që rendit vetëm nënrrjetin e tunelit thjesht i lë destinacionet e tjera rrugës së paracaktuar të zakonshme. Prandaj profilet e tunelit të plotë përdorin 0.0.0.0/0 dhe prandaj wg-quick instalon gjithashtu rregulla firewall kur mundet.
Mbajeni pikën fundore të tunelit jashtë hedhjes
Adresa e jashtme e pikës fundore duhet të mbetet e arritshme përmes ndërfaqes fizike. Një hedhje që kap edhe atë adresë pengon shtrëngimin e duarve të dalë, dhe tuneli nuk ngrihet kurrë, gjë që duket si dështim VPN dhe jo si politikë rrugëzimi. Kontrolloni rrugën drejt pikës fundore para dhe pas ndryshimit.
Qasja e administrimit i përket të njëjtit rishikim. Nëse rruga e vetme drejt ruterit ose klientit është tuneli, një hedhje tepër e gjerë mund t'ju kyçë jashtë makinës që do t'ju lejonte ta hiqni. Mbani një rrugë jashtë brezit të dokumentuar, një konsolë ose një kthim të sinkronizuar.
IPv6 ka nevojë për zërin e vet dhe rishikimin e vet. Një projekt që hedh IPv4 në blackhole dhe lë IPv6 në rrugën e paracaktuar rrjedh pikërisht trafikun që politika synonte të ndalte, dhe gabimi është i padukshëm në një provë vetëm me IPv4.
Vendoseni në faza me një kohëmatës dhe një kthim
Aplikoni rrugën me heqje automatike të shkurtër, që një gabim të mos mbijetojë një rindezje. Komandat më poshtë përdorin një interval dokumentacioni; zëvendësojeni me parashtesën që projekti juaj hedh vërtet:
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/8Komanda e dytë duhet të raportojë rrugën blackhole dhe tabelën nga e cila erdhi. E treta planifikon heqjen brenda një minute, që është kohë e mjaftueshme për të konfirmuar politikën dhe mjaft e shkurtër për t'u rikuperuar nga një gabim në një host të largët. Pasi sjellja të konfirmohet, bëjeni zërin të përhershëm përmes të njëjtit menaxhim konfigurimi që zotëron rrugët e tjera.
Mbylleni ndryshimin duke regjistruar parashtesën, tabelën, familjen e adresave dhe metodën e kthimit. Hedhja është një përjashtim i qëllimshëm në projektin e rrugëzimit, dhe inxhinieri tjetër duhet të dijë se çfarë trafiku duhej ndalur përpara se të vendosë nëse ende i përket aty.