Een routeringsprobleem in een virtuele machine vaststellen

In dit artikel leert u hoe u een routeringsprobleem kunt vaststellen door de routes weer te geven die effectief zijn voor een netwerkinterface in een virtuele machine (VM). Azure maakt verschillende standaardroutes voor elk subnet van een virtueel netwerk. U kunt de standaardroutes van Azure overschrijven door routes te definiëren in een routetabel en de routetabel vervolgens te koppelen aan een subnet. De combinatie van routes die u maakt, de standaardroutes van Azure en eventuele routes die worden doorgegeven vanuit uw on-premises netwerk via een Azure VPN-gateway (als uw virtuele netwerk is verbonden met uw on-premises netwerk) via het Border Gateway Protocol (BGP), zijn de effectieve routes voor alle netwerkinterfaces in een subnet. Als u niet bekend bent met virtueel netwerk, netwerkinterface of routeringsconcepten, raadpleegt u Virtueel netwerkoverzicht, Netwerkinterface en Routeringsoverzicht.

Scenario

U probeert verbinding te maken met een VM, 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 bekijken met behulp van Azure Portal, PowerShell of de Azure CLI.

Bij de volgende stappen wordt ervan uitgegaan dat u een bestaande VM hebt om de effectieve routes voor weer te geven. Als u geen bestaande VM hebt, implementeert u eerst een virtuele Linux - of Windows-machine om de taken in dit artikel uit te voeren. De voorbeelden in dit artikel zijn voor een VM met de naam myVM met een netwerkinterface met de naam myVMNic1. De VM en de netwerkinterface bevinden zich in een resourcegroep met de naam myResourceGroup 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 diagnosticeren.

Diagnose stellen 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 in het zoekvak de naam in van een VM die wordt uitgevoerd. Wanneer de naam van de VM wordt weergegeven in de zoekresultaten, selecteert u deze.

  3. Selecteer onder Instellingen aan de linkerkant de optie Netwerken en navigeer naar de netwerkinterfaceresource door de naam ervan te selecteren. Netwerkinterfaces weergeven

  4. Selecteer aan de linkerkant Effectieve routes. De effectieve routes voor een netwerkinterface met de naam myVMNic1 worden weergegeven in de volgende afbeelding: Effectieve routes weergeven

    Als er meerdere netwerkinterfaces aan de VM zijn gekoppeld, kunt u de effectieve routes voor elke netwerkinterface weergeven door deze te selecteren. Aangezien elke netwerkinterface zich in een ander subnet kan bevinden, kan elke netwerkinterface verschillende effectieve routes hebben.

    In het voorbeeld in de vorige afbeelding zijn de vermelde routes standaardroutes die azure voor elk subnet maakt. Uw lijst bevat ten minste deze routes, maar kan extra routes bevatten, afhankelijk van de mogelijkheden die u mogelijk hebt ingeschakeld voor uw virtuele netwerk, zoals het koppelen met een ander virtueel netwerk of verbinding maken met uw on-premises netwerk via een Azure VPN-gateway. Zie Routering van virtueel netwerkverkeer voor meer informatie over elk van de routes en andere routes die u mogelijk ziet voor uw netwerkinterface. Als uw lijst een groot aantal routes bevat, is het wellicht eenvoudiger om Downloaden te selecteren om een .csv-bestand met de lijst met routes te downloaden.

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

Diagnose stellen met behulp van PowerShell

Notitie

U wordt aangeraden 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 volgende opdrachten uitvoeren in de Azure Cloud Shell of door PowerShell uit te voeren vanaf uw computer. De 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 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 ook uitvoeren Connect-AzAccount om u aan te melden bij Azure met een account met de benodigde machtigingen.

Haal de effectieve routes voor een netwerkinterface op met Get-AzEffectiveRouteTable. In het volgende voorbeeld worden de effectieve routes opgehaald voor een netwerkinterface met de naam myVMNic1, die zich in een resourcegroep met de naam myResourceGroup bevindt:

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

Zie Overzicht van routering 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 VM zijn gekoppeld, kunt u de effectieve routes voor elke netwerkinterface controleren. Aangezien elke netwerkinterface zich in een ander subnet kan bevinden, kan elke netwerkinterface verschillende effectieve routes hebben. Als u nog steeds een communicatieprobleem hebt, raadpleegt u aanvullende diagnose en overwegingen.

Als u de naam van een netwerkinterface niet weet, maar wel de naam van de VM waaraan de netwerkinterface is gekoppeld, retourneren de volgende opdrachten de id's van alle netwerkinterfaces die zijn gekoppeld aan een VM:

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

U ontvangt uitvoer die vergelijkbaar is met het volgende voorbeeld:

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

In de vorige uitvoer is de naam van de netwerkinterface myVMNic1.

Diagnose stellen met behulp van Azure CLI

