Zum Inhalt springen

MTU verstehen

Warum manche Seiten nur halb laden, Downloads bei 90 % stehen bleiben und im VPN plötzlich gar nichts mehr geht.

Selbst ausprobieren — MTU ändern und hier nachsehen

Diese Seite kann deine MTU nicht ändern — das kann keine Webseite. Was sie kann: dir zeigen, was von deiner Einstellung hier ankommt. Du änderst den Wert an deinem Rechner (Befehle stehen unten), misst hier erneut und vergleichst im Verlauf. Aus einer abstrakten Zahl wird damit ein Versuch mit sichtbarem Ergebnis.

Vorher lesen — sonst misst du die Vergangenheit

Die MSS wird beim Verbindungsaufbau angekündigt und ändert sich danach nie mehr. Genau genommen wird sie nicht ausgehandelt: Jede Seite nennt im SYN unabhängig die Größe, die SIE empfangen kann — die beiden Werte dürfen verschieden sein. Was du hier siehst, ist der Wert, den deine Seite angekündigt hat, und er begrenzt, was der Server dir schicken darf. Dein Browser hält Verbindungen offen (bei HTTP/2 sogar eine einzige für alles). Wer seine MTU ändert und einfach neu lädt, bekommt hier deshalb oft noch den alten Wert zu sehen.

Jede Messung holt ihre Daten unter einer eigenen Adresse, damit kein Zwischenspeicher dazwischenfunkt — eine neue Verbindung kann eine Webseite aber nicht erzwingen. Sie kann nur nachsehen, ob es eine gab: Genau das steht unten in der Spalte „Verbindung“. Steht dort wiederverwendet, gilt der MSS-Wert für die alte Verbindung.

So bekommst du zuverlässig eine neue: privates Fenster öffnen und dort messen (eigener Verbindungsvorrat, sicherste Variante) — oder alle Tabs dieser Seite schließen, eine Minute warten und neu öffnen. Im privaten Fenster ist der Verlauf allerdings leer; er gehört zum normalen Fenster.

Dauert rund zehn Sekunden. Am besten einmal vor der Änderung messen, damit du etwas zum Vergleichen hast.

Was du erwarten kannst
  • Die MSS folgt sofort — auf einer neuen Verbindung

    Setzt du 1400, bietet dein System beim nächsten Verbindungsaufbau 1360 an (1400 − 40). Hier steht danach ein paar Bytes weniger, weil der Kernel die TCP-Optionen gleich mit herausrechnet — deshalb ist die abgeleitete MTU eine Untergrenze. Aussagekräftig ist nicht die letzte Stelle, sondern der Sprung um rund hundert Bytes. Das ist der schärfste Nachweis, dass deine Änderung wirkt.

  • Die Pfadmessung zeigt danach oft ein schwarzes Loch

    Und das ist kein Fehler dieser Seite, sondern der Lehrsatz der ganzen Seite in freier Wildbahn: Du hast deinen Rechner angewiesen, große Rahmen nicht mehr anzunehmen — aber kein Router im Weg weiß davon, also meldet auch niemand „zu groß“ zurück. Genau das Bild aus Schaubild 3, selbst gebaut.

  • Die Antwortgrößen bleiben meistens sauber

    Weil TCP sich über genau diese MSS einigt: Der Server schneidet seine Antworten von sich aus kleiner. Weh tut eine zu kleine MTU dort, wo es keine MSS gibt — UDP, QUIC, VPN-Tunnel. Deshalb ist ein sauberes Ergebnis hier kein Freispruch für den Rest.

MTU ändern — und wieder zurück
Bevor du etwas änderst
  • Notiere den jetzigen Wert. Er steht in der ersten Zeile jedes Blocks unten — und er ist dein Weg zurück. Ohne ihn rätst du beim Zurücksetzen.
  • Bleib über 1280. So viel muss jede IPv6-Strecke tragen (RFC 8200); Linux schaltet IPv6 auf einer Schnittstelle darunter ab — das ist Verhalten dieses Betriebssystems, keine Vorgabe des Standards, andere Systeme können anders reagieren. Bei IPv4 liegt die kleinste Link-MTU bei 68 Byte; die oft genannten 576 sind etwas anderes, nämlich die Größe, die ein Ziel mindestens wieder zusammensetzen können muss. Zum Ausprobieren reicht 1400 völlig: klein genug, um sich hier zu zeigen, groß genug, dass alles weiterläuft.
  • Nicht auf einem Rechner, den du gerade fernwartest. Änderst du die MTU der Schnittstelle, über die deine SSH-Sitzung läuft, kann sie dir mitten im Befehl abreißen.
  • Danach eine neue Verbindung erzwingen — sonst misst du hier den alten Wert: privates Fenster, oder alle Tabs schließen und eine Minute warten.

Windows

Erst den jetzigen Wert notieren
netsh interface ipv4 show subinterfaces
Zum Ausprobieren kleiner setzen
netsh interface ipv4 set subinterface "Ethernet" mtu=1400 store=persistent
Zurück auf den notierten Wert
netsh interface ipv4 set subinterface "Ethernet" mtu=1500 store=persistent

Eingabeaufforderung als Administrator. „Ethernet“ ist der Name aus der ersten Ausgabe — bei WLAN heißt er meist „WLAN“. store=persistent überlebt den Neustart; genau deshalb musst du hier auch wirklich zurücksetzen.

Linux

Erst den jetzigen Wert notieren
ip -br link show
Zum Ausprobieren kleiner setzen
sudo ip link set dev eth0 mtu 1400
Zurück auf den notierten Wert
sudo ip link set dev eth0 mtu 1500

eth0 durch die eigene Schnittstelle ersetzen. Der Wert ist flüchtig: Ein Neustart der Verbindung oder des Rechners stellt den alten ohnehin wieder her — dauerhaft wäre er nur in NetworkManager, netplan oder systemd-networkd.

macOS

Erst den jetzigen Wert notieren
ifconfig en0 | grep mtu
Zum Ausprobieren kleiner setzen
sudo ifconfig en0 mtu 1400
Zurück auf den notierten Wert
sudo ifconfig en0 mtu 1500

