Testen, ob Jumbo-Frames tatsächlich funktionieren

28

Gibt es einen Befehl zum Testen, ob Jumbo-Frames tatsächlich funktionieren? dh eine Art "Ping", der meldet, ob das Paket unterwegs zerbrochen wurde oder nicht.

Ich habe einen ESXi-Host mit einer Ubuntu-VM, die einen Dell MD3000i über iSCSI bereitstellt. Ich vermute, Jumbo-Frames sind auf dem Switch nicht aktiviert und können vom Administrator nicht einfach darauf zugegriffen werden. Ich habe die Möglichkeit, das Festplatten-Array direkt mit dem ESXi-Host zu verbinden, möchte jedoch zunächst auf irgendeine Weise bestätigen, dass Jumbo-Frames ein Problem darstellen.

Kugelfisch
quelle

Antworten:

42

Wenn Sie Jumbo-Frames aktivieren, müssen Sie eine größere MTU (Maximum Transmission Unit) zulassen, indem Sie die MTU in der Regel auf 9000 einstellen.

Um zu überprüfen, ob dies funktioniert hat, können Sie in Windows mit dem Flag -l die Paketgröße und mit dem Flag -f das Flag Don't Fragment im Paket festlegen.

ping my.test.host -f -l 8972

Wenn das Paket fragmentiert wird, werden Sie sehen

Packet needs to be fragmented by DF set

anstelle dessen, was Sie normalerweise sehen würden.

Unter Linux werden für den Befehl ping verschiedene Flags verwendet. -sLegt die Paketgröße und -M doNicht fragmentieren fest. Der obige Befehl wäre also:

ping my.test.host -M do -s 8972

Durch Anpassen der Paketgröße können Sie herausfinden, wie hoch die MTU für den Link ist. Dies ist der niedrigste MTU-Wert, den ein Gerät im Pfad zulässt. Dies kann Ihr Switch, Ihr Computer, ein Ziel oder etwas anderes dazwischen sein.

Dies sagt Ihnen nicht automatisch, wo sich die niedrigste MTU befindet - Sie können dies möglicherweise herausfinden, indem Sie den Test auf verschiedenen Geräten im Pfad ausführen. Es kann jedoch immer transparente Router geben, die die MTU einschränken, aber nicht angezeigt werden für traceroute.

Beachten Sie, dass für die ICMP-Header ein Overhead von 28 Byte anfällt, sodass die MTU 28 Byte größer ist als die Zahl, die Sie mit der obigen Methode ermittelt haben. Um zu überprüfen, ob die MTU 9000 beträgt, müssen Sie die Größe Ihres Ping-Pakets auf 9000-28 = 8972 einstellen.

Update Ich habe einige Ressourcen gefunden, die speziell die MTU auf dem Weg zwischen Host und Ziel ermitteln:

  • Für Windows mturoute
  • Für * nix tracepath oder traceroute --mtu

Und noch eine Diskussion darüber, wie man die MTU eines Pfades findet .

dunxd
quelle
+1. Gute Antwort. Ich habe auch darüber nachgedacht, war mir aber nicht sicher, ob es ihm erlauben würde, die vom Switch unterstützte Framegröße zu erkennen. Ich habe nicht daran gedacht, den Pfad der MTU zu testen.
Joeqwerty
1
Schön .. unter Windows. Kleine Änderung, damit es unter Linux funktioniert. [ping 10.1.1.101 -s 1472] wobei 1472 die MTU-Größe ist. Bitte bearbeite deine Frage so, dass sie diese enthält und ich akzeptiere
pufferfish
Hier ist ein Hilfsprogramm, das die von dunxd beschriebene Methode verwendet: elifulkerson.com/projects/mturoute.php
Chris
2
Ok - Manpage hätte Ihnen sofort weitergeholfen, aber ich habe die spezifischen Details für Linux aktualisiert. Das Flag "Nicht fragmentieren" ist erforderlich, damit der Test ordnungsgemäß funktioniert. Dies ist in Linux-Ping nicht so deutlich wie in Windows.
Dunxd
1
Wenn Sie SSH zum ersten Mal auf dem ESXi-Host aktivieren und sich anmelden, können Sie Folgendes verwenden vmkping -d -s 8972 10.1.1.101: Dabei legt -s die Paketgröße und -d das Flag Nicht fragmentieren fest.
Eric3
1

Ich bin mir nicht sicher, ob das funktionieren würde, aber Sie könnten es versuchen:

Stellen Sie auf dem Computer, auf dem der MDSM-Client installiert ist, sicher, dass Jumbo-Frames unterstützt und aktiviert sind, und klicken Sie im MDSM-Client auf die Registerkarte Support. Wählen Sie auf dem MDSM-Client den Link "Support-Informationen sammeln". Starten Sie eine Paketerfassung auf dem MDSM-Client und klicken Sie auf die Schaltfläche Start, um die Support-Informationen (ZIP-Datei) zu erfassen und herunterzuladen. Wenn die Erfassung / der Download abgeschlossen ist, sehen Sie in der Erfassung nach, wie groß die Ethernet-Frames vom MD3000i zum MDSM-Client sind. Wenn der Switch, der MD300i und der MDSM-Client alle für Jumbo-Frames konfiguriert sind, sollten Sie dies in der Ethernet-Frame-Größe in der Erfassung sehen.

Joeqwerty
quelle
1

In ESXi müssen Sie angeben, welche Schnittstelle Sie verwenden möchten. Andernfalls wird Ping über die mgmt-Schnittstelle weitergeleitet, und in -d wird DF festgelegt (nicht fragmentieren):

vmkping -I vmkX -s 8972 -d xxxx

http://kb.vmware.com/kb/1003728

Jay Ge
quelle
-1

Sie können es auch über SSH von der ESXi-Konsole aus überprüfen: Aktivieren Sie Security-> Firewall-> Remote Tech.support (SSH) und führen Sie nach dem SSH-Login "vmkping -s 8000" oder ähnliches aus (Sie können sich nicht genau an die Optionen erinnern).

Dyr
quelle
4
Schauen Sie sich die Optionen an und jemand könnte Sie abstimmen.
Donnerstag,