Rychlý start: Diagnostika problému s filtrováním síťového provozu virtuálního počítače pomocí Azure CLI
V tomto rychlém startu nasadíte virtuální počítač a pomocí ověření toku PROTOKOLU IP služby Network Watcher otestujete připojení k různým IP adresům a z různých IP adres. Pomocí výsledků ověření toku protokolu IP určíte pravidlo zabezpečení, které blokuje provoz a způsobuje selhání komunikace, a dozvíte se, jak ho můžete vyřešit. Dozvíte se také, jak pomocí efektivních pravidel zabezpečení pro síťové rozhraní určit, proč pravidlo zabezpečení povoluje nebo zamítá provoz.
Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
Požadavky
Účet Azure s aktivním předplatným.
Azure Cloud Shell nebo Azure CLI.
Kroky v tomto článku spouští příkazy Azure CLI interaktivně v Azure Cloud Shellu. Pokud chcete příkazy spustit v Cloud Shellu, vyberte Otevřít Cloud Shell v pravém horním rohu bloku kódu. Výběrem možnosti Kopírovat zkopírujte kód a vložte ho do Cloud Shellu a spusťte ho. Cloud Shell můžete spustit také z webu Azure Portal.
Ke spuštění příkazů můžete také nainstalovat Azure CLI místně . Tento rychlý start vyžaduje verzi 2.0 nebo novější azure CLI. Pokud azure CLI spustíte místně, přihlaste se k Azure pomocí příkazu az login .
Vytvoření virtuálního počítače
V této části vytvoříte virtuální síť a podsíť v oblasti USA – východ. Potom vytvoříte virtuální počítač v podsíti s výchozí skupinou zabezpečení sítě.
Vytvořte skupinu prostředků pomocí příkazu az group create. Skupina prostředků Azure je logický kontejner, ve kterém se nasazují a spravují prostředky Azure.
# Create a resource group. az group create --name 'myResourceGroup' --location 'eastus'
Vytvořte virtuální síť pomocí příkazu 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
Vytvořte výchozí skupinu zabezpečení sítě pomocí příkazu az network nsg create.
# Create a default network security group. az network nsg create --name 'myVM-nsg' --resource-group 'myResourceGroup' --location 'eastus'
Vytvořte virtuální počítač pomocí příkazu az vm create. Po zobrazení výzvy zadejte uživatelské jméno a heslo.
# 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'
Testování síťové komunikace pomocí ověření toku protokolu IP
V této části použijete funkci ověření toku protokolu IP služby Network Watcher k otestování síťové komunikace s virtuálním počítačem a z virtuálního počítače.
Pomocí příkazu az network watcher test-ip-flow otestujte odchozí komunikaci z virtuálního počítače myVM na 13.107.21.200 pomocí ověření toku protokolu IP (
13.107.21.200
je jednou z veřejných IP adres používanýchwww.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'
Po několika sekundách získáte podobný výstup jako v následujícím příkladu:
Access RuleName ------ -------- Allow defaultSecurityRules/AllowInternetOutBound
Výsledek testu označuje, že přístup je povolený na 13.107.21.200 kvůli výchozímu pravidlu zabezpečení AllowInternetOutBound. Ve výchozím nastavení mají virtuální počítače Azure přístup k internetu.
Změňte remoteIPAddress na 10.0.1.10 a opakujte test. 10.0.1.10 je privátní IP adresa v adresní prostoru myVNet .
# 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'
Po několika sekundách získáte podobný výstup jako v následujícím příkladu:
Access RuleName ------ -------- Allow defaultSecurityRules/AllowVnetOutBound
Výsledek druhého testu označuje, že přístup je povolený na 10.0.1.10 kvůli výchozímu pravidlu zabezpečení AllowVnetOutBound. Ve výchozím nastavení má virtuální počítač Azure přístup ke všem IP adresům v adresním prostoru své virtuální sítě.
Změňte remoteIPAddress na 10.10.10.10 a opakujte test. 10.10.10.10 je privátní IP adresa, která není v adresního prostoru myVNet .
# 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'
Po několika sekundách získáte podobný výstup jako v následujícím příkladu:
Access RuleName ------ -------- Allow defaultSecurityRules/DenyAllOutBound
Výsledek třetího testu označuje, že přístup byl odepřen na hodnotu 10.10.10.10 kvůli výchozímu pravidlu zabezpečení DenyAllOutBound.
Změňte směr na příchozí, místní port na 80 a vzdálený port na 6 0000 a pak test opakujte.
# 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'
Po několika sekundách se zobrazí podobný výstup jako v následujícím příkladu:
Access RuleName ------ -------- Allow defaultSecurityRules/DenyAllInBound
Výsledek čtvrtého testu označuje, že přístup byl odepřen z hodnoty 10.10.10.10 kvůli výchozímu pravidlu zabezpečení DenyAllInBound. Ve výchozím nastavení je veškerý přístup k virtuálnímu počítači Azure mimo virtuální síť odepřen.
Zobrazení podrobností pravidla zabezpečení
Pokud chcete zjistit, proč pravidla v předchozí části povolují nebo zakazují komunikaci, projděte si platná pravidla zabezpečení pro síťové rozhraní virtuálního počítače myVM pomocí příkazu 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'
Vrácený výstup obsahuje následující informace pro pravidlo AllowInternetOutbound , které povolilo odchozí přístup k 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"
]
},
Ve výstupu vidíte, že předpona adresy 13.104.0.0/13 patří mezi předpony adres pravidla AllowInternetOutBound . Tato předpona zahrnuje IP adresu 13.107.21.200, kterou jste použili k otestování odchozí komunikace do www.bing.com
.
Podobně můžete v ostatních pravidlech zkontrolovat předpony zdrojových a cílových IP adres.
Vyčištění prostředků
Pokud už ji nepotřebujete, pomocí příkazu az group delete odstraňte skupinu prostředků myResourceGroup a všechny prostředky, které obsahuje:
# Delete the resource group and all resources it contains.
az group delete --name 'myResourceGroup' --yes