Een routeringsprobleem in een virtuele machine vaststellen
In dit artikel leert u hoe u een routeringsprobleem kunt vaststellen door de routes te bekijken 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 in een routetabel te definiëren en vervolgens de routetabel aan een subnet te koppelen. De combinatie van routes die u maakt, de standaardroutes van Azure en alle 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 gatewayprotocol (BGP), zijn de effectieve routes voor alle netwerkinterfaces in een subnet. Als u niet bekend bent met het virtuele netwerk, de netwerkinterface of routeringsconcepten, raadpleegt u het overzicht van het virtuele netwerk, de netwerkinterface en het routeringsoverzicht.
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 myVM met een netwerkinterface met de naam myVMNic1. De VM en 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 vaststellen.
Diagnoses uitvoeren met Behulp van Azure Portal
Meld u aan bij Azure Portal met een Azure-account met de benodigde machtigingen.
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.
Selecteer Netwerken onder Instellingen aan de linkerkant en navigeer naar de netwerkinterfaceresource door de naam ervan te selecteren.
Selecteer aan de linkerkant Effectieve routes. De effectieve routes voor een netwerkinterface met de naam myVMNic1 worden weergegeven in de volgende afbeelding:
Als er meerdere netwerkinterfaces aan de virtuele machine zijn gekoppeld, kunt u de effectieve routes voor elke netwerkinterface bekijken door deze te selecteren. Omdat elke netwerkinterface zich in een ander subnet kan bevinden, kan elke netwerkinterface verschillende effectieve routes hebben.
In het voorbeeld dat in de vorige afbeelding wordt weergegeven, zijn de vermelde routes standaardroutes die Azure voor elk subnet maakt. Uw lijst heeft ten minste deze routes, maar heeft mogelijk extra routes, afhankelijk van de mogelijkheden die u mogelijk hebt ingeschakeld voor uw virtuele netwerk, zoals het koppelen aan een ander virtueel netwerk of via een Azure VPN-gateway is verbonden met uw on-premises netwerk. Voor meer informatie over elk van de routes en andere routes die u mogelijk voor uw netwerkinterface ziet, raadpleegt u Routering van verkeer van virtuele netwerken. Als uw lijst een groot aantal routes heeft, is het misschien gemakkelijker om Downloaden te selecteren om een .csv-bestand te downloaden met de lijst met routes.
Hoewel in de vorige stappen effectieve routes zijn bekeken via de VIRTUELE machine, kunt u ook effectieve routes bekijken via een:
- Afzonderlijke netwerkinterface: informatie over het weergeven van een netwerkinterface.
- Afzonderlijke routetabel: informatie over het weergeven van een routetabel.
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 ook worden uitgevoerd Connect-AzAccount
om u aan te melden 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 opgehaald voor een netwerkinterface met de naam myVMNic1, die zich in een resourcegroep bevindt met de naam myResourceGroup:
Get-AzEffectiveRouteTable `
-NetworkInterfaceName myVMNic1 `
-ResourceGroupName myResourceGroup `
| 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 aanvullende diagnose en overwegingen.
Als u de naam van een netwerkinterface niet weet, maar wel de naam weet van de VIRTUELE machine waaraan de netwerkinterface is gekoppeld, retourneren de volgende opdrachten de id's van alle netwerkinterfaces die zijn gekoppeld aan een VIRTUELE machine:
$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.
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. In het volgende voorbeeld worden de effectieve routes opgehaald voor een netwerkinterface met de naam myVMNic1 die zich in een resourcegroep bevindt met de naam myResourceGroup:
az network nic show-effective-route-table \
--name myVMNic1 \
--resource-group myResourceGroup
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 aanvullende diagnose en overwegingen.
Als u de naam van een netwerkinterface niet weet, maar wel de naam weet van de VIRTUELE machine waaraan de netwerkinterface is gekoppeld, retourneren de volgende opdrachten de id's van alle netwerkinterfaces die zijn gekoppeld aan een VIRTUELE machine:
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.
- Ervoor zorgen 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 het langste voorvoegselovereenkomst (LPM) tussen routes die u hebt gedefinieerd, border gateway protocol (BGP) en systeemroutes. Als er meer dan één route met dezelfde LPM-overeenkomst is, wordt een route geselecteerd op basis van de oorsprong ervan in de volgorde die wordt vermeld in het routeringsoverzicht. Met effectieve routes kunt u alleen effectieve routes zien die overeenkomen met LPM, op basis van alle beschikbare routes. Als u ziet hoe de routes worden geëvalueerd voor een netwerkinterface, is het veel eenvoudiger om specifieke routes op te lossen die mogelijk van invloed zijn op de communicatie van uw VIRTUELE machine.
- Als u aangepaste routes naar een virtueel netwerkapparaat (NVA) hebt gedefinieerd, zorgt u ervoor 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. Daarnaast moet het besturingssysteem of de toepassing binnen de NVA ook netwerkverkeer kunnen doorsturen en zo worden geconfigureerd.
- Als u een route naar 0.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 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 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 een systeemroute met een volgend hoptype VNet-peering bestaat voor het voorvoegselbereik van het gekoppelde virtuele netwerk. Als een dergelijke route niet bestaat en de peeringkoppeling voor het virtuele netwerk is verbonden:
- Wacht een paar seconden en probeer het opnieuw. Als het een nieuw tot stand gebrachte peeringkoppeling is, duurt het af en toe langer om routes door te geven naar alle netwerkinterfaces in een subnet. Zie het overzicht van peering van virtuele netwerken en het beheren van peering van virtuele netwerken voor meer informatie over peering van virtuele netwerken.
- Regels voor netwerkbeveiligingsgroepen kunnen van invloed zijn op de communicatie. Zie Diagnose van een probleem met netwerkverkeersfilters voor virtuele machines voor meer informatie.
- 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.
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 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 de netwerkcommunicatie van een VIRTUELE machine 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 vanaf internet, afhankelijk van hoe u routering voor de apparaten hebt geconfigureerd. Controleer of de routering die u hebt geconfigureerd voor het apparaat verkeer routeert naar een openbaar of privé-IP-adres voor de virtuele machine.
- Gebruik de verbindingsproblemen met Network Watcher om routerings-, filter- en in-OS-oorzaken van uitgaande communicatieproblemen te bepalen.
Volgende stappen
- Meer informatie over alle taken, eigenschappen en instellingen voor een routetabel en routes.
- Meer informatie over alle volgende hoptypen, systeemroutes en hoe Azure een route selecteert.