Unterbrechungen beim Einsatz von WireGuard – ein MTU-Problem

Unterbrechungsprobleme mit WireGuard? Wir erklären, woran es liegen kann und wie Sie das Problem ganz einfach lösen können.

Wenn Sie mit WireGuard Probleme mit Ihrer Internetverbindung haben, könnte das an einem MTU-Problem liegen. MTU ist eine Abkürzung für Maximum Transmission Unit. Sie können sich dies folgendermaßen vorstellen: Ein Server sendet Datenpakete an Ihr Gerät. Diese Pakete haben eine Obergrenze an Bytes, die verschickt werden können. Wenn dabei die Obergrenze einmal überschritten wird, geht dieses Datenpaket verloren, d.h. es kommt nicht bei Ihnen an. Eine Seite lädt dann nicht oder die Internetverbindung bricht ab. Das ist natürlich nicht die Regel, aber bei VPN-Verbindungen kann dies manchmal zu einem Problem werden. Wir erklären Ihnen hier, wie Sie dieses lösen können.

Problem: IP-Fragmentierung

Die normale MTU bei Internetverbindungen liegt bei 1500 Bytes pro Paket. Bei einem Tunnel, wie ihn ein VPN erzeugt, werden einige Bytes belegt, um den Tunnel aufzubauen. Diese Bytes benötigt der „Header“ des Tunnels. Daher kann es passieren, dass Datenpakete, die nah an der Obergrenze von 1500 Bytes liegen, zusammen mit den Bytes, die für den Tunnel benötigt werden, die MTU überschreiten. Wenn eine MTU-Überschreitung auftritt, kommt die sog. IP-Fragmentierung ins Spiel. Bei der IP-Fragmentierung werden Datenpakete vor dem Versenden auf mehrere Blöcke verteilt, sodass sie die MTU nicht überschreiten. Ein in Blöcke aufgeteiltes Datenpaket wird erst beim Empfänger wieder zusammengesetzt. Dabei ist es möglich, dass einzelne Komponenten beschädigt werden und verloren gehen, sodass der Empfänger-Client die Daten erneut anfordern muss. Aus diesen Gründen wird versucht die Fragmentierung von Datenpaketen so gut wie möglich zu vermeiden. Sie kann die Internetverbindung deutlich langsamer machen oder dazu führen, dass sie abbricht.
Dazu kommt, dass manche Tunnel in der Lage sind, selbst zu fragmentieren. Die Fragmentierung ist zwar, wie beschrieben, nicht besonders aussichtsreich, kann aber funktionieren. WireGuard ist jedoch eine Tunnelsoftware, die nicht zu eigenständiger Fragmentierung in der Lage ist.

Don´t Fragment Flags

Da die Fragmentierung so problematisch ist, wird die überwiegende Mehrheit der Datenpakete geflagt. Die „Don´t Fragment Flags“ übermitteln die Information, das Paket nicht zu fragmentieren. Damit der Absender-Client ein Paket schickt, das die richtige Größe hat, muss dies vorher mitgeteilt werden. Die Router des Empfängers müssen dem Client also mitteilen, dass die MTU auf dem Weg kleiner wird, da sie ja durch die Bytes, die der Tunnel einnimmt, verringert wird. Diese Fehlerinformationen, die vom Router gesendet werden müssen, nennen sich ICMP (Internet Control Message Protocol).
Wenn der Empfänger bemerkt, dass das an ihn adressierte Paket zu groß ist und es fragmentiert werden müsste, sendet er ein ICMP an den Server, indem er mitteilt, welches die maximale Paketgröße ist und welches Paket betroffen war. Mit diesen Informationen soll ein passend großes Paket geschickt werden. Dann muss das Paket nicht fragmentiert werden. Das Problem dabei ist allerdings, dass ICMPs keinen guten Ruf haben: Absender ignorieren diese manchmal einfach bewusst oder sie bleiben in einer Firewall hängen. Dann geht gar nichts mehr, da die immer noch zu großen Pakete nicht durchkommen und nicht reduziert werden. Das ICMP wird ignoriert und der Absender weiß in diesem Moment gar nicht, dass das Paket nicht durch den Tunnel gekommen ist. Der Absender schickt also weiter das große Paket und der Empfänger sendet weiter das ICMP. Keines von beiden kommt aber auf der anderen Seite an.
Diese so genannte Path MTU Discovery, die eigentlich dafür zuständig ist, die Pakete in einer passenden Größe zu senden, funktioniert dann nicht. Für den Absender wird die Verbindung dann zu einem schwarzen Loch.
Es muss aber nicht immer zu einem Ausfall des Internets kommen. Neuere Windows-Versionen lösen das Problem, indem sie nach einem solchen Blackout die MTU auf 576 Bytes setzen und alle Pakete ohne „Don´t Fragment Flags“ senden. Dadurch wird aber die Internetverbindung deutlich langsamer.

Lösungsansätze:

