Dela via


Diagnostisera problem med routning för virtuella datorer

I den här artikeln får du lära dig hur du diagnostiserar routningsproblem genom att visa de effektiva vägarna för ett nätverksgränssnitt på en virtuell dator (VM). Azure skapar automatiskt standardvägar för varje virtuellt nätverksundernät. Du kan åsidosätta dessa standardvägar genom att definiera anpassade vägar i en routningstabell och associera tabellen med ett undernät. De effektiva vägarna för ett nätverksgränssnitt är en kombination av Azures standardvägar, anpassade vägar som du definierar och eventuella vägar som sprids från ditt lokala nätverk via en Azure VPN-gateway med hjälp av BGP (Border Gateway Protocol). Om du inte har använt virtuella nätverk, nätverksgränssnitt eller routning tidigare kan du läsa Översikt över virtuellt 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 som följer förutsätter att du har en befintlig virtuell dator att visa de effektiva vägarna för. Om du inte har någon 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 vm-1 med ett nätverksgränssnitt med namnet vm-1445. Den virtuella datorn och nätverksgränssnittet finns i en resursgrupp med namnet test-rg 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 är i körningstillståndet i sökrutan. När namnet på den virtuella datorn visas i sökresultatet väljer du det.

  3. Expandera avsnittet Nätverk och välj Nätverksinställningar.

  4. Välj dess namn för att välja gränssnittet.

    Skärmbild av nätverksgränssnittet i VM-inställningarna.

  5. I nätverksgränssnittet expanderar du Hjälp. Välj Effektiva vägar.

    Skärmbild av effektiva vägar för nätverksgränssnittet.

    Välj önskat nätverksgränssnitt för att visa dess effektiva vägar. Varje gränssnitt kan tillhöra ett annat undernät, vilket resulterar i unika vägar. Exemplet i bilden visar standardvägar som skapats av Azure för varje undernät. Listan innehåller standardvägarna och kan även innehålla extra vägar. Rutterna kan komma från funktioner som peering för virtuella nätverk eller anslutningar till nätverk på plats via en Azure VPN-gateway. Mer information om vägarna finns i Trafikdirigering för virtuella nätverk. Om det finns många vägar använder du alternativet Ladda ned för att spara dem som en .csv fil för enklare granskning.

Ä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

Kommentar

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 Azure PowerShell-modulen 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 vm-1445 i en resursgrupp med namnet test-rg:

$Params = @{
  NetworkInterfaceName = "vm-1445"
  ResourceGroupName    = "test-rg"
}
Get-AzEffectiveRouteTable @Params | Format-Table

För att förstå informationen som returneras i utdata, se Routningsöversikt. Utdata returneras endast om den virtuella datorn är i körningstillståndet. 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 ett annat undernät kan varje nätverksgränssnitt ha olika effektiva vägar. Om du fortfarande har ett kommunikationsproblem kan du se fler diagnoser och överväganden.

Om du känner till namnet på den virtuella datorn men inte namnet på nätverksgränssnittet använder du följande kommandon för att returnera ID:t för alla nätverksgränssnitt som är anslutna till den virtuella datorn:

$Params = @{
  Name              = "vm-1"
  ResourceGroupName = "test-rg"
}
$VM = Get-AzVM @Params
$VM.NetworkProfile

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

NetworkInterfaces
-----------------
{/subscriptions/<ID>/resourceGroups/test-rg/providers/Microsoft.Network/networkInterfaces/vm-1445

I föregående utdata är nätverksgränssnittets namn vm-1445.

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 den effektiva vägtabellen för ett nätverksgränssnitt med az network nic show-effective-route-table. Följande kommando hämtar de effektiva vägarna för ett nätverksgränssnitt med namnet vm-1445 som finns i en resursgrupp med namnet test-rg:

az network nic show-effective-route-table \
  --name vm-1445 \
  --resource-group test-rg

För att förstå informationen som returneras i utdata, se Routningsöversikt. Utdata returneras endast om den virtuella datorn är i körningstillståndet. 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 ett annat undernät kan varje nätverksgränssnitt ha olika effektiva vägar. Om du fortfarande har ett kommunikationsproblem kan du se fler diagnoser och överväganden.

Om du känner till namnet på den virtuella datorn men inte namnet på nätverksgränssnittet använder du följande kommandon för att returnera ID:t för alla nätverksgränssnitt som är anslutna till den virtuella datorn:

az vm show \
  --name vm-1 \
  --resource-group test-rg

Lösa ett problem

Att lösa routningsproblem består vanligtvis av följande procedurer:

  • Tillägg av 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.

  • Ändrat eller tagit 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.

  • Kontrollera att routningstabellen som innehåller alla anpassade vägar som definierats ä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 distribueras är fungerande. Använd VPN-diagnostikfunktionen 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 fler diagnoser.

Att tänka på

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

  • Routning använder den längsta prefixmatchen (LPM) för att fastställa den bästa rutten från systemets rutter, BGP och anpassade rutter. Om flera vägar delar samma LPM-matchning väljer Azure en baserat på prioritetsordningen i routningsöversikten. Effektiva vägar visar endast LPM-matchade vägar, vilket gör det enklare att identifiera och felsöka vägar som påverkar VM-kommunikationen.

  • Om anpassade vägar dirigerar trafik till en virtuell nätverksinstallation (NVA) med virtuell installation som nästa hopptyp kontrollerar du att NVA:s IP-vidarebefordran är aktiverad. annars tas paketen bort. Lär dig hur du aktiverar IP-vidarebefordran för ett nätverksgränssnitt och konfigurerar NVA:s operativsystem eller program för att vidarebefordra trafik.

  • Om en väg till 0.0.0.0/0 skapas dirigeras all utgående Internettrafik till nästa hopp som du angav, till exempel till en NVA- eller VPN-gateway. Att skapa en sådan väg kallas ofta för tvingad tunneltrafik. Fjärranslutningar med 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 kan du skapa en rutt med typen nästa hopp VPN Gateway. Läs mer om hur du konfigurerar tvingad tunneltrafik.
    • Om en 0.0.0.0/0 (standardväg) annonseras över BGP genom en virtuell nätverksgateway när du använder en VPN från plats till plats eller en ExpressRoute-krets. Läs mer om hur du använder BGP med ett plats-till-plats-VPN eller ExpressRoute.
  • För att peering-trafik för virtuella nätverk ska fungera korrekt måste en systemväg med nästa hopptyp av VNet-peering finnas för det peerkopplade virtuella nätverkets prefixintervall. Om en sådan väg inte finns 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.

Fler diagnoser

  • Om du vill köra ett snabbtest för att fastställa nästa hopptyp för trafik som är avsedd för 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å att brandväggsprogramvaran 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 routningen konfigureras för enheterna. Bekräfta att den routning som konfigurerats 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 i Network Watcher för att fastställa routning, filtrering och orsaker till utgående kommunikationsproblem i operativsystemet.

Nästa steg