Dos páginas de prueba no coinciden: una informa de la dirección del proveedor a través del túnel, la segunda informa de tu prefijo doméstico, y la conclusión obvia es que la VPN gotea. Esa conclusión se salta un paso, porque los dos informes ejercitaron dos decisiones de enrutamiento distintas y solo una de ellas debía entrar en el túnel. El hueco suele ser real, y es un problema de cobertura y no un túnel roto. Tres preguntas lo resuelven: qué flujo salió realmente, qué ruta eligió el núcleo para él y qué comportamiento pretendía el cliente.

Trabaja en ese orden. Responderlas fuera de orden produce una larga discusión sobre si el cliente está defectuoso cuando la respuesta real es que nunca se instaló una ruta IPv6.

Qué flujo salió realmente y por qué adaptador

Empieza con una prueba que nombre la familia que usó, y luego anota la aplicación, la red de acceso, el perfil vigente y si la conexión ofrece IPv6 siquiera. Esos cuatro hechos son lo que hace comparables dos ejecuciones, y el cuarto es el que la gente olvida: una red sin prefijo v6 no puede gotear v6, y una red que añade uno después cambia la respuesta.

Envía una petición por familia en lugar de cargar una página y leer su resultado. Una sola página puede mezclar recursos v6 y v4, un proceso en segundo plano puede comportarse distinto de la pestaña que tienes delante, y una respuesta en caché puede sobrevivir al cambio de red que intentas probar. Fija el destino que pruebas y anótalo, para que una repetición mida lo mismo.

Leer la ruta que eligió el núcleo

La tabla de rutas responde a la pregunta que el navegador no puede. Pregunta al sistema adónde iría un destino concreto, e incluye tanto las reglas de política como la ruta por defecto visible, porque cualquiera de las dos puede anularla:

ip -6 route get 2606:4700:4700::1111
ip -6 rule show
ip -6 route show table all

Un prefijo más específico es la razón habitual de que un destino quede fuera del túnel mientras todo lo demás permanece dentro, y una regla de política puede hacer lo mismo con más prioridad que cualquier ruta. Lee también la métrica, ya que dos entradas para el mismo prefijo se resuelven por métrica y no por su orden en pantalla. En Windows el listado equivalente es Get-NetRoute -AddressFamily IPv6, ordenado por métrica para que coincida con el orden de decisión. Una regla que parece correcta en la tabla puede perder igualmente frente a una regla de política con número más bajo, y por eso el listado de reglas pertenece al mismo vistazo que el listado de rutas.

De dónde viene la política IPv6 del cliente

Un cliente puede estar construido para llevar v6 por el túnel, para rechazarlo o para permitir una excepción con nombre, y esas tres intenciones producen tres resultados correctos distintos. Lee el perfil y la documentación del propio cliente antes de llamar fuga a una observación, porque un cliente que bloquea v6 mientras el sistema operativo sigue enviando descubrimiento de vecinos por el enlace físico se comporta como se diseñó.

Una aplicación excluida deliberadamente del túnel es un caso distinto de una familia que el túnel nunca transportó. Lo primero es una decisión sobre un programa, lo segundo es un hueco en la cobertura, y la reparación difiere en consecuencia. Lee la lista de programas excluidos del cliente antes de buscar una ruta que nunca debió existir.

Observación estrecha, cuando la tabla no concuerda

Cuando la consulta de ruta es ambigua, una observación de interfaz en el equipo puede resolverlo, pero solo si apunta a la pregunta. El tráfico hacia el propio extremo de la VPN cruzará el adaptador físico por diseño; lo que importa es si el flujo de la aplicación, dirigido a otro lugar por completo, aparece también ahí. Filtra la captura al destino que pruebas en lugar de recogerlo todo.

Una captura amplia expone mucho más tráfico personal del que requiere la única pregunta. También responde la pregunta con menos claridad, porque el flujo que te importa llega enterrado en un torrente de conexiones no relacionadas. Filtra al destino probado, detente tras un puñado de paquetes y borra la captura.

Tres formas de cerrar el hueco

Lleva la familia por el túnel, bloquéala en el cliente cuando el túnel no pueda transportarla, o registra una excepción deliberada con un responsable y una fecha de revisión. Cada una es defendible, y lo único indefendible es dejar la elección implícita, porque una elección implícita es exactamente lo que es la fuga. Si el túnel no tiene salida v6 alguna, rechazar v6 en el cliente es a la vez honesto y comprobable. Lo que importa es que la elección quede escrita donde la siguiente persona la encuentre, no inferida del comportamiento seis meses después.

Repite la comprobación tras una reconexión y tras cambiar de red, ya que una ruta instalada para el enlace anterior puede sobrevivir al cambio. Después anota el destino, la ruta seleccionada, la política del cliente y la familia que usó la prueba, para que la siguiente persona lea una decisión en vez de volver a deducirla. RFC 7359 documenta la fuga de doble pila como un problema de diseño y no como un error, y es la referencia que citar cuando alguien afirma que un túnel v4 que funciona lo cubre todo.

Artículos relacionados