Un host VPN responde en una interfaz y se niega a devolver las respuestas por el túnel, y la ruta predeterminada parece correcta. Aquí es donde la tabla principal deja de ser toda la historia. Linux puede seleccionar una tabla de enrutamiento por paquete mediante reglas de política, y es posible que la VPN haya instalado una. Lea las reglas antes de tocar la ruta predeterminada.

El orden importa: primero las reglas, después la tabla que selecciona cada regla.

Lea las reglas por orden de prioridad

Ejecute ip rule show y lea de arriba abajo. El número de prioridad controla el orden de evaluación, y un número menor se comprueba antes. La regla predeterminada en 32766 suele ser la última que importa. Si la lista es larga, guárdela en un archivo antes de cambiar nada.

Para cada regla, anote la prioridad, la coincidencia (origen, marca, interfaz o destino) y la tabla a la que hace referencia. Una regla sin una tabla utilizable es un callejón sin salida, no una ruta.

Haga lo mismo con IPv6 usando ip -6 rule show. Una política que solo existe en la familia IPv4 deja la otra familia en la tabla principal.

Lea la tabla que selecciona cada regla

Use ip route show table <name or number> para cada tabla referenciada. Compare sus rutas con la interfaz y el siguiente salto que espera. Una tabla vacía o incompleta explica un fallo que la tabla principal no puede.

La tabla principal puede seguir conteniendo la ruta predeterminada, y eso está bien. Si una regla envía su flujo primero a la tabla 51820, la ruta predeterminada principal es irrelevante para ese paquete.

Busque el nombre de la tabla en /etc/iproute2/rt_tables si el número no le resulta familiar. Esa búsqueda lleva un segundo y evita un desvío largo.

Averigüe quién instaló la regla

NetworkManager, wg-quick y otros scripts pueden instalar reglas dinámicamente. Borrar una en tiempo de ejecución puede deshacerse en la siguiente reconexión. Revise la configuración del gestor antes de añadir una regla competidora.

wg-quick, por ejemplo, añade una regla marcada y una tabla para las direcciones permitidas del túnel. Esa regla es la razón por la que el tráfico a esas direcciones evita la ruta predeterminada principal. Si la elimina sin cambiar la configuración, el siguiente arranque la restaurará.

Conserve la ruta externa del extremo y el acceso de gestión mientras revisa. No vacíe todas las reglas en una puerta de enlace remota activa para simplificar la salida. Una sesión de gestión que sobrevive al cambio forma parte de la prueba.

Pruebe el contexto de origen que importa

Un ip route get genérico responde a una pregunta distinta de la del flujo de la aplicación. Añada la dirección de origen, y la marca si la VPN usa una, para ver el camino que toma el paquete real. Pruebe un destino incluido y uno excluido con el mismo contexto de origen. Luego repita para IPv6 si el host ejecuta pila dual.

Tras una corrección aprobada, vuelva a ejecutar las mismas dos consultas y compárelas. Mantenga un registro de la regla prevista, la tabla y cuánto sobrevive la regla a un reinicio. Ese registro es lo que hace explicable el siguiente reinicio del servicio en lugar de misterioso. La página del manual de ip-rule documenta los selectores de coincidencia y la sintaxis de las tablas.

Artículos relacionados