Tipps für schnellere OpenVPN-Verbindung?

Started by Marcel_75, March 06, 2019, 08:42:08 AM

Previous topic - Next topic
Hallo,

grundsätzlich funktioniert die Verbindung zum OpenVPN-Server gut und zuverlässig, soweit alles prima.

Nur die Geschwindigkeit macht mich wirklich stutzig – bei einem Kabel-Anschluss mit 400 MBit/s Down und 12 MBit/s Up (netto sind es eher 250 bis 380 MBit/s Down und 6 bis 9 MBit/s Up, je nach Zeit) komme ich nur auf folgende Werte, sobald die VPN-Verbindung steht (getestet per LTE-Hotspot mit knapp 150 MBit/s):

Download: 2,9 MBit/s
Upload: 4,1 MBit/s

Habe schon einiges gelesen (und auch versucht) – bisher leider keine Besserung ...  :-[

Encryption algorithm: umgestellt von AES-256-CBC (256 bit key, 128 bit block) auf AES-128-CBC (128 bit key, 128 bit block)
Auth Digest Algorithm: umgestellt von SHA512 (512-bit) auf SHA1 (160-bit)
DH Parameters Length: 2048 Bit (das sollte ja i.O. sein)

Im 'Advanced Bereich" habe ich zusätzlich zum Test noch folgendes eingetragen:

sndbuf 393216
rcvbuf 393216

push "sndbuf 393216"
push "rcvbuf 393216"

tun-mtu 1400


Aber auch das ändert erst einmal nichts bei meinem Setup vom Speed her.

OPNsense-Version: OPNsense 19.1.2-amd64, FreeBSD 11.2-RELEASE-p9-HBSD, LibreSSL 2.8.3
CPU: AMD GX-416RA SOC (4 cores)

Was mache ich falsch? Ist einfach nur der SOC zu lahm? Brauche ich für ordentlich Speed einen Xeon?  ;)

PS: Mir ist klar, dass bei meinem Anschluss maximal 6 bis 9 MBit/s drin wären, aber davon schaffe ich ja aktuell gerade mal die Hälfte ... irgendwo ist da doch der Wurm drin, oder?

Wie immer: Vielen Dank für Hilfe und input.
The fact that we live at the bottom of a deep gravity well, on the surface of a gas covered planet going around a nuclear fireball 90 million miles away and think this to be normal is obviously some indication of how skewed our perspective tends to be. (Douglas Adams)

Wir haben hier eine OPNsense mit Xeon 1230, 16gig RAM und 100mbit symmetrischer Leitung.

openVPN ist von extern aber auch nicht so berauschend schnell, wir warten immer noch auf wireguard um das VPN für die MA anzubieten.

Ich stand mal vor einem Ähnlichen Problem. Ich konnte mir bei site2site Verbindungen behelfen indem ich auf IPSec umgestellt habe.
Ich weiß nicht, ob OpenVPN generell eher CPU intensiver ist, oder vom Protokoll her langsamer, aber bei IPSec fand ich den Unterschied schon deutlich.

Zum Vergleich:

Site-to-site-VPN mit OpenVPN-Konfiguration gemäss Handbuch (AES-256-CBC und SHA512) ohne irgendwelche Tweaks zwischen zwei Stück
PC Engines APU2 mit:
- Coreboot BIOS v4.9.0.2
- AMD GX-412TC SOC (4 cores) mit AES-NI
- OPNsense 19.1.2-amd64, FreeBSD 11.2-RELEASE-p9-HBSD, LibreSSL 2.8.3

Übertragungsrate: 36 Mbit/s (4.5 MB/s)

Unterstützt deine CPU AES-NI?

Falls jemand Tweaks für diese Konstellation kennt, dann gerne her damit.

Ich habe im Erweitert folgende Werte.

link-mtu 1492;
sndbuf 1048576;
rcvbuf 1048576;

Sowohl auf Server und Client Seite.

