Tags: vSphere, Netzwerk, Troubleshooting
In vSphere sind wie in nahezu allen Service-orientierten Software-Architekturen viele Fehlersymptome auf Netzwerkprobleme zurückzuführen. Das gilt auch für Storage-Fehler, wenn Speicher über das Netzwerk angebunden ist. Daher enthält vSphere eine Reihe von Tools zur Diagnose des Netzwerks.
Mit dem umfangreichen Toolset können Nutzer zum Beispiel die Konnektivität oder die Verfügbarkeit der Bandbreite überprüfen. Einige Programme beschränken sich nicht nur auf ESXi, sondern eignen sich auch zur Untersuchung der physischen Netzwerkkomponenten, die an den Netzwerkpfaden beteiligt sind.
Basis-Toolset
Nachdem die meisten der folgenden Tools CLI-Werkzeuge sind, ist in jedem Fall der Zugriff auf die ESXi-Shell erforderlich. Ein guter Ausgangspunkt für die Problembehebung bei Konnektivität ist die esxtop-Netzwerkansicht (Taste "n").
Ebenso leistungsfähig ist esxcli network. Bereits länger in der Bordwerkzeugkiste sind vmkping und traceroute. Möchte man dagegen tiefer in die Netzwerkdiagnose einsteigen, sollte man sich net-stats, nc, pktcap-uw imd ipferf näher ansehen.
Net-stats
Mit net-stats kann man im Wesentlichen Port-Statistiken und weitere Informationen wie Switch- und Client-Namen abrufen. Aufgrund der zahlreichen Optionen sind die Einsatzmöglichkeiten des Tools sehr umfangreich. Eine erste Übersicht der möglichen Parameter liefert
net-stats -h
Beginnen wir mit der Listenoption. Mit
net-stats -l
kann man etwa die Switchport-Nummern und MAC-Adressen für sämtliche VMkernel- und vmnic-Uplink-Adapter sowie vNIC-Ports in einem Rutsch ermitteln. Diese Informationen werden häufig benötigt, auch für viele der im Folgenden noch erläuterten Tools.
Wir können damit auch herausfinden, welche "Worlds" (bzw. CPU-Threads, die als "sys" aufgeführt sind) momentan Netzwerk-IO verursachen. Als Ausgabe bekommen wir analog zur Liste oben ausführliche Statistiken für jedes einzelne Gerät. Beim Befehl
net-stats -A -t vW
steht:
W für Worldlets-Stats (analog könnte man auch esxcli network nic stats get -n vmnic0 für jedes einzelne Device aufrufen)
v für VirtualNic-State
t für die ausführlichen SCSI-Path-Statistiken
Pktcap-uw
Seit der ESXi-Version 5.5 liefert VMware pktcap-uw mit, das im Prinzip das ältere tcpdump-uw ersetzt. Dieses ist zwar immer noch an Bord, aber das neue Tool ist deutlich leistungsfähiger.
tcpdump-uw schneidet nämlich nur Pakete auf der Ebene der VMkernel-Adapter mit, während pktcap-uw auch Frames für Uplink-Adapter, vSwitch oder Portgruppen erfasst, was deutlich mehr Informationen bei der Fehlerbehebung liefert.
Einzelheiten zur Syntax liefert wieder die Option -h:
pktcap-uw -h |more
Ein Live-Capture von einem ausgewählten VMKernel-Port kann man beispielsweise so starten:
pktcap-uw --vmk vmk<n>
Um zum Beispiel Traffic vom Management-Adapter vmk0 mitzuschneiden, gibt man
pktcap-uw --vmk vmk0
ein. Alternativ können wir auch Live-Traffic des angegebenen physischen Netzwerkadapters aufzeichnen:
pktcap-uw --uplink vmnic0
Um ein Live-Capture eines bestimmten vSwitch-Ports für eine virtuelle Maschine anzuzeigen, verwendet man die Option switchport:
pktcap-uw --switchport <switchportnumber>
Um den jeweiligen Mitschnitt in eine Datei umzuleiten, verwendet man die Option -o:
pktcap-uw --vmk vmk<n> -o ;<datei>.pcap
Folgendes Capture-Beispiel schreibt alle Pakete, die über vmk1 gehen, in die Datei capture.pcap im Verzeichnis /tmp.
pktcap-uw --vmk vmk1 -o /tmp/capture.pcap
Achtung: Beim Verwenden der Option -o erfolgt die Ausgabe unabhängig von anderen Einstellungen im pcap-Format. Man kann dabei mit -G auch angeben, wie viele Sekunden exakt mitgeschnitten werden oder mit -C die maximale Größe der Ausgabedatei in MB bestimmen. Generell kann man jeden Mitschnitt mit <Strg>+>C> beenden.
Folgende Abbildung aus dem VMware-Blog zeigt detailliert, welche Syntax für pktcap-uw verwendet werden muss, um die korrekten Daten der jeweiligen Netzwerkpfadebene zu erhalten.
Daraus ergeben sich einige weitere Einsatzbeispiele für die Praxis:
Filtern aller Frames nach einer bestimmten IP:
pktcap-uw --ip x.x.x.x
Filtern aller Frames nach einer bestimmten MAC-Adresse:
pktcap-uw --mac xx: xx: xx: xx: xx: xx
Begrenzen der Erfassung nach Paketanzahl:
pktcap-uw -c 200
Automatisches Ausführen von pktcap-uw mit sleep:
pktcap-uw $ sleep 120; pkill pktcap-uw
Iperf
Ebenfalls sehr nützlich ist Iperf, ein typisches Test-Tool für Bandbreiten. Es prüft die maximale Bandbreite zwischen einer Quelle und einem Ziel und wird normalerweise von einer VM aus genutzt. Man kann aber für Quelle und Ziel den ESXi-Host selbst verwenden.
Das Tool ist in ESXi eingebettet, seit proaktive Netzwerkleistungstests von VMware vSAN verfügbar sind. Trotzdem spricht nichts dagegen, das Tool auch für andere Zwecke einzusetzen.
Ipferf kann mit jeder beliebigen VMkernel-Schnittstelle in einem Host verwendet werden. Standardmäßig erlaubt es ESXi allerdings nicht, iperf3 im Server-Modus von der Shell aus zu starten. Mit einem Trick geht es aber doch, indem man einfach eine Kopie von iperf mit der folgendem Befehl erstellt:
cp /usr/lib/vmware/vsan/bin/iperf3 /usr/lib/vmware/vsan/bin/iperf3.copy
Standardmäßig wird iperf3 auf Ports ausgeführt, die in der ESXi-Firewall nicht zulässig sind. Eine Möglichkeit, dies zu umgehenden, besteht darin, die Firewall vorübergehend zu deaktivieren. Eine weitere Option ist das Erstellen zusätzlicher ESXi-Firewall-Einträge mittels
esxcli network firewall set --enabled <false | true>
Nun können wir iperf3.copy mit dem Schalter -s auf dem Ziel-Host ausführen. Das Schöne daran ist, dass sich alle VMkernel-IPs verwenden lassen. Wer also das Management-Netzwerk testen möchte, bindet iperf3 an die Management-IP oder bei Bedarf an den vMotion-Adapter bzw. IP-Storage.
Hier ein Beispiel mit ESXi-Host 1 als Server und ESXi-Host 2 als Client:
ESXi-Host1:
/usr/lib/vmware/vsan/bin/iperf3.copy -s -B 192.168.1.10
ESXi-Host 2:
/usr/lib/vmware/vsan/bin/iperf3.copy -c 192.168.1.20
NC
Nicht ganz so häufig unter ESXi eingesetzt wird NetCat (nc), obwohl es ein alter Linux-Bekannter ist. NC ist das perfekte Tool zum Überprüfen der Konnektivität an einem bestimmten Port, da Telnet unter ESXi nicht verfügbar ist. So können wir beispielsweise wie folgt testen, ob der iSCSI-Port eines Speicher-Arrays erreichbar ist:
nc -z <Ziel-IP> 3260
Täglich Know-how für IT-Pros mit unserem Newsletter
Thomas Drilling arbeitet ist seit fast 30 Jahren selbständig in der IT-Welt sowohl als Consultant, als auch als Redakteur, Buchautor und Journalist für viele ehemalige und aktuelle IT-Magazine sowie Blogs.
Aktuell bestätigt sich Thomas schwerpunktmäßig als IT-Trainer für Cloud-Computing in den Bereichen Microsoft Azure, Amazon Web Services und VMware.
Thomas ist zertifizierter Microsoft-Trainer für nahe das gesamte Portfolio an Microsoft Azure Trainings. Thomas ist außerdem zertifizierter Microsoft Azure Solutions Architect Expert sowie VMware Certified Professional und wurde von VMware in den Jahren 2016 bis 2022 mit dem Blogger-Status vExpert ausgezeichnet.
Thomas führt aktuell jeden Monat zwei selbstkonziperte 4-tägigen Grundlagenkurse in Cloud Computing mit Azure durch, die sich inhaltlich bewusst von den Microsft-Kursen abheben und vorzuweise als Bootcamp in eine besonderen Lokation stattfinden. Optional kann aber aber auch remote via Microsoft Teams teilgenommen werden.
Das aktuelle Trainingsprogramm findet sich unter Azure-Trainings. Weitere Informationen und Anmeldung über sein Azure-Blog.
Verwandte Beiträge
- Troubleshooting: Keine Netzwerk-Verbindung in VMware Workstation
- DNS-Probleme bei VPN-Verbindungen beheben
- Lösung für: Es kann keine Verbindung mit einer Domäne oder zum Domain Controller hergestellt werden
- VMware vCenter mit dem vSphere Diagnostic Tool analysieren
- VMware bringt App mit Benachrichtigungen zu Patches, Schwachstellen und Troubleshooting
Weitere Links
1 Kommentar
Hallo,
danke für den Beitrag.
Ich habe aktuell das Problem, dass ich über das Management Netzwerk zu einem physikalisch anderen Backupserver beim Sicherungslauf nicht über 700Mbit/sek hinauskomme, trotz eines vorhandenen 10Gb Link. Von einer VM heraus kann ich mittels eines Filecopy sehr wohl die 10Gb Verbindung zum Backup Server auslasten. Die Backup Software verwendet zur Übertragung die NBD Schnittstelle. Welche Werkzeuge gibt es für das Troubleshooting um die Bandbreite vom ESXi Host über das Management Netzwerk zu testen?
danke Franz