Um das Problem der MTU zu lösen, können Sie allerdings selbst tätig werden. Dafür müssen Sie die MSS (Maximum Segment Size) oder die MTU reduzieren. Die MSS definiert auf Ihrem Rechner die maximale Anzahl an Bytes, die in einem Segment oder Paket verschickt werden können. Die MSS ist also der MTU sehr ähnlich. Die MSS gilt dabei aber ausschließlich für einen Rechner oder ein Rechnernetz, während sich die MTU auf den Internetverkehr bezieht. Mit einer Reduzierung der MSS reduzieren Sie aber faktisch die MTU in Ihrer Internetverbindung. Die MTU wird so weit reduziert, dass Datenpakete auch mit den Extra-Bytes, die der VPN Tunnel benötigt, klein genug sind, um anzukommen. Dann braucht es keine IP-Fragmentierung und alle daraus entstehenden Probleme werden vermieden.

Wie Sie vorgehen:

Sie haben zwei Möglichkeiten. Zum einen können Sie die MSS Zahl in Ihrem Router ändern. Zum anderen können Sie in der WireGuard App direkt den MTU Wert einstellen.
Wenn Sie sich auskennen, können Sie ein wenig herumprobieren bis Sie die perfekte Größe gefunden haben. Als Richtwert können Sie den Bereich zwischen 1300 und 1420 nehmen. In diesem Rahmen bekommen Sie die beste Geschwindigkeit, ohne dass es zu Verbindungsabbrüchen kommt.

Wie Sie den perfekten Wert ermitteln:

Geben Sie in die Windows Suchleiste „Ausführen“ ein (oder Windows-Taste+R). Dann öffnet sich ein Fenster. In diesem können Sie nun mit einem Ping-Test den besten Wert ermitteln:
In unserem Beispiel rufen wir Yahoo.com auf.

  1. Aktivieren Sie Ihren VPN-Tunnel.

  2. Geben Sie ping www.yahoo.com -f -l 1492 ein. Damit testen wir den ersten Wert. Sie sehen in diesem Beispiel, dass das Paket fragmentiert werden müsste. Der Verlust liegt bei 100%.

  1. Verringern Sie den Wert. Hier im Beispiel liegt er nun bei 1450. Sie sehen die Pakete müssen nicht verkleinert werden und der Verlust liegt bei 0%.

So können Sie den höchsten Wert ermitteln, mit dem die Pakete trotz des VPN nicht fragmentiert werden müssen.

Router konfigurieren
Um die MSS Zahl festzulegen, müssen Ihren Router neu konfigurieren. Um den Router einstellen zu können, müssen Sie lediglich die IP Adresse in Ihrem Browser eingeben. Diese findet sich normalerweise auf der Rückseite des Routers. Je nach Anbieter kann die Konfiguration unterschiedlich sein.

Weitere Informationen finden Sie hier: https://www.zeitgeist.se/2013/11/26/mtu-woes-in-ipsec-tunnels-how-to-fix/

Einfachere Variante: MTU in WireGuard einstellen

In der WireGuard- App, die Sie sich heruntergeladen haben, können Sie Ihre MTU selbst einstellen. Dazu gehen Sie folgendermaßen vor:
Öffnen Sie auf Ihrem Smartphone die WireGuard- App.

Dann müssen Sie den Tunnel auswählen, den Sie konfigurieren möchten.

Nun wählen Sie das Stiftsymbol in der rechten oberen Ecke aus, um die Bearbeitung zu starten. (Bild 1)

Danach können Sie im neuen Fenster ganz einfach den gewünschten MTU- Wert eintragen und abspeichern.
(Bild 2)


Bild 1 -------------------------------------------Bild 2 -----------------------------------------

Hier im Beispiel wurde der Wert 1420 gewählt, der bereits angesprochen wurde. Im Idealfall geben Sie jedoch den Wert ein, den Sie zuvor ermittelt haben. Sie können aber auch direkt hier mit verschiedenen Werten experimentieren, um zu testen, mit welchem Wert die Verbindung am schnellsten ist.

Wenn Sie sich ein wenig mit Programmierung auskennen, können Sie die Anpassung auch per Text Editor vornehmen.

Wieso tritt dieses Problem nur manchmal auf?
Es kann sein, dass verschiedene Provider durch den Einsatz eigener Protokolle ebenfalls Bytes der MTU verbrauchen. In diesem Fall erhöht sich der Wert der benötigten Bytes durch den aktivierten VPN-Tunnel noch einmal zusätzlich. Dann können die benötigten Bytes die Grenze überschreiten, ab der die Pakete fragmentiert werden müssen.
MTU-Probleme sind also abhängig vom Provider, der Voreinstellung des Routers und der Website, die aufgerufen werden soll. Diese ist zuständig für die ursprüngliche Paketgröße.
Mithilfe dieser Anleitung sind Sie jedoch in der Lage diese Probleme zu lösen.

Weitere Informationen:

MTU und MSS
MTU selbst konfigurieren