Moin, so wie ich es verstanden habe setzt du eine APU ein.
Die sind nicht so flott. Hast du wenn es eine APU ist soll sie ja auch AES-NI können hast du es aktiviert in deiner OpenVPN Konfig? Ich setze Intel Systeme ein ein ATOM, Core i3 und Core i7 und die sind alle sehr schnell. ich habe 5 VPŃs laufen und die CPU ist nur zu 20% ausgelastet. Kannst du mal ein bild deiner konfig posten (alle geheimen punkte kannst du ja schwärzen.


Gesendet von iPad mit Tapatalk Pro
Internet: Willy.tel Down: 1Gbit/s, UP: 250Mbit/s Glasfaser  |
Router/Firewall: pfSense+ 23.09  |
Hardware: Netgate 6100

Da stimme ich mic zu, das kommt mir selbst für die lahme APU doch zu wenig vor. Allerdings müsste der GX-412 der in der APU2 verbaut ist, AES-NI können, das sollte der 416 somit auch schaffen. Der Test via LTE mag aber auch ein wenig hakeln, da weiß man ja auch nicht unbedingt wieviel man vom theoretischen abbekommt. Vielleicht mal direkt von einer anderen größeren Leitung testen?
"It doesn't work!" is no valid error description! - Don't forget to [applaud] those offering time & brainpower to help you!
Better have some *sense as no(n)sense! ;)

If you're interested in german-speaking business support, feel free to reach out via PM.

March 06, 2019, 02:43:21 PM #7 Last Edit: March 06, 2019, 02:46:56 PM by Marcel_75
Vielen Dank schon mal für Eure Beiträge soweit.

Bei "Hardware Crypto" steht bei mir leider nur "No Hardware Crypto Acceleration" ...

Hatte aber an anderer Stelle gelesen, dass das wohl trotzdem (automatisch?) aktiv sein sollte normalerweise?

Kann ich wahrscheinlich per SSH auf der OPNsense prüfen?

WireGuard https://www.wireguard.com/ klingt wirklich sehr gut, nur ist das ja leider nach wie vor nicht finalisiert. Ist es denn geplant, das zukünftig auch in OPNsense zu implementieren?

PS: Werde es demnächst mal an einer echten 500er Glasfaser testen, das macht natürlich mehr Sinn als LTE.
The fact that we live at the bottom of a deep gravity well, on the surface of a gas covered planet going around a nuclear fireball 90 million miles away and think this to be normal is obviously some indication of how skewed our perspective tends to be. (Douglas Adams)

@lewald: Danke, scheint bei mir keinen Unterschied auszumachen.

@micneu: Auf was für Übertragungsraten kommt Du mit einer Atom-CPU?

@Marcel_75: AES-NI aktiviert man unter System: Settings: Miscellaneous: Hardware acceleration

March 06, 2019, 02:59:56 PM #9 Last Edit: March 06, 2019, 03:01:33 PM by Marcel_75
@Reiter der OPNsense: Ok, da ist unter Hardware acceleration "AES-NI CPU-based Acceleration ()aesni" aktiviert bei mir.

Dass ich es dann beim OpenVPN-Server trotzdem nicht explizit anwählen kann und dort nur "Hardware Crypto" ... "No Hardware Crypto Acceleration" angezeigt wird, scheint also normal zu sein?
The fact that we live at the bottom of a deep gravity well, on the surface of a gas covered planet going around a nuclear fireball 90 million miles away and think this to be normal is obviously some indication of how skewed our perspective tends to be. (Douglas Adams)

Ja, "No Hardware Crypto Acceleration" ist verwirrend aber normal.

Was geben folgende Befehle in einer Shell aus?
dmesg | grep -i aes
kldstat | grep -i aes
kldload aesni

dmesg | grep -i aes

Features2=0x3ed8220b<SSE3,PCLMULQDQ,MON,SSSE3,CX16,SSE4.1,SSE4.2,MOVBE,POPCNT,AESNI,XSAVE,OSXSAVE,AVX,F16C>
aesni0: <AES-CBC,AES-XTS,AES-GCM,AES-ICM> on motherboard

