Trasa blackhole verzus VPN kill switch: čo robí každý z nich
Trasa blackhole zahadzuje zodpovedajúcu premávku a vynucuje uzavretú cestu pri zlyhaní. Porovnajte jej rozsah a slepé miesta s kill switchom založeným na filtrovaní paketov.
Paket opustí notebook, nikdy nedorazí k bráne VPN a žiadny počítadlo firewallu sa nepohne. Smerovacia tabuľka už rozhodla o osude paketu: záznam blackhole sa s ním zhodoval a jadro ho zahodilo skôr, než ho videlo akékoľvek rozhranie. Také správanie je užitočné, keď má cieľ zlyhať uzavretý, ale je to smerovacia akcia s úzkym rozsahom. Práve považovanie za úplný kill switch je miesto, kde sa návrhy pokazia.
Čoho sa akcia zahodenia vlastne týka
Vyhľadanie trasy vyberie tabuľku a potom najdlhší zodpovedajúci prefix v nej. Trasa blackhole je bežný záznam, ktorého akciou je zahodiť, takže ovplyvní len pakety, ktoré by tento záznam zvolili až po celom rozhodnutí. Zmeňte tabuľku pravidlom zásad alebo pridajte konkrétnejší prefix a zahodenie už neplatí.
Preto je rozsah blackhole presný a ľahko sa opisuje: pokrýva prefix, v tabuľke, pre tú rodinu adries. Nepokrýva cieľ, ktorý by vyhrala iná tabuľka, a nepokrýva IPv6 len preto, že sa zahadzuje prefix IPv4.
ip route get ukazuje rozhodnutie predtým, než čokoľvek nasadíte, vrátane tabuľky a typu trasy. Čítanie tohto výstupu je rýchlejšie než odhadovanie z neúspešnej požiadavky, ktoré pravidlo alebo prefix zabralo.
Blackhole nie je to isté ako unreachable alebo prohibit
Linux ponúka tri typy trás podobné zahodeniu a líšia sa v tom, čo odosielateľ pozoruje. Blackhole zahodí paket bez odpovede, takže klient vidí vypršanie času. Trasa unreachable vracia správu ICMP unreachable, takže spojenie rýchlo zlyhá s chybou hostiteľa alebo siete. Trasa prohibit vracia chybu administratívneho zákazu, čo je bližšie úmyselnému odmietnutiu zásad.
Vyberte správanie, ktoré má aplikácia vidieť. Tiché zahodenie je vhodné, keď nechcete prezradiť zásady, a okamžitá chyba je lepšia, keď používatelia potrebujú pochopiť, prečo je cieľ nedostupný. Miešanie typov v sieti vytvára tikety podpory, ktoré opisujú rovnaké zásady ako tri rôzne poruchy.
Nepredpokladajte, že každý záznam zahodenia je zameniteľný, keď diagnostikujete spojenie. Text chyby, časovanie aj zachytenie paketov sa líšia a typ trasy v tabuľke vám hovorí, na ktorý sa pozeráte. manuál ip-route uvádza typy a ich správanie pri chybe.
Ako si stojí proti kill switchu
Kill switch je filtrovanie paketov: pravidlo firewallu, ktoré zahadzuje odchádzajúcu premávku, ktorá by odišla mimo tunela. Trasa blackhole je rozhodnutie o preposielaní urobené skôr v zásobníku. Obe môžu premávku zastaviť, ale vidia rôzne veci a minú rôzne prípady.
| 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 |
Na pokrytí záleží najviac. Firewall môže porovnávať vlastníka, port alebo rozhranie a zablokovať aplikáciu, pričom koncový bod zostane dostupný; trasa to nevie. Naopak trasa môže poslať celý prefix do zahodenia bez načítania akéhokoľvek filtra paketov, čo sa hodí na minimálnom systéme.
AllowedIPs vo WireGuarde je kryptokľúčové smerovanie, nie firewall. Rozhoduje, ktoré prefixy cieľov sa do rozhrania prijmú, a profil, ktorý uvádza len podsiet tunela, jednoducho nechá ostatné ciele na bežnej predvolenej trase. Preto profily plného tunela používajú 0.0.0.0/0 a preto wg-quick tiež inštaluje pravidlá firewallu, keď môže.
Držte koncový bod tunela mimo zahodenia
Vonkajšia adresa koncového bodu musí zostať dostupná cez fyzické rozhranie. Zahodenie, ktoré túto adresu tiež zachytí, zabráni odchodu handshake a tunel sa nikdy nezodvihne, čo vyzerá ako porucha VPN, nie ako smerovacia zásada. Skontrolujte trasu ku koncovému bodu pred zmenou aj po nej.
Administrátorský prístup patrí do tej istej revízie. Ak je jedinou cestou k routeru alebo klientovi tunel, príliš široké zahodenie vás môže zamknúť mimo stroja, ktorý by vám umožnil ho odstrániť. Udržujte zdokumentovanú mimopásmovú trasu, konzolu alebo časovaný návrat.
IPv6 potrebuje vlastný záznam a vlastnú revíziu. Návrh, ktorý zahadzuje IPv4 do blackhole a necháva IPv6 na predvolenej trase, uniká presne tú premávku, ktorú mali zásady zastaviť, a chyba je neviditeľná v teste len pre IPv4.
Nasaďte to s časovačom a návratom
Použite trasu s krátkym automatickým odstránením, aby chyba neprežila reštart. Nižšie uvedené príkazy používajú dokumentačný rozsah; nahraďte ho prefixom, ktorý váš návrh skutočne zahadzuje:
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/8Druhý príkaz by mal hlásiť trasu blackhole a tabuľku, z ktorej pochádza. Tretí naplánuje odstránenie za jednu minútu, čo je dosť času na potvrdenie zásad a dosť krátke na zotavenie z chyby na vzdialenom hostiteľovi. Po potvrdení správania urobte záznam trvalým cez rovnakú správu konfigurácie, ktorá vlastní ostatné trasy.
Zmenu uzavrite zapísaním prefixu, tabuľky, rodiny adries a metódy návratu. Zahodenie je úmyselná výnimka v návrhu smerovania a ďalší inžinier musí vedieť, ktorú premávku malo zastaviť, než rozhodne, či tam ešte patrí.