Delen via


Een probleem met netwerkroutering van een virtuele machine vaststellen met behulp van PowerShell

In dit artikel leert u hoe u het volgende hophulpprogramma van Azure Network Watcher gebruikt om een routeringsprobleem met een virtuele machine (VM) op te lossen en te diagnosticeren waardoor het niet correct kan communiceren met andere resources.

Vereisten

  • Een Azure-account met een actief abonnement. Gratis een account maken

  • Azure Cloud Shell of Azure PowerShell.

    Met de stappen in dit artikel worden de Azure PowerShell-cmdlets interactief uitgevoerd in Azure Cloud Shell. Als u de cmdlets in Cloud Shell wilt uitvoeren, selecteert u Cloud Shell openen in de rechterbovenhoek van een codeblok. Selecteer Kopiëren om de code te kopiëren en plak deze in Cloud Shell om deze uit te voeren. U kunt Cloud Shell ook uitvoeren vanuit Azure Portal.

    U kunt Azure PowerShell ook lokaal installeren om de cmdlets uit te voeren. Voer Get-Module -ListAvailable Az uit om de geïnstalleerde versie te vinden. Als u PowerShell lokaal uitvoert, meldt u zich aan bij Azure met behulp van de cmdlet Connect-AzAccount .

Maak een virtuele machine

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.