Un paquet surt d'un portàtil, no arriba mai a la passarel·la VPN i cap comptador del tallafoc es mou. La taula d'encaminament ja havia decidit el destí del paquet: una entrada blackhole hi va coincidir i el nucli el va descartar abans que cap interfície el veiés. Aquest comportament és útil quan una destinació ha de fallar tancada, però és una acció d'encaminament amb un abast estret. Tractar-lo com un interruptor d'emergència complet és on fallen els dissenys.

Què coincideix realment amb l'acció de descartar

Una consulta d'encaminament tria una taula i, després, el prefix coincident més llarg dins seu. Una ruta blackhole és una entrada normal l'acció de la qual és descartar, així que només afecta els paquets que haurien triat aquesta entrada després de tota la decisió. Canvieu la taula amb una regla de política o afegiu un prefix més específic, i el descart ja no s'aplica.

Per això l'abast d'un blackhole és exacte i fàcil d'enunciar: cobreix el prefix, a la taula, per a aquella família d'adreces. No cobreix una destinació que guanyaria una altra taula, i no cobreix IPv6 només perquè el prefix IPv4 es descarti.

ip route get mostra la decisió abans que desplegueu res, incloent-hi la taula i el tipus de ruta. Llegir aquesta sortida és més ràpid que deduir d'una sol·licitud fallida quina regla o prefix ha actuat.

Blackhole no és el mateix que unreachable o prohibit

Linux ofereix tres tipus de ruta semblants al descart, i es diferencien en què observa l'emissor. Un blackhole descarta el paquet sense resposta, així que el client veu un temps d'espera exhaurit. Una ruta unreachable retorna un missatge ICMP unreachable, així que la connexió falla de seguida amb un error d'amfitrió o de xarxa. Una ruta prohibit retorna un error de prohibició administrativa, que s'acosta més a un rebuig deliberat de la política.

Triï el comportament que vol que vegi l'aplicació. Un descart silenciós és adequat quan no voleu revelar la política, i un error immediat és millor quan els usuaris han d'entendre per què una destinació no està disponible. Barrejar els tipus per una xarxa genera tiquets de suport que descriuen la mateixa política com tres avaries diferents.

No assumeixi que tota entrada de descart és intercanviable quan diagnostica una connexió. El text de l'error, el moment i la captura de paquets difereixen, i el tipus de ruta a la taula us diu quin esteu mirant. El manual d'ip-route llista els tipus i el seu comportament davant d'errors.

Com es compara amb un interruptor d'emergència

Un interruptor d'emergència és filtratge de paquets: una regla del tallafoc que descarta el trànsit de sortida que sortiria fora del túnel. Una ruta blackhole és una decisió de reenviament presa abans a la pila. Tots dos poden aturar el trànsit, però veuen coses diferents i s'escapa casos diferents.

MechanismWhat it blocksWhat it missesHow failure looks
Blackhole routeDestinations matching the prefix and tableOther tables, other address families, traffic with a different routeSilent timeout
Firewall kill switchEgress not bound to the tunnel interfaceRules that are too broad can break the endpoint or DHCPDropped packets with counters
WireGuard AllowedIPsDestinations not routed into the interfaceTraffic that never enters the interface at allNo tunnel route, direct egress

La cobertura és on la comparació importa. Un tallafoc pot coincidir amb el propietari, el port o la interfície i pot bloquejar una aplicació mentre el punt final continua sent accessible; una ruta no. A l'inrevés, una ruta pot enviar un prefix sencer a un descart sense cap filtre de paquets carregat, cosa útil en un sistema mínim.

AllowedIPs de WireGuard és encaminament per clau criptogràfica, no un tallafoc. Decideix quins prefixos de destinació s'accepten a la interfície, i un perfil que només llista la subxarxa del túnel deixa simplement les altres destinacions a la ruta per defecte ordinària. Per això els perfils de túnel complet fan servir 0.0.0.0/0 i per això wg-quick també instal·la regles de tallafoc quan pot.

Manteniu el punt final del túnel fora del descart

L'adreça exterior del punt final ha de romandre accessible per la interfície física. Un descart que també captura aquesta adreça impedeix que l'encaixada de mans surti, i el túnel no s'aixeca mai, cosa que sembla una fallada de VPN més que una política d'encaminament. Comproveu la ruta del punt final abans i després del canvi.

L'accés de gestió pertany a la mateixa revisió. Si l'únic camí cap al router o el client és el túnel, un descart massa ampli us pot deixar fora de la màquina que us permetria treure'l. Manteniu una ruta fora de banda documentada, una consola o una reversió programada.

IPv6 necessita la seva pròpia entrada i la seva pròpia revisió. Un disseny que envia IPv4 a un blackhole i deixa IPv6 a la ruta per defecte filtra exactament el trànsit que la política volia aturar, i l'error és invisible en una prova només d'IPv4.

Implanteu-ho amb un temporitzador i una reversió

Apliqueu la ruta amb una eliminació automàtica curta perquè un error no pugui persistir després d'un reinici. Les ordres següents fan servir un rang de documentació; substituïu-lo pel prefix que el vostre disseny descarta realment:

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

La segona ordre hauria d'informar de la ruta blackhole i de la taula d'on prové. La tercera programa l'eliminació d'aquí a un minut, que és prou de temps per confirmar la política i prou curt per recuperar-se d'un error en un amfitrió remot. Un cop confirmat el comportament, feu l'entrada persistent mitjançant la mateixa gestió de configuració que posseeix les altres rutes.

Tanqueu el canvi registrant el prefix, la taula, la família d'adreces i el mètode de reversió. Un descart és una excepció deliberada al disseny d'encaminament, i el proper enginyer ha de saber quin trànsit havia d'aturar abans de decidir si encara hi pertany.

Articles relacionats