Um es erstmal einfach zu sagen, die WireGuard Default MTU Size ist 1420. Generell ist das auch ein Wert der in 95% der Einsatzfälle funktionieren wird. Allerdings gibt es einiges zu beachten wenn die Umgebung ein wenig komplexer ist und über mehrere Hops geht. Aber wie lässt sich die MTU korrekt berechnen? Schwierige Frage, denn jeder muss das für sich selber beantworten. Aber lest nun selber.

Default WireGuard MTU 1420 Bytes
Empfehlung WireGuard MTU 1412 Bytes

WireGuard fähiger Reise Router oder auch als günstiger Edge Router zu gebrauchen.

Technische Infos zur MTU Zusammensetzung

Erstmal ist zu beachten über was für eine Internetleitung geht die Verbindung? DSL, vDSL oder Kabelinternet? Deswegen hier die erste Grundlage.
DSL & vDSL maximale MTU 1492
Kabel Internet maximale MTU 1500

Das sind die Vorgaben unser deutschen Provider. Also größere Pakete können ohnehin nicht angenommen werden vom ISP.
Jetzt liste ich euch die Header-Größen auf welche Wireguard bzw. das VPN benötigt.

IPv4 VPN – 20 Bytes
IPv6 VPN – 40 Bytes
UDP – 8 Bytes
WireGuard – 32 Bytes

Mit diesen Infos könnt Ihr nun eure passende MTU Size berechnen. Ich mache für euch mal ein normales Beispiel und ein unnormales Beispiel.

Beispiel 1
Ausgangslage ist eine Kabel Anbindung mit 1500 maximaler MTU welche mit IPv4 Verbindung ausgestattet ist.

1500 – 20 Bytes (IPv4) – 8 Bytes (UDP) – 32 Bytes (WG) = 1440 Bytes

Somit wäre für den Datenbereich 1440 Bytes übrig und der Defaultwert 1420 würde sehr gut passen.

Beispiel 2
Ausgangslage ist eine DSL Anbindung mit 1492maximaler MTU welche mit IPv6 Verbindung ausgestattet ist.

1492 – 40 Bytes (IPv6) – 8 Bytes (UDP) – 32 Bytes (WG) = 1412 Bytes

Somit wäre für den Datenbereich 1412 Bytes übrig und der Defaultwert 1420 würde nicht passen.

Im Beispiel 2 würden jetzt die Datenpakete getrennt werden und somit Fragmentiert. Das verbraucht Leistung und die Verbindung wird deutlich langsamer. Doch wenn man IPv6 einsetzt wird es schon sehr knapp.

Weitere Informationen und Tipps

Wenn IPv6 im Spiel ist erfordern einige Router eine minimale Größe der MTU von 1280 Bytes. Also wenn Ihr IPv6 im Einsatz habt, bitte nicht unter 1280 Bytes gehen.

Wenn Ihr in einer komplexen Umgebung Arbeitet mit mehreren NATs und/oder Routern kann es sein das euren Pakete noch mehr Header hinzugefügt werden. Dann wird die Berechnung natürlich noch kompliziert. WireShark kann euch aber hier gut helfen um zu sehen ob die Pakete noch zerteilt werden.

Startet doch einfach mal bei einer MTU Size von 1300 und arbeitet euch nach und nach an die 1420 heran. Viele berichten das für Sie 1380 Bytes sich als ideal ausgezeichnet hat.

Mit Tracepath könnt Ihr den pmtu überprüfen und überprüfen wie eure Pakete übermittelt werden.

root@srv:~# tracepath 192.168.10.7
 1?: [LOCALHOST]                      pmtu 1500
 1:  pfsense.schroederdennis.de                            0.429ms
 1:  pfsense.schroederdennis.de                            0.325ms
 2:  pfsense.schroederdennis.de                            0.321ms pmtu 1420
 2:  10.255.0.2                                           22.116ms
 3:  192.168.10.7                                         26.128ms reached
     Resume: pmtu 1420 hops 3 back 3

Quellen: https://keremerkan.net/posts/wireguard-mtu-fixes/ https://wiki.freifunk-franken.de/w/MTU