Diagnostizieren von Problemen mit dem Netzwerkrouting eines virtuellen Computers über die Azure CLI

In diesem Artikel erfahren Sie, wie Sie das Tool Nächster Hop von Azure Network Watcher verwenden, um ein VM-Routingproblem zu beheben und zu diagnostizieren, das die ordnungsgemäße Kommunikation mit anderen Ressourcen verhindert.

Voraussetzungen

  • Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.

  • Azure Cloud Shell oder Azure CLI.

    In den Schritten diesem Artikel werden die Azure CLI-Befehle interaktiv in Azure Cloud Shell ausgeführt. Um die Befehle in Cloud Shell auszuführen, wählen Sie in der oberen rechten Ecke eines Codeblocks Cloud Shell öffnen aus. Wählen Sie Kopieren aus, um den Code zu kopieren, und fügen Sie ihn in Cloud Shell ein, um ihn auszuführen. Sie können Azure Cloud Shell innerhalb des Azure-Portals starten.

    Sie können die Azure CLI auch lokal installieren, um die Befehle auszuführen. Für diesen Artikel ist die Azure CLI-Version 2.0 oder höher erforderlich. Führen Sie den Befehl az --version aus, um die installierte Version zu ermitteln. Wenn Sie die Azure CLI lokal ausführen, melden Sie sich mit dem Befehl az login bei Azure an.

Erstellen eines virtuellen Computers

Bevor Sie einen virtuellen Computer erstellen können, müssen Sie eine Ressourcengruppe erstellen, die den virtuellen Computer enthalten soll. Erstellen Sie mit az group create eine Ressourcengruppe. Im folgenden Beispiel wird eine Ressourcengruppe mit dem Namen myResourceGroup am Standort eastus erstellt:

az group create --name myResourceGroup --location eastus

Erstellen Sie mit az vm create einen virtuellen Computer. Wenn SSH-Schlüssel nicht bereits an einem Standardschlüsselspeicherort vorhanden sind, werden sie durch den Befehl erstellt. Um einen bestimmten Satz von Schlüsseln zu verwenden, nutzen Sie die Option --ssh-key-value. Im folgenden Beispiel wird ein virtueller Computer namens myVm erstellt:

az vm create \
  --resource-group myResourceGroup \
  --name myVm \
  --image Ubuntu2204 \
  --generate-ssh-keys

Die Erstellung des virtuellen Computers dauert einige Minuten. Fahren Sie erst mit den übrigen Schritten fort, wenn der virtuelle Computer erstellt und von Azure CLI eine Ausgabe zurückgegeben wurde.

Testen der Netzwerkkommunikation

Wenn Sie die Netzwerkkommunikation mit Network Watcher testen möchten, müssen Sie zuerst eine Komponente zur Netzwerküberwachung in der Region aktivieren, in der sich der zu testende virtuelle Computer befindet. Danach können Sie die Kommunikation mit der Network Watcher-Funktion „Nächster Hop“ testen.

Aktivieren von Network Watcher

Wenn Sie bereits über eine aktivierte Network Watcher-Instanz in der Region „USA, Osten“ verfügen, fahren Sie mit Verwenden der Funktion „Nächster Hop“ fort. Erstellen Sie mithilfe des Befehls az network watcher configure eine Network Watcher-Instanz in der Region „USA, Osten“:

az network watcher configure \
  --resource-group NetworkWatcherRG \
  --locations eastus \
  --enabled

Verwenden der Funktion „Nächster Hop“

Azure erstellt automatisch Routen zu Standardzielen. Sie können benutzerdefinierte Routen erstellen, mit denen die Standardrouten außer Kraft gesetzt werden. In manchen Fällen können benutzerdefinierte Routen zu Fehlern bei der Kommunikation führen. Verwenden Sie zum Testen des Routings von einem virtuellen Computer den Befehl az network watcher show-next-hop, um den nächsten Routinghop zu ermitteln, wenn der Datenverkehr für eine bestimmte Adresse bestimmt ist.

Testen Sie die ausgehende Kommunikation des virtuellen Computers mit einer der IP-Adressen für www.bing.com:

az network watcher show-next-hop \
  --dest-ip 13.107.21.200 \
  --resource-group myResourceGroup \
  --source-ip 10.0.0.4 \
  --vm myVm \
  --nic myVmVMNic \
  --out table

Nach wenigen Sekunden werden Sie in der Ausgabe darüber informiert, dass der nextHopTypeInternet und die routeTableIdSystemroute lautet. Durch dieses Ergebnis wissen Sie, dass eine gültige Route zum Ziel besteht.

