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.
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.
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'
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
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'
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.
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 doorwww.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.
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.
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.
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