Pot blackhole proti stikalu VPN: kaj počne vsak
Pot blackhole zavrže ustrezni promet in vsili zaprto pot ob okvari. Primerjajte njen obseg in slepe pege s stikalom, ki temelji na filtriranju paketov.
Paket zapusti prenosnik, nikoli ne doseže prehoda VPN in noben števec požarnega zidu se ne premakne. Usmerjevalna tabela je že odločila usodo paketa: vnos blackhole se je ujemal z njim in jedro ga je zavrglo, preden ga je videl kateri koli vmesnik. Takšno vedenje je koristno, ko mora cilj odpovedati zaprto, vendar je to usmerjevalno dejanje z ozkim obsegom. Prav obravnavanje kot popolnega stikala je mesto, kjer se zasnove zmotijo.
Kaj dejanje zavrženja v resnici pokrije
Iskanje poti izbere tabelo, nato najdaljšo ujemajočo predpono v njej. Pot blackhole je običajen vnos, katerega dejanje je zavreči, zato vpliva le na pakete, ki bi ta vnos izbrali po celotni odločitvi. Spremenite tabelo s pravilom politike ali dodajte natančnejšo predpono in zavrženje ne velja več.
Zato je obseg blackhole natančen in ga je lahko opisati: pokriva predpono, v tabeli, za to družino naslovov. Ne pokriva cilja, ki bi ga dobila druga tabela, in ne pokriva IPv6 samo zato, ker je predpona IPv4 zavržena.
ip route get prikaže odločitev, preden karkoli uvedete, vključno s tabelo in vrsto poti. Branje tega izhoda je hitrejše od sklepanja iz neuspele zahteve, katero pravilo ali predpona je delovala.
Blackhole ni isto kot unreachable ali prohibit
Linux ponuja tri vrste poti, podobne zavrženju, in razlikujejo se po tem, kaj opazuje pošiljatelj. Blackhole spusti paket brez odgovora, zato odjemalec vidi potek časa. Pot unreachable vrne sporočilo ICMP unreachable, zato povezava hitro odpove z napako gostitelja ali omrežja. Pot prohibit vrne napako upravne prepovedi, kar je bližje namerni zavrnitvi politike.
Izberite vedenje, ki naj ga aplikacija vidi. Tiho zavrženje je primerno, kadar ne želite razkriti politike, in takojšnja napaka je boljša, kadar morajo uporabniki razumeti, zakaj cilj ni dosegljiv. Mešanje vrst v omrežju ustvari zahtevke za podporo, ki isto politiko opisujejo kot tri različne okvare.
Ne predpostavljajte, da je vsak vnos zavrženja zamenljiv, ko diagnosticirate povezavo. Besedilo napake, čas in zajem paketov se razlikujejo, vrsta poti v tabeli pa vam pove, katero gledate. priročnik ip-route navaja vrste in njihovo vedenje ob napaki.
Kako se primerja s stikalom
Stikalo je filtriranje paketov: pravilo požarnega zidu, ki zavrže odhodni promet, ki bi zapustil zunaj tunela. Pot blackhole je odločitev o posredovanju, sprejeta prej v skladu. Oba lahko ustavita promet, vendar vidita različne stvari in zgrešita različne primere.
| 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 |
Pokritost je tisto, kjer je primerjava pomembna. Požarni zid lahko ujame lastnika, vrata ali vmesnik in blokira aplikacijo, medtem ko končna točka ostane dosegljiva; pot tega ne more. Nasprotno, pot lahko pošlje celotno predpono v zavrženje brez naloženega filtra paketov, kar je koristno v minimalnem sistemu.
AllowedIPs v WireGuardu je usmerjanje s kriptografskim ključem, ne požarni zid. Odloča, katere predpone ciljev so sprejete v vmesnik, profil, ki navaja samo podomrežje tunela, pa druge cilje prepusti običajni privzeti poti. Zato profili polnega tunela uporabljajo 0.0.0.0/0 in zato wg-quick tudi namesti pravila požarnega zidu, kadar lahko.
Držite končno točko tunela zunaj zavrženja
Zunanji naslov končne točke mora ostati dosegljiv prek fizičnega vmesnika. Zavrženje, ki ujame tudi ta naslov, prepreči izhod rokovanja in tunel se nikoli ne dvigne, kar je videti kot okvara VPN, ne kot usmerjevalna politika. Preverite pot do končne točke pred spremembo in po njej.
Upravni dostop sodi v isti pregled. Če je edina pot do usmerjevalnika ali odjemalca tunel, vas lahko preširoko zavrženje zaklene izven stroja, ki bi vam omogočil, da ga odstranite. Ohranite dokumentirano izvenpasovno pot, konzolo ali časovno omejen povratek.
IPv6 potrebuje svoj vnos in svoj pregled. Zasnova, ki zavrže IPv4 v blackhole in pusti IPv6 na privzeti poti, uhaja točno tisti promet, ki naj bi ga politika ustavila, in napaka je nevidna v preskusu samo z IPv4.
Uvedite ga postopoma s časovnikom in povratkom
Uporabite pot s kratkim samodejnim odstranjevanjem, da napaka ne preživi ponovnega zagona. Spodnji ukazi uporabljajo dokumentacijsko območje; zamenjajte ga s predpono, ki jo vaša zasnova res zavrže:
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/8Drugi ukaz bi moral poročati o poti blackhole in tabeli, iz katere prihaja. Tretji načrtuje odstranitev čez eno minuto, kar je dovolj časa za potrditev politike in dovolj kratko za okrevanje po napaki na oddaljenem gostitelju. Ko je vedenje potrjeno, naredite vnos trajen prek istega upravljanja konfiguracije, ki ima druge poti.
Zaprite spremembo z zapisom predpone, tabele, družine naslovov in metode povratka. Zavrženje je namerna izjema v zasnovi usmerjanja in naslednji inženir mora vedeti, kateri promet naj bi ustavilo, preden odloči, ali še sodi tja.