Descarga a través de tunel OpenVPN Lenta



  • Buenas a todos, hoy tengo un problema de velocidad al intentar descargar un archivo de 1.5 GB a mi estación de trabajo (cliente) a traves del tunel Openvpn, ejecuto el comando SCP para traerme el archivo de uno de mis servidores que pasan atraves del firewall y atraves de la vpn. La descarga me la hace de 30 kbs cuando en realidad se tiene 100 mbs de subida y de bajada. Algo estoy haciendo mal en la configuracion de la vpn?
    Tengo configurado 1 fw con pfsense 2.4.2 con openvpn .
    les comparto la configuracion del servidor:

    General–
    Server mode: Remote access (SSL/TLS+User Auth)
    Device Mode: tun - Layer 3 Tunnel Mode
    Interface: WAN
    Local Port: 1194

    --Cryptographic settings
    TLS Configuration: Use a TLS KEY (Enabled)
    TLS Key Usage Mode: Tls Authentication
    DH Parameter Length: 4096 bit
    ECDH Curve: Use Default
    Encryption Algorithm: AES-256-CBC (256 bit key, 128 bit block)
    Enable NCP: Enable Negotiable Cryptographic Parameters (enabled)
    NPC Algorithms: AES-256-GCM - AES-128-GCM
    Auth digest algorithm: SHA1 (160 bit)

    --Tunnel Settings
    ipv4 tunnel network: x.x.x.x/X
    ipv4 local networks: x.x.x.x/X, y.y.y.y/Y
    Concurrent Connections: 100
    Compression: Adaptive LZO Compression
    Push Compression: Disabled
    type-of-service: disable
    inter-client communication: allow communication between clients connected to this server (enabled)
    Duplicate connection: Allow multiple concurrent connections from clients using the same common Name (enabled)

    --Client settings
    Dynamic IP: Allow connected clients to retain theri connections if their IP address changes (enabled)
    Topology: net30 -- Isolated /30 network peer client

    -- Advanced client settings
    Todo deshabilitado

    --Advanced Configuration:
    Send/Receive Buffer: default
    Verbosity level: default

    Nota: no tengo ningun tipo de limitadores en el Firewall pfsense.
    Saludos



  • En que hardware esta montado el pfsense?



  • Te estás conectando por VPN, o sea, INTERNET… ¿Acaso crees que si el cliente tiene una conexión de 1 mega va a utilizar los 100 de la VPN?  Eso no va a pasar y aparte de eso, debes tomar en cuenta otros factores.



  • Gracias por las respuestas.
    El pfsense se encuentra montado en un servidor dedicado
    power Edge R610
    48 GB ram
    procesador: 2 X Intel(R) Xeon(R) CPU          X5650  @ 2.67GHz de 6 cores c/u
    tarjetas de red de 1 Gb

    BrujoNic, en este caso mi estación de trabajo es el cliente, aqui tengo 100mb de bajada y 20 mb de subida. Aun asi al intentar traerme un archivo grande desde algún servidor a través de la VPN, este me maneja tasas de transferencia de Kbs.

    Por favor comparte conmigo esos factores que debo tomar en cuenta.
    Gracias



  • Factores a tomar en cuenta:
    Velocidad del cliente y del servidor.  Si la velocidad del servidor es inferior a la del cliente o viceversa, utilizará la velocidad más baja.
    Uso del internet tanto del cliente como del servidor.  Si en el cliente, el servidor o ambos, otras personas están usando internet, la velocidad va a decaer dependiendo del uso que le estén dando.
    Velocidad de las tarjetas de red, si tenes una conexión de alta pero la tarjeta de red no la soporta, se va a bajar.
    Modo de conexión.  Si el cliente se conecta de modo inalámbrico, no es estable como una conexión por cable.

    Eso son algunos factores, SOLO de conexión a internet.  Ahora, si todo eso lo tomaste en cuenta, debes revisar las reglas de pfsense en lo referente a conexiones VPN.

    No creo conveniente, ni recomendable, utilizar una VPN para pasar archivos tan grandes.  En ese caso, es mejor utilizar un programa de compresión como 7-zip, partir el archivo en fragmentos más pequeños y pasarlos.  En caso que se caiga la conexión, no vas a tener que volver a bajar todo desde cero.



  • Hay varios factores que pueden afectar. Uno de los más importantes es la gestión de la fragmentación y la MTU. La descarga comienza rápida y luego baja la velocidad? Entonces casi puedes apostar a un problema de MTU.

    Yo te recomendaría usar iperf3 para verificar el funcionamiento de la conexión extremo a extremo. Es un sistema fácil y rápido para detectar problemas y saber dónde están los límites.



  • Gracias por sus sugerencias, comenzare a probar iperf3 para ver si detecto algo que me ayude a solucionar esto.



  • Investigando un poco mas, me encontre con documentacion https://doc.pfsense.org/index.php/Low_Throughput_Troubleshooting creo que lo unico que se acerca a mi problema es con problemas MTU, en mis tarjetas de red del pfsense, el MTU es de 1500, quiero mencionar tambien que mis interfaces se encuentran con LAGG, 2 interfaces para la LAN y otras 2 interfaces para mi WAN. En la documentacion menciona que hay que jugar con los valores del MTU y con MSS clamping pero me da cosa porque son ambientes productivos, ademas de que las opciones MSS clamping son para TCP y mi vpn es por UDP por lo que pienso que no surtirá efecto (deberia usar openvpn por TCP?).

    Hay una parte que no entiendo la cual es:If the MTU on pfSense (default 1500), is higher than the MTU of the upstream link, it can result in packets being fragmented A que se refiere con mas alto que el MTU de upstram link???

    De igual forma analice la parte de VPN + MTU issues, pero solo hace referencia a ipsec.

    Las descargas que hago desde un servidor a mi estacion de trabajo a traves de OpenVPN siempre son lentas, al inicio y al final
    Estare realizando pruebas para encontrar el valor correcto de la MTU.
    Voy por buen camino?
    Saludos



  • Hay que tener en cuenta también que la conexión openVPN  [habitualmente] utilliza el interfaz WAN y que las condiciones de MTU de ese interfaz tambien se applican. Así, si la conexión WAN es de tipo PPPoE (la más habitual estos días), entonces la MTU máxima del interfaz WAN DEBE ser 1492. Si mandas paquetes mayores que eso van a ser descartados.

    Adicionalmente, sea openVPN o IPSec, los cifrados reducen el amaño máximo de los datos que pueden entrar en cada paquete ya que se tienen que añadir cabeceras de control. Así que, al final, la cantidad real de bytes suele ser menor.

    El camino correcto a sguir (si el problema es realmente la MTU) es aplicar los valores conocidos de MTU en los interfaces correspondientes (1500 está bien para la LAN si es ethernet) y luego probar el tamaño máximo que podemos enviar sin fragmentar. A partir de ahi realizar los ajustes necesarios y probar.


Log in to reply