Delen via


Een routeringsprobleem in een virtuele machine vaststellen

In dit artikel leert u hoe u routeringsproblemen kunt diagnosticeren door de effectieve routes voor een netwerkinterface in een virtuele machine (VM) te bekijken. Azure maakt automatisch standaardroutes voor elk subnet van een virtueel netwerk. U kunt deze standaardroutes overschrijven door aangepaste routes in een routetabel te definiëren en de tabel te koppelen aan een subnet. De effectieve routes voor een netwerkinterface zijn een combinatie van de standaardroutes van Azure, aangepaste routes die u definieert en alle routes die worden doorgegeven vanuit uw on-premises netwerk via een Azure VPN-gateway met behulp van het Border Gateway Protocol (BGP). Als u nieuw bent met virtuele netwerken, netwerkinterfaces of routering, zie overzicht van virtuele netwerken, netwerkinterface en overzicht van routering.

Scenario

U probeert verbinding te maken met een virtuele machine, maar de verbinding mislukt. Als u wilt bepalen waarom u geen verbinding kunt maken met de virtuele machine, kunt u de effectieve routes voor een netwerkinterface weergeven met behulp van Azure Portal, PowerShell of de Azure CLI.

Bij de volgende stappen wordt ervan uitgegaan dat u een bestaande VIRTUELE machine hebt om de effectieve routes voor weer te geven. Als u geen bestaande VM hebt, implementeert u eerst een Linux - of Windows-VM om de taken in dit artikel te voltooien. De voorbeelden in dit artikel zijn voor een virtuele machine met de naam vm-1 met een netwerkinterface met de naam vm-1445. De VM en netwerkinterface bevinden zich in een resourcegroep met de naam test-rg en bevinden zich in de regio VS - oost . Wijzig de waarden in de stappen, indien van toepassing, voor de VM waarvoor u het probleem wilt vaststellen.

Diagnoses uitvoeren met Behulp van Azure Portal

  1. Meld u aan bij Azure Portal met een Azure-account met de benodigde machtigingen.

  2. Voer boven aan De Azure-portal de naam in van een virtuele machine die de status Actief heeft, in het zoekvak. Wanneer de naam van de virtuele machine wordt weergegeven in de zoekresultaten, selecteert u deze.

  3. Vouw de sectie Netwerken uit en selecteer Netwerkinstellingen.

  4. Als u de interface wilt selecteren, selecteert u de naam.

    Schermopname van de netwerkinterface in VM-instellingen.

  5. Vouw Help uit in de netwerkinterface. Selecteer Effectieve routes.

    Schermopname van effectieve routes voor de netwerkinterface.

    Selecteer de gewenste netwerkinterface om de effectieve routes weer te geven. Elke interface kan tot een ander subnet behoren, wat resulteert in unieke routes. In het voorbeeld in de afbeelding ziet u standaardroutes die door Azure zijn gemaakt voor elk subnet. Uw lijst bevat de standaardroutes en kan ook extra routes bevatten. De routes kunnen afkomstig zijn van functies zoals peering van virtuele netwerken of verbindingen met on-premises netwerken via een Azure VPN-gateway. Zie Routering van virtueel netwerkverkeer voor meer informatie over de routes. Als er veel routes zijn, gebruikt u de optie Downloaden om ze op te slaan als een .csv-bestand voor eenvoudigere controle.

Hoewel in de vorige stappen effectieve routes zijn bekeken via de VIRTUELE machine, kunt u ook effectieve routes bekijken via een:

Diagnose stellen met behulp van PowerShell

Notitie

Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.

U kunt de opdrachten uitvoeren die volgen in De Azure Cloud Shell of door PowerShell uit te voeren vanaf uw computer. Azure Cloud Shell is een gratis interactieve shell. In deze shell zijn algemene Azure-hulpprogramma's vooraf geïnstalleerd en geconfigureerd voor gebruik met uw account. Als u PowerShell vanaf uw computer uitvoert, hebt u de Azure PowerShell-module versie 1.0.0 of hoger nodig. Voer Get-Module -ListAvailable Az deze uit op uw computer om de geïnstalleerde versie te vinden. Als u PowerShell wilt upgraden, raadpleegt u De Azure PowerShell-module installeren. Als u PowerShell lokaal uitvoert, moet u zich ook aanmelden Connect-AzAccount bij Azure met een account met de benodigde machtigingen.

