Dela via


Snabbstart: Diagnostisera problem med nätverkstrafikfilter för virtuella datorer med hjälp av Azure CLI

I den här snabbstarten distribuerar du en virtuell dator och använder Network Watcher IP Flow verify för att testa anslutningen till och från olika IP-adresser. Med hjälp av resultatet av verifieringen av IP-flödet fastställer du säkerhetsregeln som blockerar trafiken och orsakar kommunikationsfelet och lär dig hur du kan lösa det. Du får också lära dig hur du använder de effektiva säkerhetsreglerna för ett nätverksgränssnitt för att avgöra varför en säkerhetsregel tillåter eller nekar trafik.

Diagrammet visar de resurser som skapats i Network Watcher-snabbstarten.

Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

Förutsättningar

  • Ett Azure-konto med en aktiv prenumeration.

  • Azure Cloud Shell eller Azure CLI.

    Stegen i den här artikeln kör Azure CLI-kommandona interaktivt i Azure Cloud Shell. Om du vill köra kommandona i Cloud Shell väljer du Öppna Cloud Shell i det övre högra hörnet i ett kodblock. Välj Kopiera för att kopiera koden och klistra in den i Cloud Shell för att köra den. Du kan också köra Cloud Shell från Azure-portalen.

    Du kan också installera Azure CLI lokalt för att köra kommandona. Den här snabbstarten kräver version 2.0 eller senare av Azure CLI. Om du kör Azure CLI lokalt loggar du in på Azure med kommandot az login .

Skapa en virtuell dator

I det här avsnittet skapar du ett virtuellt nätverk och ett undernät i regionen USA, östra. Sedan skapar du en virtuell dator i undernätet med en standardnätverkssäkerhetsgrupp.

  1. Skapa en resursgrupp med az group create. En Azure-resursgrupp är en logisk container där Azure-resurser distribueras och hanteras.

    # Create a resource group.
    az group create --name 'myResourceGroup' --location 'eastus'
    
  2. Skapa ett virtuellt nätverk med 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. Skapa en standardnätverkssäkerhetsgrupp med az network nsg create.

    # Create a default network security group.
    az network nsg create --name 'myVM-nsg' --resource-group 'myResourceGroup' --location 'eastus'
    
  4. Skapa en virtuell dator med az vm create. Ange ett användarnamn och lösenord när du uppmanas till det.

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

Testa nätverkskommunikation med hjälp av VERIFIERA IP-flöde

I det här avsnittet använder du funktionen för att verifiera IP-flöde i Network Watcher för att testa nätverkskommunikationen till och från den virtuella datorn.

  1. Använd kommandot az network watcher test-ip-flow för att testa utgående kommunikation från myVM till 13.107.21.200 med ip-flöde verifiera (13.107.21.200 är en av de offentliga IP-adresser som används av 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'
    

    Efter några sekunder får du utdata som liknar följande exempel:

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

    Testresultatet anger att åtkomst tillåts till 13.107.21.200 på grund av standardsäkerhetsregeln AllowInternetOutBound. Som standard kan virtuella Azure-datorer komma åt Internet.

  2. Ändra RemoteIPAddress till 10.0.1.10 och upprepa testet. 10.0.1.10 är en privat IP-adress i myVNet-adressutrymmet .

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

    Efter några sekunder får du utdata som liknar följande exempel:

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

    Resultatet av det andra testet anger att åtkomst tillåts till 10.0.1.10 på grund av standardsäkerhetsregeln AllowVnetOutBound. Som standard kan en virtuell Azure-dator komma åt alla IP-adresser i adressutrymmet för det virtuella nätverket.

  3. Ändra RemoteIPAddress till 10.10.10.10 och upprepa testet. 10.10.10.10 är en privat IP-adress som inte finns i myVNet-adressutrymmet .

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

    Efter några sekunder får du utdata som liknar följande exempel:

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

    Resultatet av det tredje testet anger att åtkomst nekas till 10.10.10.10 på grund av standardsäkerhetsregeln DenyAllOutBound.

  4. Ändra riktning till inkommande, den lokala porten till 80 och fjärrporten till 60000 och upprepa sedan testet.

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

    Efter några sekunder får du liknande utdata som i följande exempel:

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

    Resultatet av det fjärde testet anger att åtkomst nekas från 10.10.10.10 på grund av standardsäkerhetsregeln DenyAllInBound. Som standard nekas all åtkomst till en virtuell Azure-dator utanför det virtuella nätverket.

Visa information om en säkerhetsregel

Om du vill ta reda på varför reglerna i föregående avsnitt tillåter eller nekar kommunikation läser du de effektiva säkerhetsreglerna för nätverksgränssnittet för den virtuella datorn myVM med kommandot 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 returnerade utdata innehåller följande information för regeln AllowInternetOutbound som tillät utgående åtkomst till 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"
  ]
},

Du kan se i utdata att adressprefixet 13.104.0.0/13 finns bland adressprefixen för AllowInternetOutBound-regeln . Det här prefixet omfattar IP-adressen 13.107.21.200, som du använde för att testa utgående kommunikation till www.bing.com.

På samma sätt kan du kontrollera de andra reglerna för att se käll- och mål-IP-adressprefixen under varje regel.

Rensa resurser

När den inte längre behövs använder du az group delete för att ta bort resursgruppen myResourceGroup och alla resurser som den innehåller:

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

Nästa steg

I den här snabbstarten skapade du en virtuell dator och diagnostiserade filter för inkommande och utgående nätverkstrafik. Du lärde dig att regler för nätverkssäkerhetsgrupper tillåter eller nekar trafik till och från en virtuell dator. Lär dig mer om säkerhetsregler och hur du skapar säkerhetsregler.

Även med rätt nätverkstrafikfilter på plats kan kommunikationen till en virtuell dator fortfarande misslyckas på grund av routningskonfigurationen. Information om hur du diagnostiserar routningsproblem för virtuella datorer finns i Diagnostisera problem med nätverksroutning för virtuella datorer. Information om hur du diagnostiserar problem med utgående routning, svarstid och trafikfiltrering med ett verktyg finns i Felsöka anslutningar med Azure Network Watcher.