OpenVPN - Flaschenhals?

  • Ersteller Ersteller trpna
  • Erstellt am Erstellt am
T

trpna

Gast
Guten Abend

Ich bin auf der Suche nach dem Flaschenhals in meiner OpenVPN Konfiguration. Da per VPN zwei Verzeichnise (an unterschiedlichen Standorten) bidirektional gesynct werden sollen, versuche ich eine möglichst hohe Datenrate zu erreichen.

Server: Netgear R7000 mit DD-WRT
Settings:

Server-Mode: TUN
Encryption Cipher: AES-256 CBC
Hash-Algorithm: SHA512
TLS Cipher: TLS-DHE-RSA-WITH-AES-256-GCM-SHA384
Leitung: 300Mbit Down/38Mbit Up/Ping: 15ms


Client: mehrere
z.B. OP3T, Lenovo Thinkpad Yoga X1 mit offizieller Client-Software

Mit den Clients erreiche ich sowohl über 4G (80Mbit Up & down) als auch über Glasfaser (1 Gbit Up & down) lediglich 23Mbit vom Server im Netzwerk wo der OpenVPN Server steht. 15 Mbit bzw. knapp 40% Overhead dünkt mich ein bisschen viel? Das ganze Netzwerk ist mit Gigabit-LAN verkabelt und innerhalb des Netzwerks werden auch Werte um 110MB/s vom Server lesend erreicht.

Zudem hatte ich den Router in Verdacht (CPU), die dümpelt aber bei einem Transfer bei 0.45 rum (und ist Dualcore), beim RAM sind 170MB von 256MB frei. Klar könnte ich die Verschlüsselung reduzieren, aber sofern die CPU nicht limitiert, sollte das doch keinen Einfluss haben?

Jemand eine Idee, warum ich keine höheren Werte erziele? Ich verdächtige nach wie vor den R7000, obwohl nicht messbar...

Danke im Voraus!
 
Du kannst mal AES-128-CBC testen aber generell hat es wohl sicher nen Grund, warum Netgear für die Kiste in der offiziellen Firmware überhaupt keinen VPN support hat, auch wenn die CPU halbwegs potent ist. Die fehlenden 15Mbit sind abgesehen davon kein Overhead. Wie ist der MTU Wert?
Und bist Du sicher, dass die 38Mbit Upload auch ohne VPN erreicht werden?
Bei professionellen Routern sind die CPus eben auch darauf optimiert und selbst Einstiegsmodell haben schon >300Mbit VPN Durchsatz.
 
Ja das ist der Router mit einer 1 Ghz Dualcore ARM Cpu kommst du bei der Verschlüsselung nicht weit. Das Problem ist bei Verschlüsselung das die Cpu keine 100% Last zeigen muss um das maximale Limit bei der Verschlüsslung zu erreichen durfte ich auch schon fest stellen. Bei mir hat damals der Paketfilter von der Firewall den Traffic begrenzt weil die Cpu nicht in der Lage war OpenVpn und Paketfilter gleichzeitig zu händeln obwohl die Last bei nur 70% lag. Wenn du 40 MBit bei der Verschlüsselung schaffen willst sollteste du dir mindestens ein apu2c4 Board zu legen. Da kann ich dir garantieren das das geht.
 
Danke für eure Inputs. Mit AES-128 CBC habe ich etwas höhere Werte erreicht. Ich nehme daher an, dass der Router limitiert und schaue mir mal alternative Hardware bzw. ob ich den OpenVPN Server auf ein anderes Gerät auslagere.
 
OpenVPN ist sehr CPU-lastig. Auf schwachen Systemen wie den meisten (Consumer-)Routern oder zB einem Raspberry PI, etc. sind die erreichbaren Geschwindigkeiten daher eher mittelmäßig.

Man kann aus OpenVPN zwar etwas mehr Speed herauskitzeln, wenn man u.a. mit der MTU und der Verschlüsselung spielt, aber das war's dann auch. Siehe hier

Darüber hinaus hilft dann allerdings nur noch potentere Hardware. Meiner Erfahrung und Meinung nach eignen sich Consumer-Router nur für rudimentäre VPNs, aber nicht, wenn man bestmögliche Performance erreichen will. Dann sollte man das VPN auf einen Server auslagern. Selbst ein kleiner i3 schafft weit mehr als jeder mir bekannte Heimrouter.

Beispiel: Mein Server hat nen i3-2100 und mein Laptop einen ähnlichen mobilen Prozessor. Mit den oben verlinkten Tweaks habe ich - innerhalb meines LANs - das OpenVPN von ~500 Mbit/s oder so auf fast 800 gebracht. Da ich aber eh nur VDSL25 habe, war das nur in Test just4fun und mein VPN läuft wieder mit Standard.

Auf der anderen Seite gibt es dagegen noch IPsec für VPNs. Das lässt sich im Gegensatz zu OpenVPN architekturbedingt einfacher auf crypto-Hardware auslagern und läuft daher auch auf schwacher Hardware in der Regel deutlich schneller als OpenVPN - wenn ein Crypto-Chip vorhanden ist.
 
Zurück
Oben