Behebung der 70 %igen Verlangsamung der Übertragungsgeschwindigkeit über VPN im Vergleich zu SSH? (Getestet mit OpenVPN, IPSec/L2TP, OpenSSH, SoftEther)

Behebung der 70 %igen Verlangsamung der Übertragungsgeschwindigkeit über VPN im Vergleich zu SSH? (Getestet mit OpenVPN, IPSec/L2TP, OpenSSH, SoftEther)

Ich konfiguriere derzeit ein Site-to-Site-VPN zwischen zwei VPS, das sowohl ausgehende als auch eingehende Verbindungen erfordert. Es wird von einer Anwendung mit hoher Bandbreite verwendet, daher benötige ich die maximale Geschwindigkeit, die ich über die Verbindung erreichen kann.

Mit iperf3 erreiche ich über die Verbindung zuverlässig etwa 600 Mbit/s mit einem Ping von ca. 30 ms.

Über OpenSSH SCP erreiche ich etwa 260 Mbit/s, womit ich angesichts der zusätzlichen Verschlüsselung zufrieden bin.

Ich habe verschiedene VPN-Konfigurationen ausprobiert, hauptsächlich mit OpenVPN. Ich habe sndbuf/rcvbuf-Änderungen ausprobiert, keine Verschlüsselung, keine Komprimierung, aber ich bekomme immer noch im Allgemeinen nur 20 Mbit mit UDP und 40 Mbit mit TLS auf Port 443.

Ich habe auch IPSec/L2TP, SoftEther (obwohl ich damit nur etwa 500 Kbit/s erreicht habe) und den in OpenSSH integrierten Tun-Adapter eingerichtet. Keiner davon konnte mir eine iperf-Geschwindigkeit über 40 Mbit/s bieten.

Ich habe die Festplatte und die CPU jedes Knotens genau beobachtet und keiner von beiden war ausgelastet. Ein Server ist deutlich weniger leistungsstark, erreicht aber während des Tests immer nur eine CPU-Auslastung von ca. 30 %.

Ich bin irgendwie ratlos. Ich brauche etwas, das Geschwindigkeiten über 200 Mbit/s erreichen kann (was, wie ich sicher weiß, möglich ist) und das nur von einer virtuellen Schnittstelle zur anderen routen muss. Theoretisch ist SoftEther dafür da. Soll ich weiterhin versuchen, SoftEther zu reparieren, um überhaupt tatsächliche Geschwindigkeiten zu erreichen?

Gibt es Vorschläge für weitere Aspekte zum Testen/Debuggen/Konfigurieren, um eine solide Tunnelschnittstelle zum Laufen zu bringen? Gibt es eine andere Software, die beim Weiterleiten der eingehenden Verbindungen hilft, sodass ich einen normalen Proxy-ähnlichen Tunnel verwenden kann? Danke!

Antwort1

Angesichts des in den Kommentaren geposteten Links habe ich beschlossen, mir diesen OpenVPN-Artikel noch einmal anzusehen: https://community.openvpn.net/openvpn/wiki/Gigabit_Networks_Linux

Mit einigen der Einstellungen aus diesem Artikel konnte ich durchschnittlich ~150 Mbit/s erreichen. Hier sind die Schritte, die ich zur Konfiguration meines OpenVPN unternommen habe, um dies zu erreichen.

Dies sind die Schritte, die ich in der Reihenfolge ausprobiert habe:

  • Standardeinstellungen (mit AES-128): 14,7 Mbit/s
  • Aktivieren Sie mssfix 0, tun-mtu 6000, Fragment 0: 16,3 Mbit/s
  • Einstellung „keine Verschlüsselung“: 17,7 Mbit/s
  • Zurück zu AES-128, tun-mtu 9000: 22,0 Mbit/s
  • tun-mtu 18000: 27,2 Mbit/s
  • tun-mtu 36000: 37,2 Mbit/s
  • tun-mtu 60000: 44,9 Mbit/s
  • Einstellung 'Chiffre BF-CBC' (kein großer Unterschied): 44,0 Mbit/s
  • sndbuf 393216, rcvbuf 393216 auf Server und Client: 67,1 Mbit/s
  • Erhöhte Größe der Linux UDP Recv-Puffern: 102 Mbit/s
  • iperf3 [...] -P 10 um 10 parallele Verbindungen zu aktivieren: SUM:135 Mbit/s – 170 Mbit/s

