Share via


Quickstart: Een probleem met een netwerkverkeersfilter voor virtuele machines vaststellen met behulp van de Azure CLI

In deze quickstart implementeert u een virtuele machine en gebruikt u network Watcher IP-stroom om de connectiviteit van en naar verschillende IP-adressen te testen. Met behulp van de resultaten van de IP-stroomverificatie bepaalt u de beveiligingsregel die het verkeer blokkeert en de communicatiefout veroorzaakt en leert u hoe u dit kunt oplossen. U leert ook hoe u de effectieve beveiligingsregels voor een netwerkinterface gebruikt om te bepalen waarom een beveiligingsregel verkeer toestaat of weigert.

Diagram toont de resources die zijn gemaakt in de quickstart van Network Watcher.

Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

Vereisten

  • Een Azure-account met een actief abonnement.

  • Azure Cloud Shell of Azure CLI.

    In de stappen in dit artikel worden de Azure CLI-opdrachten interactief uitgevoerd in Azure Cloud Shell. Als u de opdrachten in Cloud Shell wilt uitvoeren, selecteert u Cloud Shell openen in de rechterbovenhoek van een codeblok. Selecteer Kopiëren om de code te kopiëren en plak deze in Cloud Shell om deze uit te voeren. U kunt Cloud Shell ook uitvoeren vanuit Azure Portal.

    U kunt Azure CLI ook lokaal installeren om de opdrachten uit te voeren. Voor deze quickstart is versie 2.0 of hoger van Azure CLI vereist. Als u Azure CLI lokaal uitvoert, meldt u zich aan bij Azure met behulp van de opdracht az login .

Maak een virtuele machine

In deze sectie maakt u een virtueel netwerk en een subnet in de regio VS - oost. Vervolgens maakt u een virtuele machine in het subnet met een standaardnetwerkbeveiligingsgroep.

  1. Maak een resourcegroep met de opdracht az group create. Een Azure-resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd.

    # Create a resource group.
    az group create --name 'myResourceGroup' --location 'eastus'
    
  2. Maak een virtueel netwerk met az network vnet create.

    # 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. Maak een standaardnetwerkbeveiligingsgroep met az network nsg create.

    # Create a default network security group.
    az network nsg create --name 'myVM-nsg' --resource-group 'myResourceGroup' --location 'eastus'
    
  4. Maak een virtuele machine met az vm create. Voer een gebruikersnaam en wachtwoord in wanneer u hierom wordt gevraagd.

    # 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'
    

Netwerkcommunicatie testen met IP-stroomverificatie

In deze sectie gebruikt u de functie IP-stroomverificatie van Network Watcher om netwerkcommunicatie van en naar de virtuele machine te testen.

  1. Gebruik az network watcher test-ip-flow command to test outbound communication from myVM to 13.107.21.200 using IP flow verify (13.107.21.200 is een van de openbare IP-adressen die worden gebruikt door www.bing.com):

    # 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'
    

    Na een paar seconden krijgt u een vergelijkbare uitvoer als in het volgende voorbeeld:

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

    Het testresultaat geeft aan dat toegang is toegestaan tot 13.107.21.200 vanwege de standaardbeveiligingsregel AllowInternetOutBound. Virtuele Azure-machines hebben standaard toegang tot internet.

  2. Wijzig RemoteIPAddress in 10.0.1.10 en herhaal de test. 10.0.1.10 is een privé-IP-adres in myVNet-adresruimte .

    # 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'
    

    Na een paar seconden krijgt u een vergelijkbare uitvoer als in het volgende voorbeeld:

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

    Het resultaat van de tweede test geeft aan dat toegang is toegestaan tot 10.0.1.10 vanwege de standaardbeveiligingsregel AllowVnetOutBound. Standaard heeft een virtuele Azure-machine toegang tot alle IP-adressen in de adresruimte van het virtuele netwerk.

  3. Wijzig RemoteIPAddress in 10.10.10.10 en herhaal de test. 10.10.10.10 is een privé-IP-adres dat zich niet in de myVNet-adresruimte bevindt.

    # 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'
    

    Na een paar seconden krijgt u een vergelijkbare uitvoer als in het volgende voorbeeld:

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

    Het resultaat van de derde test geeft aan dat de toegang wordt geweigerd tot 10.10.10.10 vanwege de standaardbeveiligingsregel DenyAllOutBound.

  4. Wijzig de richting in inkomend verkeer, de lokale poort in 80 en de externe poort in 60000 en herhaal de 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'
    

    Na een paar seconden krijgt u vergelijkbare uitvoer als in het volgende voorbeeld:

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

    Het resultaat van de vierde test geeft aan dat de toegang wordt geweigerd vanaf 10.10.10.10 vanwege de standaardbeveiligingsregel DenyAllInBound. Standaard wordt alle toegang tot een virtuele Azure-machine van buiten het virtuele netwerk geweigerd.

Details van een beveiligingsregel weergeven

Als u wilt bepalen waarom de regels in de vorige sectie communicatie toestaan of weigeren, controleert u de effectieve beveiligingsregels voor de netwerkinterface van de virtuele myVM-machine met behulp van de opdracht 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'

De geretourneerde uitvoer bevat de volgende informatie voor de regel AllowInternetOutbound waarmee uitgaande toegang tot www.bing.com:

{
  "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"
  ]
},

U kunt in de uitvoer zien dat adresvoorvoegsel 13.104.0.0/13 een van de adresvoorvoegsels van de regel AllowInternetOutBound is. Dit voorvoegsel omvat het IP-adres 13.107.21.200, dat u hebt gebruikt om uitgaande communicatie naar www.bing.com.

Op dezelfde manier kunt u de andere regels controleren om de bron- en doel-IP-adresvoorvoegsels onder elke regel weer te geven.

Resources opschonen

Wanneer u deze niet meer nodig hebt, gebruikt u az group delete om myResourceGroup-resourcegroep en alle resources die deze bevat te verwijderen:

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

Volgende stappen

In deze snelstart hebt u een VM gemaakt en diagnose uitgevoerd voor netwerkfilters voor binnenkomend en uitgaand verkeer. U hebt geleerd dat verkeer van en naar een VM kan zijn toegestaan of worden geweigerd op basis van regels voor netwerkbeveiligingsgroepen. Meer informatie over beveiligingsregels en het maken van beveiligingsregels.

Zelfs met de juiste netwerkverkeersfilters kan communicatie met een virtuele machine nog steeds mislukken vanwege de routeringsconfiguratie. Zie Een probleem met routering van virtuele machines vaststellen voor meer informatie over het diagnosticeren van routeringsproblemen met virtuele machines. Als u problemen met uitgaande routering, latentie en verkeerfilters met één hulpprogramma wilt vaststellen, raadpleegt u Problemen met verbindingen met Azure Network Watcher oplossen.