Ha levantado el túnel, el temporizador de renovación de claves va descontando y ambas direcciones siguen marcando cero paquetes. Ese par de cifras no dice que el par haya rechazado su túnel: una CHILD SA instalada con contadores inactivos es el estado normal de una asociación con la que todavía no ha coincidido nada. El trabajo consiste en demostrar que un paquete debería haber coincidido y después localizar el punto en el que abandonó la ruta que describen los selectores. Hágalo una vez, en orden, y mantenga la petición idéntica entre ejecuciones.

Qué demuestra realmente un contador a cero

Una CHILD SA es un par de selectores más las claves y los SPI que cifran el tráfico que cae dentro de esos rangos. Instalarla solo significa que ambos pares acordaron esos rangos y las claves derivadas; el núcleo la mantendrá durante horas sin que llegue un solo paquete. Por eso la pregunta nunca es si el túnel existe, sino si algún paquete de su prueba cayó dentro de los rangos que negociaron los dos pares. Si no cayó ninguno, los contadores se quedan a cero y la asociación caduca sin usarse al final de su vida.

Esa distinción cambia qué inspecciona primero. Una propuesta rechazada, un fallo de autenticación o una IKE SA moribunda aparecen en el registro o en la lista de SA, no como un cero silencioso. Un túnel que negocia limpiamente y luego queda inactivo apunta en cambio a la coincidencia, el enrutamiento o el origen del tráfico de prueba.

Envíe un flujo que pueda describir antes de enviarlo

Elija un destino dentro de la subred protegida y abra una conexión nueva hacia él; una página que cargó hace una hora puede servirse desde la caché, y una respuesta cacheada nunca toca el túnel. Después anote cuatro valores mientras la petición aún es hipotética: la dirección de origen que vinculará la aplicación, el destino, la familia de direcciones y el nombre o par de selectores de la hija que está observando. Ese registro es lo que convierte un contador plano en una afirmación comprobable.

La dirección de origen es el valor que la gente omite y es el que más a menudo rompe la prueba. Un portátil con una dirección cableada, una dirección Wi-Fi y una dirección de túnel puede vincular cualquiera de ellas según la consulta de ruta, y solo una puede estar dentro del rango negociado. Use una herramienta que le permita fijar el origen, como ping -I 10.1.0.5 10.2.0.9 o curl --interface 10.1.0.5, para que el paquete no pueda elegir en silencio otra dirección. Cuando la ejecución fijada mueve los contadores y la no fijada no, ha encontrado un problema de enrutamiento y no un problema de IPsec.

Qué cifras leer y dónde viven

En Linux, ip -s xfrm state imprime cada asociación con una línea lifetime current: cuyo total de bytes y de paquetes pertenece solo a esa SA, seguida de una línea stats: para los contadores de repetición y de errores. En un par con strongSwan, swanctl --list-sas muestra una línea in y una línea out por cada hija instalada, y cada una termina con un recuento de bytes y de paquetes; las herramientas stroke más antiguas llaman al mismo par bytes_i y bytes_o. Lea las dos direcciones por separado, porque la que se quedó plana es el hallazgo. Sumarlas oculta justo la asimetría que busca.

Ambas vistas son por asociación, así que una renovación instala un par de SPI nuevo y su línea base vuelve a cero sin que nada esté roto. Anote el SPI que está observando antes de que dispare el temporizador de renovación, o comparará una SA nueva con una cifra antigua. Si la salida sube mientras la entrada se queda plana, el selector coincidió y la respuesta nunca volvió, lo que traslada la investigación al reenvío del par y a su propia política. La documentación de configuración de IKEv2 de strongSwan cubre el ciclo de vida de la SA hija y el momento de la renovación que hay detrás de esas cifras.

El punto de observación es una variable distinta del origen del paquete. Una descarga por hardware puede incrementar los contadores de la asociación mientras una captura de software en la interfaz no muestra nada, porque los paquetes descargados se saltan el gancho donde se asienta la captura, y la entrada puede divergir de la misma manera. Cuando ambos no coinciden, use los contadores para responder si algo coincidió y la captura para responder cómo era el paquete.

Ruta, selectores y dónde nació el paquete

Compare tres cosas una al lado de otra: la ruta que elige el núcleo para su destino, la política que dirige el tráfico hacia el túnel y el par de selectores que negoció la hija. ip route get 10.2.0.9 from 10.1.0.5 nombra la interfaz y el origen que usaría el núcleo, que a menudo no es el par que usted supuso. ip xfrm policy muestra las plantillas y los selectores instalados localmente, mientras que swanctl --list-sas muestra lo que aceptó el par. Una consulta que envía el paquete por la interfaz física no llega nunca a la política, así que los contadores no pueden moverse.

Las discrepancias llegan en varias formas que desde un contador parecen idénticas. Un destino IPv6 fuera de un selector IPv4, una dirección de origen de la subred equivocada y una política más estrecha que la hija producen el mismo cero. Corrija primero la causa más estrecha, porque ensanchar un selector solo para mover una cifra cambia lo que el túnel protege.

Luego está el origen del paquete, la trampa que una puerta de enlace pone a su propio operador. El tráfico que genera la propia puerta de enlace se compara con la política de salida, mientras que un paquete que reenvía para un cliente se compara con la política de reenvío, así que un ping desde la máquina puede tener éxito en una ruta que ningún cliente toma nunca.

Un cambio reversible y un informe que sobrevive a la revisión

Cambie un solo elemento, repita la petición idéntica y lea los mismos contadores. Borrar todas las reglas del cortafuegos o sustituir todos los selectores a la vez moverá una cifra y destruirá la evidencia que le dijo por qué. Si la segunda ejecución sigue mostrando cero, ha eliminado una hipótesis en lugar de desperdiciar la tarde.

Escriba el hallazgo en una forma que otra persona pueda reproducir: nombre de la hija, rangos aceptados, el origen que fijó, el destino que probó, la dirección que se quedó a cero y el SPI que estaba leyendo. Esa frase separa una asociación que nadie usó de una aplicación remota que recibió el tráfico y lo rechazó. Revierta el cambio cuando no movió los contadores y conserve el registro; la siguiente persona empieza donde usted se detuvo. No hubo que reconstruir nada del túnel para todo esto, y ese es el sentido de comprobar la coincidencia antes de tocar la configuración.

Artículos relacionados