en0 ist meist das WLAN; networksetup -listallhardwareports zeigt, welcher Name zu welchem Anschluss gehört. Auch hier ist der Wert flüchtig — WLAN aus und wieder ein setzt ihn zurück.

Warum zwei Messungen verschiedene Zahlen zeigen

MTU gilt je Richtung. Das erklärt den häufigsten Stolperstein beim Nachmessen: Du stellst deine MTU herunter, und die Pfad-MTU oben ändert sich trotzdem nicht.

Server → du (Pfad-MTU, ICMP)

Unser Server schickt dir Pakete wachsender Größe. Gemessen wird, was auf dem Weg zu dir durchkommt — meist der Wert deiner Leitung, etwa 1492 bei DSL mit PPPoE. Deine lokale Einstellung sieht diese Messung nur begrenzt: Eine Interface-MTU wirkt in erster Linie auf das, was dein Rechner SENDET. Ob er auch größere Pakete annimmt, ist damit nicht gesagt — das hängt an Karte und Treiber und ist nicht zugesichert. In der Praxis kommen sie meist an, verlassen sollte man sich nicht darauf.

Du → Server (MSS und ping)

Die angekündigte Segmentgröße oben stammt aus deiner Verbindung und folgt damit deiner lokalen MTU. Genau hier siehst du eine Änderung sofort. Dasselbe gilt für ping -D -s …: Ist das Paket größer als deine Interface-MTU, kommt „Message too long“ — dein eigener Rechner lehnt ab, bevor etwas das Haus verlässt.

Ein Beispiel mit echten Zahlen

WLAN-MTU von Hand auf 1345 gesetzt, alles andere unverändert. Die Messungen sagen dann:

  • · Pfad-MTU 1492 — der Weg zu dir trägt weiterhin 1492
  • · ping -D -s 1350 → „Message too long“ ab 1345
  • · MSS 1293 → 1293 + 40 + 12 = 1345

Kein Widerspruch, sondern zwei Richtungen. Die 12 Bytes sind die TCP-Optionen (Zeitstempel und SACK), die dein System zusätzlich mitschickt — deshalb steht bei der abgeleiteten MTU „mindestens“.

Das Wichtigste in vier Sätzen

  1. 1Die MTU ist die größte Menge, die ein Netzabschnitt in einem Stück befördert — bei Ethernet 1500 Bytes.
  2. 2Für deine Verbindung zählt nicht deine MTU, sondern die kleinste auf dem ganzen Weg. Die kennt vorher niemand.
  3. 3Jeder Tunnel — PPPoE, VPN, GRE — nimmt sich seinen Platz aus derselben 1500-Byte-Scheibe. Innen bleibt entsprechend weniger.
  4. 4Passt ein Paket nicht, soll eine ICMP-Meldung das mitteilen. Wird die weggefiltert, hängt die Verbindung, statt einen Fehler zu zeigen.

Diese Seite misst nichts. Deine tatsächliche Pfad-MTU lässt sich von außen nicht ehrlich bestimmen — die Befehle zum Selbernachmessen stehen weiter unten.

1 — Es zählt die kleinste Stelle

Der Weg eines Pakets vom Rechner zum ZielserverSechs Stationen hintereinander: Dein Rechner mit 1500, Switch mit 1500, Router am DSL-Anschluss mit 1492, Provider mit 1500, Internet mit höchstens 1500 und ungeprüft, Zielserver mit 1500. Der Router ist die kleinste Stelle. Damit gilt für den ganzen Weg eine wirksame Pfad-MTU von 1492 Bytes.kleinste Stelle im WegDein Rechner1500Ethernet, WLANSwitch / AP1500im HausRouter (WAN)1492DSL mit PPPoEProvider1500KernnetzInternet≤ 1500fremde NetzeZielserver1500RechenzentrumWirksame Pfad-MTU für die ganze Strecke: 1492 BytesEin Paket mit 1500 Bytes kommt nicht an — egal, was auf deinem Rechner eingestellt ist.
Ein Paket ist immer nur so groß, wie der engste Abschnitt es durchlässt. Sitzt irgendwo unterwegs eine 1492er-Stelle, gilt 1492 für die gesamte Verbindung — auch wenn dein Rechner, dein Switch und der Zielserver alle 1500 könnten.

Diese kleinste Stelle heißt Pfad-MTU. Sie steht nirgends fest: Sie ergibt sich erst aus dem Weg, den deine Pakete gerade nehmen — und der kann sich ändern, wenn dein Provider umroutet oder du dich in ein anderes WLAN einbuchst. Deshalb ist ein Wert, der gestern gestimmt hat, kein Beweis für heute.

2 — Jede Schicht nimmt sich ihren Platz

Wie viel von 1500 Bytes für deine Daten übrig bleibtSechs gleich lange Balken zu je 1500 Bytes. Ohne Tunnel bleiben nach IP- und TCP-Kopf 1460 Bytes Nutzdaten. Mit PPPoE gehen weitere 8 Bytes weg, es bleiben 1452. Mit WireGuard über DSL kosten Tunnel und Köpfe zusammen 108 Bytes, es bleiben 1392. Mit IPsec über DSL bleiben 1379 Bytes. In einem VXLAN-Netz bleiben 1410 Bytes, mit GENEVE nur 1402.Ein Ethernet-Rahmen — mehr passt physisch nicht auf die Leitung050010001500 BytesEthernet direktNutzdaten 1460 BytesDSL mit PPPoENutzdaten 1452 BytesWireGuard über DSL60Nutzdaten 1392 BytesIPsec über DSL73Nutzdaten 1379 BytesVXLAN (Proxmox, K8s)50Nutzdaten 1410 BytesGENEVE (OVN)58Nutzdaten 1402 BytesLeitungskopf (PPPoE 8)Tunnelkopf (WireGuard 60, IPsec 50–73, VXLAN 50, GENEVE 58)IP-Kopf 20TCP-Kopf 20NutzdatenVLAN fehlt hier bewusst: Sein Etikett kostet 4 Bytes, nimmt sie aber nicht von den 1500 — der Rahmen wächst auf 1522.Alle Balken sind gleich lang. Was der Tunnel nimmt, fehlt deinen Daten.
Die 1500 Bytes sind eine feste Scheibe. IP- und TCP-Kopf gehen immer ab. Kommt PPPoE dazu, gehen 8 weitere weg; kommt WireGuard dazu, nochmal 60. Nichts davon wird „zusätzlich“ übertragen — es wird von deinen Nutzdaten abgezogen. Die einzige Ausnahme ist das VLAN-Etikett: Das macht den Rahmen größer, statt deinen Daten etwas wegzunehmen.
Wie viel kostet welche Schicht?
  • 8 — PPPoE (DSL)
  • 20 — IPv4-Kopf · 40 — IPv6-Kopf
  • 20 — TCP-Kopf
  • 24 — GRE · 20 — 6in4
  • 50 — VXLAN · 58 — GENEVE
  • 60 — WireGuard über IPv4 (80 über IPv6)
  • 41–69 — OpenVPN, je nach Verfahren und tun/tap
  • 50–73 — IPsec/ESP, je nach Verfahren und NAT-Traversal
  • 4 — VLAN-Etikett, aber außerhalb der 1500 (Rahmen wächst auf 1522)
