Schnellstart: Diagnostizieren von Problemen mit dem Filter für Netzwerkdatenverkehr eines virtuellen Computers mithilfe der Azure CLI

In diesem Schnellstart stellen Sie eine VM bereit und verwenden die IP-Datenflussüberprüfung von Network Watcher, um die Konnektivität mit und von verschiedenen IP-Adressen zu testen. Mithilfe der Ergebnisse der IP-Datenflussüberprüfung ermitteln Sie die Sicherheitsregel, die den Datenverkehr blockiert und den Kommunikationsfehler verursacht, und erfahren, wie Sie ihn beheben können. Außerdem erfahren Sie, wie Sie mit den effektiven Sicherheitsregeln für eine Netzwerkschnittstelle ermitteln, warum eine Sicherheitsregel Datenverkehr zulässt oder verweigert.

Das Diagramm zeigt die im Schnellstart „Network Watcher“ erstellten Ressourcen.

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Voraussetzungen

  • Ein Azure-Konto mit einem aktiven Abonnement.

  • 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 Schnellstart ist mindestens Version 2.0 der Azure CLI erforderlich. Wenn Sie die Azure CLI lokal ausführen, melden Sie sich mit dem Befehl az login bei Azure an.

Erstellen eines virtuellen Computers

In diesem Abschnitt erstellen Sie ein virtuelles Netzwerk und ein Subnetz der Region „USA, Osten“. Anschließend erstellen Sie eine VM im Subnetz mit einer Standard-Netzwerksicherheitsgruppe.

  1. Erstellen Sie mit az group create eine Ressourcengruppe. Eine Azure-Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden.

    # Create a resource group.
    az group create --name 'myResourceGroup' --location 'eastus'
    
  2. Erstellen Sie mit az network vnet create ein virtuelles Netzwerk.

    # Create a virtual network and a subnet.
    az network vnet create --resource-group 'myResourceGroup' --name 'myVNet' --subnet-name 'mySubnet' --subnet-prefixes 10.0.0.0/24 
    
  3. Erstellen Sie mittels az network nsg create eine Standardnetzwerksicherheitsgruppe.

    # Create a default network security group.
    az network nsg create --name 'myVM-nsg' --resource-group 'myResourceGroup' --location 'eastus'
    
  4. Erstellen Sie mit dem Befehl az vm create einen virtuellen Computer. Geben Sie nach entsprechender Aufforderung einen Benutzernamen und das Kennwort ein.

    # Create a Linux virtual machine using the latest Ubuntu 20.04 LTS image.
    az vm create --resource-group 'myResourceGroup' --name 'myVM' --location 'eastus' --vnet-name 'myVNet' --subnet 'mySubnet' --public-ip-address '' --nsg 'myVM-nsg' --image 'Canonical:0001-com-ubuntu-server-focal:20_04-lts-gen2:latest'
    

Testen der Netzwerkkommunikation mithilfe der IP-Datenflussüberprüfung

In diesem Abschnitt verwenden Sie die IP-Datenflussüberprüfung von Network Watcher, um die Netzwerkkommunikation mit der VM zu testen.

  1. Verwenden Sie den Befehl az network watcher test-ip-flow, um ausgehende Kommunikation zwischen myVM und 13.107.21.200 mithilfe der IP-Datenflussüberprüfung zu testen (13.107.21.200 ist eine der öffentlichen IP-Adressen, die von www.bing.com verwendet wird):

    # Start the IP flow verify session to test outbound flow to www.bing.com.
    az network watcher test-ip-flow --direction 'outbound' --protocol 'TCP' --local '10.0.0.4:60000' --remote '13.107.21.200:80' --vm 'myVM' --nic 'myVmVMNic' --resource-group 'myResourceGroup' --out 'table'
    

    Nach einigen Sekunden erhalten Sie eine ähnliche Ausgabe wie im folgenden Beispiel:

    Access  RuleName
    ------  --------
    Allow   defaultSecurityRules/AllowInternetOutBound
    

    Das Testergebnis besagt, dass der Zugriff auf 13.107.21.200 aufgrund der Standardsicherheitsregel AllowInternetOutBound zulässig ist. Standardmäßig können Azure-VMs auf das Internet zugreifen.

  2. Ändern Sie RemoteIPAddress in 10.0.1.10, und wiederholen Sie den Test. 10.0.1.10 ist eine private IP-Adresse im myVNet-Adressraum.

    # Start the IP flow verify session to test outbound flow to 10.0.1.10.
    az network watcher test-ip-flow --direction 'outbound' --protocol 'TCP' --local '10.0.0.4:60000' --remote '10.0.1.10:80' --vm 'myVM' --nic 'myVmVMNic' --resource-group 'myResourceGroup' --out 'table'
    

    Nach einigen Sekunden erhalten Sie eine ähnliche Ausgabe wie im folgenden Beispiel:

    Access RuleName
    ------ --------
    Allow  defaultSecurityRules/AllowVnetOutBound
    

    Das Ergebnis des zweiten Tests zeigt an, dass der Zugriff auf 10.0.1.10 aufgrund der Standardsicherheitsregel AllowVnetOutBound zulässig ist. Standardmäßig kann eine Azure-VM auf alle IP-Adressen im Adressraum seines virtuellen Netzwerks zugreifen.

  3. Ändern Sie RemoteIPAddress in 10.10.10.10, und wiederholen Sie den Test. 10.10.10.10 ist eine private IP-Adresse außerhalb des myVNet-Adressraums.

    # Start the IP flow verify session to test outbound flow to 10.10.10.10.
    az network watcher test-ip-flow --direction 'outbound' --protocol 'TCP' --local '10.0.0.4:60000' --remote '10.10.10.10:80' --vm 'myVM' --nic 'myVmVMNic' --resource-group 'myResourceGroup' --out 'table'
    

    Nach einigen Sekunden erhalten Sie eine ähnliche Ausgabe wie im folgenden Beispiel:

    Access RuleName
    ------ --------
    Allow  defaultSecurityRules/DenyAllOutBound
    

    Das Ergebnis des dritten Tests zeigt an, dass der Zugriff auf 10.10.10.10 aufgrund der Standardsicherheitsregel DenyAllOutBound verweigert wird.

  4. Ändern Sie die Richtung in Eingehend, den lokalen Port in 80 und Remoteport in 60000, und wiederholen Sie dann den Test.

    # Start the IP flow verify session to test inbound flow from 10.10.10.10.
    az network watcher test-ip-flow --direction 'inbound' --protocol 'TCP' --local '10.0.0.4:80' --remote '10.10.10.10:6000' --vm 'myVM' --nic 'myVmVMNic' --resource-group 'myResourceGroup' --out 'table'
    

    Nach einigen Sekunden erhalten Sie eine ähnliche Ausgabe wie im folgenden Beispiel:

    Access RuleName
    ------ --------
    Allow  defaultSecurityRules/DenyAllInBound
    

    Das Ergebnis des vierten Tests zeigt an, dass der Zugriff von 10.10.10.10 aufgrund der Standardsicherheitsregel DenyAllInBound verweigert wird. Standardmäßig wird der gesamte Zugriff auf eine Azure-VM von außerhalb des virtuellen Netzwerks verweigert.

