Como acelerar una conexión VPN muy lenta
Introducción
En los tiempos que corren, es habitual en algunas empresas tener un túnel VPN para poder conectarse desde casa a la oficina de una forma segura. En este tutorial vamos a ver como se puede acelerar dicho túnel. El tutorial esta pensado para Linux pero se puede extrapolar fácilmente a Windows utilizando los comandos equivalentes (que yo no se cuáles son, ni ganas tengo de investigarlos ;-P ).
Uno de los protocolos más usados para montar VPNs es el PPTP. Este protocolo PPTP es totalmente inseguro (ya ha sido vulnerado e incluso hay una aplicación que lo descifra) pero se sigue usando todavía bastante. Le pasa lo que al WEP y, en menor medida, al WPA en conexiones WiFi (que también son inseguros pero todo el mundo los usa).
Nosotros vamos a ver que podemos hacer cuando un túnel VPN PPTP va excesivamente lento aunque no se cae la conexión nunca.
Diagnóstico
Para saber si nuestro caso es el mismo que el explicado en este tutorial, debemos comprobar si se nos presentan los siguientes síntomas:
- Las conexiones web van más o menos bien, aunque a veces se quedan colgadas peticiones.
- Las conexiones telnet/ssh van bien durante un rato, hasta que se cuelgan y no vuelven a responder.
- Es imposible transferir ficheros grandes porque las transferencias se quedan colgadas.
- El ping funciona bien e incluso la respuesta es rápida.
- Si vemos el fichero /var/log/syslog aparecen mensajes abundantes de pptp diciendo que se han perdido paquetes.
Explicación
El problema de que la VPN vaya lenta en este caso que nos atañe es que la capa TCP/IP no fragmenta los paquetes que se envían por la red. Esto hace que el servidor al otro lado del túnel VPN los descarte y, al final, se pierden paquetes y se queda todo cuajado.
El parámetro que fija el tamaño máximo de paquete a partir del cual TCP/IP lo fragmenta es la MTU (Maximum Transfer Unit). Este es uno de esos parámetros que se dan en los cursos de TCP/IP y que se olvidan al salir por la puerta. Se supone que la MTU dice cual es el paquete mayor que puede enviar la red subyacente a TCP/IP sin fragmentar. Normalmente, se usan como MTU valores entre 1400-1500 dependiendo de si estamos usando una conexion Ethernet o WiFi. Y normalmente funcionan bien. Sin embargo las VPNs PPTP suelen ser muy exquisitas y se lían con este tamaño. Hay que reducirlo.
Solución
La solución es tan simple como reducir el valor de la MTU. Pero ¡ojo!, tampoco hay que bajarlo mucho que entonces enviaremos muchos paquetes y tambien puede ir lento. ¿Como determinamos, entonces, el valor óptimo? Usando el comando entre los comandos: ping.
Ejecutamos el siguiente comando para determinar el tamaño máximo de MTU:
ping maquinita -M do -s 1024
Donde sustituiremos «maquinita» por la dirección IP de una máquina que este al otro lado del tunel VPN. Los parámetros «-M do» y «-s 1024» le dicen a ping que informe sobre la fragmentación de paquetes y que use un tamaño de paquete de 1024 bytes, respectivamente. Lo que tenemos que hacer es ir ejecutando el comando con distintos tamaños de paquete hasta que demos con el mayor valor que no se fragmenta. Para saber si un tamaño se ha fragmentado nos fijaremos en que el ping no diga algo como:
From 192.168.1.200 icmp_seq=1 Frag needed and DF set
Si dice eso, es que el paquete se ha fragmentado y deberemos bajar el valor del parametro «-s» hasta que no lo diga.
Para finalizar, una vez que hemos averiguado cual es la máxima MTU que podemos fijar, ejecutaremos el comando «ifconfig» para cambiar el valor del parámetro:
ifconfig ppp0 mtu 1024
Cambiando «ppp0» por la interfaz de nuestro túnel VPN y «1024» por la MTU que hayamos calculado. Además es recomendable añadir esta sentencia a los scripts que se ejecutan despues de montar la VPN (esto ya dependerá de que cliente VPN utiliceis). Yo utilizo KVPNC como cliente VPN y en el diálogo de Preferencias, abajo del todo, hay una sección de «Ejecución de comandos» para antes y después de conectar/desconectar.
Ok, es un buen aporte…. ya que tropiezo con todo esto … pues estaba jalando una base de datos pero aunq no se perdian paquetes, lo cierto es q existe una gran lentitud y respuesta del aplicativo que tengo…. ahora la duda q tengo es hasta cuanto puedo disminuir el valor de la MTU ya que el mio lo puse a 1024, se ha mejorado pero ha sido leve…. no se cual es problema por que mi Internet tiene un ancho de bada de 1mega. Gracias.
A mi me configuraron una vpn para tener inter en mi pc, solo q esta demasiado lento cuando le ping http://www.google.com me dice q el promedio es de 800ms cuando deberia ser maximo de 150ms, como podria arreglar eso o simplemente no es posible….yo no se nada hacerca de configurarla
Hola una consulta cuanto de velocidad deberiamos tener como minimo para que el internet no este lento usando VPN
Hola una consulta cuanto de velocidad deberiamos tener como minimo para que el internet no este lento usando VPN
Tengo un inconveniente… cuando activo la vpn… al momento de imprimir se hace muy lenta la impresion y si desactivo la vpn ay imprime rapido.. como me podrian ayudar.. cual seria el paso a seguir… de antemano quedo agradecido…
aja muy bonito lo suyo pero se loe olvido decir como ejecutar comandos y en donde
hay una forma de conectarse a yoga vpn de manera rapida? aunque sea pagando?
Usen vpn de pago para que sea rapido men, como HMA, VYPER, ETC. La velocidad no se reduce lo que se reduce es el tiempo de respuesta del servidor :).
aja
En el caso de slowdns apk se conose la forma de no perder estos paketes fracmentados ayudadme