Und wenn du stapelst?

Dann addiert sich alles. Ein WireGuard-Tunnel über einen DSL-Anschluss, der wiederum durch ein IPsec-Firmennetz läuft, kommt schnell bei 130 bis 140 Bytes Overhead heraus — innen bleiben dann noch rund 1360 Bytes MTU.

Deshalb reicht es nicht, den Overhead einer Schicht zu kennen. Du musst wissen, wie viele Schichten übereinanderliegen.

Übliche Werte — und wofür sie stehen

MTUWo
1500
Ethernet, WLAN, Kabel- und Glasfaseranschluss
Der Normalfall bei Ethernet.Warum dieser Wert

Der Normalfall. Jeder andere Wert auf dieser Liste rechnet sich von hier herunter.

1492
DSL mit PPPoE
PPPoE kostet 8 Bytes.Warum dieser Wert

Der PPPoE-Kopf kostet 8 Bytes (6 für PPPoE, 2 für das Protokollfeld). Zwingend ist das nicht mehr: Mit dem PPP-Max-Payload-Tag aus RFC 4638 handeln Router und Gegenstelle auch volle 1500 aus, wenn die Strecke die vier bis acht Extrabytes trägt. Manche Provider können das, die meisten deutschen DSL-Anschlüsse nicht — deshalb bleibt 1492 der Wert, mit dem man rechnet, bis eine Messung etwas anderes sagt.

1480
6in4 — IPv6 durch einen IPv4-Tunnel
Äußerer IPv4-Kopf, 20 Bytes.Warum dieser Wert

Der äußere IPv4-Kopf kostet 20 Bytes.

1476
GRE-Tunnel
IPv4-Kopf plus 4 Bytes GRE.Warum dieser Wert

20 Bytes äußerer IP-Kopf plus 4 Bytes GRE.

1500 (Rahmen 1522)
VLAN nach 802.1Q
Das Etikett vergrößert den Rahmen, statt die 1500 zu kürzen.Warum dieser Wert

Der Sonderfall, über den am meisten Verwirrung herrscht: Das VLAN-Etikett kostet 4 Bytes, aber sie gehen NICHT von den 1500 ab — der Rahmen wird auf 1522 größer. Jeder Switch, der VLANs kann, lässt das durch („Baby Giants“). Nur wo ein Gerät in der Kette stur bei 1518 bleibt, musst du auf 1496 herunter. QinQ (zwei Etiketten, 802.1ad) kostet 8 Bytes.

1492 (VDSL meist)
VDSL / VDSL2
Nicht VDSL entscheidet, sondern die Einwahlart.Warum dieser Wert

VDSL selbst kostet nichts extra — entscheidend ist, wie eingewählt wird. Mit PPPoE (Telekom, 1&1, die meisten Reseller) sind es 1492. Wer per DHCP ins Netz kommt (viele Kabel- und einige Glasfasertarife), behält 1500. Kommt ein VLAN-Etikett vom Provider dazu (Telekom nutzt VLAN 7), ändert das an der MTU nichts — das Etikett trägt die Leitung, nicht dein Paket.

1460
DS-Lite — IPv4 durch einen IPv6-Tunnel (viele Kabel- und Glasfasertarife)
Der äußere IPv6-Kopf kostet 40 Bytes.Warum dieser Wert

Kein NAT-Effekt, sondern Kapselung: Dein Router (das B4-Element) packt jedes IPv4-Paket in einen IPv6-Kopf, bevor es zum Provider geht. Die 40 Bytes gehen von deinen 1500 ab. RFC 6333 verlangt darum ausdrücklich, dass der Provider die Strecke bis zum AFTR um mindestens 40 Bytes größer auslegt — tut er das, merkst du nichts und behältst 1500. Tut er es nicht, landest du bei 1460, ohne dass irgendwo „Tunnel“ draufsteht. Erkennungszeichen: Du hast keine eigene öffentliche IPv4-Adresse, IPv6 dagegen schon.

1450
VXLAN — Proxmox-SDN, Kubernetes-CNI, Virtuozzo
50 Bytes Kapselung.Warum dieser Wert

50 Bytes für äußeren IP- und UDP-Kopf, VXLAN-Kopf und den mitgeschleppten inneren Ethernet-Rahmen. Über IPv6 als Transport sind es 70, also 1430.

1442
GENEVE — OpenStack mit OVN, Cilium
58 Bytes im üblichen OVN-Profil.Warum dieser Wert

Der GENEVE-Basiskopf misst nur 8 Bytes; die hier gerechneten 58 sind das übliche Profil aus äußerem IPv4, UDP und innerem Ethernet — ohne Optionen kommt man auch mit rund 50 aus. Optionsfelder sind variabel und machen es enger. Weil OVN inzwischen der Standard in OpenStack ist, ist das der Wert, mit dem man dort rechnet — nachrechnen lohnt sich trotzdem.

