Diagnostisera problem med routning för virtuella datorer

I den här artikeln får du lära dig hur du diagnostiserar ett routningsproblem genom att visa de vägar som är effektiva för ett nätverksgränssnitt på en virtuell dator (VM). Azure skapar flera standardvägar för varje undernät för virtuella nätverk. Du kan åsidosätta Azures standardvägar genom att definiera vägar i en routningstabell och sedan associera routningstabellen till ett undernät. Kombinationen av vägar som du skapar, Azures standardvägar och eventuella vägar som sprids från ditt lokala nätverk via en Azure VPN-gateway (om ditt virtuella nätverk är anslutet till ditt lokala nätverk) via BGP (Border Gateway Protocol) är de effektiva vägarna för alla nätverksgränssnitt i ett undernät. Om du inte är bekant med virtuella nätverk, nätverksgränssnitt eller routningsbegrepp kan du läsa Översikt över virtuella nätverk, Nätverksgränssnitt och Routning.

Scenario

Du försöker ansluta till en virtuell dator, men anslutningen misslyckas. För att avgöra varför du inte kan ansluta till den virtuella datorn kan du visa de effektiva vägarna för ett nätverksgränssnitt med hjälp av Azure-portalen, PowerShell eller Azure CLI.

Stegen nedan förutsätter att du har en befintlig virtuell dator att visa effektiva vägar för. Om du inte har en befintlig virtuell dator distribuerar du först en virtuell Linux - eller Windows-dator för att slutföra uppgifterna i den här artikeln med. Exemplen i den här artikeln är för en virtuell dator med namnet myVM med ett nätverksgränssnitt med namnet myVMNic1. Den virtuella datorn och nätverksgränssnittet finns i en resursgrupp med namnet myResourceGroup och finns i regionen USA, östra . Ändra värdena i stegen efter behov för den virtuella dator som du diagnostiserar problemet för.

Diagnostisera med hjälp av Azure Portal

  1. Logga in på Azure-portalen med ett Azure-konto som har nödvändiga behörigheter.

  2. Överst i Azure Portal anger du namnet på en virtuell dator som körs i sökrutan. När namnet på den virtuella datorn visas i sökresultatet väljer du det.

  3. Under Inställningar till vänster väljer du Nätverk och navigerar till nätverksgränssnittsresursen genom att välja dess namn. Visa nätverksgränssnitt

  4. Till vänster väljer du Gällande vägar. De effektiva vägarna för ett nätverksgränssnitt med namnet myVMNic1 visas i följande bild: Visa effektiva vägar

    Om det finns flera nätverksgränssnitt kopplade till den virtuella datorn kan du visa de effektiva vägarna för alla nätverksgränssnitt genom att välja det. Eftersom varje nätverksgränssnitt kan finnas i olika undernät kan varje nätverksgränssnitt ha olika effektiva vägar.

    I exemplet som visas i föregående bild är de angivna vägarna standardvägar som Azure skapar för varje undernät. Din lista har minst dessa vägar, men kan ha ytterligare vägar, beroende på vilka funktioner du kan ha aktiverat för ditt virtuella nätverk, till exempel att det peerkopplas med ett annat virtuellt nätverk eller är anslutet till ditt lokala nätverk via en Azure VPN-gateway. Mer information om var och en av vägarna och andra vägar som du kan se för nätverksgränssnittet finns i Trafikdirigering för virtuella nätverk. Om listan har ett stort antal vägar kan det vara enklare att välja Ladda ned för att ladda ned en .csv fil med listan över vägar.

Även om effektiva vägar visades via den virtuella datorn i föregående steg, kan du också visa effektiva vägar via en:

Diagnostisera med Hjälp av PowerShell

Anteckning

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Du kan köra kommandona som följer i Azure-Cloud Shell eller genom att köra PowerShell från datorn. Azure Cloud Shell är ett kostnadsfritt interaktivt gränssnitt. Den har vanliga Azure-verktyg förinstallerat och har konfigurerats för användning med ditt konto. Om du kör PowerShell från datorn behöver du modulen Azure PowerShell version 1.0.0 eller senare. Kör Get-Module -ListAvailable Az på datorn för att hitta den installerade versionen. Om du behöver uppgradera kan du läsa Install Azure PowerShell module (Installera Azure PowerShell-modul). Om du kör PowerShell lokalt måste du också köra Connect-AzAccount för att logga in på Azure med ett konto som har nödvändiga behörigheter.

