TCP unter OpenVPN ist sehr langsam (tsg angehängt)

7

Ich habe ein sehr seltsames Problem mit OpenVPN.

Die meisten VPNs funktionieren einwandfrei, außer diesem. Hier bekomme ich eine sehr geringe Leistung von TCP-Verbindungen, aber die CPU-Auslastung ist gering (also kein CPU-Problem).

OpenVPN ist mit UDP, AES-256-CBC-Verschlüsselung, SHA256-Authentifizierung und ohne Komprimierung konfiguriert.

Hier sind einige Messungen, die ich mit iperf durchgeführt habe:

Netzwerkverbindung ohne VPN:

iperf -c external.ip result:300 - 500mbps (good)
iperf -c vpn.int.ip result: 20-30mbps (not good)

Die CPU-Auslastung an beiden Enden ist gering. OK, vielleicht formt oder filtert ein ISP die UDP-Pakete.

iperf -c external.ip -b 500M result: no packet loss

Hmm ... was ist, wenn ich den UDP-Stream über VPN erzwinge?

iperf -c vpn.int.ip -b 100M result: no packet loss
iperf -c vpn.int.ip -b 180M result: packet loss ~0.1%

Daher sollte meine VPN-Verbindung basierend auf den Ergebnissen mit UDP bis zu 180 MBit / s erreichen, dies ist jedoch nicht der Fall. Ich bekomme auch sehr seltsame Grafik mit tcptrace.

So läuft der gute Test ab (ohne VPN, mit externen IPs): TSG der externen Verbindung

Wie Sie sehen, bleiben die gesendeten Pakete in der Nähe der gelben Linie, was bedeutet, dass das Empfangsfenster fast voll bleibt. Dieser Teil des Diagramms befindet sich kurz vor dem Beginn der Verbindung. Später befinden sich die gesendeten Pakete praktisch über der gelben Linie.

Und diese Grafik bekomme ich von VPN: TSG der vpn'ed Verbindung

Aus irgendeinem Grund verhält sich der Absender hier so, als wäre das Fenster sehr klein, obwohl es groß ist (es spielt keine Rolle, auf was ich das Fenster eingestellt habe, habe versucht, die Standardeinstellung und 4 MB beizubehalten) und sendet die Pakete nur in kleinen Bursts.

Dies ist das erste Mal, dass ich eine solche Grafik sehe? Was könnte es verursachen? Einige UDP-Filter vom ISP, OpenVPN selbst, noch etwas?

BEARBEITEN: Das Ausführen des VPN mit TCP anstelle von UDP führt zu einem Durchsatz von 10 MBit / s.

Pentium100
quelle
Was passiert , wenn Sie den TCP - Transport mit OpenVPN verwenden (I seine die Vermittler vermuten Begrenzung UDP fließt - höchstwahrscheinlich als Verteidigung gegen Angriffe Verstärkung)
symcbean
Ich werde das versuchen, obwohl TCP in einem TCP-Tunnel normalerweise eine schlechte Idee ist. Iperf mit UDP (wie in der Frage gezeigt) erreicht jedoch ungefähr 500 MBit / s außerhalb von VPN und 180 MBit / s innerhalb von VPN.
Pentium100

Antworten:

3

Ich habe es gelöst. Oder besser gesagt, ich weiß, wie ich es schneller machen kann, aber ich weiß nicht, warum es langsam ist. Es scheint, dass die AES-Verschlüsselung TCP auf diesem bestimmten Server irgendwie stört und zu einer geringen Leistung führt. Wenn ich die Verschlüsselung beispielsweise auf 3des ändere (was langsamer ist, wie durch "openssl speed" angegeben), erhalte ich 150 MBit / s. Nach einigen Versuchen benutze ich jetzt Folgendes:

cipher camellia-128-cbc
auth sha1
tun-mtu 9000

Jetzt bekomme ich 300 MBit / s für einen einzelnen Stream und 450 MBit / s für mehrere Streams.

Pentium100
quelle
1
Es ist gut zu hören, ob es behoben ist, obwohl ich das ein bisschen mystisch sehe. Die Chiffre sollte mit solchen Problemen nichts anfangen. Ich denke, es war ein anderer Fehler in Ihrem System, den Sie jetzt versehentlich vermieden haben.
Peter - Wiedereinstellung Monica
1
@ PeterHorvath, sieht so aus. Aus irgendeinem Grund führt aes + tcp auf diesem bestimmten Server zu einer schlechten Leistung. Selbst die Verwendung der Komprimierung (iperf-Stream ist sehr komprimierbar) führt zu demselben Durchsatz (und geringerem Datenverkehr auf der externen Schnittstelle).
Pentium100