El tráfico está protegido, el túnel está activo y entonces muere en la siguiente renovación de claves. Una ruta predeterminada por la interfaz XFRM describía el tráfico que quería proteger. También se tragó los paquetes necesarios para seguir protegiéndolo.

Los dos destinos implicados no son intercambiables. El enrutamiento tiene que decirlo explícitamente.

Adónde va realmente la búsqueda del par

Anote las reglas activas, la tabla que contiene la ruta XFRM y la dirección pública del par. Luego mire el camino que tomaría la conexión externa con su origen y marca reales. Un destino genérico no le dice nada sobre ese camino de control. Solo el origen y la marca reales dan una respuesta útil.

Una conexión inicial correcta también demuestra poco. El fallo suele aparecer después de que una instalación de ruta cambie la respuesta. El arranque funciona, pero la primera renovación no.

ip rule show
ip route show table 220
ip -4 route get 198.51.100.44 from 10.40.0.2
ip xfrm policy list

Si la búsqueda del par termina en la interfaz XFRM, los paquetes externos se enrutan hacia el túnel que ellos mismos construyen. Ese es el bucle, visible con un solo comando.

Opciones de exclusión en una puerta de enlace moderna

La documentación de strongSwan sobre VPN basada en enrutamiento plantea dos respuestas prácticas. Una marca IKE y ESP para que la regla que apunta a la tabla XFRM no coincida con ellos. La otra deja una ruta del par o una exclusión que la búsqueda todavía puede alcanzar.

Tome la que su conjunto de reglas pueda expresar sin efectos secundarios. La marca es limpia cuando el resto de la pila ya usa marcas. Es un peligro cuando la misma máscara significa otra cosa en otra regla. Ambos tipos de paquete necesitan el tratamiento de todos modos.

Marcar solo IKE deja los paquetes de datos en el camino capturado. Eso produce un túnel que hace el handshake y luego no transporta nada.

La marca es un bit del fwmark del paquete que nada más en la puerta de enlace reclama: 0x1 con máscara 0x1 es la elección habitual, y debe definirse en dos lugares para que la exclusión funcione. Charon la necesita en el socket de IKE, y los ajustes de marca de entrada y salida de la conexión hija necesitan el mismo valor para que los paquetes encapsulados también salgan marcados. Una máscara 0x1 en lugar de 0xffffffff deja libres los bits restantes, lo que importa cuando otro subsistema ya marca paquetes en el mismo host. Con ambos definidos, la regla se escribe como exclusión, de modo que los paquetes marcados se saltan la tabla que contiene la ruta XFRM y pasan a la tabla principal:

ip rule add not fwmark 0x1/0x1 lookup 220 pref 1000
ip -4 route get 198.51.100.44 from 10.40.0.2 mark 0x1

Luego lea la respuesta con la marca aplicada. Sin ella examina el camino que toma el tráfico protegido, que es lo contrario de la pregunta de esta sección.

Qué presupone la instalación automática sobre la compilación

Instalación automática de rutas para una interfaz XFRM depende de la versión de strongSwan y de su configuración. El ID de la interfaz, la política instalada y la asociación deben referirse todos a los objetos previstos. Una discrepancia se manifiesta como una ruta que apunta en silencio a un lugar real.

Copiar un número de tabla o una máscara de marca de otra puerta de enlace es como empiezan las colisiones. Compruebe primero qué la usa ya. Una colisión afecta al tráfico mucho más allá del túnel que quería cambiar, y el síntoma rara vez señala la copia.

Los cambios de dirección del par forman parte del diseño. Una ruta de host para la dirección de ayer no es un plan de recuperación del extremo, mientras que una marca sobrevive a ese cambio.

Vigile la primera renovación

Compruebe el camino externo después de instalar las rutas protegidas, no antes. Luego vigile la siguiente renovación y un intercambio de aplicación. El fallo suele aparecer en esa transición y no en el arranque.

ip -4 route get 198.51.100.44
sudo swanctl --list-sas
sudo tcpdump -ni any 'udp port 500 or esp'

Quitar temporalmente la ruta predeterminada protegida suele restaurar la conectividad. Ese resultado es diagnóstico, no definitivo.

El objetivo es una separación estable entre el tráfico interno y los paquetes externos que lo transportan. Escriba el mecanismo elegido y su tabla o marca en las notas de la puerta de enlace. De lo contrario, la siguiente persona que toque las reglas reintroducirá el bucle.

Artículos relacionados