1420
WireGuard, Voreinstellung von wg-quick
wg-quick rechnet vorsorglich mit 80 Bytes.Warum dieser Wert

Über IPv4 kostet WireGuard 60 Bytes, über IPv6 achtzig. wg-quick rechnet vorsorglich mit 80 — daher 1500 − 80.

1400–1427
IPsec (ESP im Tunnelmodus)
50 bis 73 Bytes, je nach Verfahren.Warum dieser Wert

Je nach Verschlüsselung, Prüfsumme und NAT-Traversal gehen 50 bis 73 Bytes weg. Deshalb kein fester Wert.

1428–1500
Mobilfunk (LTE, 5G)
Netzabhängig — nachmessen statt raten.Warum dieser Wert

Netzabhängig. Viele Netze liefern volle 1500, einige deutlich weniger — nachmessen statt raten.

1280
Kleinster Wert, den jeder IPv6-Weg können muss
Untergrenze, die jeder IPv6-Weg tragen muss.Warum dieser Wert

Unter diesen Wert darf IPv6 nirgends fallen. Als Notwert bei „gar nichts geht mehr“ brauchbar.

9000
Jumbo Frames im Speicher- und Backup-Netz
Nur im abgeschlossenen Netz.Warum dieser Wert

Sechsmal weniger Pakete für dieselbe Datenmenge. Nur in abgeschlossenen Netzen, nie Richtung Internet.

576
Größe, die jedes IPv4-Ziel mindestens zusammensetzen können muss
Mindestgröße beim Empfänger, keine Zusage über den Weg.Warum dieser Wert

Häufig missverstanden: Das ist die Mindest-Reassemblygröße am EMPFÄNGER, keine zugesicherte Pfad-MTU — RFC 1191 nennt ausdrücklich Wege darunter. Die kleinste IPv4-Link-MTU ist 68 Byte. Als vorsichtiger Notwert brauchbar, aber langsam: Jedes Paket schleppt anteilig mehr Kopf mit.

3 — Warum es hängt statt zu meckern

Ist ein Paket zu groß, hängt alles am DF-Bit („nicht fragmentieren“). Ist es gesetzt — und das ist bei allem, was Path MTU Discovery betreibt, der Fall —, wird das Paket verworfen und das Gerät schickt eine ICMP-Meldung zurück: „Zu groß, nimm 1420.“ Genau davon lebt Path MTU Discovery . Ohne DF-Bit darf ein IPv4-Router das Paket stattdessen zerlegen und weiterschicken; bei IPv6 gibt es diese Möglichkeit gar nicht, dort fragmentieren Router grundsätzlich nicht. Das Verfahren funktioniert gut — solange die Meldung ankommt.

Path MTU Discovery mit und ohne durchgelassene ICMP-MeldungLinks der vorgesehene Ablauf: Der Rechner schickt ein Paket mit 1500 Bytes, ein Router im Weg mit MTU 1420 antwortet mit der ICMP-Meldung „Fragmentation needed, MTU 1420“, der Rechner schickt daraufhin 1420 Bytes und die Verbindung läuft. Rechts derselbe Ablauf, aber eine Firewall wirft die ICMP-Meldung weg: Der Rechner erfährt nichts, wiederholt das zu große Paket immer wieder, und die Verbindung bleibt hängen.So ist es gedachtDein RechnerMTU 1500Router im WegMTU 1420Paket, 1500 BytesICMP: zu groß, nimm 1420Paket, 1420 BytesDie Seite lädt. Zwei Pakete Verzögerung, sonst nichts.Wenn ICMP geblockt wirdDein RechnerMTU 1500Router im WegMTU 1420Paket, 1500 BytesICMP: zu groß, nimm 1420Firewall wirft ICMP wegnochmal 1500 … und nochmal … und nochmalKein Fehler, keine Meldung. Es hängt einfach.
Wer ICMP pauschal blockt, nimmt dem klassischen Path MTU Discovery seine einzige Rückmeldung. Das Ergebnis ist kein Fehler, den man sieht, sondern eine Verbindung, die stehen bleibt — das „PMTUD-Schwarze-Loch“. Einen Ausweg gibt es: Bei DPLPMTUD (RFC 8899) tastet der Transport die Größe mit eigenen Testpaketen ab und braucht dafür gar keine ICMP-Meldung. QUIC macht das von Haus aus, TCP kann es. Wer noch klassisches PMTUD fährt — und das ist die Mehrheit —, bleibt auf die Meldung angewiesen.
Was du durchlassen musst
  • IPv4: ICMP Typ 3, Code 4 — „Fragmentation needed“
  • IPv6: ICMPv6 Typ 2 — „Packet Too Big“

Bei IPv6 ist das keine Empfehlung, sondern Pflicht: Router dürfen dort gar nicht mehr fragmentieren. Ohne „Packet Too Big“ ist IPv6 kaputt.

Woran du es erkennst

Kleine Anfragen laufen, große sterben. ping geht, ping -s 1400 geht nicht mehr. Der Verbindungsaufbau steht in Sekunden, danach passiert nichts. Genau dieses Muster ist der Fingerabdruck.

Warum die Meldung unterwegs verlorengeht
Eine Firewall wirft ICMP pauschal weg

Der häufigste Fall, und meistens gut gemeint. Welche ICMPv6-Nachrichten eine Firewall durchlassen MUSS, steht nicht zur Debatte: RFC 4890 führt „Packet Too Big" ausdrücklich unter dem Verkehr, der nicht verworfen werden darf — mit der Begründung, dass sonst Teile des Internets unerreichbar werden. Für IPv4 gilt dasselbe für Typ 3 Code 4, nur weniger streng formuliert.

Ein NAT-Gerät ordnet die Meldung nicht mehr zu

NAT ändert die Paketgröße nicht — Adressen und Ports sind vorher wie nachher gleich lang. Aber die ICMP-Meldung trägt den Kopf des zu großen Pakets in sich, und den muss das NAT ebenfalls zurückübersetzen, sonst weiß es nicht, welcher Rechner im Haus gemeint war. RFC 5508 verlangt genau das (REQ-4 und REQ-5). Zustandsbehaftete Implementierungen können es; einfache Geräte werfen die Meldung dann still weg.