Haal de effectieve routes op voor een netwerkinterface met Get-AzEffectiveRouteTable. In het volgende voorbeeld worden de effectieve routes voor een netwerkinterface met de naam vm-1445 in een resourcegroep met de naam test-rg ophaalt:

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

Zie routeringsoverzicht voor meer informatie over de informatie die in de uitvoer wordt geretourneerd. Uitvoer wordt alleen geretourneerd als de VM de status Actief heeft. Als er meerdere netwerkinterfaces aan de VIRTUELE machine zijn gekoppeld, kunt u de effectieve routes voor elke netwerkinterface bekijken. Omdat elke netwerkinterface zich in een ander subnet kan bevinden, kan elke netwerkinterface verschillende effectieve routes hebben. Als u nog steeds een communicatieprobleem ondervindt, raadpleegt u meer diagnoses en overwegingen.

Als u de naam van de VIRTUELE machine kent, maar niet de naam van de netwerkinterface, gebruikt u de volgende opdrachten om de id te retourneren van alle netwerkinterfaces die aan de VIRTUELE machine zijn gekoppeld:

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

U ontvangt uitvoer die vergelijkbaar is met het volgende voorbeeld:

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

In de vorige uitvoer is de naam van de netwerkinterface vm-1445.

Diagnoses uitvoeren met Behulp van Azure CLI

U kunt de opdrachten uitvoeren die volgen in Azure Cloud Shell of door de CLI uit te voeren vanaf uw computer. Voor dit artikel is Azure CLI versie 2.0.32 of hoger vereist. Voer az --version uit om te kijken welke versie is geïnstalleerd. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren. Als u de Azure CLI lokaal uitvoert, moet u ook Azure uitvoeren az login en aanmelden met een account met de benodigde machtigingen.

Haal de effectieve routes voor een netwerkinterface op met az network nic show-effective-route-table. Met de volgende opdrachtregel worden de effectieve routes opgehaald voor een netwerkinterface met de naam vm-1445, die zich in een resourcegroep test-rg bevindt:

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

Zie routeringsoverzicht voor meer informatie over de informatie die in de uitvoer wordt geretourneerd. Uitvoer wordt alleen geretourneerd als de VM de status Actief heeft. Als er meerdere netwerkinterfaces aan de VIRTUELE machine zijn gekoppeld, kunt u de effectieve routes voor elke netwerkinterface bekijken. Omdat elke netwerkinterface zich in een ander subnet kan bevinden, kan elke netwerkinterface verschillende effectieve routes hebben. Als u nog steeds een communicatieprobleem ondervindt, raadpleegt u meer diagnoses en overwegingen.

Als u de naam van de VIRTUELE machine kent, maar niet de naam van de netwerkinterface, gebruikt u de volgende opdrachten om de id te retourneren van alle netwerkinterfaces die aan de VIRTUELE machine zijn gekoppeld:

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

Een probleem oplossen

Het oplossen van routeringsproblemen bestaat doorgaans uit de volgende procedures:

  • Toevoeging van een aangepaste route om een van de standaardroutes van Azure te overschrijven. Meer informatie over het toevoegen van een aangepaste route.

  • Een aangepaste route gewijzigd of verwijderd die kan leiden tot routering naar een ongewenste locatie. Meer informatie over het wijzigen of verwijderen van een aangepaste route.

  • Zorg ervoor dat de routetabel die aangepaste routes bevat die zijn gedefinieerd, is gekoppeld aan het subnet waarin de netwerkinterface zich bevindt. Meer informatie over het koppelen van een routetabel aan een subnet.

  • Zorg ervoor dat apparaten zoals Azure VPN-gateway of virtuele netwerkapparaten die zijn geïmplementeerd, kunnen worden gebruikt. Gebruik de diagnostische VPN-functie van Network Watcher om eventuele problemen met een Azure VPN-gateway te bepalen.

Als u nog steeds communicatieproblemen ondervindt, raadpleegt u Overwegingen en meer diagnoses.