kldstat | grep -i aes

45    1 0x0 7298     aesni.ko

kldload aesni

kldload: can't load aesni: module already loaded or in kernel


Klingt eigentlich auch erst einmal gut soweit, oder?

The fact that we live at the bottom of a deep gravity well, on the surface of a gas covered planet going around a nuclear fireball 90 million miles away and think this to be normal is obviously some indication of how skewed our perspective tends to be. (Douglas Adams)

Ja, das sieht soweit gut aus.

Ich habe jetzt mal noch die Site-to-site-Verbindung gekappt und die Übertragungsrate mit einer Road-warrior-Verbindung gemessen. Macht keinen Unterschied, die Geschwindigkeit ist damit sogar noch eine Spur höher.

Hier endet mein Latein und ich kann nur noch spekulieren:

  • Vielleicht liegt es an einer schlechten Internetverbindung/hohe Latenzen obwohl ich ~3-4 MBit/s gefühlsmässig für extrem mager halte, auch im Fall einer schlechten Verbindungsqualität.
  • Vielleicht ist deine Box mit etwas anderem ausgelastet?

1. hast du ganz sicher keinen Proxy oder irgend welchen Dienste noch am laufen?
2. hast du mal die Kiste neugestartet?



Gesendet von iPhone mit Tapatalk Pro
Internet: Willy.tel Down: 1Gbit/s, UP: 250Mbit/s Glasfaser  |
Router/Firewall: pfSense+ 23.09  |
Hardware: Netgate 6100

Proxy oder so ist nicht aktiv, Neustart ändert auch nichts.

Es sind ganz normale Dienste aktiv:

configd System Configuration Daemon
dhcpd DHCPv4 Server
dyndns Dynamic DNS
login Users and Groups
ntpd Network Time Daemon
openssh Secure Shell Daemon
openvpn OpenVPN server: OpenVPN-UDP-1194
pf Packet Filter
syslog Syslog
unbound Unbound DNS


Die Last der CPU ist sehr gering ohne VPN-Verbindung. Wie es diesbezüglich mit aktiver OpenVPN-Verbindung aussieht, schaue ich noch einmal, sobald ich das per Glasfaser von außen teste (wird erst kommende Woche werden).

Bin schon am überlegen, den OpenVPN-Server, die VPN-User, die entsprechenden certs der CA und auch die Firewall-Regeln noch einmal komplett platt zu machen. Ob das was bringt?

Oder sogar ein weiteres mal OPNsense komplett frisch installieren? Also sogar ohne Config-Import?

Und dann würde ich mir vielleicht auch noch einmal dieses sehr ausführliche Tutorial zu Rate ziehen:

https://arstechnica.com/gadgets/2017/05/how-to-build-your-own-vpn-if-youre-rightfully-wary-of-commercial-options/

Viel schöner wäre es natürlich, wenn man die Ursache für diese doch sehr langsamen OpenVPN-Verbindungen finden könnte. Aber ehrlich gesagt bin ich hier mit meinem Latein am Ende – und auch von Eurer Seite her scheint ja prinzipiell alles i.O. zu sein mit meiner Config ...

Dass ich den LibreSSL- statt OpenSSL-Build nutze sollte ja kein Problem sein eigentlich, oder?

Das einzige, was mir noch eingefallen war als mögliche Erklärung: Wenn mein Anschluss auf dem Papier sowieso nur schlappe 12 MBit/s im Upload bietet und das in der Praxis sich eher im Bereich von 6-9 MBit/s abspielt – sind die mageren Durchsatz-Werte dann vielleicht doch gar nicht sooooo ungewöhnlich?
The fact that we live at the bottom of a deep gravity well, on the surface of a gas covered planet going around a nuclear fireball 90 million miles away and think this to be normal is obviously some indication of how skewed our perspective tends to be. (Douglas Adams)