Ein virtuelles privates Netzwerk (VPN) ist nicht nur für sicheren und anonymen Internetzgang geeignet, sondern wird auch verwendet, um dezentrale Systeme miteinander zu verbinden. In meinem Fall kommunizieren meine Server über ein Wireguard VPN.
Doch entgegegen den vielversprechenden Zahlen auf dem Papier waren bei mir die Übertragungsgeschwindigkeiten um ein Vielfaches geringer als erwartet.
Wireguard ist der neue Stern am VPN-Himmel. Scheinbar hat es aber auch noch mit ein paar Kinderkrankheiten zu kämpfen denn die automatische Erkennung der MTU funktioniert noch nicht zufriedenstellend.
Als Ursache konnte ich nach kurzer Zeit eine falsch gesetzte MTU ermitteln. Folgendermaßen habe ich dann eine für meine Gegebenheiten passende MTU ermittelt:
Mittels IPerf3 lässt sich die Übertragungsgeschwindigkeiten zwischen 2 Systemen ohne viel Aufwand messen. Und damit lies sich dann letztendlich auch die korrekte Einstellung der MTU finden. Die MTU wird in den Wireguard .conf Dateien festgelegt, z.B. mit:
MTU = 1420
Da die Empfehlungen in allen möglichen Foren nicht weitergeholfen haben bin ich hingegangen und habe die MTU
- einmal auf 1420 gesetzt. Das ist auch die, die Wireguard gewählt hat. Ein Test mit IPerf zeigte erwartungsgemäß die schlechten Ergebnisse
- einmal auf 1300 gesetzt. Und plötzlich war die Geschwindigkeit viel höher. Hier muss ggf. ein noch geringerer Wert gewählt werden.
- die MTU immer weiter den 1420 angenähert, bis die Geschwindigkeit wieder eingebrochen ist. Den letzten guten Wert habe ich behalten. Bei mir waren es 1380. Das kann sich aber je nach Netzwerk unterscheiden und sollte nicht blind gesetzt werden, denn unnötig kleine MTUs machen die Übertragung auch langsamer.
Sicherlich kann man die korrekte MTU auch auf andere Weise ermitteln, alle Empfehlungen haben bei mir allerdings nicht funktioniert. Für Vorschläge bin ich auf jeden Fall offen und sehr dankbar.
6 Comments
Julius · January 14, 2021 at 10:53 pm
Ja das war auch bei mir so habe jetzt mit dem MTU-Wert 1300 ganz gute Ergebnisse…
Danke für den Tipp!
Stephan · May 21, 2021 at 3:26 pm
Endlich die Lösung! Hat bei mir etwas länger gedauert, diese zu finden. Wireguard auf einem RaspberryPi 4 mit PiVPN blieb weit hinter den Erwartungen zurück. Jetzt endlich per Google-Suche auf diesen Tipp gestoßen. Die Geschwindigkeit hat sich verfünffacht und schöpft den Upload des Servers annähernd aus.
wildertux · January 16, 2022 at 1:55 pm
mit Fettem Daumen geschätzt:
max moegliche Kabel-Verbindung 1500mtu
max moegliche DSL-Verbindung 1492mtu
-max ipv4-header 60mtu
-max ipv6-header 80mtu
-ipv6in4-tunnel (ipv6 40mtu + ipv4 20mtu)
-wireguard (udp 8mtu + wg-header 32mtu)
usw.
heisst wenn ich ueber Kabel zu Kabel eine ipv6 wireguard verbindung herstelle
macht das 1500-(80+32+8)=1380mtu
wenn man nicht weiss ob nicht doch DSL verwendet wird sollte man gleich 1272mtu verwenden!
Tipp: mit “ping” kann man Fragment groesse und “Do Not Fragment” mitgeben!
Zusatz: bei ipv6 verlangen einige Router minimum MTU 1280.
wildertux · January 16, 2022 at 1:58 pm
Korrektur: DSL=1372mtu
Carsten · May 10, 2023 at 12:33 am
Hallo,
vielen vielen Dank! Du hast mein Home Projekt gerettet.
Rico · October 9, 2023 at 2:56 pm
Bei mir hatte die Serverseite aufgrund einer mtu 1400 auf dem Interface automatisch eine mtu 1320 für wireguard gewählt, also 80 Bytes abgezogen. Auf der Clientseite dann entsprechend 1500/1420, was zu demselben Problem führte. Ggf. hilft es also auch, die MTUs auf beiden Seiten zu vergleichen und anzuoassen.