He estado tratando de mejorar mi rendimiento OpenVPN y esta es mi configuración actual:
cat /etc/openvpn/server.conf
port 443 #- port
proto tcp #- protocol
dev tun
#tun-mtu 1500
tun-mtu-extra 32
#mssfix 1450
tun-mtu 64800
mssfix 1440
reneg-sec 0
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/easy-rsa/2.0/keys/server.key
dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
plugin /etc/openvpn/openvpn-auth-pam.so /etc/pam.d/login
#plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so /etc/pam.d/login #- Comment this line if you are using FreeRADIUS
#plugin /etc/openvpn/radiusplugin.so /etc/openvpn/radiusplugin.cnf #- Uncomment this line if you are using FreeRADIUS
client-to-client
client-cert-not-required
username-as-common-name
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 5 30
comp-lzo
persist-key
persist-tun
status 1194.log
verb 3
CLIENTE:
client
dev tun
proto tcp
remote 18.4.26.8 443
resolv-retry infinite
nobind
tun-mtu 64800
tun-mtu-extra 32
mssfix 1440
persist-key
persist-tun
auth-user-pass
comp-lzo
verb 3
Hice algunos cambios en MTU y MSSFIX de lo que encontré en la web.
¿Hay algún cambio en el kernel que pueda hacer? Esta es una caja de CentOS 6.x. Encontré algunas cosas para BSD pero nada que funcionó para Linux.
Sé que TCP es más lento que UDP, pero necesito poder parecer tráfico SSL para atravesar un firewall en la red.
¿Otras ideas?
PING a otro cliente en la red en la que realizo RDP.
Pinging 10.8.0.6 with 32 bytes of data:
Reply from 10.8.0.6: bytes=32 time=152ms TTL=128
Reply from 10.8.0.6: bytes=32 time=565ms TTL=128
Reply from 10.8.0.6: bytes=32 time=152ms TTL=128
Reply from 10.8.0.6: bytes=32 time=782ms TTL=128
Ping statistics for 10.8.0.6:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 152ms, Maximum = 782ms, Average = 412ms
¿Hay alguna forma de mejorar el rendimiento o dejar de hacer ping?
EDITAR: ¿Le ayudaría establecer la configuración de fragmentación?
I know TCP is slower then UDP but I need to be able to look like SSL traffic to get thru a firewall on the network.
¿Por qué no le pide a su administrador de red que abra el puerto openvpn en el trabajo? En una nota relacionada, esta pregunta tal como está puede violar los términos de las preguntas frecuentesLicensing, legal advice, and *circumvention of security or policy*
que aclararía.Respuestas:
Respuesta corta: deshabilitar
comp-lzo
.Me doy cuenta de que esta es una publicación antigua, pero también estaba sufriendo un bajo rendimiento de OpenVPN. Lo había intentado todo, ajustando la MTU, cambiando los búferes snd y rcv, sujeción mss, lo que sea. La carga de la CPU fue insignificante.
Por capricho, deshabilité la compresión (eliminada
comp-lzo
del cliente y del servidor) y el rendimiento aumentó 2-4x.Entonces, con
comp-lzo
habilitado mi rendimiento máximo fue de alrededor de 25-30 Mbit / s, y sin él alcancé 120 Mbit / s (mi velocidad de conexión a Internet).El servidor es un Xeon E5-2650, el cliente es Core i5-3320M. Ambos ejecutan OpenVPN 2.3.10, AES-256-CBC, SHA512. Mi Intel Chromebook también maximizó mi velocidad de internet. El rendimiento se duplicó en mis clientes Android (14 Mbit / s -> 30 Mbit / s), igualando la velocidad del túnel IKEv2.
fuente
TCP va a ser / mucho / más lento que UDP, causado por el problema de TCP sobre TCP . Básicamente, TCP se basa en la caída / congestión de paquetes para identificar los parámetros de conexión, y sus conexiones TCP sobre OpenVPN no experimentan ninguno de esos. Pero has dicho que no es una opción.
También puede probar la
mtu-disc
opción de descubrir automáticamente la configuración óptima de MTU para su conexión. Hay ligeros desajustes en diferentes lugares, como la configuración MTU de OpenVPN, incluido el tamaño del encabezado Ethernet. [ 1 ]Su
tun-mtu
configuración es enorme, ya que un paquete de 65 KB tendrá muchos problemas de latencia a través de Internet (los paquetes jumbo IPv4 tienen un tamaño de alrededor de 9000 bytes y funcionan principalmente en redes locales). Pruebe algo inferior a 1460, como 1300, para ver si MTU es su problema.fuente
Aunque esto puede ser un poco tarde, puede intentar lo que hice:
eliminar todas las opciones relacionadas con mss, mtu, etc.
haga un escaneo de puertos en su institución y seleccione un puerto UDP, generalmente deben abrirse 53 puertos GRE / 123 NDP:
Agregue estas líneas a la configuración de su servidor (ref aquí )
No entiendo completamente estas configuraciones, pero seguramente ayudaron, algunos dicen que ayuda mucho, en mi experiencia, aumentó mi rendimiento en +/- 30%
Inicie el servidor en uno de esos puertos y debería estar listo: P
¡Espero que esto ayude!
fuente
sndbuf y rcvbuf corrigen una configuración ANTIGUA en linux / unix / openvpn de los días de acceso telefónico para optimizar las configuraciones más lentas aunque el sistema operativo esté optimizado para las más rápidas
sndbuf / rcvbuf configurado en 0 simplemente usará la configuración del sistema operativo
push se usa para asegurarse de que el cliente esté configurado correctamente, pero allí necesita un valor.
fuente