Der Router meldet keine Größe mit

Ältere Geräte schicken „zu groß" ohne die Zahl, wie groß es denn sein dürfte. RFC 1191 hat das eingeplant: Der Sender rät dann anhand einer Leiter üblicher Werte — 1500, 1006, 576, 296 — statt jede Größe einzeln durchzuprobieren. Das erklärt, warum eine Verbindung manchmal auf einem krumm wirkenden Wert wie 576 hängen bleibt, obwohl der Weg mehr könnte.

Woran merkst du, dass es die MTU ist?

MTU-Probleme sehen nie wie Netzwerkprobleme aus. Die Leitung ist schnell, der Ping ist gut, alle anderen Geräte gehen — nur eine Sache tut es nicht. Das gemeinsame Muster ist immer dasselbe: klein geht, groß geht nicht.

  • SSH läuft flüssig, Webseiten bleiben weiß

    Tastenanschläge in SSH sind winzige Pakete, eine Webseite kommt in vollen 1500ern. Nur die großen bleiben stecken — deshalb wirkt „die Leitung geht doch“.

  • Der Download bleibt bei 90 % stehen

    Verbindungsaufbau und Handschlag sind klein und gehen durch. Erst wenn die Übertragung auf volle Paketgröße hochfährt, verschwinden die Pakete.

  • Im VPN gehen kleine Seiten, große nicht

    Der Klassiker. Die Tunnel-MTU ist zu groß eingestellt: Was hineingegeben wird, passt außen nicht mehr durch.

  • Die Videokonferenz bricht ab, sobald jemand den Bildschirm teilt

    Sprache besteht aus kleinen Paketen, eine Bildschirmfreigabe aus vollen. Genau dann kippt es.

  • Eine einzelne große Mail hängt beim Abruf

    Derselbe Effekt: Der Anhang füllt die Pakete aus, der Rest des Postfachs nicht.

  • Genau ein Anbieter geht nicht, alle anderen schon

    Auf genau diesem Weg liegt eine kleinere MTU — oder eine Firewall, die die Rückmeldung darüber wegwirft.

4 — Jumbo Frames: alles oder nichts

In einem abgeschlossenen Netz — Speicher, Backup, Virtualisierung — kann man die MTU auf 9000 heben. Dann trägt jedes Paket sechsmal so viel Nutzlast, und die Prozessoren an beiden Enden müssen sechsmal weniger Pakete anfassen. Der Haken: Das funktioniert nur, wenn jedes Gerät im Segment mitmacht.

Jumbo Frames mit und ohne durchgängige EinstellungLinks ein Speichernetz, in dem zwei Server, der Switch und das Storage-System alle auf MTU 9000 stehen — große Rahmen kommen überall durch. Rechts dasselbe Netz, aber ein Server steht auf MTU 1500. Seine Verbindung verwirft große Rahmen ohne Fehlermeldung, weil im selben Netzsegment kein Router steht, der eine ICMP-Meldung schicken könnte.Alle auf 9000Server 1MTU 9000Server 2MTU 9000SwitchMTU 9000StorageMTU 9000Große Rahmen kommen überall durch.Ein Gerät auf 1500Server 1MTU 9000Server 2MTU 1500SwitchMTU 9000StorageMTU 9000Verwirft still — im selben Netz gibt es keine ICMP-Meldung.
Innerhalb eines Netzsegments greift Path MTU Discovery nicht: Dort steht kein Router, der „zu groß“ zurückmelden könnte. Ein einziges Gerät mit 1500 lässt große Übertragungen deshalb spurlos verschwinden — Ping und kleine Zugriffe funktionieren weiter, das Backup nicht.
Regel für Jumbo Frames
  • Nur in einem eigenen, abgeschlossenen Segment (Storage-VLAN, Backup-Netz) — nie auf dem Weg ins Internet.
  • Server, Switch-Ports, Uplinks, VMkernel-Ports und das Storage-Array müssen alle denselben Wert tragen.
  • Manche Switche zählen den Ethernet-Rahmen statt der MTU. 9000 MTU heißt dort 9014 oder 9216 — Handbuch lesen.
  • Nach dem Umstellen gegenprüfen: ping -M do -s 8972 <storage-ip> muss durchgehen.

Was stellst du wo ein?

Wo willst du die MTU setzen?

Router und Tunnel
Am Gerät
Virtualisierung

Router, WAN-Seite

Bei DSL mit PPPoE gehört hier 1492 hin. Bei Kabel, Glasfaser und DHCP bleibt 1500 richtig — setze den Wert nur herunter, wenn du weißt warum.

Die Regel für alles Getunnelte

Das Trägernetz muss größer sein als das, was hindurchläuft — mindestens um den Kapselungs-Overhead. Zwei Wege führen dahin: den Unterbau auf Jumbo heben (9000 auf allen physischen Strecken) und die Gäste bei 1500 lassen, oder den Unterbau bei 1500 lassen und die Gäste absenken. Der häufigste Fehler beim Absenken ist, den Unterbau versehentlich mitzusenken — dann fehlt der Kapselung genau der Platz, den man ihr schaffen wollte, und es bricht später und schwerer auffindbar: erst bei großen Übertragungen.

5 — Die Segmentgröße wird über Kreuz vereinbart

Beim Verbindungsaufbau sagt jede Seite, was sie selbst empfangen möchte — und die Gegenseite hält sich daran. Nicht umgekehrt. Deshalb begrenzt deine MTU nicht, was du sendest; sie begrenzt, was du ankündigst.

