Sdílet prostřednictvím


Diagnostika problému se směrováním sítě virtuálních počítačů – Azure PowerShell

V tomto článku nasadíte virtuální počítač a pak zkontrolujete komunikaci s IP adresou a adresou URL. Určíte příčinu selhání komunikace a najdete jeho řešení.

Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.

Azure Cloud Shell

Azure hostí interaktivní prostředí Azure Cloud Shell, které můžete používat v prohlížeči. Pro práci se službami Azure můžete v prostředí Cloud Shell použít buď Bash, nebo PowerShell. Předinstalované příkazy Cloud Shellu můžete použít ke spuštění kódu v tomto článku, aniž byste museli instalovat cokoli do místního prostředí.

Spuštění služby Azure Cloud Shell:

Možnost Příklad nebo odkaz
Vyberte Vyzkoušet v pravém horním rohu bloku kódu nebo příkazu. Výběrem možnosti Vyzkoušet se kód ani příkaz automaticky nekopíruje do Cloud Shellu. Snímek obrazovky znázorňující příklad možnosti Vyzkoušet pro Azure Cloud Shell
Přejděte na adresu https://shell.azure.com nebo výběrem tlačítka Spustit Cloud Shell otevřete Cloud Shell v prohlížeči. Tlačítko pro spuštění Azure Cloud Shellu
Zvolte tlačítko Cloud Shell v pruhu nabídky v pravém horním rohu webu Azure Portal. Snímek obrazovky znázorňující tlačítko Cloud Shell na webu Azure Portal

Použití Azure Cloud Shellu:

  1. Spusťte Cloud Shell.

  2. Výběrem tlačítka Kopírovat v bloku kódu (nebo bloku příkazů) zkopírujte kód nebo příkaz.

  3. Vložte kód nebo příkaz do relace Cloud Shellu tak, že ve Windows a Linuxu vyberete ctrl+Shift+V nebo vyberete Cmd+Shift+V v macOS.

  4. Stisknutím klávesy Enter spusťte kód nebo příkaz.

Pokud se rozhodnete nainstalovat a používat PowerShell místně, tento článek 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 powershell spouštíte místně, přihlaste se k Azure pomocí rutiny Connect-AzAccount .

Vytvoření virtuálního počítače

Než vytvoříte virtuální počítač, musíte vytvořit skupinu prostředků, která bude virtuální počítač obsahovat. Vytvořte skupinu prostředků pomocí rutiny New-AzResourceGroup. Následující příklad vytvoří skupinu prostředků myResourceGroup v umístění eastus.

New-AzResourceGroup -Name myResourceGroup -Location EastUS

Vytvořte virtuální počítač pomocí rutiny New-AzVM. Při spuštění tohoto kroku se zobrazí výzva k zadání přihlašovacích údajů. Hodnoty, které zadáte, se nakonfigurují jako uživatelské jméno a heslo pro virtuální počítač.

$vM = New-AzVm `
    -ResourceGroupName "myResourceGroup" `
    -Name "myVm" `
    -Location "East US"

Vytvoření virtuálního počítače trvá několik minut. Dokud se virtuální počítač nevytvoří a PowerShell nevrátí výstup, nepokračujte ve zbývajících krocích.

Test síťové komunikace

Pokud chcete otestovat síťovou komunikaci se službou Network Watcher, musíte nejprve povolit sledovací proces sítě v oblasti, ve které je virtuální počítač, ve které chcete testovat, a pak pomocí funkce dalšího směrování služby Network Watcher otestovat komunikaci.

Povolení sledovacího procesu sítě

Pokud už máte v oblasti USA – východ povolený sledovací proces sítě, načtěte sledovací proces sítě pomocí rutiny Get-AzNetworkWatcher . Následující příklad načte existující sledovací proces sítě s názvem NetworkWatcher_eastus, který se nachází ve skupině prostředků NetworkWatcherRG:

$networkWatcher = Get-AzNetworkWatcher `
  -Name NetworkWatcher_eastus `
  -ResourceGroupName NetworkWatcherRG

Pokud ještě nemáte v oblasti USA – východ povolený sledovací proces sítě, vytvořte sledovací proces sítě v oblasti USA – východ pomocí rutiny New-AzNetworkWatcher :

$networkWatcher = New-AzNetworkWatcher `
  -Name "NetworkWatcher_eastus" `
  -ResourceGroupName "NetworkWatcherRG" `
  -Location "East US"

