Verbesserung der OpenVPN-Leistung


9

Ich habe versucht, meine OpenVPN-Leistung zu verbessern, und dies ist mein aktuelles Setup:

 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

KLIENT:

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

Ich habe einige Änderungen an MTU und MSSFIX vorgenommen, die ich im Web gefunden habe.

Gibt es Kerneländerungen, die ich vornehmen könnte? Dies ist eine CentOS 6.x-Box. Ich habe ein paar Sachen für BSD gefunden, aber nichts, was für Linux funktioniert hat.

Ich weiß, dass TCP langsamer als UDP ist, aber ich muss in der Lage sein, wie SSL-Verkehr auszusehen, um durch eine Firewall im Netzwerk zu gelangen.

Andere Ideen?

PING an einen anderen Client im Netzwerk, in den ich RDP einbinde.

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

Gibt es Möglichkeiten, die Leistung zu verbessern oder den Ping zu verringern?

EDIT: Würde das Festlegen der Fragmentierungseinstellung einigen helfen?


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.Bitten Sie Ihren Netzwerkadministrator, den openvpn-Port bei der Arbeit zu öffnen. In diesem Zusammenhang kann diese Frage, wie sie ist, gegen die Bestimmungen der FAQ verstoßen, die Licensing, legal advice, and *circumvention of security or policy*ich klarstellen möchte.
Prateek61

1
Es ist nichts Illegales daran. Dies ist nur die einzige Möglichkeit, remote auf meine eigenen Systeme zuzugreifen. :)

2
Ich habe mehr darüber gesprochen, die Firewall-Richtlinie an jedem Ort zu umgehen. Warum können Sie den Netzwerkadministrator nicht bitten, den Port zu öffnen? Ich habe nicht wirklich über die Legalität gesprochen, sondern eher über die Umgehung der Sicherheitspolitik.
Prateek61

Vielleicht würde sshuttle besser für Sie für tcp-over-tcp vpn funktionieren
ptman

Antworten:


12

Kurze Antwort: deaktivieren comp-lzo.

Mir ist klar, dass dies ein alter Beitrag ist, aber ich hatte auch eine schlechte OpenVPN-Leistung. Ich hatte alles versucht, die MTU eingestellt, die snd- und rcv-Puffer gewechselt, mss-Klemmung, wie Sie es nennen. Die CPU-Auslastung war vernachlässigbar.

Aus einer Laune heraus habe ich die Komprimierung deaktiviert ( comp-lzovom Client und vom Server entfernt) und die Leistung um das 2-4-fache erhöht.

Bei comp-lzoaktivierter Funktion lag meine maximale Leistung bei 25 bis 30 Mbit / s, und ohne diese erreichte ich 120 Mbit / s (meine Internetverbindungsgeschwindigkeit).

Server ist ein Xeon E5-2650, Client ist Core i5-3320M. Beide laufen unter OpenVPN 2.3.10, AES-256-CBC, SHA512. Mein Intel Chromebook hat auch meine Internetgeschwindigkeit maximiert. Die Leistung auf meinen Android-Clients hat sich verdoppelt (14 Mbit / s -> 30 Mbit / s) und entspricht der IKEv2-Tunnelgeschwindigkeit.


5

TCP wird / viel / langsamer als UDP sein, verursacht durch das TCP-over-TCP- Problem. Grundsätzlich ist TCP auf Paketverlust / Überlastung angewiesen, um Verbindungsparameter zu identifizieren, und bei Ihren TCP-over-OpenVPN-Verbindungen tritt keine dieser Verbindungen auf. Aber Sie haben gesagt, das ist keine Option.

Sie können auch die mtu-discOption ausprobieren, um automatisch die optimalen MTU-Einstellungen für Ihre Verbindung zu ermitteln. An verschiedenen Stellen gibt es leichte Abweichungen, z. B. bei der MTU-Einstellung von OpenVPN, einschließlich der Größe des Ethernet-Headers. [ 1 ]

Ihre tun-mtuEinstellung ist enorm, da bei einem 65-KB-Paket viele Latenzprobleme über das Internet auftreten (IPv4-Jumbo-Pakete haben eine Größe von etwa 9000 Byte und funktionieren hauptsächlich in lokalen Netzwerken). Versuchen Sie stattdessen etwas unter 1460, wie 1300, um festzustellen, ob MTU Ihr Problem ist.


2
Vielen Dank, das hat mein Problem gelöst, dass eine Postgresql-Abfrage über OpenVPN funktioniert. Es funktionierte beim Abfragen einer einzelnen Spalte, jedoch nicht für die gesamte Spalte. Anscheinend wurde dies durch die Standard-MTU-Größe von 1500 verursacht. Das Einstellen auf 1300 hat geholfen!
Christian Benke

2

Auch wenn dies etwas spät sein mag, können Sie versuchen, was ich getan habe:

Entfernen Sie alle mit MSS, MTU usw. verbundenen Optionen

Führen Sie einen Port-Scan in Ihrer Einrichtung durch und wählen Sie einen UDP-Port aus. Im Allgemeinen sollten 53 GRE / 123-NDP-Ports geöffnet sein:

Fügen Sie diese Zeilen Ihrer Serverkonfiguration hinzu (siehe hier ).

#possible bandwidth increase
sndbuf 393216
rcvbuf 393216
push "sndbuf 393216"
push "rcvbuf 393216"

Ich verstehe diese Einstellungen nicht vollständig, aber sie haben sicherlich geholfen, einige sagen, es hilft sehr, meiner Erfahrung nach hat es meinen Durchsatz um +/- 30% erhöht

Starten Sie den Server an einem dieser Ports, und Sie sollten bereit sein: P.

Hoffe das hilft!


9
-1 für zu viel Vodoo und nicht verstehen, was die Dinge tatsächlich tun. Ich finde es unverantwortlich, dann ehrlich etwas zu empfehlen.
Preexo

0

sndbuf und rcvbuf korrigieren eine ALTE Einstellung in Linux / Unix / OpenVPN von den Einwähltagen an, um für langsamere Einstellungen zu optimieren, obwohl das Betriebssystem für schnellere optimiert ist

sndbuf / rcvbuf, das auf 0 gesetzt ist, verwendet einfach die Einstellungen des Betriebssystems

push wird verwendet, um sicherzustellen, dass der Client richtig eingestellt ist, aber dort benötigen Sie einen Wert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.