Overwegingen

Houd rekening met de volgende punten bij het oplossen van communicatieproblemen:

  • Routing maakt gebruik van de langste prefix overeenkomst (LPM) om de beste route te bepalen uit systeemroutes, BGP en aangepaste routes. Als meerdere routes dezelfde LPM-overeenkomst delen, selecteert Azure er een op basis van de prioriteitsvolgorde in het routeringsoverzicht. Effectieve routes tonen alleen de met LPM overeenkomende routes, waardoor het gemakkelijker is om routes te identificeren en op te lossen die van invloed zijn op vm-communicatie.

  • Als aangepaste routes verkeer naar een netwerk virtueel apparaat (NVA) met virtueel apparaat als het type volgende hop leiden, zorg ervoor dat IP-forwarding van de NVA is ingeschakeld; anders worden pakketten gedropt. Meer informatie over het inschakelen van doorsturen via IP voor een netwerkinterface en het configureren van het besturingssysteem of de toepassing van de NVA om verkeer door te sturen.

  • Als er een route naar 0.0.0.0/0 wordt gemaakt, wordt al het uitgaande internetverkeer doorgestuurd naar de volgende hop die u hebt opgegeven, bijvoorbeeld naar een NVA- of VPN-gateway. Het maken van een dergelijke route wordt vaak geforceerde tunneling genoemd. Externe verbindingen met behulp van de RDP- of SSH-protocollen van internet naar uw VIRTUELE machine werken mogelijk niet met deze route, afhankelijk van hoe de volgende hop het verkeer verwerkt. Geforceerde tunneling kan worden ingeschakeld:

    • Wanneer u site-naar-site-VPN gebruikt, maakt u een route met een volgend hoptype VPN Gateway. Meer informatie over het configureren van geforceerde tunneling.
    • Als een 0.0.0.0/0 (standaardroute) via BGP wordt geadverteerd met een virtuele netwerkgateway bij gebruik van een site-naar-site-VPN of een ExpressRoute-circuit. Meer informatie over het gebruik van BGP met een site-naar-site-VPN of ExpressRoute.
  • Peeringverkeer van virtuele netwerken werkt alleen correct als er een systeemroute bestaat met een volgend hoptype VNet Peering voor het voorvoegselbereik van het gekoppelde virtuele netwerk. Als een dergelijke route niet bestaat en de peeringkoppeling voor het virtuele netwerk is Verbonden:

  • Hoewel Azure standaardroutes toewijst aan elke Azure-netwerkinterface, als er meerdere netwerkinterfaces aan de VIRTUELE machine zijn gekoppeld, wordt alleen aan de primaire netwerkinterface een standaardroute (0.0.0.0/0) of gateway toegewezen binnen het besturingssysteem van de VIRTUELE machine. Meer informatie over het maken van een standaardroute voor secundaire netwerkinterfaces die zijn gekoppeld aan een Virtuele Windows - of Linux-machine . Meer informatie over primaire en secundaire netwerkinterfaces.

Meer diagnoses

  • Als u een snelle test wilt uitvoeren om het volgende hoptype te bepalen voor verkeer dat is bestemd voor een locatie, gebruikt u de functie Volgende hop van Azure Network Watcher. Volgende hop geeft aan wat het volgende hoptype is voor verkeer dat is bestemd voor een opgegeven locatie.

  • Als er geen routes zijn waardoor communicatie van een VM-netwerk mislukt, kan het probleem worden veroorzaakt door firewallsoftware die wordt uitgevoerd binnen het besturingssysteem van de VIRTUELE machine

  • Als u verkeer via een VPN-gateway of NVA geforceerd tunnelt naar een on-premises apparaat, kunt u mogelijk geen verbinding maken met een virtuele machine via internet, afhankelijk van de configuratie van routering voor de apparaten. Controleer of de routering die is geconfigureerd voor het apparaat verkeer routeert naar een openbaar of privé-IP-adres voor de virtuele machine.

  • Gebruik de probleemoplossing voor verbindingen van Network Watcher om de oorzaken van routerings-, filter- en in-OS-problemen met uitgaande communicatie te bepalen.

Volgende stappen