Solución a la Congelación de Consola SSH o Terminal en Redes VPN: Ajuste de MTU

Artículos Guías Manuales Sistemas Linux Windows Binario 0

Las conexiones SSH o terminales que se congelan al trabajar a través de una VPN o una red que atraviesa un túnel VPN site-to-site pueden ser frustrantes y afectar la productividad. Una causa común de este problema es una configuración incorrecta del MTU (Maximum Transmission Unit). Este artículo explica cómo resolver este problema ajustando la MTU del túnel VPN o del host desde el que se está trabajando.

¿Por qué ocurre la congelación?

El MTU define el tamaño máximo de un paquete que puede ser enviado a través de la red. Si el tamaño de los paquetes es demasiado grande, pueden necesitar fragmentación, lo que puede llevar a una mayor latencia y pérdida de paquetes. En redes VPN, este problema es más frecuente debido al encapsulamiento adicional de los datos.

Cuando los paquetes se fragmentan o se pierden, las conexiones SSH o de terminal pueden congelarse porque la comunicación entre el cliente y el servidor se interrumpe o se ralentiza significativamente.

Solución: Ajuste del MTU

Modificar el MTU del túnel VPN o del host puede resolver estos problemas al asegurar que los paquetes sean transmitidos eficientemente sin necesidad de fragmentación.

Paso a Paso para Ajustar el MTU

1. Determinar el MTU óptimo

Antes de ajustar el MTU, es útil determinar el valor óptimo. Puedes usar el comando ping para probar diferentes tamaños de paquetes.

En Linux:

ping -c 4 -M do -s 1472 <dirección_ip>

En Windows:

ping -f -l 1472 <dirección_ip>

Ajusta el valor de 1472 hacia abajo si ves fragmentación (mensaje de error) hasta que encuentres el tamaño máximo de paquete que no requiere fragmentación. El valor de MTU será este tamaño más 28 bytes (encabezado de IP/ICMP).

2. Ajustar el MTU en el túnel VPN

En OpenVPN

Edita el archivo de configuración del servidor y/o cliente OpenVPN y añade:

tun-mtu <valor_mtu>

Reinicia el servicio OpenVPN para aplicar los cambios.

sudo systemctl restart openvpn@server
En IPsec (StrongSwan)

Edita la configuración en /etc/ipsec.conf y añade:

leftmtu=<valor_mtu>
rightmtu=<valor_mtu>

Reinicia el servicio IPsec:

sudo systemctl restart strongswan

3. Ajustar el MTU en el host

En Linux, usa ip o ifconfig para ajustar el MTU de la interfaz de red.

sudo ip link set <nombre_de_interfaz> mtu <valor_mtu>

o

sudo ifconfig <nombre_de_interfaz> mtu <valor_mtu>

En Windows, usa netsh:

netsh interface ipv4 set subinterface "Nombre de la Interfaz" mtu=<valor_mtu> store=persistent

Verificar el cambio

Después de ajustar el MTU, verifica el cambio y prueba la conexión SSH o de terminal.

En Linux:

ip link show <nombre_de_interfaz>

o

ifconfig <nombre_de_interfaz>

En Windows:

netsh interface ipv4 show subinterfaces

Ejemplo práctico

Supongamos que determinaste que el MTU óptimo es 1400. Para ajustar este valor en un túnel OpenVPN y en el host Linux, harías lo siguiente:

  1. Configurar OpenVPN:
    • Edita el archivo de configuración de OpenVPN y añade:

      tun-mtu 1400
    • Reinicia OpenVPN:

      sudo systemctl restart openvpn@server
  2. Configurar el host Linux:
    • Ajusta la MTU de la interfaz de red:

      sudo ip link set eth0 mtu 1400
    • Verifica el cambio:

      ip link show eth0

Conclusión

La congelación de conexiones SSH o terminales a través de una VPN puede ser resuelta ajustando la MTU. Este ajuste asegura que los paquetes de datos se transmitan sin fragmentación, mejorando la estabilidad y el rendimiento de la conexión. Si enfrentas problemas de congelación, sigue los pasos mencionados para determinar y configurar el MTU óptimo en tu túnel VPN y host.