¿SSH se cuelga sobre OpenVPN? Mida primero la MTU de la ruta
El eco funciona y luego un listado bloquea la sesión para siempre. Sondee el techo desde ambos lados antes de tocar mssfix, fragment o la MTU de la interfaz.
SSH conecta, aparece el indicador y la sesión muere en cuanto un comando devuelve algo voluminoso. El eco sigue funcionando un rato y luego la conexión expira mientras el cliente aún muestra el túnel como activo. Una sesión sana hasta que llegan datos suele chocar con un límite de tamaño y no con un defecto de SSH. Las comprobaciones siguientes están ordenadas para descartar primero la explicación más barata.
Lea la forma del fallo antes de tocar el perfil
Los paquetes pequeños pasan y los llenos no. Un indicador, un cartel o una pulsación de tecla caben sin problema; un listado de directorio, una descarga o un bloque pegado no. El tamaño en que cambia el comportamiento es la pista, no el hecho de que SSH sea el programa implicado.
El mecanismo es el descubrimiento de la MTU de la ruta, que depende de la retroalimentación. TCP elige un tamaño de segmento y, cuando un enrutador del camino no puede reenviar el paquete resultante, se supone que debe decirlo con un mensaje ICMP. La encapsulación hace que el paquete exterior sea mayor que el interior, así que el tamaño útil dentro de un túnel siempre queda por debajo del enlace físico. Filtre esos mensajes ICMP en cualquier punto y el emisor nunca recibe la corrección, sigue enviando segmentos llenos y el paquete exterior se descarta sin aviso.
Mida el techo desde ambos lados
Compare la MTU del túnel con el enlace físico antes de cambiar cualquiera de los dos. Un túnel que copió el valor físico ya le ha dicho dónde vive la discrepancia.
Sondee desde dentro del túnel con una petición que prohíba fragmentar, bajando la carga útil hasta que vuelvan respuestas. El argumento de tamaño solo cuenta la carga útil, así que la cifra que funciona siempre queda por debajo de la MTU de la interfaz. Sume de nuevo los tamaños de las cabeceras si necesita la cifra de la interfaz.
ip link show tun0
ping -M do -s 1380 10.9.0.1Repita la prueba contra la dirección pública del servidor desde fuera del túnel. Si las pruebas grandes también fallan allí, el límite está en el camino al servidor y ninguna opción del túnel lo moverá. Esa comparación le evita ajustar un cliente que nunca fue el problema. Anote los dos resultados antes de abrir un archivo de configuración.
mssfix y fragment hacen trabajos distintos
mssfix limita el tamaño de segmento que las conexiones TCP dentro del túnel anuncian durante su saludo. Es la palanca correcta para SSH, HTTPS y copias de archivos, por eso el bloqueo suele desaparecer en cuanto se define. No toca en absoluto las cargas útiles UDP.
Un túnel que también transporta un servicio UDP puede seguir fallando después de arreglar SSH, y ese resultado confunde a quien supone que una opción lo cubre todo.
fragment es el otro mecanismo y una herramienta distinta. Divide los paquetes sobredimensionados antes de la encapsulación, solo se aplica al transporte UDP, añade sobrecarga por datagrama y está documentado como último recurso para un descubrimiento roto. Los dos ajustes deben coincidir en los extremos que terminan el túnel. Un lado que limita mientras el otro fragmenta produce avisos en el registro y un comportamiento que nadie puede predecir a partir de los archivos.
Bajar la MTU de la interfaz es la opción burda
Reducir la MTU de la interfaz en ambos extremos es el instrumento burdo. Dice a cada emisor interno un número más pequeño, lo que funciona, y carga ese coste a todo el tráfico en lugar de a los flujos TCP que lo necesitan.
Elíjala cuando el túnel transporte tráfico que no puede limitar, o cuando el cliente sea un aparato cuyo perfil no controla. Aplíquela de forma simétrica y anote el valor junto al perfil. Un cambio aplicado a medias es peor que ninguno, porque parece una solución.
Vuelva a probar con la transferencia que se colgó
Reconecte para que se carguen los ajustes, abra una conexión nueva y repita el comando que se congeló. El tamaño de segmento se negocia en el saludo, así que una sesión que sobrevivió a la reconexión aún lleva el valor viejo. Un ping es una mala prueba aquí, porque todo el fallo es que pasan los paquetes pequeños. Use el listado, la descarga o el pegado que se rompió.
Si el bloqueo persiste con un tamaño menor, mire en otro sitio: un cortafuegos con estado que expire el flujo, una dirección duplicada o una ruta que se desplaza al reconectar. Anote el tamaño de la prueba que falló y el ajuste que cambió, porque ese par es lo que hace útil el informe siguiente.