Použití dalšího směrování

Azure automaticky vytváří trasy pro výchozí cíle. Můžete vytvořit vlastní trasy, které přepíšou ty výchozí. Někdy můžou vlastní trasy způsobit selhání komunikace. K otestování směrování z virtuálního počítače použijte příkaz Get-AzNetworkWatcherNextHop k určení dalšího směrování směrování, když je provoz určený pro konkrétní adresu.

Otestujte odchozí komunikaci z virtuálního počítače na jednu z IP adres pro www.bing.com:

Get-AzNetworkWatcherNextHop `
  -NetworkWatcher $networkWatcher `
  -TargetVirtualMachineId $VM.Id `
  -SourceIPAddress 192.168.1.4 `
  -DestinationIPAddress 13.107.21.200

Po několika sekundách vás výstup informuje, že NextHopType je Internet a že RouteTableId je Systémová trasa. Tento výsledek vám umožní zjistit, že existuje platná trasa do cíle.

Otestujte odchozí komunikaci z virtuálního počítače na IP adresu 172.31.0.100:

Get-AzNetworkWatcherNextHop `
  -NetworkWatcher $networkWatcher `
  -TargetVirtualMachineId $VM.Id `
  -SourceIPAddress 192.168.1.4 `
  -DestinationIPAddress 172.31.0.100

Vrácený výstup vás informuje, že None je NextHopType a že RouteTableId je také systémová trasa. Tento výsledek říká, že i když existuje trasa systému do cíle, neexistuje žádné další směrování, které by do cíle směrovalo provoz.

Zobrazení podrobností o trase

Pokud chcete dál analyzovat směrování, projděte si efektivní trasy pro síťové rozhraní pomocí příkazu Get-AzEffectiveRouteTable :

Get-AzEffectiveRouteTable `
  -NetworkInterfaceName myVm `
  -ResourceGroupName myResourceGroup |
  Format-table

Vrátí se výstup, který obsahuje následující text:

Name State  Source  AddressPrefix           NextHopType NextHopIpAddress
---- -----  ------  -------------           ----------- ----------------
     Active Default {192.168.0.0/16}        VnetLocal   {}              
     Active Default {0.0.0.0/0}             Internet    {}              
     Active Default {10.0.0.0/8}            None        {}              
     Active Default {100.64.0.0/10}         None        {}              
     Active Default {172.16.0.0/12}         None        {}              

Jak vidíte v předchozím výstupu, trasa s AddressPrefixem 0.0.0.0/0 směruje veškerý provoz, který není určený pro adresy v předponách adresy jiné trasy s dalším segmentem směrování internetu. Jak můžete vidět také ve výstupu, i když existuje výchozí trasa na předponu 172.16.0.0/12, která obsahuje adresu 172.31.0.100, nextHopType je None. Azure vytváří výchozí trasu do 172.16.0.0/12, ale neurčuje typ dalšího směrování, dokud k tomu není důvod. Pokud jste například do adresního prostoru virtuální sítě přidali rozsah adres 172.16.0.0/12, Azure pro trasu změní typ nextHopType na virtuální síť . Kontrola by pak zobrazovala virtuální síť jako nextHopType.

Vyčištění prostředků

Pokud už ji nepotřebujete, můžete k odebrání skupiny prostředků a všech prostředků, které obsahuje, použít Remove-AzResourceGroup :

Remove-AzResourceGroup -Name myResourceGroup -Force

Další kroky

V tomto článku jste vytvořili virtuální počítač a diagnostikovali směrování sítě z virtuálního počítače. Dozvěděli jste se, že Azure vytváří několik výchozích tras, a otestovali jste směrování na dva různé cíle. Přečtěte si i další informace o směrování v Azure a o tom, jak vytvářet vlastní trasy.

U odchozích připojení virtuálních počítačů můžete také určit latenci a povolený a zakázaný síťový provoz mezi virtuálním počítačem a koncovým bodem pomocí funkce řešení potíží s připojením služby Network Watcher. Komunikaci mezi virtuálním počítačem a koncovým bodem, například IP adresou nebo adresou URL v průběhu času, můžete monitorovat pomocí funkce monitorování připojení služby Network Watcher. Další informace naleznete v tématu Monitorování síťového připojení.