Maximum Transmission Unit (MTU) mit Ping Prüfen

4.8
(5)

Die MTU mit Ping auf dem Übertragungsweg prüfen, wird das ICMP Paket fragmentiert, ist die maximale MTU eines Pfades überschritten.

Die Maximum Transmission Unit beschreibt die maximale Paketgröße eines Protokolls in der Vermittlungsschicht des OSI-Modells, welche ohne Fragmentierung der Frames in der Sicherungsschicht in Netzwerke übertragen werden kann. Diese Paketgröße passt in die Nutzlast (Payload) des Protokolls der Sicherungsschicht.

Festlegen der optimalen MTU-Größe für Router

Um die MTU eines Pfades zu Prüfen, muss man an Ping den Parameter -f übergeben, um das „don’t fragment bit (DF-Bit-Set)“ für die ICMP Testpakete im IPv4-Header zu setzen, erst dann erhält man eine Nachricht, falls die MTU überschritten wird.

ICMP Paket und MTU Size

ICMP Paket und Maximum Transmission Unit (MTU), MTU ping ICMP Paket fragmentiert

Eine Windows Eingabeaufforderung öffnen und Ping ausführen, um die MTU-Größe eines Pfades zu ermitteln.

Der Parameter -f legt fest das die Pakete nicht fragmentiert werden.
Die Größe des Sendepuffers wird mit -l angegeben.

C:\> ping -4 -f 1.1.1.1 -l 1473

Ping wird ausgeführt für 1.1.1.1 mit 1473 Bytes Daten:
Paket müsste fragmentiert werden, DF-Flag ist jedoch gesetzt.
Paket müsste fragmentiert werden, DF-Flag ist jedoch gesetzt.
Paket müsste fragmentiert werden, DF-Flag ist jedoch gesetzt.
Paket müsste fragmentiert werden, DF-Flag ist jedoch gesetzt.

Ping-Statistik für 1.1.1.1:
    Pakete: Gesendet = 4, Empfangen = 0, Verloren = 4
    (100% Verlust),

Wie die oben ausgeführten Ergebnisse zeigen, müssten die Pakete fragmentiert werden. Würde der Parameter -f ausgelassen, würde Ping antworten mit Fragmentierung, was wir jedoch gezielt nicht möchten.

MTU überschritten ICMP Ping wird fragmentiert

Wenn man als Antwort „Paket müsste fragmentiert werden, DF-Bit-Set ist jedoch gesetzt.“ bekommt, hat die ICMP Ping-Anforderung die maximale MTU überschritten.

  Am besten ist es, Ping mit MTU-Wert stufenweise zu verringern, in Zehnerschritten +/-10 (zB. 1472, 1462, 1440, 1400) bis eine Paketgröße erreicht wird, und die Antworten empfängt ohne das ICMP Ping Pakete fragmentiert werden.

C:\> ping -4 -f 1.1.1.1 -l 1472

Ping wird ausgeführt für 1.1.1.1 mit 1472 Bytes Daten:
Antwort von 1.1.1.1: Bytes=1472 Zeit=7ms TTL=56
Antwort von 1.1.1.1: Bytes=1472 Zeit=9ms TTL=56
Antwort von 1.1.1.1: Bytes=1472 Zeit=8ms TTL=56
Antwort von 1.1.1.1: Bytes=1472 Zeit=6ms TTL=56

Ping-Statistik für 1.1.1.1:
    Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0
    (0% Verlust),
Ca. Zeitangaben in Millisek.:
    Minimum = 6ms, Maximum = 9ms, Mittelwert = 7ms

Die oben ausgeführten Ergebnisse zeigen an, dass die Pakete nicht fragmentiert werden.

MTU Größe ICMP Ping ist fragmentiert

Um nun die richtige MTU-Größe zu bekommen, nimmt man 1472 und addiert 28 dazu. Beim obigen Beispiel ist 1472 der richtige Wert, und die Größe 1500 für das Netzwerk in dem man arbeitet.

  Berechnung: 8 Bytes für den ICMP-Header + 20 Bytes für den IP-Header + 1472 Bytes für den ICMP-Payload:  8 + 20 + 1472 = 1500

Das Control Message Protocol Protokoll (ICMP) im Layer 3 der Netzwerkschicht, das vom Ping zum Senden einer Nachricht über die ICMP-Nutzlast (Payload) verwendet wird, die mit dem IP-Header gekapselt ist. Die MTU darf die Größe des ICMP-Pakets von 1500 Byte nicht überschreiten.

ICMP Paket Network layer

IP headerICMP headerICMP payload size  MTU (1500)
20 bytes8 bytes1472 bytes
(maximum)
20 + 8 + 1472 = 1500
Ethernet
header
IP headerICMP headerICMP payload size  MTU (1514)
1420 bytes8 bytes1472 bytes
(maximum)
14 + 20 + 8 + 1472 = 1514

Hinweis. Die Standardgröße der ICMP-Nutzlast beträgt 32 Byte und das Maximum ist 1472. Wenn die Größe des Nutzlastpakets größer als 1472 ist, wird das Paket in kleine Pakete fragmentiert.

ICMP Paket dekodierung mit Wireshark

Das ICMP Paket das von der Quellmaschine gesendet wird, ist eine Echoanforderung. In der Abbildung ist zu sehen, das mit ICMP-Abfragecode 8 auf die Ping-Anforderung geantwortet wird.

Ping mit DF-Bit-Set für Linux Shell und macOS Terminal

Linuxping -M do -s 1472 1.1.1.1
macOSping -D -s 1472 1.1.1.1
Ping mit DF-Flag (ohne fragmentierung)

Im Terminal den Linux ping mit DF-Bit-Set für keine Fragmentierung.

$ ping -M do -s 1473 1.1.1.1
PING 1.1.1.1 (1.1.1.1) 1473(1501) bytes of data.
ping: local error: Message too long, mtu=1500
ping: local error: Message too long, mtu=1500
ping: local error: Message too long, mtu=1500
^C
--- 1.1.1.1 ping statistics ---
3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 31ms

Typische MTU-Größen ping ICMP fragmentiert

MediumMTU in Bytes
Ethernet1500
PPPoE1492
VPN gekapselt1420
ATM4500

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 4.8 / 5. Anzahl Bewertungen: 5

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert