Ruta blackhole fronte a interruptor de emerxencia VPN: que fai cada un
Unha ruta blackhole descarta o tráfico coincidente e impón un camiño pechado ante un fallo. Compare o seu alcance e os seus puntos cegos cun interruptor baseado no filtrado de paquetes.
Un paquete sae dun portátil, nunca chega á pasarela VPN e ningún contador do cortalumes se move. A táboa de rutas xa decidira o destino do paquete: unha entrada blackhole coincidiu con el e o núcleo descartouno antes de que o vise calquera interface. Ese comportamento é útil cando un destino debe fallar pechado, pero é unha acción de encamiñamento cun alcance estreito. Tratalo como un interruptor de emerxencia completo é onde fallan os deseños.
Que coincide realmente coa acción de descartar
Unha consulta de ruta escolle unha táboa e logo o prefixo coincidente máis longo dentro dela. Unha ruta blackhole é unha entrada normal cuxa acción é descartar, así que só afecta os paquetes que terían escollido esa entrada despois de toda a decisión. Cambie a táboa cunha regra de política ou engada un prefixo máis específico, e o descarte xa non se aplica.
Por iso o alcance dun blackhole é exacto e fácil de enunciar: cobre o prefixo, na táboa, para esa familia de enderezos. Non cobre un destino que gañaría outra táboa, e non cobre IPv6 só porque se descarte o prefixo IPv4.
ip route get mostra a decisión antes de despregar nada, incluída a táboa e o tipo de ruta. Ler esa saída é máis rápido que deducir dunha solicitude fallida que regra ou prefixo actuou.
Blackhole non é o mesmo que unreachable ou prohibit
Linux ofrece tres tipos de ruta parecidos ao descarte, e difiren no que observa o emisor. Un blackhole descarta o paquete sen resposta, así que o cliente ve un tempo de espera esgotado. Unha ruta unreachable devolve unha mensaxe ICMP unreachable, así que a conexión falla axiña cun erro de host ou de rede. Unha ruta prohibit devolve un erro de prohibición administrativa, que se achega máis a un rexeitamento deliberado da política.
Escolla o comportamento que quere que vexa a aplicación. Un descarte silencioso é axeitado cando non quere revelar a política, e un erro inmediato é mellor cando os usuarios necesitan entender por que un destino non está dispoñible. Mesturar os tipos nunha rede xera tickets de soporte que describen a mesma política como tres avarías distintas.
Non supoña que toda entrada de descarte é intercambiable cando diagnostica unha conexión. O texto do erro, o momento e a captura de paquetes difiren, e o tipo de ruta na táboa dille cal está mirando. O manual de ip-route enumera os tipos e o seu comportamento ante erros.
Como se compara cun interruptor de emerxencia
Un interruptor de emerxencia é filtrado de paquetes: unha regra do cortalumes que descarta o tráfico de saída que sairía fóra do túnel. Unha ruta blackhole é unha decisión de reenvío tomada antes na pila. Ambas poden deter o tráfico, pero ven cousas distintas e fallan en casos distintos.
| 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 |
A cobertura é onde importa a comparación. Un cortalumes pode coincidir co propietario, o porto ou a interface e pode bloquear unha aplicación mentres o punto final segue sendo accesible; unha ruta non. Á inversa, unha ruta pode enviar un prefixo enteiro a un descarte sen que se cargue ningún filtro de paquetes, o que resulta útil nun sistema mínimo.
AllowedIPs de WireGuard é encamiñamento por clave criptográfica, non un cortalumes. Decide que prefixos de destino se aceptan na interface, e un perfil que só enumera a subrede do túnel deixa os demais destinos á ruta predeterminada normal. Por iso os perfís de túnel completo usan 0.0.0.0/0 e por iso wg-quick tamén instala regras de cortalumes cando pode.
Manteña o punto final do túnel fóra do descarte
O enderezo exterior do punto final debe seguir sendo accesible pola interface física. Un descarte que tamén captura ese enderezo impide que o saúdo inicial saia, e o túnel nunca se levanta, o que parece un fallo de VPN máis que unha política de encamiñamento. Comprobe a ruta cara ao punto final antes e despois do cambio.
O acceso de xestión pertence á mesma revisión. Se o único camiño cara ao router ou ao cliente é o túnel, un descarte demasiado amplo pode deixalo fóra da máquina que lle permitiría quitalo. Manteña unha ruta fóra de banda documentada, unha consola ou unha reversión programada.
IPv6 necesita a súa propia entrada e a súa propia revisión. Un deseño que descarta IPv4 nun blackhole e deixa IPv6 na ruta predeterminada filtra exactamente o tráfico que a política pretendía deter, e o erro é invisible nunha proba só de IPv4.
Implanteo cun temporizador e unha reversión
Aplique a ruta cunha eliminación automática breve para que un erro non persista tras un reinicio. Os comandos seguintes usan un rango de documentación; substitúao polo prefixo que o seu deseño descarta realmente:
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/8O segundo comando debería informar da ruta blackhole e da táboa da que provén. O terceiro programa a eliminación dentro dun minuto, que é tempo suficiente para confirmar a política e o bastante curto para recuperarse dun erro nun host remoto. Unha vez confirmado o comportamento, faga a entrada persistente mediante a mesma xestión de configuración que posúe as outras rutas.
Pecha o cambio rexistrando o prefixo, a táboa, a familia de enderezos e o método de reversión. Un descarte é unha excepción deliberada no deseño de encamiñamento, e o seguinte enxeñeiro necesita saber que tráfico debía deter antes de decidir se aínda pertence.