Anzeigen von Details einer Sicherheitsregel

Um festzustellen, warum die Regeln im vorherigen Abschnitt die Kommunikation zulassen oder verweigern, überprüfen Sie die effektiven Sicherheitsregeln für die Netzwerkschnittstelle der VM myVM mit dem Befehl az network nic list-effective-nsg:

# Get the effective security rules for the network interface of myVM.
az network nic list-effective-nsg --resource-group 'myResourceGroup' --name 'myVmVMNic'

Die zurückgegebene Ausgabe enthält die folgenden Informationen für die Regel AllowInternetOutbound, die den ausgehenden Zugriff auf www.bing.com zulässt:

{
  "access": "Allow",
  "destinationAddressPrefix": "Internet",
  "destinationAddressPrefixes": [
	"Internet"
  ],
  "destinationPortRange": "0-65535",
  "destinationPortRanges": [
	"0-65535"
  ],
  "direction": "Outbound",
  "expandedDestinationAddressPrefix": [
	"1.0.0.0/8",
	"2.0.0.0/7",
	"4.0.0.0/9",
	"4.144.0.0/12",
	"4.160.0.0/11",
	"4.192.0.0/10",
	"5.0.0.0/8",
	"6.0.0.0/7",
	"8.0.0.0/7",
	"11.0.0.0/8",
	"12.0.0.0/8",
	"13.0.0.0/10",
	"13.64.0.0/11",
	"13.104.0.0/13",
	"13.112.0.0/12",
	"13.128.0.0/9",
	"14.0.0.0/7",
	...
	...
	...
	"200.0.0.0/5",
	"208.0.0.0/4"
  ],
  "name": "defaultSecurityRules/AllowInternetOutBound",
  "priority": 65001,
  "protocol": "All",
  "sourceAddressPrefix": "0.0.0.0/0",
  "sourceAddressPrefixes": [
	"0.0.0.0/0",
	"0.0.0.0/0"
  ],
  "sourcePortRange": "0-65535",
  "sourcePortRanges": [
	"0-65535"
  ]
},

Sie können in der Ausgabe sehen, dass das Adresspräfix 13.104.0.0/13 zu den Adresspräfixen der Regel AllowInternetOutBound gehört. Dieses Präfix umfasst die IP-Adresse 13.107.21.200, die Sie zum Testen der ausgehenden Kommunikation mit www.bing.com verwendet haben.

Ebenso können Sie die anderen Regeln überprüfen, um die Quell- und Ziel-IP-Adresspräfixe unter jeder Regel anzuzeigen.

Bereinigen von Ressourcen

Wenn Sie die Ressourcengruppe nicht mehr benötigen, verwenden Sie az group delete, um die Ressourcengruppe myResourceGroup sowie alle darin enthaltenen Ressourcen zu löschen:

# Delete the resource group and all resources it contains.
az group delete --name 'myResourceGroup' --yes

Nächste Schritte

In dieser Schnellstartanleitung haben Sie einen virtuellen Computer erstellt sowie Filter für ein- und ausgehenden Netzwerkdatenverkehr diagnostiziert. Sie haben gelernt, dass Netzwerksicherheitsgruppen-Regeln den ein- und ausgehenden Datenverkehr eines virtuellen Computers zulassen oder verweigern. Erfahren Sie mehr über Sicherheitsregeln und das Erstellen von Sicherheitsregeln.

Auch wenn für den Netzwerkdatenverkehr die richtigen Filter vorhanden sind, kann die Kommunikation mit einer VM aufgrund der Routingkonfiguration fehlschlagen. Informationen zur Diagnose von Routingproblemen für VMs finden Sie unter Diagnostizieren eines Problems mit dem VM-Netzwerkrouting. Informationen zur Diagnose von Problemen mit ausgehendem Routing, Latenz und Datenverkehrsfilterung mit einem Tool finden Sie unter Problembehandlung für Verbindungen mit Azure Network Watcher.