Hier ist eine abschließende iperf3-Ausgabe:

64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=37.2 ms

$ iperf3 -c 10.8.0.1 -p 5201
Connecting to host 10.8.0.1, port 5201
[  4] local 10.8.0.2 port 59230 connected to 10.8.0.1 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  10.3 MBytes  86.5 Mbits/sec    2    632 KBytes
[  4]   1.00-2.00   sec  12.0 MBytes   101 Mbits/sec    7    569 KBytes
[  4]   2.00-3.00   sec  11.4 MBytes  95.8 Mbits/sec    7    443 KBytes
[  4]   3.00-4.00   sec  10.9 MBytes  91.2 Mbits/sec    5    443 KBytes
[  4]   4.00-5.00   sec  11.7 MBytes  98.4 Mbits/sec    2    759 KBytes
[  4]   5.00-6.00   sec  13.0 MBytes   109 Mbits/sec    6    822 KBytes
[  4]   6.00-7.00   sec  13.5 MBytes   113 Mbits/sec    5    696 KBytes
[  4]   7.00-8.00   sec  13.9 MBytes   117 Mbits/sec    6    696 KBytes
[  4]   8.00-9.00   sec  11.8 MBytes  98.9 Mbits/sec    5    696 KBytes
[  4]   9.00-10.00  sec  12.5 MBytes   105 Mbits/sec    4    696 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   121 MBytes   102 Mbits/sec   49             sender
[  4]   0.00-10.00  sec   120 MBytes   101 Mbits/sec                  receiver

Im Vergleich zur Direktverbindung ohne VPN:

$ iperf3 -c [...] -p 5201
Connecting to host [...], port 5201
[  4] local [...] port 52172 connected to [...] port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec  51.9 MBytes   435 Mbits/sec    0   3.03 MBytes
[  4]   1.00-2.00   sec  73.3 MBytes   615 Mbits/sec    0   3.03 MBytes
[  4]   2.00-3.00   sec  73.3 MBytes   615 Mbits/sec    0   3.03 MBytes
[  4]   3.00-4.00   sec  72.7 MBytes   610 Mbits/sec    0   3.03 MBytes
[  4]   4.00-5.00   sec  72.1 MBytes   605 Mbits/sec    0   3.03 MBytes
[  4]   5.00-6.00   sec  73.7 MBytes   619 Mbits/sec    0   3.03 MBytes
[  4]   6.00-7.00   sec  75.0 MBytes   629 Mbits/sec    0   3.03 MBytes
[  4]   7.00-8.00   sec  72.5 MBytes   608 Mbits/sec    0   3.03 MBytes
[  4]   8.00-9.00   sec  74.9 MBytes   628 Mbits/sec    0   3.03 MBytes
[  4]   9.00-10.00  sec  72.6 MBytes   609 Mbits/sec    0   3.03 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec   712 MBytes   597 Mbits/sec    0             sender
[  4]   0.00-10.00  sec   710 MBytes   596 Mbits/sec                  receiver

Was ich gelernt habe

  • Mein Netzwerk hat erheblich von der erhöhten Tun-MTU profitiert.
  • UDP-Überlastung ist ein großes Problem. Durch Erhöhen des Linux UDP recvbuf konnte die UDP-Leistung deutlich verbessert werden. Die erneut übertragenen Pakete in iperf zeigen, dass Überlastung immer noch ein Problem darstellt.Alle Verbesserungsvorschläge sind willkommen.
  • Durch parallele iperf3-Verbindungen konnte die Geschwindigkeit noch weiter gesteigert werden.
  • Solange die CPU-Kernauslastung unter 100 % blieb, hatten Chiffren keinen großen Einfluss auf die Leistung.
  • Es ist schwierig, ein VPN über das offene Internet zu konfigurieren, das Gigabit-Geschwindigkeiten erreicht.
  • Dies ist immer noch 1/6 der Leistung des einfachen Netzwerks.

verwandte Informationen