Geschichten aus dem Leben eines Admins:

Ich saß gestern in einem erfreulich gering besetzen IC der #bahn von Berlin nach Magdeburg.

Um mir die Zeit zu vertreiben, wollte ich über das Bahn #wifi an ein paar Geräten rumspielen.

Mangels eigener Adressen, sind diese über IPv4 nur mit mehreren #ssh hops zu erreichen. IPv6 gibt es im Bahn wifi nicht.

Ist ja kein Problem, dachte ich mir, dazu habe ich ja mein #wireguard #vpn mit IPv6.

Und damit beginnt unsere Geschichte:

[1]

Äh, ja. Es gibt bei der MTU und der Fragmentierung einen zentralen Unterschied:
Bei IPv4 gibt es garkeine (oder nur eine sehr niedrige) Mindest-MTU. Falls Pakete zu groß sind, dürfen IPv4-Router für die nötige Fragmentierung sorgen, indem sie Pakete unterwegs aufteilen und dann in mehreren Teilen auf die Reise schicken. Dieser Mechanismus hört sich in der Theorie einfach an, ist aber für DOS-Angriffe anfällig und wurde deshalb für IPv6 nicht übernommen.

Bei IPv6 ist es die
(1/4) @eXo_X5

Aufgabe des Absenders, die technisch mögliche Pfad-MTU zu ermitteln und dann dafür zu sorgen, dass die Pakete auch die richtige Größe haben. Zu große Pakete gehen zurück an den Absender (zumindest in der Theorie; In der Praxis gibt es fehlerhaft programmierte Router, die solche Pakete verschlucken).

Lt. RFC 2460 muss jeder Netzwerklink, der für IPv6 genutzt wird, eine Mindest-MTU von 1280 haben, damit niemand das Netz mit extra niedrigen MTUs durcheinanderbringt. Allerdings wird

(2/4) @eXo_X5

empfohlen, dass man nach Möglichkeit eine MTU von mindestens 1500 nimmt, damit bei VPN-Verbindungen noch genügend Reserve für den VPN-Header ist.

Was passiert nun aber, wenn man in einer VPN-Verbindung die MTU von 1280 nicht realisieren kann?

Die IPv6-eigene Fragmentierung kann man in diesem Fall nicht nutzen, weil ja eine Mindest-MTU von 1280 vorhanden sein muss.

Die Antwort lautet schlichtweg, dass die Fragmentierung in diesem Fall auf der Ebene des VPN-Protokolls erfolgen
(3/4) @eXo_X5

muss. D. h. Wireguard müsste die zu großen Pakete aufteilen, in mehreren Teilen durch den Tunnel schicken und am Ende des Tunnels müssten sie wieder zusammengesetzt werden. Für die IP-Schicht im Tunnel muss dieser Prozess transparent sein.

ICh weiß nicht, welche VPN-Protokolle diese Fragmentierung-im-Tunnel-Verrenkung können. Fakt ist: Wenn der Tunnel es nicht kann, hast du in dem Fall verloren.

(4/4) @eXo_X5

@hallunke23 Wow, danke dass du dich da noch mal so rein hängst.

In meinem Fall ist das tatsächlich alles halb so wild - bis eben auf den von mir beschriebenen Fehler beim Setup.

In diesem Fall war ja das transportierenden Protokoll IPv4. Damit kann ich also eine absurd kleine MTU am Wifi Interface konfigurieren und die MTU des Wireguard Iface auf 1280 stellen.

Im Wifi ist das halt nur UDP, was bei Bedarf fragmentiert wird. Keine große Sache. WG muss da an den Paketen nichts machen.