TCP-Verbindungsaufbau zwischen zwei Rechnern mit unterschiedlicher MTULinks ein Rechner mit MTU 9000, rechts einer mit MTU 1500. Der linke kündigt im SYN eine Segmentgröße von 8960 Bytes an, der rechte antwortet im SYN/ACK mit 1460. Danach senden beide Seiten höchstens 1460 Bytes je Segment: der linke, weil die Gegenseite nicht mehr annimmt, der rechte, weil seine eigene MTU nicht mehr hergibt.Rechner AMTU 9000Rechner BMTU 1500SYN — MSS 8960„du darfst mir 8960 schicken“SYN/ACK — MSS 1460„schick mir höchstens 1460“ab jetzt: beide Richtungen höchstens 1460Angekündigt wird, was man empfangen will. Gesendet wird das Kleinste von allem.
Zwei Geräte mit verschiedener MTU im selben Netz vertragen sich über TCP problemlos — die Aushandlung fängt den Unterschied ab. Genau deshalb ist eine MTU-Umstellung im laufenden Betrieb für TCP unkritisch und braucht kein Wartungsfenster. Was gesendet wird, ist immer das Kleinste aus drei Größen: der eigenen MTU, der angekündigten Segmentgröße der Gegenseite und der gelernten Pfad-MTU.
Und ohne diese Aushandlung?

UDP, QUIC, ICMP, GRE und ESP haben keine MSS. Stehen dort zwei verschiedene MTUs im selben Netzsegment, bricht es still — und nur in eine Richtung: von groß nach klein. Der Empfänger verwirft den zu großen Rahmen im Treiber, und weil im selben Segment kein Router steht, meldet das niemand zurück.

MSS-Clamping — der übliche Rettungsanker

Beim Verbindungsaufbau sagt jede TCP-Seite, wie große Stücke sie annehmen kann: die MSS. MSS-Clamping heißt, dass der Router diese Zahl im Vorbeigehen herunterschreibt — auf das, was durch seinen Engpass tatsächlich passt. Dann verhandeln beide Seiten von vornherein eine Größe, die durchgeht, und niemand ist auf eine ICMP-Meldung angewiesen.

Am besten sitzt die Regel auf dem Gerät, das den Engpass terminiert: dem Router mit dem PPPoE-Anschluss, dem VPN-Endpunkt, der Firewall vor dem Tunnel. Dort kennt es die kleinere MTU und kann sie mit --clamp-mss-to-pmtuselbst einsetzen. Zwingend ist das aber nicht: Auch ein Gerät MITTENDRIN kann clampen, solange die Verbindungsaufbau-Pakete über es laufen — genau dafür ist die FORWARD -Kette unten da. Es muss dann nur den passenden Wert fest vorgegeben bekommen, weil es die Engstelle nicht kennt.

Linux mit iptables
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Linux mit nftables
nft add rule inet filter forward tcp flags syn tcp option maxseg size set rt mtu

In den meisten Heim- und Firmenroutern heißt derselbe Schalter „MSS Clamping“, „TCP MSS Adjust“ oder „Clamp MSS to MTU“ und steht bei den WAN- oder VPN-Einstellungen.

Die Grenze des Rettungsankers

MSS-Clamping wirkt nur auf TCP. UDP hat keine MSS — und darüber laufen DNS, WireGuard, Videokonferenzen und QUIC, also ein großer Teil des heutigen Webverkehrs. Wenn nach dem Clamping Webseiten gehen, aber Videoanrufe weiter abbrechen, ist das kein Zufall, sondern genau diese Lücke. Was dann hilft, steht im nächsten Abschnitt.

Wenn du an das Gerät gar nicht drankommst

Clamping setzt voraus, dass dir ein Gerät im Weg gehört. Tut es das nicht — fremdes Firmennetz, Hotel-WLAN, Mobilfunk —, bleibt der Weg über den eigenen Rechner: Linux kann einen Blackhole an den ausbleibenden Bestätigungen selbst erkennen und sich ohne jede ICMP-Meldung nach unten tasten (RFC 4821).

sysctl -w net.ipv4.tcp_mtu_probing=1

1 heißt „erst wenn ein Blackhole aufgefallen ist", 2 heißt „immer". Als Dauerlösung unschön, weil es erst nach einer spürbaren Hängephase greift — als Notausgang brauchbar.

UDP hat keine MSS — was dann?

Die MSS ist ein Feld im TCP-Verbindungsaufbau. UDP hat keinen Verbindungsaufbau und deshalb auch nichts, was ein Router im Vorbeigehen kleinerschreiben könnte. Jeder Rat der Form „mach MSS-Clamping an“ endet hier — und ausgerechnet die Dienste, bei denen Paketgrößen wehtun, laufen über UDP: WireGuard, QUIC (also HTTP/3), DNS, Videokonferenzen und Spiele.

Statt einer Aushandlung unterwegs gibt es drei Wege, und welcher greift, entscheidet die Anwendung selbst:

1 — Feste Größe einstellen (WireGuard, OpenVPN im UDP-Modus)

WireGuard handelt nichts aus: Was du in MTU = schreibst, gilt. Deshalb ist der Wert dort kein Feinschliff, sondern die einzige Stellschraube — und er muss auf beiden Seitenpassen. wg-quick nimmt ohne Angabe 1420: 1500 minus 80, also vorsorglich mit dem teureren IPv6-Kopf gerechnet. Hinter DSL mit PPPoE sind schon 1412 richtig, hinter einem weiteren Tunnel entsprechend weniger.

Erkennungszeichen für einen zu großen Wert: Der Tunnel steht, Ping läuft, kleine Abfragen gehen — und sobald etwas Größeres kommt (eine Datei, ein Bild, eine Datenbankantwort), bleibt es hängen.

2 — Die Anwendung sucht selbst (QUIC, HTTP/3)

QUIC verlässt sich bewusst nicht auf ICMP. Es sendet zwischendurch absichtlich größere Testpakete und merkt an der ausbleibenden Bestätigung selbst, wo die Grenze liegt — das Verfahren heißt DPLPMTUD (RFC 8899). Es beginnt bei 1200 Bytes — so groß muss ein UDP-Datagramm mit einem QUIC-Initial-Paket mindestens sein, das ist nicht die Nutzlast der Anwendung — und tastet sich nach oben. Deshalb funktioniert HTTP/3 auch dort noch, wo eine falsch eingestellte Firewall alles ICMP wegwirft. Einstellen musst du dafür nichts — es ist der Grund, warum manche Seiten über HTTP/3 laden, während dieselbe Seite über HTTP/2 hängt.

