Diagnostizieren von Problemen mit dem Netzwerkrouting eines virtuellen Computers mit PowerShell
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 PowerShell.
Die Schritte in diesem Artikel führen die Azure PowerShell Cmdlets interaktiv in Azure Cloud Shell aus. Um die Cmdlets in der Cloud Shell auszuführen, wählen Sie in der rechten oberen 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 Azure PowerShell auch lokal installieren, um die Cmdlets auszuführen. Um die installierte Version zu finden, führen Sie Get-Module -ListAvailable Az aus. Melden Sie sich bei Azure mit dem Cmdlet Connect-AzAccount an, wenn Sie PowerShell lokal ausführen.
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 New-AzResourceGroup eine Ressourcengruppe. Das folgende Beispiel erstellt eine Ressourcengruppe mit dem Namen myResourceGroup am Standort eastus.
New-AzResourceGroup -Name myResourceGroup -Location EastUS
Erstellen Sie mit New-AzVM den virtuellen Computer. Wenn Sie diesen Schritt ausführen, werden Sie aufgefordert, Anmeldeinformationen einzugeben. Die eingegebenen Werte werden als Benutzername und Kennwort für den virtuellen Computer konfiguriert.
$vM = New-AzVm `
-ResourceGroupName "myResourceGroup" `
-Name "myVm" `
-Location "East US"
Die Erstellung des virtuellen Computers dauert einige Minuten. Fahren Sie erst mit den übrigen Schritten fort, wenn der virtuelle Computer erstellt und von PowerShell 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 eine Komponente zur Netzwerküberwachung in der Region „USA, Osten“ aktiviert haben, verwenden Sie Get-AzNetworkWatcher, um die Komponente zur Netzwerküberwachung abzurufen. Im folgenden Beispiel wird eine vorhandene Komponente zur Netzwerküberwachung namens NetworkWatcher_eastus abgerufen, die sich in der Ressourcengruppe NetworkWatcherRG befindet:
$networkWatcher = Get-AzNetworkWatcher `
-Name NetworkWatcher_eastus `
-ResourceGroupName NetworkWatcherRG
Wenn Sie noch keine Komponente zur Netzwerküberwachung in der Region „USA, Osten“ aktiviert haben, verwenden Sie New-AzNetworkWatcher, um eine Komponente zur Netzwerküberwachung in der Region „USA, Osten“ zu erstellen:
$networkWatcher = New-AzNetworkWatcher `
-Name "NetworkWatcher_eastus" `
-ResourceGroupName "NetworkWatcherRG" `
-Location "East US"
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 Get-AzNetworkWatcherNextHop, um den nächsten Routinghop zu bestimmen, wenn 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:
Get-AzNetworkWatcherNextHop `
-NetworkWatcher $networkWatcher `
-TargetVirtualMachineId $VM.Id `
-SourceIPAddress 192.168.1.4 `
-DestinationIPAddress 13.107.21.200
Nach wenigen Sekunden informiert Sie die Ausgabe darüber, dass NextHopTypeInternet und die RouteTableIdSystemroute ist. 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:
Get-AzNetworkWatcherNextHop `
-NetworkWatcher $networkWatcher `
-TargetVirtualMachineId $VM.Id `
-SourceIPAddress 192.168.1.4 `
-DestinationIPAddress 172.31.0.100
Die zurückgegebene Ausgabe informiert Sie darüber, dass KeinerNextHopType 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 Get-AzEffectiveRouteTable:
Get-AzEffectiveRouteTable `
-NetworkInterfaceName myVm `
-ResourceGroupName myResourceGroup |
Format-table
Eine Ausgabe, die den folgenden Text enthält, wird zurückgegeben:
Name State Source AddressPrefix NextHopType NextHopIpAddress
---- ----- ------ ------------- ----------- ----------------
Active Default {192.168.0.0/16} VnetLocal {}
Active Default {0.0.0.0/0} Internet {}
Active Default {10.0.0.0/8} None {}
Active Default {100.64.0.0/10} None {}
Active Default {172.16.0.0/12} None {}
Wie Sie in der vorherigen Ausgabe sehen, leitet die Route mit dem Wert 0.0.0.0/0 für AddressPrefix den gesamten Datenverkehr, der nicht für Adressen in den Adresspräfixen anderer Routen bestimmt ist, mit einem nächsten Hop von Internet weiter. Wie Sie in der Ausgabe auch sehen können, ist zwar eine Standardroute zum Präfix 172.16.0.0/12 vorhanden, die die Adresse 172.31.0.100 enthält, aber 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 Sie die Ressourcengruppe und alle darin enthaltenen Ressourcen nicht mehr benötigen, können Sie sie mit dem Befehl Remove-AzResourceGroup entfernen:
Remove-AzResourceGroup -Name myResourceGroup -Force
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.