Túneles VPN anidados: por qué el interior se atasca con paquetes grandes
Cada túnel gasta parte del presupuesto de paquetes de la ruta antes de que empiece el siguiente. Sume las cabeceras y la sesión interior falla con paquetes grandes.
El DNS resuelve, la sesión SSH se mantiene y entonces una subida grande se congela mientras un ping al mismo host sigue respondiendo. Esa división apunta al tamaño del paquete y no a un túnel roto. Los túneles anidados llegan a eso con tamaños que ninguno de los dos alcanzaría por separado. La sesión interior está bien; lo que ocurre es que se le entregan paquetes que ya no caben.
A dónde va realmente la MTU de la ruta
Cada encapsulación gasta bytes antes de que la capa siguiente tenga su turno. Una ruta Ethernet ofrece 1500 bytes al paquete exterior, y el túnel exterior toma su parte antes de que pueda direccionarse nada dentro. Un único valor de sobrecarga estimado estará mal exactamente en la cantidad que importa.
Enumere las capas en orden: ruta de acceso, transporte exterior, túnel exterior, transporte interior, túnel interior, aplicación. Cuente cada cabecera una vez y mantenga UDP separado de la cabecera y la etiqueta propias del túnel.
Dos capas de WireGuard, contadas una vez
Tome una ruta de acceso IPv4 con un túnel WireGuard dentro de otro. La capa exterior cuesta 20 bytes de IPv4, 8 de UDP y 32 por la cabecera de datos de WireGuard más su etiqueta de autenticación. Dentro de eso, el túnel interior necesita su propia cabecera IPv4 de 20 bytes y una cabecera UDP de 8 bytes antes de sus segundos 32 bytes de sobrecarga de WireGuard. Lo que queda aloja una cabecera IPv4, una cabecera TCP y los datos. Una ruta exterior IPv6 cuesta 40 en lugar de 20 y deja 1320.
| Layer | Bytes |
|---|---|
| Path MTU | 1500 |
| Outer IPv4 header | 20 |
| Outer UDP header | 8 |
| Outer WireGuard header and tag | 32 |
| Inner transport IPv4 header | 20 |
| Inner UDP header | 8 |
| Inner WireGuard header and tag | 32 |
| Innermost IPv4 header | 20 |
| TCP header | 20 |
| Payload that fits | 1340 |
La aritmética aterriza en 1340 bytes. Una sola capa con las mismas reglas deja 1400 para la carga útil TCP, que es 1500 menos 20, 8, 32, 20 y 20, y la diferencia de 60 bytes es exactamente la encapsulación interior que añade el segundo túnel.
Aplique 1400 a una ruta anidada y al túnel interior le faltan 60 bytes, de forma invisible hasta que un paquete sea lo bastante grande como para necesitarlos. El relleno y la opción de fragmentación propia de un protocolo vuelven a mover las cifras, así que confíe en la tabla.
MTU, MSS y fragmentación actúan en lugares distintos
La MTU de la interfaz limita lo que la interfaz emitirá, mientras que el clamping de MSS de TCP cambia lo que un par TCP está dispuesto a enviar. El clamping arregla las sesiones TCP y no hace nada por un datagrama UDP grande, que es como una solución parece exitosa para una aplicación y falla en silencio para la siguiente. La opción de fragmentación propia de un protocolo es una tercera palanca con sus propios fallos. La MTU de la interfaz es el primer movimiento habitual y el más burdo.
Los túneles puente y enrutados transportan tramas distintas, así que las cifras de otro despliegue rara vez se trasladan. El descubrimiento de MTU de ruta, descrito en RFC 8201, ayuda solo mientras se dejen pasar los mensajes ICMP de los que depende.
Encontrar la capa que se queda corta
Verifique cada túnel por separado antes de anidarlos, si los requisitos permiten una comparación. Una sonda de tamaño fijo lo resuelve: ping -M do -s 1472 -c 3 10.8.0.1 envía un paquete IPv4 completo de 1500 bytes dentro de esa capa. Añada la segunda capa y repita la misma sonda, para que cualquier fallo pertenezca a un cambio conocido.
Cuando una transferencia se atasca, cambie un parámetro documentado cada vez y anote el tamaño que falla. Compruebe también la ruta de vuelta, porque la recursión de rutas anidada puede imitar un problema de tamaño de paquete con la suficiente fidelidad como para costar una tarde. Una respuesta ICMP filtrada puede ocultar el límite real, así que la sonda importa más que el razonamiento.
Escriba el presupuesto donde lo encuentre la siguiente persona
Una tabla con una fila por capa sobrevive a una regla mnemotécnica. Téngala junto al diagrama del túnel para que nadie rehaga la aritmética bajo presión.
Más túneles significan más dependencias, así que un plan de reversión se gana su sitio junto al presupuesto. Si las cifras siguen sin cuadrar, mida la ruta en lugar de volver a adivinar. El objetivo es una cifra que pueda defender, no recordar.