3 — Von vornherein klein bleiben (DNS)

DNS über UDP hat das Problem am längsten und löst es am schlichtesten: Der Fragende sagt in der EDNS0-Option, wie große Antworten er annehmen kann. Früher standen dort 4096 Bytes — die Antwort wurde dann unterwegs fragmentiert und ging bei kaputter PMTUD verloren. Seit dem DNS Flag Day 2020 ist 1232 der verbreitete konservative Wert: klein genug, um selbst über einen IPv6-Pfad mit der Mindest-MTU 1280 unfragmentiert anzukommen. Zwingend ist er nicht — RFC 9715 nennt inzwischen 1400 als sinnvolle Obergrenze und lässt kleinere Werte ausdrücklich zu. Passt die Antwort nicht hinein, schickt der Server ein Kürzungszeichen und der Fragende wiederholt über TCP.

Wenn also DNSSEC-Antworten oder große TXT-Einträge sporadisch ausbleiben, während normale Abfragen laufen, ist das dasselbe Muster wie bei den halb geladenen Seiten — nur eine Schicht tiefer.

Was daraus für die Fehlersuche folgt

Geht Surfen nach dem MSS-Clamping wieder, aber Videoanrufe brechen weiter ab, hast du das TCP-Problem behandelt und das UDP-Problem stehen lassen. Dann hilft nur, was ohnehin die saubere Lösung ist: die richtige MTU auf dem Engpass-Gerät setzen und ICMP durchlassen — konkret ICMPv4 Typ 3 Code 4 und ICMPv6 Typ 2. Clamping ist ein Verband, keine Heilung.

Selbst nachmessen

Du schickst ein Paket fester Größe mit dem Vermerk „nicht zerlegen“. Kommt eine Antwort, passt es. Kommt stattdessen „Paket müsste fragmentiert werden“, war es zu groß. Dann verkleinerst du, bis es durchgeht.

Windows
ping -f -l 1472 ocalhost.net

-f heißt „nicht fragmentieren“, -l ist die Nutzlast in Bytes.

Linux
ping -M do -s 1472 ocalhost.net

-M do heißt „nicht fragmentieren“, -s ist die Nutzlast in Bytes.

macOS
ping -D -s 1472 ocalhost.net

-D heißt „nicht fragmentieren“, -s ist die Nutzlast in Bytes.

Die +28-Regel

Die Zahl, die du eingibst, ist nicht die MTU, sondern nur die Nutzlast. Dazu kommen 8 Bytes ICMP-Kopf und 20 Bytes IPv4-Kopf:

Rechenkarte — trag deine MTU ein

MSS IPv4
1460
− 20 IP − 20 TCP
MSS IPv6
1440
− 40 IPv6 − 20 TCP
ping-Nutzlast IPv4
1472
− 20 IP − 8 ICMP
ping-Nutzlast IPv6
1452
− 40 IPv6 − 8 ICMPv6
Rahmen auf dem Draht
1518
+ 14 Ethernet + 4 FCS · mit VLAN-Etikett 1522

Die angekündigte Segmentgröße rechnet nur mit den festen Köpfen — TCP-Optionen zählen ausdrücklich nicht hinein (RFC 6691). Wer Zeitstempel und SACK nutzt, kündigt weiterhin 1460 an, bringt aber nur 1448 Bytes Nutzdaten je Segment unter: Der Sender muss seine Optionen selbst abziehen. Deshalb stimmen der angekündigte Wert und die tatsächlich gesendete Menge nie ganz überein — das ist kein Fehler, sondern so vorgesehen.

Geht 1472 nicht durch, aber 1464, dann liegt deine Pfad-MTU mindestens bei 1492 und unter 1500 — mehr sagt dieses Paar nicht. Die Leiter springt in Achterschritten, der genaue Wert kann also 1492 bis 1499 sein. In der Praxis ist es fast immer 1492 (der DSL-Wert), aber gemessen ist die Spanne. Wer es genau wissen will, tastet sich vom größten durchgehenden Wert in Einerschritten nach oben. Bei IPv6 rechnest du +48 statt +28 (40 Bytes IPv6-Kopf, 8 Bytes ICMPv6).

So gehst du vor
  1. Mit 1472 anfangen. Geht durch? Dann trägt der Weg mindestens 1500 — und mehr braucht Ethernet nicht.
  2. Sonst runter: 1464, 1452, 1440, 1420, 1392. Der erste Wert, der durchgeht, plus 28 ist die Untergrenze deiner Pfad-MTU; der wahre Wert liegt zwischen ihr und dem nächsten gescheiterten Schritt.
  3. Miss zu mehreren Zielen. Ein einzelnes Ziel sagt dir nur etwas über genau diesen Weg.
  4. Miss aus dem VPN heraus und daneben. Der Unterschied ist genau der Overhead des Tunnels.

Wichtig: Wenn das Ziel ICMP grundsätzlich nicht beantwortet, misst du gar nichts — dann ist das Ergebnis „nicht prüfbar“ und nicht „MTU zu klein“. Nimm in dem Fall ein anderes Ziel.

Was dein Rechner schon weiß

Bevor du dich mit ping nach unten tastest: Drei Befehle verraten, was dein System längst gelernt hat. Alle drei lesen nur und laufen ohne Root.

tracepath ocalhost.net

Zeigt die Pfad-MTU je Abschnitt und meldet am Ende, wo sie kleiner wurde. Bricht die Ausgabe ab einem Abschnitt in lauter „no reply" um, während oben noch ein großer Wert steht, ist das genau das Schwarze Loch von oben. Ein einzelnes „no reply" mittendrin, nach dem es weitergeht, ist dagegen harmlos — ein Router, der seine Antworten begrenzt.

ip route get 1.1.1.1

Zeigt, ob dein System für dieses Ziel bereits eine kleinere Pfad-MTU gelernt hat. Steht dort ein Wert, hat Path MTU Discovery funktioniert. Linux vergisst ihn nach etwa zehn Minuten wieder.

ss -tim dst ocalhost.net

