Bucle de la ruta predeterminada de WireGuard: encuentre la ruta del extremo
Una ruta predeterminada devuelve los propios paquetes cifrados del túnel a su interior. Lea la ruta del extremo, añada una ruta de host y después verifique y revierta.
La interfaz se levanta, la configuración del par parece correcta y ningún handshake llega a completarse. Añadir una ruta predeterminada a través del túnel es el paso que suele provocarlo: la misma tabla de rutas decide ahora adónde deben ir los propios paquetes cifrados del túnel, y la respuesta que produce vuelve a entrar en el túnel. Nada puede transportar el paquete exterior que transportaría el interior, así que la conexión se detiene antes de empezar. La reparación es pequeña, pero tiene un orden, y la verificación importa más que la edición.
Confirme el bucle antes de cambiar una ruta
Lea la dirección actual del extremo del par y luego pregunte a la pila de enrutamiento adónde iría un paquete a esa dirección. Si la respuesta nombra la interfaz del túnel, el bucle está confirmado y no hace falta más diagnóstico. Guarde ambas salidas en el registro de cambios antes de tocar nada, porque la comparación posterior a la reparación son los mismos dos comandos. Un bucle no es sutil una vez visto; la dificultad es que la interfaz parece sana mientras ocurre.
sudo wg show wg1 endpoints
ip route get 198.51.100.20
ip rule show
Incluya las reglas de política en esa captura. Una ruta predeterminada que parece correcta en la tabla principal todavía puede perder frente a una regla que selecciona otra tabla para el tráfico marcado o no marcado, y el bucle reaparecerá con una tabla de rutas que parece correcta.
Lea la ruta del extremo, no la ruta del túnel
La ruta del extremo es la que toman los datagramas cifrados hasta la dirección pública del par, y debe permanecer fuera del túnel mientras el túnel exista. La ruta del túnel es todo lo que se permite transportar al par. Esas dos rutas comparten una tabla de rutas, y por eso exactamente una sola entrada comodín puede colapsarlas una dentro de otra. Separar el tráfico del túnel del propio transporte del túnel es todo el problema de diseño, y cada herramienta compatible lo resuelve en algún punto de forma algo distinta.
Compruebe ambas familias de direcciones por separado si la interfaz lleva las dos. Una exclusión IPv4 que funciona no dice nada sobre si el extremo IPv6 sigue siendo alcanzable, y una configuración mixta puede parecer que funciona hasta que se selecciona la dirección IPv6 del par.
Restaure la ruta del extremo con un solo cambio coherente
Existen dos enfoques compatibles, y mezclarlos es como una configuración que funciona se vuelve impredecible. El primero es dejar que la herramienta que posee la interfaz gestione todo el túnel: wg-quick tiene un manejo dedicado para un rango de par predeterminado que instala una tabla separada, reglas de política y una marca de socket, lo que mantiene los paquetes exteriores fuera del túnel. Deje esa maquinaria intacta en lugar de reproducir la mitad a mano. Una configuración que mezcla una ruta predeterminada añadida a mano con un gestor que ya instala marcas y reglas suele fallar tras reconectar, cuando el gestor reescribe el estado que el paso manual daba por supuesto.
El segundo es un diseño manual en el que el extremo recibe una ruta de host explícita a través de la puerta de enlace física. Añada esa ruta antes de la predeterminada, reemplace en lugar de añadir para que una entrada obsoleta no pueda ganar, y confirme la consulta después.
sudo ip route replace 198.51.100.20/32 via 192.0.2.1 dev eth0
ip route get 198.51.100.20
sudo ip route add default dev wg1
Verifique y luego conserve una forma de volver
Una marca de tiempo de handshake que avanza es la primera prueba, y es más fuerte que una interfaz que simplemente existe. Sígala con una prueba de aplicación a través del túnel, luego baje la interfaz a propósito y confirme que el host vuelve a un estado utilizable en lugar de mantener una ruta predeterminada que apunta a nada. Ese último paso es el que la gente se salta, y es el que decide si un reinicio dejará la máquina varada.
sudo wg show wg1 latest-handshakes
sudo wg-quick down wg1
ip route show default
ip route get 198.51.100.20
Antes de todo esto, guarde el estado de enrutamiento actual y asegúrese de que hay una vía de entrada que no dependa del túnel: una consola, una dirección de gestión fuera de banda o un colega en el sitio. Una máquina remota que pierde su ruta predeterminada no se puede recuperar por la conexión que acaba de perder, y el paso más seguro del runbook es el que se toma antes del primer comando.