Okay, ich habe gerade ein Problem mit Jumbo-Frames zwischen einigen Xserves, einem Netgear GSM7224 und einem Drobo B800i behoben. Es stellte sich heraus, dass der Xserves (Mac OS X 10.6.8 Server) und der Drobo B800i die MTU in Byte erwartungsgemäß akzeptieren (1500-9000), aber der Netgear scheint dies gewollt zu haben, einschließlich der verschiedenen Ethernet-Kopf- / Fußzeilen (Trailer) ) und ich landete schließlich mit dem Xserves & Drobo, der mit einer MTU von 9000 und den auf eine MTU von 9216 eingestellten Netgear-Ports konfiguriert war.
Ich habe die folgenden Befehle zum Testen und Überprüfen der MTU zwischen den beiden Xserves über Netgear verwendet (Hinweis: Dies sind die Mac OS X-Befehle, die Windows- und Linux-Befehle unterscheiden sich):
ping -D -s <mtu> <ip_address>
traceroute -F <ip_address> <mtu>
Die Verwendung des Ersteren wird auf der man
Seite als "Geben Sie die Anzahl der zu sendenden Datenbytes an. Der Standardwert ist 56, was in Kombination mit den 8 Bytes der ICMP-Headerdaten 64 ICMP-Datenbytes ergibt." Beim Testen stellte ich fest, dass to ping -D 1472 <ip_address>
aufgrund der 8-Byte-ICMP-Header-Daten plus 20-Byte-IP-Header der MTU 1500 entspricht (siehe dies und das ). Das alles macht Sinn.
Warum ist der entsprechende Befehl für eine 9000 MTU ping -D -s 8164 <ip_address>
? Ich habe überprüft, ob dies das Limit ist, bevor ich die Fehlermeldung "sendto: message too long" erhalte, aber auch, dass 9000 MTU ordnungsgemäß traceroute -F <ip_address> 9000
funktioniert und traceroute -F <ip_address> 9001
nicht. Warum also 8164? Ich hätte 8972 erwartet (MTU - 28 Bytes, genau wie bei 1500 MTU).
Warum auch die 9216 MTU für den Netgear? Ich habe 42 Bytes für die MAC- und Ethernet-Header (inkl. CRC) und 20 für die IP-Header (die in die MTU aufgenommen werden sollen) gezählt.
Ich bin in dieser Mathematik total verrostet und weiß, dass mir nur etwas fehlt.