Rychlý start: Diagnostika problému s filtrováním síťového provozu virtuálního počítače pomocí Azure PowerShellu

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.

Diagram znázorňuje prostředky vytvořené v rychlém startu služby Network Watcher.

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 PowerShell.

    Kroky v tomto článku spouští rutiny Azure PowerShellu interaktivně ve službě Azure Cloud Shell. 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í rutin můžete také nainstalovat Azure PowerShell místně. Tento rychlý start vyžaduje modul Az PowerShell. Další informace najdete v tématu Postup instalace Azure PowerShellu. Nainstalovanou verzi zjistíte spuštěním rutiny Get-InstalledModule -Name Az. Pokud spustíte PowerShell místně, přihlaste se k Azure pomocí rutiny Připojení-AzAccount.

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ě.

  1. Vytvořte skupinu prostředků pomocí rutiny New-AzResourceGroup. Skupina prostředků Azure je logický kontejner, ve kterém se nasazují a spravují prostředky Azure.

    # Create a resource group.
    New-AzResourceGroup -Name 'myResourceGroup' -Location 'eastus' 
    
  2. Vytvořte konfiguraci podsítě pro podsíť virtuálního počítače a podsíť hostitele Bastion pomocí rutiny New-AzVirtualNetworkSubnetConfig.

    # Create subnets configuration.
    $Subnet = New-AzVirtualNetworkSubnetConfig -Name 'mySubnet' -AddressPrefix '10.0.0.0/24'
    
  3. Vytvořte virtuální síť pomocí rutiny New-AzVirtualNetwork.

    # Create a virtual network.
    New-AzVirtualNetwork -Name 'myVNet' -ResourceGroupName 'myResourceGroup' -Location 'eastus' -AddressPrefix '10.0.0.0/16' -Subnet $Subnet
    
  4. Vytvořte výchozí skupinu zabezpečení sítě pomocí rutiny New-AzNetworkSecurityGroup.

    # Create a network security group. 
    New-AzNetworkSecurityGroup -Name 'myVM-nsg' -ResourceGroupName 'myResourceGroup' -Location  'eastus'
    
  5. Vytvořte virtuální počítač pomocí rutiny New-AzVM. Po zobrazení výzvy zadejte uživatelské jméno a heslo.

    # Create a Linux virtual machine using the latest Ubuntu 20.04 LTS image.
    New-AzVm -ResourceGroupName 'myResourceGroup' -Name 'myVM' -Location 'eastus' -VirtualNetworkName 'myVNet' -SubnetName 'mySubnet' -SecurityGroupName '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.

  1. Pomocí test-AzNetworkWatcherIPFlow 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ých www.bing.com):

    # Place myVM configuration into a variable.
    $vm = Get-AzVM -ResourceGroupName 'myResourceGroup' -Name 'myVM'
    
    # Start the IP flow verify session to test outbound flow to www.bing.com.
    Test-AzNetworkWatcherIPFlow -Location 'eastus' -TargetVirtualMachineId $vm.Id -Direction 'Outbound' -Protocol 'TCP' -RemoteIPAddress '13.107.21.200' -RemotePort '80' -LocalIPAddress '10.0.0.4' -LocalPort '60000'
    

    Po několika sekundách se zobrazí 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.

  2. 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.
    Test-AzNetworkWatcherIPFlow -Location 'eastus' -TargetVirtualMachineId $vm.Id -Direction 'Outbound' -Protocol 'TCP' -RemoteIPAddress '10.0.1.10' -RemotePort '80' -LocalIPAddress '10.0.0.4' -LocalPort '60000'
    

    Po několika sekundách se zobrazí 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ě.

  3. 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.
    Test-AzNetworkWatcherIPFlow -Location 'eastus' -TargetVirtualMachineId $vm.Id -Direction 'Outbound' -Protocol 'TCP' -RemoteIPAddress '10.10.10.10' -RemotePort '80' -LocalIPAddress '10.0.0.4' -LocalPort '60000'
    

    Po několika sekundách se zobrazí 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.

  4. Změňte směr na Příchozí, LocalPort na 80 a RemotePort na 60000 a opakujte test.

    # Start the IP flow verify session to test inbound flow from 10.10.10.10.
    Test-AzNetworkWatcherIPFlow -Location 'eastus' -TargetVirtualMachineId $vm.Id -Direction 'Inbound' -Protocol 'TCP' -RemoteIPAddress '10.10.10.10' -RemotePort '60000' -LocalIPAddress '10.0.0.4' -LocalPort '80'
    

    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í rutiny Get-AzEffectiveNetworkSecurityGroup :

# Get the effective security rules for the network interface of myVM.
Get-AzEffectiveNetworkSecurityGroup -NetworkInterfaceName 'myVM' -ResourceGroupName 'myResourceGroup'

Vrácený výstup obsahuje následující informace pro pravidlo AllowInternetOutbound , které povolilo odchozí přístup k www.bing.com:

{
 "Name": "defaultSecurityRules/AllowInternetOutBound",
 "Protocol": "All",
 "SourcePortRange": [
   "0-65535"
 ],
 "DestinationPortRange": [
   "0-65535"
 ],
 "SourceAddressPrefix": [
   "0.0.0.0/0",
   "0.0.0.0/0"
 ],
 "DestinationAddressPrefix": [
   "Internet"
 ],
 "ExpandedSourceAddressPrefix": [],
 "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"
 ],
 "Access": "Allow",
 "Priority": 65001,
 "Direction": "Outbound"
},

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ž tuto skupinu prostředků nepotřebujete, odstraňte skupinu prostředků a všechny prostředky, které obsahuje, pomocí rutiny Remove-AzResourceGroup :

# Delete the resource group and all resources it contains.
Remove-AzResourceGroup -Name 'myResourceGroup' -Force

Další kroky

V tomto rychlém startu jste vytvořili virtuální počítač a diagnostikovali jste příchozí a odchozí filtry síťového provozu. Zjistili jste, že pravidla skupiny zabezpečení sítě umožňují nebo odepírají příchozí i odchozí provoz virtuálního počítače. Zjistěte více o pravidlech zabezpečení a způsobu jejich vytvoření.

I když jsou zavedené správné filtry síťového provozu, komunikace s virtuálním počítačem může i nadále selhat kvůli konfiguraci směrování. Informace o diagnostice problémů se směrováním virtuálních počítačů najdete v tématu Diagnostika potíží se směrováním sítě virtuálních počítačů. Pokud chcete diagnostikovat problémy s filtrováním odchozího směrování, latence a provozu pomocí jednoho nástroje, přečtěte si téma Řešení potíží s připojeními pomocí služby Azure Network Watcher.