Een probleem met netwerkroutering van een virtuele machine vaststellen - Azure PowerShell

In dit artikel implementeert u een virtuele machine (VM) en controleert u de communicatie naar een IP-adres en URL. U stelt de oorzaak van mislukte communicatie vast en leert hoe u dit probleem kunt oplossen.

Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

Azure Cloud Shell

Azure host Azure Cloud Shell, een interactieve shell-omgeving die u via uw browser kunt gebruiken. U kunt Bash of PowerShell gebruiken met Cloud Shell om met Azure-services te werken. U kunt de vooraf geïnstalleerde Cloud Shell-opdrachten gebruiken om de code in dit artikel uit te voeren zonder dat u iets hoeft te installeren in uw lokale omgeving.

Om Azure Cloud Shell op te starten:

Optie Voorbeeld/koppeling
Selecteer Uitproberen in de rechterbovenhoek van een code- of opdrachtblok. Als u Try It selecteert, wordt de code of opdracht niet automatisch gekopieerd naar Cloud Shell. Schermopname van een voorbeeld van Probeer het nu voor Azure Cloud Shell.
Ga naar https://shell.azure.com, of selecteer de knop Cloud Shell starten om Cloud Shell in uw browser te openen. Knop om Azure Cloud Shell te starten.
Klik op de knop Cloud Shell in het menu in de balk rechtsboven in de Azure-portal. Schermopname van de knop Cloud Shell in Azure Portal

Azure Cloud Shell gebruiken:

  1. Start Cloud Shell.

  2. Selecteer de knop Kopiëren op een codeblok (of opdrachtblok) om de code of opdracht te kopiëren.

  3. Plak de code of opdracht in de Cloud Shell-sessie door Ctrl+Shift+V in Windows en Linux te selecteren of door Cmd+Shift+V te selecteren in macOS.

  4. Selecteer Enter om de code of opdracht uit te voeren.

Als u PowerShell lokaal wilt installeren en gebruiken, is voor dit artikel de Az PowerShell-module vereist. Zie Azure PowerShell installeren voor meer informatie. Voer Get-InstalledModule -Name Az uit om te zien welke versie is geïnstalleerd. Als u PowerShell lokaal uitvoert, meldt u zich aan bij Azure met behulp van de cmdlet Verbinding maken-AzAccount.

Een VM maken:

Voordat u een VM kunt maken, maakt u eerst een resourcegroep die de VM bevat. Maak een resourcegroep met behulp van de opdracht New-AzResourceGroup. In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt op de locatie VS - oost.

New-AzResourceGroup -Name myResourceGroup -Location EastUS

Maak de VM met New-AzVM. Als deze stap wordt uitgevoerd, wordt u gevraagd referenties op te geven. De waarden die u invoert, worden geconfigureerd als de gebruikersnaam en het wachtwoord voor de virtuele machine.

$vM = New-AzVm `
    -ResourceGroupName "myResourceGroup" `
    -Name "myVm" `
    -Location "East US"

Het maken van de virtuele machine duurt een paar minuten. Ga niet door met de resterende stappen totdat de VM is gemaakt en uitvoer wordt geretourneerd met PowerShell.

Netwerkcommunicatie testen

Als u de netwerkcommunicatie met Network Watcher wilt testen, moet u eerst een netwerk-watcher inschakelen in de regio waarin de VM zich bevindt en vervolgens de volgende hopfunctie van Network Watcher gebruiken om de communicatie te testen.

Netwerk-watcher inschakelen

Als u al een netwerk-watcher hebt ingeschakeld in de regio US - oost, gebruikt u Get-AzNetworkWatcher om de netwerk-watcher op te halen. In het volgende voorbeeld wordt een bestaande netwerk-watcher opgehaald met de naam NetworkWatcher_eastus die zich in de resourcegroep NetworkWatcherRG bevindt:

$networkWatcher = Get-AzNetworkWatcher `
  -Name NetworkWatcher_eastus `
  -ResourceGroupName NetworkWatcherRG

Als u nog geen netwerk-watcher hebt ingeschakeld in de regio US - oost, gebruikt u New-AzNetworkWatcher om een netwerk-watcher te maken in de regio US - oost:

$networkWatcher = New-AzNetworkWatcher `
  -Name "NetworkWatcher_eastus" `
  -ResourceGroupName "NetworkWatcherRG" `
  -Location "East US"

Volgende hop gebruiken