Hämta de effektiva vägarna för ett nätverksgränssnitt med Get-AzEffectiveRouteTable. I följande exempel hämtas de effektiva vägarna för ett nätverksgränssnitt med namnet myVMNic1, som finns i en resursgrupp med namnet myResourceGroup:

Get-AzEffectiveRouteTable `
  -NetworkInterfaceName myVMNic1 `
  -ResourceGroupName myResourceGroup `
  | Format-Table

Information om informationen som returneras i utdata finns i Routningsöversikt. Utdata returneras endast om den virtuella datorn är i körningstillstånd. Om det finns flera nätverksgränssnitt kopplade till den virtuella datorn kan du granska de effektiva vägarna för varje nätverksgränssnitt. Eftersom varje nätverksgränssnitt kan finnas i olika undernät kan varje nätverksgränssnitt ha olika effektiva vägar. Om du fortfarande har kommunikationsproblem kan du läsa mer om diagnoser och överväganden.

Om du inte känner till namnet på ett nätverksgränssnitt, men vet namnet på den virtuella dator som nätverksgränssnittet är kopplat till, returnerar följande kommandon ID:n för alla nätverksgränssnitt som är anslutna till en virtuell dator:

$VM = Get-AzVM -Name myVM `
  -ResourceGroupName myResourceGroup
$VM.NetworkProfile

Du får utdata som liknar följande exempel:

