El tráfico SSH sobre la conexión openvpn se congela cuando atrapo un archivo


13

Tengo una configuración de conexión openvpn (versión 2.1_rc15 en ambos extremos) entre dos cajas gentoo usando claves compartidas. funciona bien en su mayor parte. Yo uso mysql, http, ftp, scp sobre el vpn sin problemas. Pero cuando paso del cliente al servidor a través de la VPN, suceden cosas extrañas. Puedo iniciar sesión, puedo ejecutar algunos comandos. Pero si intento ejecutar una aplicación ncurses como top, o intento capturar un archivo, la conexión se detendrá y tendré que cortar la sesión ssh.

Puedo, por ejemplo, ejecutar "echo blah; echo.; Echo blah" y generará las tres líneas de texto sobre la sesión ssh bien. Pero si ejecuto "cat / etc / motd" la sesión se congelará en el momento en que presione enter.

Compilé openvpn 2.1.1 en mi mac y copié mi directorio de configuración desde mi cliente gentoo. Las sesiones de mac conectado y ssh funcionaron bien sin congelarse.

Luego lo compilé en mi caja gentoo anterior (kernel 2.6.26) que estoy retirando debido a un disco duro agotado, y ssh sobre él también funciona perfectamente.

¿Por qué falla en mi nueva caja gentoo? Intenté compilar tres núcleos diferentes en caso de que fuera así, pero aparte de eso no debería haber ninguna diferencia entre mis cajas gentoo más antiguas y más nuevas que se me ocurran.

¿Alguna sugerencia sobre lo que está mal?


En mi caso, ssh, cat, topy HTTP todo trabajado, pero scpno lo hizo (sería una muestra de 100% transferido y colgar allí). Bajar la MTU a 1380 lo arregló.
Roger Dueck

Respuestas:


13

huele a problema de mtu. intente reducirlo como se describe en el manual oficial o en esta publicación de blog .


2
Gracias. Traté de soltar la MTU de la interfaz de ethernet sin ningún resultado, pero agregué "fragment 1400" al cliente y al servidor como en la publicación que mencionaste funcionó muy bien. Me pregunto por qué la caja gentoo anterior funcionaba bien, pero la nueva no. Oh bueno, arreglado ahora. Gracias
Pawz Lion

Gracias. Esto solucionó mi problema. En la oficina tengo exactamente la misma configuración sin ningún problema, pero en mi casa, tiene algunos problemas en los casos. Si enrosco una url de un archivo con un - en ella, se cuelga. Sin un -, funciona: D, y si rompo largas líneas en el archivo, también funciona. No tiene sentido, pero gracias por la solución.
Peter

1
Observe la opción mtu-test de openvpn mencionada en la publicación del blog vinculada anteriormente. Esto probará empíricamente el mtu de tu túnel openvpn para que sepas qué valores usar al configurar fragment y mssfix y no solo adivinar. Vi muchas publicaciones en Internet estableciendo mtu / fragment en 1400, 1350, 1200, etc. ¡Pero cuando realmente ejecuté mtu-test, openvpn determinó que la MTU era 1189!
jdhildeb

7

Este comando lo resuelve por mí:

$ sudo ip link set dev tun0 mtu 1350 && echo ":)"

Puede verificar la configuración de tun0 con

$ ip a s

¡Salud!


1

Tuve un problema similar cuando OpenVPN se conectaba a más de 3g con mala cobertura y pérdida de pérdida de paquetes. Cambiar a TCP en lugar de UDP solucionó todos los problemas que tuve después de eso. Espero que esto te ayude.


Ejecutar una VPN sobre TCP viene con su propio conjunto de problemas. Es probable que solucionar el problema de MTU y permanecer con UDP funcione mejor que usar TCP.
kasperd el

Para el cambio de OP, solo MTU es probablemente una mejor sugerencia que cambiar de TCP a UDP. Si tiene una situación extremadamente mala, tanto que OpenVPN ni siquiera establecerá una conexión de conexión estable, entonces debería probar TCP en lugar de UDP. En casos 3G extremadamente malos, cambiar a TCP fue lo único que funcionó para mí.
Valentt

1

Sí, se trata de MTU.

Pero en mi caso tengo un problema aún más extraño. En casa, el uso de un cliente de Windows OpenVPN se congela. Pero en mi oficina funciona bien.

Traté de cambiarlo en mi módem ADSL sin éxito. En mi oficina uso un módem de cable y otro ISP.

Después de cambiar la MTU del adaptador TAP de Windows a 1200, funciona bien. Algo más alto que eso, se congelaría por mí.

ingrese la descripción de la imagen aquí


0

Utilicé tunnelblick en lugar de OpenVPN, y no pude encontrar una configuración para el valor de MTU. En cambio, encontré la interfaz para la VPN en la salida de ifconfig(en mi caso, fue utun0) y configuré la MTU manualmente de esta manera:

ifconfig utun0 mtu 576

Después de eso, mi sesión ssh ya no se congelaría.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.