Azure maakt automatisch routes naar standaardbestemmingen. U kunt uw eigen, aangepaste routes maken om die standaardroutes te overschrijven. Soms hebben aangepaste routes tot gevolg dat de communicatie mislukt. Als u routering vanaf een VIRTUELE machine wilt testen, gebruikt u de opdracht Get-AzNetworkWatcherNextHop om de volgende routeringshop te bepalen wanneer verkeer is bestemd voor een specifiek adres.

Test uitgaande communicatie van de VIRTUELE machine naar een van de IP-adressen voor www.bing.com:

Get-AzNetworkWatcherNextHop `
  -NetworkWatcher $networkWatcher `
  -TargetVirtualMachineId $VM.Id `
  -SourceIPAddress 192.168.1.4 `
  -DestinationIPAddress 13.107.21.200

Na een paar seconden wordt in de uitvoer aangegeven dat nexthoptype internet is en dat de RouteTableId systeemroute is. Met dit resultaat weet u dat er een geldige route naar de bestemming is.

Uitgaande communicatie van de VM naar 172.31.0.100 testen:

Get-AzNetworkWatcherNextHop `
  -NetworkWatcher $networkWatcher `
  -TargetVirtualMachineId $VM.Id `
  -SourceIPAddress 192.168.1.4 `
  -DestinationIPAddress 172.31.0.100

De geretourneerde uitvoer informeert u dat Geen het NextHopType is en dat de RouteTableId ook systeemroute is. Hieruit kunt u afleiden dat er wel een geldige systeemroute is naar de bestemming, maar dat er geen volgende hop is voor het routeren van het verkeer naar de bestemming.

Details van een route weergeven

Als u de routering verder wilt analyseren, bekijkt u de effectieve routes voor de netwerkinterface met de opdracht Get-AzEffectiveRouteTable :

Get-AzEffectiveRouteTable `
  -NetworkInterfaceName myVm `
  -ResourceGroupName myResourceGroup |
  Format-table

Uitvoer met de volgende tekst wordt geretourneerd:

Name State  Source  AddressPrefix           NextHopType NextHopIpAddress
---- -----  ------  -------------           ----------- ----------------
     Active Default {192.168.0.0/16}        VnetLocal   {}              
     Active Default {0.0.0.0/0}             Internet    {}              
     Active Default {10.0.0.0/8}            None        {}              
     Active Default {100.64.0.0/10}         None        {}              
     Active Default {172.16.0.0/12}         None        {}              

Zoals u in de vorige uitvoer kunt zien, route met het AddressPrefix van 0.0.0.0/0 routeert al het verkeer dat niet is bestemd voor adressen binnen de adresvoorvoegsels van een andere route met een volgende hop van internet. Zoals u ook in de uitvoer kunt zien, is er een standaardroute naar het voorvoegsel 172.16.0.0/12, waaronder het adres 172.31.0.100, geen. Azure maakt een standaardroute naar 172.16.0.0/12, maar stelt geen volgend hoptype in, tenzij daar een reden voor is. Als u bijvoorbeeld het adresbereik 172.16.0.0/12 hebt toegevoegd aan de adresruimte van het virtuele netwerk, wijzigt Azure het volgendeHopType in het virtuele netwerk voor de route. Er wordt vervolgens een virtueel netwerk weergegeven als het nextHopType.

Resources opschonen

U kunt de opdracht Remove-AzResourceGroup gebruiken om de resourcegroep en alle resources die deze bevat te verwijderen, wanneer u deze niet meer nodig hebt:

Remove-AzResourceGroup -Name myResourceGroup -Force

Volgende stappen

In dit artikel hebt u een VIRTUELE machine gemaakt en netwerkroutering van de VIRTUELE machine vastgesteld. U hebt geleerd dat Azure verschillende standaardroutes maakt en u hebt de routering naar twee verschillende bestemmingen getest. Lees hier meer over routering in Azure en hoe u aangepaste routes maakt.

Voor uitgaande VM-verbindingen kunt u ook de latentie en het toegestane en geweigerde netwerkverkeer tussen de VM en een eindpunt bepalen met behulp van de verbindingsproblemen van Network Watcher. U kunt de communicatie tussen een VIRTUELE machine en een eindpunt bewaken, zoals een IP-adres of URL in de loop van de tijd met behulp van de network Watcher-verbindingsmonitorfunctie. Zie Een netwerkverbinding bewaken voor meer informatie.