Belege auf Paketebene werden benötigt? Zeichne Pakete auf
Connection Troubleshoot identifiziert wahrscheinliche Verbindungsfehler. Einige Incidents benötigen jedoch Belege auf Paketebene. Ein Packet Trace kann zeigen, ob eine TCP-Anfrage die VM erreichte, ob die VM antwortete, wie die Verbindung endete und welche Adressen und Ports beteiligt waren.
Verwende Network Watcher packet capture auf WEB01. Begrenze die Aufzeichnung
auf TCP-Port 80, erzeuge eine Anfrage von WEB02, stoppe die Aufzeichnung und
untersuche das Ergebnis in Wireshark.
Dieser Trip baut auf Ein Netzwerkproblem muss diagnostiziert werden? Verwende Network Watcher auf. Lösche dessen temporäre Deny-Regel, behalte beide Web-VMs und bestätige, dass der Dienst
cloudtrips-webauf WEB01 läuft.
Packet Captures können Anmeldedaten, personenbezogene Daten, Tokens und Anwendungspayloads enthalten. Zeichne nur einen autorisierten Fluss mit engem Filter auf, schütze die Datei und lösche sie nach der Untersuchung.
Network Watcher Agent installieren
Packet Capture benötigt die Network-Watcher-Agent-Erweiterung auf der Ziel-VM.
Öffne vm-cloudtrips-web01-test-weu > Settings > Extensions +
applications. Ist AzureNetworkWatcherExtension nicht aufgeführt, wähle
Add, installiere Network Watcher Agent for Linux und warte auf die
erfolgreiche Bereitstellung. Ein Neustart ist nicht erforderlich.
Prüfe mit Azure CLI:
az vm extension list \
--resource-group rg-cloudtrips-network-test-weu \
--vm-name vm-cloudtrips-web01-test-weu \
--query "[?publisher=='Microsoft.Azure.NetworkWatcher'].{Name:name,State:provisioningState}" \
--output table
Erwarte AzureNetworkWatcherExtension mit Succeeded. Der Agent benötigt
Zugriff auf Azure-Plattformadressen und auf den gewählten Storage Account.
Behebe Erweiterungs- oder Uploadfehler, bevor du die Aufzeichnung startest.

Kurzlebigen Capture Storage erstellen
Packet Captures in Blob Storage sind leichter abrufbar als Dateien auf einer VM ohne administrativen Anmeldepfad. Erzeuge einen global eindeutigen Namen:
CAPTURE_STORAGE="stctpc$(az account show --query id --output tsv | tr -d '-' | cut -c1-10)"
printf 'Capture storage account: %s\n' "$CAPTURE_STORAGE"
Erstelle einen StorageV2-Account mit Standard LRS, diesem Namen,
rg-cloudtrips-network-test-weu und West Europe. Behalte Secure Transfer und
TLS 1.2 als Minimum. Der temporäre Account dient nur dem Capture und kann am
Ende des Trips gelöscht werden.
Speichere Captures nicht in einem allgemeinen Anwendungscontainer. Nur autorisierte Netzwerk- und Security-Operatoren sollten Zugriff erhalten.
Gefilterte Aufzeichnung starten
Suche nach Network Watcher, öffne den Dienst und wähle Network diagnostic tools > Packet capture > Add. Konfiguriere:
Subscription: CloudTrips TEST
Resource group: rg-cloudtrips-network-test-weu
Target type: Virtual machine
Target instance: vm-cloudtrips-web01-test-weu
Packet capture name: pc-web01-http-test
Capture location: Storage account
Storage account: CAPTURE_STORAGE-Wert
Maximum bytes per packet: 0 (vollständiges Paket erfassen)
Maximum bytes per session: 5 MB
Time limit: 120 seconds
Füge einen Filter hinzu:
Protocol: TCP
Local IP address: Leer lassen
Local port: 80
Remote IP address: Leer lassen
Remote port: Leer lassen
Der lokale Port ist 80, weil die Aufzeichnung auf WEB01 läuft und dort der
Webdienst lauscht. Leere IP-Felder erlauben jede Clientadresse, schließen aber
weiterhin Nicht-TCP- und Nicht-Port-80-Traffic aus. Wähle Start packet
capture.

Einen bekannten Fluss erzeugen
Lies bei Status Running die private IP von WEB01 und sende eine Anfrage von WEB02:
WEB01_IP=$(az vm list-ip-addresses \
--resource-group rg-cloudtrips-network-test-weu \
--name vm-cloudtrips-web01-test-weu \
--query '[0].virtualMachine.network.privateIpAddresses[0]' \
--output tsv)
az vm run-command invoke \
--resource-group rg-cloudtrips-network-test-weu \
--name vm-cloudtrips-web02-test-weu \
--command-id RunShellScript \
--scripts "curl --silent --show-error --connect-timeout 5 http://${WEB01_IP}/"
Erwarte CloudTrips response from WEB01. Kehre zur Aufzeichnung zurück und
wähle Stop, statt das vollständige Zeitlimit abzuwarten. Der Status sollte
zu Stopped wechseln. Das ist der endgültige Status der beendeten
Aufzeichnung; das Portal ändert ihn nicht zu Completed.
Capture herunterladen und untersuchen
Öffne pc-web01-http-test und lade die .cap-Datei über den Link zur
Capture-Datei aus Storage herunter. Bewahre sie in einem geschützten
Arbeitsverzeichnis auf.
Öffne die Datei in Wireshark und wende diesen Display Filter an:
tcp.port == 80
Suche die Verbindung zwischen der privaten Adresse von WEB02 und WEB01_IP.
Ein normaler TCP-Austausch beginnt mit dem Three-Way Handshake:
WEB02 -> WEB01 SYN
WEB01 -> WEB02 SYN, ACK
WEB02 -> WEB01 ACK
Die folgenden Pakete enthalten HTTP-Anfrage und -Antwort. Wähle ein Paket und erweitere Transmission Control Protocol, um Quell- und Zielports, Sequenznummern, Acknowledgements und Flags zu prüfen. Der erfolgreiche Handshake beweist, dass WEB01 die TCP-Verbindung erhielt und annahm; die HTTP-Antwort beweist die Antwort der Anwendung.

Packet Capture liefert Belege, aber keine automatische Root-Cause-Analyse. Wiederholte SYN-Pakete ohne SYN-ACK sprechen für verworfene Anfrage oder Antwort. Ein Reset kann einen geschlossenen Port oder eine explizite Ablehnung anzeigen. Vollständige Stille auf WEB01 bedeutet, dass der Traffic den Capture-Punkt nicht erreichte. Korreliere diese Beobachtungen mit NSG-Diagnose, Routen, Gast-Firewall und Anwendungslogs.
Sensible Artefakte entfernen
Lösche die Session pc-web01-http-test in Network Watcher. Lösche danach die
heruntergeladene .cap-Datei und den temporären Account $CAPTURE_STORAGE,
sofern keine freigegebene Aufbewahrungsrichtlinie sie verlangt. Das Löschen der
Session entfernt nicht zwingend eine separat heruntergeladene Kopie.
Behalte den Network Watcher Agent nur, wenn spätere Diagnosen ihn benötigen; entferne ihn sonst unter Extensions + applications von WEB01. Deallokiere beide VMs nach Abschluss des Labs.
Fahre mit Traffic-Flow-Datensätze werden benötigt? Zeige Flow Logs an fort. Behalte beide Web-VMs und das CloudTrips-VNet für die Flow-Record-Übung.