Lea una línea de estado que dice Security Associations (1 up, 0 connecting) y parece un informe de un túnel que funciona. Dos subredes pasan tráfico por él al mismo tiempo, así que el número parece mentir. No miente; cuenta asociaciones IKE, y una de ellas puede alojar varias hijas. Lea los inventarios antes de tocar una propuesta o una ruta.

Por qué el titular y el tráfico no coinciden

La salida antigua de stroke llama a su total asociaciones de seguridad y lo deriva del gestor de asociaciones IKE. Cada asociación IKE establecida aporta una, sin importar cuántas CHILD SA haya debajo. Un solo padre IKEv2 suele llevar varias hijas, una por par de selectores de tráfico, y los selectores negociados de una hija pueden cubrir más de una dirección o prefijo. Por tanto, el número de direcciones de su configuración no guarda una relación fija con el número del titular.

La salida moderna a veces muestra un total en lugar de la antigua formulación “up”, y un demonio gestionado por swanctl no se rige en absoluto por los ajustes antiguos de stroke. No dé por sentada ni la formulación ni la regla de conteo entre versiones.

Compare tres inventarios antes de cambiar nada

Empiece por lo que está cargado, luego por lo que está negociado, luego por lo que realmente mueve paquetes. Son tres preguntas distintas y cada una tiene su propio comando.

swanctl --list-conns
swanctl --list-sas

La primera lista las definiciones de conexión que el demonio aceptó. La segunda lista las asociaciones IKE establecidas con sus hijas, y ahí es donde aparece la jerarquía real. Una definición presente en un archivo pero ausente de la primera lista nunca se cargó, y ninguna cantidad de reintentos del iniciador lo arreglará. Si en cambio ejecuta la interfaz antigua, la pareja equivalente es ipsec statusall y la misma lista de swanctl, según qué complemento posea la configuración. No mezcle herramientas entre dos demonios en un mismo host y espere una única respuesta coherente.

swanctl --list-sas --raw | head -40
ip -s xfrm state

La forma sin procesar mantiene visibles los identificadores y los selectores para comparar, y la lista de estado del núcleo muestra qué cree la pila que ha instalado. Cuando el demonio y el núcleo no coinciden, o el demonio se reinició en torno a una hija existente, o el objeto del núcleo se eliminó por debajo.

Lea la jerarquía, no el total

Un padre establecido ilustrativo con dos hijas parece un solo nodo con dos hijas debajo, cada una etiquetada con su propio estado y modo. Vuelque la salida real y cuente las hijas usted mismo en lugar de leer un resumen que alguien pegó de un panel.

swanctl --list-sas
swanctl --list-conns --raw | grep -A4 'accounting'

Un padre con dos hijas instaladas es un túnel sano de dos subredes. Un padre con una hija instalada y otra ausente es otra situación, y los selectores de la hija que falta son lo que hay que comparar con la propuesta del lado remoto. Durante la renovación de claves, una hija antigua y su reemplazo pueden aparecer juntas durante una ventana breve. Guarde la marca de tiempo con la instantánea, porque un conteo tomado a mitad de la renovación parece duplicación y uno tomado después parece pérdida.

Cargado, instalado y tráfico que pasa

Una hija en estado instalado tiene parámetros negociados y una entrada en el núcleo. Pero no necesariamente ha transportado un paquete: los selectores pueden ser más estrechos que el tráfico que espera, y una ruta puede enviar ese tráfico a otro sitio antes de que el túnel lo vea. Envíe un flujo que coincida con los selectores negociados desde un host autorizado, y luego lea los contadores de la hija en lugar del titular. Un contador que se queda en cero mientras genera tráfico coincidente apunta al enrutamiento o a la política, no a IKE.

swanctl --initiate --child accounting
swanctl --list-sas --raw | grep -E 'bytes|packets'

Iniciar una hija con nombre es una acción deliberada con un resultado visible, y separa “la conexión está inactiva porque nadie la pidió” de “la conexión no puede levantarse”. Una política de trampa a demanda se comporta exactamente como el primer caso, así que lea el ajuste de inicio de la conexión antes de llamarlo fallo.

Cuando el conteo es realmente erróneo

Si falta una definición en el inventario cargado, mire la carga de la configuración y qué instancia del demonio se ejecuta. Si está cargada pero nunca negocia, compare propuestas, contexto de autenticación y selectores con el par, una hija a la vez. Cambie un elemento por intento y anote el identificador que cambió. Revertir una propuesta es trivial cuando sabe cuál es; es adivinar tras tres ediciones que nunca se separaron.

Corrija primero la lectura equivocada. La mayoría de los informes de un segundo túnel “que falta” acaban con dos hijas instaladas bajo un solo padre, y lo único que alguna vez estuvo roto era la línea de resumen en la que la gente confiaba en lugar de la jerarquía.

Artículos relacionados