Testen Sie die ausgehende Kommunikation des virtuellen Computers mit 172.31.0.100:

az network watcher show-next-hop \
  --dest-ip 172.31.0.100 \
  --resource-group myResourceGroup \
  --source-ip 10.0.0.4 \
  --vm myVm \
  --nic myVmVMNic \
  --out table

In der zurückgegebenen Ausgabe werden Sie darüber informiert, dass Keiner der nextHopType ist und die routeTableId ebenfalls Systemroute lautet. Durch dieses Ergebnis wissen Sie, dass zwar eine gültige Systemroute zum Ziel besteht, aber kein nächster Hop zum Weiterleiten des Datenverkehrs an das Ziel vorhanden ist.

Anzeigen von Details einer Route

Zur weiteren Analyse des Routings überprüfen Sie die effektiven Routen für die Netzwerkschnittstelle mit dem Befehl az network nic show-effective-route-table:

az network nic show-effective-route-table \
  --resource-group myResourceGroup \
  --name myVmVMNic

Die zurückgegebene Ausgabe enthält den folgenden Text:

{
  "additionalProperties": {
    "disableBgpRoutePropagation": false
  },
  "addressPrefix": [
    "0.0.0.0/0"
  ],
  "name": null,
  "nextHopIpAddress": [],
  "nextHopType": "Internet",
  "source": "Default",
  "state": "Active"
},

Wenn Sie unter Verwenden der Funktion „Nächster Hop“ den Befehl az network watcher show-next-hop zum Testen der ausgehenden Kommunikation mit 13.107.21.200 verwendet haben, wurde die Route mit dem Adresspräfix 0.0.0.0/0** zum Weiterleiten des Datenverkehrs an die Adresse verwendet, weil keine andere Route in der Ausgabe die Adresse enthält. Standardmäßig werden alle Adressen, die nicht im Adresspräfix einer anderen Route angegeben sind, an das Internet weitergeleitet.

Wenn Sie jedoch den Befehl az network watcher show-next-hop zum Testen der ausgehenden Kommunikation mit 172.31.0.100 verwendet haben, wurden Sie im Ergebnis darüber informiert, dass kein Typ des nächsten Hops vorhanden war. In der zurückgegebenen Ausgabe finden Sie auch den folgenden Text:

{
  "additionalProperties": {
    "disableBgpRoutePropagation": false
      },
  "addressPrefix": [
    "172.16.0.0/12"
  ],
  "name": null,
  "nextHopIpAddress": [],
  "nextHopType": "None",
  "source": "Default",
  "state": "Active"
},

Wie Sie in der Ausgabe des Befehls az network watcher nic show-effective-route-table sehen können, ist zwar eine Standardroute zum Präfix 172.16.0.0/12 mit der Adresse 172.31.0.100 vorhanden, aber der nextHopType lautet Keiner. Azure erstellt eine Standardroute zu 172.16.0.0/12, gibt aber einen Typ des nächsten Hops erst dann an, wenn es einen Grund dafür gibt. Wenn Sie z. B. den Adressbereich 172.16.0.0/12 zum Adressraum des virtuellen Netzwerks hinzufügen, ändert Azure den nextHopType für die Route in Virtuelles Netzwerk. Bei einer Überprüfung würde dann Virtuelles Netzwerk als nextHopType angezeigt.

Bereinigen von Ressourcen

Wenn die Ressourcengruppe und alle enthaltenen Ressourcen nicht mehr benötigt werden, können Sie sie mit az group delete entfernen:

az group delete --name myResourceGroup --yes

Nächste Schritte

In diesem Artikel haben Sie einen virtuellen Computer erstellt und das Netzwerkrouting vom virtuellen Computer diagnostiziert. Sie haben erfahren, dass Azure mehrere Standardrouten erstellt, und Sie haben das Routing an zwei verschiedene Ziele getestet. Erfahren Sie mehr über das Routing in Azure und das Erstellen benutzerdefinierter Routen.

Für ausgehende Verbindungen virtueller Computer können Sie auch die Latenz sowie den zulässigen und verweigerten Netzwerkdatenverkehr zwischen dem virtuellen Computer und einem Endpunkt mithilfe der Funktion Problembehandlung für Verbindung von Network Watcher bestimmen. Sie können die Kommunikation zwischen einer VM und einem Endpunkt, z. B. einer IP-Adresse oder URL, mithilfe der Verbindungsüberwachungsfunktion von Network Watcher über einen Zeitraum überwachen. Weitere Informationen finden Sie unter Überwachen von Netzwerkverbindungen.