Dela via


Diagnostisera problem med nätverksroutning för virtuella datorer – Azure PowerShell

I den här artikeln distribuerar du en virtuell dator (VM) och kontrollerar sedan kommunikationen till en IP-adress och URL. Du lär dig också hur du fastställer orsaken till ett kommunikationsfel och hur du löser problemet.

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

Azure Cloud Shell

Azure är värd för Azure Cloud Shell, en interaktiv gränssnittsmiljö som du kan använda via webbläsaren. Du kan använda antingen Bash eller PowerShell med Cloud Shell för att arbeta med Azure-tjänster. Du kan använda förinstallerade Cloud Shell-kommandon för att köra koden i den här artikeln, utan att behöva installera något i din lokala miljö.

Så här startar du Azure Cloud Shell:

Alternativ Exempel/länk
Välj Prova i det övre högra hörnet i en kod eller ett kommandoblock. Om du väljer Prova kopieras inte koden eller kommandot automatiskt till Cloud Shell. Skärmbild som visar ett exempel på Try It for Azure Cloud Shell.
Gå till https://shell.azure.com eller Välj knappen Starta Cloud Shell för att öppna Cloud Shell i webbläsaren. Knapp för att starta Azure Cloud Shell.
Välj knappen Cloud Shell på menyn längst upp till höger i Azure-portalen. Skärmbild som visar Cloud Shell-knappen i Azure-portalen

Så här använder du Azure Cloud Shell:

  1. Starta Cloud Shell.

  2. Välj knappen Kopiera i ett kodblock (eller kommandoblock) för att kopiera koden eller kommandot.

  3. Klistra in koden eller kommandot i Cloud Shell-sessionen genom att välja Ctrl+Skift+V i Windows och Linux, eller genom att välja Cmd+Shift+V på macOS.

  4. Välj Retur för att köra koden eller kommandot.

Om du väljer att installera och använda PowerShell lokalt kräver den här artikeln Az PowerShell-modulen. Mer information finns i Installera Azure PowerShell. Kör Get-InstalledModule -Name Az för att hitta den installerade versionen. Om du kör PowerShell lokalt loggar du in på Azure med cmdleten Anslut-AzAccount.

Skapa en virtuell dator

Innan du kan skapa en virtuell dator måste du skapa en resursgrupp som innehåller den virtuella datorn. Skapa en resursgrupp med New-AzResourceGroup. I följande exempel skapas en resursgrupp med namnet myResourceGroup i regionen eastus.

New-AzResourceGroup -Name myResourceGroup -Location EastUS

Skapa den virtuella datorn med hjälp av New-AzVM. När du kör det här steget uppmanas du att ange autentiseringsuppgifter. De värden som du anger konfigureras som användarnamn och lösenord för den virtuella datorn.

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

Det tar några minuter att skapa den virtuella datorn. Fortsätt inte med de återstående stegen förrän den virtuella datorn har skapats och PowerShell returnerar utdata.

Testa nätverkskommunikationen

Om du vill testa nätverkskommunikationen med Network Watcher måste du först aktivera en nätverksbevakare i den region som den virtuella datorn som du vill testa finns i och sedan använda Network Watcher nästa hoppfunktion för att testa kommunikationen.

Aktivera nätverksbevakare

Om du redan har en nätverksbevakare aktiverad i regionen USA, östra använder du Get-AzNetworkWatcher för att hämta nätverksbevakaren. I följande exempel hämtas en befintlig nätverksbevakare med namnet NetworkWatcher_eastus som finns i resursgruppen NetworkWatcherRG:

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

Om du inte redan har en nätverksbevakare aktiverad i regionen USA, östra använder du New-AzNetworkWatcher för att skapa en nätverksbevakare i regionen USA, östra:

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

Använda funktionen för nästa hopp

Azure skapar automatiskt vägar till olika standardmål. Du kan skapa egna vägar som ersätter standardvägarna. Ibland kan egna vägar göra att kommunikationen misslyckas. Om du vill testa routning från en virtuell dator använder du kommandot Get-AzNetworkWatcherNextHop för att fastställa nästa routningshopp när trafiken är avsedd för en specifik adress.

Testa utgående kommunikation från den virtuella datorn till en av IP-adresserna för www.bing.com:

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

Efter några sekunder informerar utdata dig om att NextHopType är Internet och att RouteTableId är System Route. Med det här resultatet vet du att det finns en giltig väg till målet.

Testa utgående kommunikation från den virtuella datorn till 172.31.0.100:

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

Utdata som returneras informerar dig om att Ingen är NextHopType och att RouteTableId också är systemväg. Resultatet visar att det visserligen finns en giltig systemväg till målet, men att det inte finns något nästa hopp för att dirigera trafiken till målet.

Visa information om en väg

Om du vill analysera routningen ytterligare granskar du de effektiva vägarna för nätverksgränssnittet med kommandot Get-AzEffectiveRouteTable :

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

Utdata som innehåller följande text returneras:

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        {}              

Som du kan se i föregående utdata dirigerar vägen med AddressPrefix0.0.0.0/0 all trafik som inte är avsedd för adresser inom den andra vägens adressprefix med ett nästa hopp av Internet. Som du också kan se i utdata, även om det finns en standardväg till prefixet 172.16.0.0/12, som innehåller adressen 172.31.0.100, är nextHopType Ingen. Azure skapar en standardväg till 172.16.0.0/12 men anger inte en nästa hopptyp förrän det finns någon anledning till det. Om du till exempel har lagt till adressintervallet 172.16.0.0/12 i adressutrymmet för det virtuella nätverket, ändrar Azure nextHopType till Virtuellt nätverk för vägen. En kontroll visar sedan Virtuellt nätverk som nextHopType.

Rensa resurser

När den inte längre behövs kan du använda Remove-AzResourceGroup för att ta bort resursgruppen och alla resurser som den innehåller:

Remove-AzResourceGroup -Name myResourceGroup -Force

Nästa steg

I den här artikeln har du skapat en virtuell dator och diagnostiserat nätverksroutning från den virtuella datorn. Du har lärt dig att Azure skapar flera standardvägar och testat routning till två olika mål. Läs mer om routning i Azure och hur du skapar egna vägar.

För utgående VM-anslutningar kan du också fastställa svarstiden och tillåten och nekad nätverkstrafik mellan den virtuella datorn och en slutpunkt med hjälp av network watchers kapacitet för anslutningsfelsökning . Du kan övervaka kommunikationen mellan en virtuell dator och en slutpunkt, till exempel en IP-adress eller URL över tid med hjälp av övervakningsfunktionen för Network Watcher-anslutning. Mer information finns i Övervaka en nätverksanslutning.