NetworkInterfaces
-----------------
{/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMNic1

I föregående utdata är nätverksgränssnittets namn myVMNic1.

Diagnostisera med Hjälp av Azure CLI

Du kan köra kommandona som följer i Azure Cloud Shell eller genom att köra CLI från datorn. Den här artikeln kräver Azure CLI version 2.0.32 eller senare. Kör az --version för att hitta den installerade versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI. Om du kör Azure CLI lokalt måste du också köra az login och logga in på Azure med ett konto som har nödvändiga behörigheter.

Hämta de effektiva vägarna för ett nätverksgränssnitt med az network nic show-effective-route-table. I följande exempel hämtas de effektiva vägarna för ett nätverksgränssnitt med namnet myVMNic1 som finns i en resursgrupp med namnet myResourceGroup:

az network nic show-effective-route-table \
  --name myVMNic1 \
  --resource-group myResourceGroup

Information om informationen som returneras i utdata finns i Routningsöversikt. Utdata returneras endast om den virtuella datorn är i körningstillstånd. Om det finns flera nätverksgränssnitt kopplade till den virtuella datorn kan du granska de effektiva vägarna för varje nätverksgränssnitt. Eftersom varje nätverksgränssnitt kan finnas i olika undernät kan varje nätverksgränssnitt ha olika effektiva vägar. Om du fortfarande har kommunikationsproblem kan du läsa mer om diagnoser och överväganden.

Om du inte känner till namnet på ett nätverksgränssnitt, men vet namnet på den virtuella dator som nätverksgränssnittet är kopplat till, returnerar följande kommandon ID:n för alla nätverksgränssnitt som är anslutna till en virtuell dator:

az vm show \
  --name myVM \
  --resource-group myResourceGroup

Lösa ett problem

Lösningen av routningsproblem består vanligtvis av:

  • Lägga till en anpassad väg för att åsidosätta en av Azures standardvägar. Lär dig hur du lägger till en anpassad väg.
  • Ändra eller ta bort en anpassad väg som kan orsaka routning till en oönstrad plats. Lär dig hur du ändrar eller tar bort en anpassad väg.
  • Se till att routningstabellen som innehåller alla anpassade vägar som du har definierat är associerad med det undernät som nätverksgränssnittet finns i. Lär dig hur du associerar en routningstabell till ett undernät.
  • Se till att enheter som Azure VPN-gateway eller virtuella nätverksinstallationer som du har distribuerat är fungerande. Använd FUNKTIONEN VPN-diagnostik i Network Watcher för att fastställa eventuella problem med en Azure VPN-gateway.

Om du fortfarande har kommunikationsproblem kan du läsa Överväganden och Ytterligare diagnos.

Överväganden

Tänk på följande när du felsöker kommunikationsproblem:

  • Routning baseras på den längsta prefixmatchningen (LPM) mellan vägar som du har definierat, BGP (Border Gateway Protocol) och systemvägar. Om det finns fler än en väg med samma LPM-matchning väljs en väg baserat på dess ursprung i den ordning som anges i routningsöversikten. Med effektiva vägar kan du bara se effektiva vägar som är en LPM-matchning, baserat på alla tillgängliga vägar. Om du ser hur vägarna utvärderas för ett nätverksgränssnitt blir det mycket enklare att felsöka specifika vägar som kan påverka kommunikationen från den virtuella datorn.
  • Om du har definierat anpassade vägar till en virtuell nätverksinstallation (NVA), med virtuell installation som nästa hopptyp, kontrollerar du att IP-vidarebefordring är aktiverat på den NVA som tar emot trafiken eller att paketen tas bort. Läs mer om att aktivera IP-vidarebefordring för ett nätverksgränssnitt. Dessutom måste operativsystemet eller programmet i NVA också kunna vidarebefordra nätverkstrafik och konfigureras för att göra det.
  • Om du har skapat en väg till 0.0.0.0/0 dirigeras all utgående Internettrafik till nästa hopp som du har angett, till exempel till en NVA eller VPN-gateway. Att skapa en sådan väg kallas ofta för tvingad tunneltrafik. Fjärranslutningar som använder RDP- eller SSH-protokoll från Internet till den virtuella datorn kanske inte fungerar med den här vägen, beroende på hur nästa hopp hanterar trafiken. Tvingad tunneltrafik kan aktiveras:
    • När du använder plats-till-plats-VPN genom att skapa en väg med nästa hopptyp VPN Gateway. Läs mer om hur du konfigurerar tvingad tunneltrafik.
    • Om en 0.0.0.0/0 (standardväg) annonseras via BGP via en virtuell nätverksgateway när du använder en plats-till-plats-VPN eller ExpressRoute-krets. Läs mer om hur du använder BGP med plats-till-plats-VPN eller ExpressRoute.
  • För att peering-trafik för virtuella nätverk ska fungera korrekt måste det finnas en systemväg med nästa hopptyp för VNet-peering för det peerkopplade virtuella nätverkets prefixintervall. Om det inte finns någon sådan väg och peeringlänken för virtuella nätverk är Ansluten:
  • Även om Azure tilldelar standardvägar till varje Azure-nätverksgränssnitt tilldelas endast det primära nätverksgränssnittet en standardväg (0.0.0.0.0/0) eller gateway i den virtuella datorns operativsystem om du har flera nätverksgränssnitt anslutna till den virtuella datorn. Lär dig hur du skapar en standardväg för sekundära nätverksgränssnitt som är kopplade till en virtuell Windows - eller Linux-dator . Läs mer om primära och sekundära nätverksgränssnitt.

Ytterligare diagnos

  • Om du vill köra ett snabbtest för att fastställa nästa hopptyp för trafik till en plats använder du funktionen Nästa hopp i Azure Network Watcher. Nästa hopp talar om för dig vad nästa hopptyp är för trafik som är avsedd för en angiven plats.
  • Om det inte finns några vägar som gör att en virtuell dators nätverkskommunikation misslyckas kan problemet bero på brandväggsprogram som körs i den virtuella datorns operativsystem
  • Om du tvingar tunneltrafik till en lokal enhet via en VPN-gateway eller NVA kanske du inte kan ansluta till en virtuell dator från Internet, beroende på hur du har konfigurerat routning för enheterna. Bekräfta att den routning som du har konfigurerat för enheten dirigerar trafik till antingen en offentlig eller privat IP-adress för den virtuella datorn.
  • Använd funktionen för anslutningsfelsökning för Network Watcher för att fastställa routning, filtrering och orsaker till utgående kommunikationsproblem i operativsystemet.

Nästa steg