Die aussagekräftigste Einzelmessung bei laufendem Verkehr: „advmss" ist, was dieser Rechner angekündigt hat, „mss" was tatsächlich gesendet wird, „pmtu" was über den Weg gelernt wurde. Eine große „mss" zusammen mit vielen „retrans" ist das Bild eines Schwarzen Lochs.

Im Mitschnitt nachsehen

Wenn die Zahlen sich widersprechen, hilft der Blick auf die Pakete selbst.

tcpdump -i any -nn -vv 'tcp[tcpflags] & tcp-syn != 0'

Was beide Seiten beim Verbindungsaufbau ankündigen. Das -vv ist Pflicht, sonst zeigt tcpdump die TCP-Optionen gar nicht.

tcpdump -i any -nn -vv 'icmp[icmptype] == 3 and icmp[icmpcode] == 4'

Kommt „Fragmentation needed" überhaupt zurück? Bleibt das still, während große Pakete verschwinden, ist die Meldung unterwegs weggefiltert.

tcpdump -i any -nn -vv 'icmp6 and ip6[40] == 2'

Dasselbe für IPv6: „Packet Too Big".

Die Falle dabei

Im Mitschnitt tauchen Pakete von 16000 oder 64000 Bytes auf, die so nie über die Leitung gingen: Die Netzwerkkarte setzt große Blöcke erst danach in echte Rahmen um (TSO/GSO), und ankommende fasst sie vorher zusammen (GRO). Betroffen ist ausschließlich die Paketlänge — Verbindungsaufbau, ICMP und die Fragment-Kennzeichen laufen nicht durch diese Pfade und bleiben aussagekräftig. Wer wirklich Drahtgrößen braucht, schneidet woanders mit: am Spiegelport des Switches oder auf dem Router. Die Beschleunigung am produktiven Server abzuschalten kostet Durchsatz und Rechenzeit.

Häufige Irrtümer

  • „1500 ist immer richtig.“

    Meistens, aber nicht immer. Sobald PPPoE, VPN oder ein anderer Tunnel im Spiel ist, ist 1500 innen zu groß — und zwar genau um den Overhead dieser Schicht. Auch ohne Tunnel ist 1500 keine Zusicherung: Die Pfad-MTU richtet sich nach dem SCHMALSTEN Abschnitt des aktuellen Weges, und der kann in einem Richtfunkabschnitt oder bei einem Provider-Übergang enger sein. Deshalb misst man, statt zu setzen.

  • „Ich habe 1500 gepingt, also ist meine MTU 1500.“

    Nein: Die Zahl hinter -l bzw. -s ist die Nutzlast. Plus 8 Bytes ICMP-Kopf plus 20 Bytes IPv4-Kopf ergibt die MTU. Wer 1500 Nutzlast durchbekommt, hat also eine Pfad-MTU von mindestens 1528 gemessen. Entscheidend ist dabei, ob das DF-Bit gesetzt war: MIT DF (-f, -M do, -D) ist Fragmentierung ausgeschlossen — der Weg trägt die Größe dann wirklich, was auf Jumbo Frames im lokalen Netz hindeutet. OHNE DF sagt der Erfolg gar nichts über die Pfad-MTU aus, denn dann durfte unterwegs jeder Router zerlegen.

  • „ICMP komplett zu blocken ist sicherer.“

    Es baut genau das Schwarze Loch von oben. Ohne „Fragmentation needed“ (IPv4) beziehungsweise „Packet Too Big“ (IPv6) kann kein Gegenüber seine Paketgröße anpassen.

  • „MSS-Clamping löst das Problem.“

    Für TCP ja, und das ist viel. Für UDP, QUIC und alles Getunnelte nicht — moderne Browser holen viel über QUIC, und das läuft an der MSS vorbei.

  • „Jumbo Frames überall einschalten bringt Tempo.“

    Nur in einem abgeschlossenen Netz, in dem jedes einzelne Gerät mitspielt. Ein Gerät auf 1500 dazwischen, und große Übertragungen sterben still.

  • „MTU höher = schneller.“

    Eine höhere MTU spart anteilig Kopfdaten, mehr nicht — im einstelligen Prozentbereich. Eine falsch gesetzte MTU kostet dagegen die halbe Funktion.

Wenn du jetzt weitersuchen willst

Ein MTU-Verdacht lässt sich mit dem Weg zusammenlesen: Wo wechselt der Pfad das Netz, wo beginnt der Tunnel?

Worauf sich das hier stützt

Die Zahlen und Regeln auf dieser Seite stammen aus den folgenden Normen, nicht aus Foren.

  • RFC 1191 — Path MTU Discovery — das DF-Bit-Verfahren, die Werteleiter und die Untergrenze von 68 Bytes
  • RFC 8201 — Path MTU Discovery für IPv6 — dort Pflicht, nicht Kür
  • RFC 8200 — IPv6 — Mindest-MTU 1280, und Router fragmentieren nicht
  • RFC 2923 — Die bekannten Probleme mit PMTUD, einschließlich des Schwarzen Lochs
  • RFC 6691 — Die angekündigte Segmentgröße rechnet ohne TCP-Optionen
  • RFC 9293 — TCP — löst RFC 793 ab und definiert die MSS-Option
  • RFC 4821 — PLPMTUD — Größe finden ohne ICMP
  • RFC 8899 — Dasselbe für Datagramme, davon lebt QUIC
  • RFC 9000 — QUIC — mindestens 1200 Bytes je Datagramm
  • RFC 4890 — Welche ICMPv6-Nachrichten eine Firewall durchlassen muss
  • RFC 5508 — Was ein NAT mit ICMP-Fehlermeldungen zu tun hat
  • RFC 2516 — PPPoE — Ursprung der 1492
  • RFC 4638 — PPPoE mit voller 1500er-MTU, wenn die Strecke es hergibt
  • RFC 6333 — DS-Lite — IPv4 im IPv6-Tunnel, 40 Bytes Kapselung
  • RFC 7348 — VXLAN
  • RFC 8926 — GENEVE
  • RFC 9715 — DNS über UDP kleiner halten statt fragmentieren