U kunt de volgende opdrachten uitvoeren in de 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. Zie Azure CLI installeren als u de CLI wilt installeren of een upgrade wilt uitvoeren. Als u de Azure CLI lokaal uitvoert, moet u azure ook 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. In het volgende voorbeeld worden de effectieve routes opgehaald voor een netwerkinterface met de naam myVMNic1 die zich in een resourcegroep met de naam myResourceGroup bevindt:

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

Zie Overzicht van routering 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 VM zijn gekoppeld, kunt u de effectieve routes voor elke netwerkinterface controleren. Aangezien elke netwerkinterface zich in een ander subnet kan bevinden, kan elke netwerkinterface verschillende effectieve routes hebben. Als u nog steeds een communicatieprobleem hebt, raadpleegt u aanvullende diagnose en overwegingen.

Als u de naam van een netwerkinterface niet weet, maar wel de naam van de VM waaraan de netwerkinterface is gekoppeld, retourneren de volgende opdrachten de id's van alle netwerkinterfaces die zijn gekoppeld aan een VM:

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

Een probleem oplossen

Het oplossen van routeringsproblemen bestaat doorgaans uit:

  • Een aangepaste route toevoegen om een van de standaardroutes van Azure te overschrijven. Meer informatie over het toevoegen van een aangepaste route.
  • Wijzig of verwijder een aangepaste route 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 u hebt gedefinieerd, is gekoppeld aan het subnet waarin de netwerkinterface zich bevindt. Meer informatie over het koppelen van een routetabel aan een subnet.
  • Ervoor zorgen dat apparaten zoals Azure VPN-gateway of virtuele netwerkapparaten die u hebt 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 aanvullende diagnose.

Overwegingen

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

  • Routering is gebaseerd op LPM (longest prefix match) tussen routes die u hebt gedefinieerd, border gateway protocol (BGP) en systeemroutes. Als er meer dan één route is met dezelfde LPM-overeenkomst, wordt een route geselecteerd op basis van de oorsprong in de volgorde die wordt vermeld in Routeringsoverzicht. Met effectieve routes kunt u alleen effectieve routes zien die een LPM-overeenkomst zijn, op basis van alle beschikbare routes. Als u ziet hoe de routes worden geëvalueerd voor een netwerkinterface, kunt u veel eenvoudiger problemen oplossen met specifieke routes die mogelijk van invloed zijn op de communicatie vanaf uw VM.
  • Als u aangepaste routes hebt gedefinieerd naar een virtueel netwerkapparaat (NVA), met Virtueel apparaat als het volgende hoptype, moet u ervoor zorgen dat doorsturen via IP is ingeschakeld op de NVA die het verkeer ontvangt, of dat pakketten worden verwijderd. Meer informatie over het inschakelen van doorsturen via IP voor een netwerkinterface. Bovendien moet het besturingssysteem of de toepassing binnen de NVA ook netwerkverkeer kunnen doorsturen en geconfigureerd zijn om dit te doen.
  • Als u een route naar 0.0.0.0/0 hebt gemaakt, wordt al het uitgaande internetverkeer doorgestuurd naar de volgende hop die u hebt opgegeven, zoals 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 VM 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, door een route te maken met een volgend hoptype van VPN Gateway. Meer informatie over het configureren van geforceerde tunneling.
    • Als een 0.0.0.0/0 (standaardroute) wordt geadverteerd via BGP via een virtuele netwerkgateway wanneer u een site-naar-site-VPN of ExpressRoute-circuit gebruikt. 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 met een volgend hoptype VNet-peering bestaat voor het voorvoegselbereik van het virtuele netwerk met peering. Als een dergelijke route niet bestaat en de peeringkoppeling van het virtuele netwerk Verbonden is:
  • Hoewel Azure standaardroutes toewijst aan elke Azure-netwerkinterface, krijgt alleen de primaire netwerkinterface een standaardroute (0.0.0.0/0/0) of gateway binnen het besturingssysteem van de virtuele machine toegewezen als u meerdere netwerkinterfaces hebt gekoppeld aan de vm. Meer informatie over het maken van een standaardroute voor secundaire netwerkinterfaces die zijn gekoppeld aan een Windows - of Linux-VM . Meer informatie over primaire en secundaire netwerkinterfaces.

Aanvullende diagnose

  • Als u een snelle test wilt uitvoeren om het volgende hoptype te bepalen voor verkeer dat is bestemd voor een locatie, gebruikt u de mogelijkheid 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 de netwerkcommunicatie van een VM mislukt, wordt het probleem mogelijk veroorzaakt door firewallsoftware die wordt uitgevoerd in het besturingssysteem van de VM
  • 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 hoe u routering voor de apparaten hebt geconfigureerd. Controleer of de routering die u hebt geconfigureerd voor het apparaat verkeer doorstuurt naar een openbaar of privé-IP-adres voor de virtuele machine.
  • Gebruik de mogelijkheid om verbindingsproblemen op te lossen van Network Watcher om routering, filtering en oorzaken van problemen met uitgaande communicatie in het besturingssysteem te bepalen.

Volgende stappen