Delen via


Een probleem met netwerkroutering van een virtuele machine vaststellen met behulp van de Azure CLI

In dit artikel leert u hoe u het volgende hophulpprogramma van Azure Network Watcher gebruikt om een VM-routeringsprobleem op te lossen en te diagnosticeren dat verhindert dat deze correct communiceert met andere resources.

Vereisten

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

  • Azure Cloud Shell of Azure CLI.

    In de stappen in dit artikel worden de Azure CLI-opdrachten interactief uitgevoerd in Azure Cloud Shell. Als u de opdrachten 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 CLI ook lokaal installeren om de opdrachten uit te voeren. In dit artikel is Azure CLI versie 2.0 of hoger vereist. Voer de opdracht az --version uit om de geïnstalleerde versie te vinden. Als u Azure CLI lokaal uitvoert, meldt u zich aan bij Azure met behulp van de opdracht az login .

Maak een virtuele machine

Voordat u een VM kunt maken, maakt u eerst een resourcegroep die de VM bevat. Maak een resourcegroep maken met az group create. In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt op de locatie eastus:

az group create --name myResourceGroup --location eastus

Maak een VM met az vm create. Als SSH-sleutels niet al bestaan op de standaardlocatie van de sleutel, worden ze met deze opdracht gemaakt. Als u een specifieke set sleutels wilt gebruiken, gebruikt u de optie --ssh-key-value. In het volgende voorbeeld wordt een VM gemaakt met de naam myVm:

az vm create \
  --resource-group myResourceGroup \
  --name myVm \
  --image Ubuntu2204 \
  --generate-ssh-keys

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 door de Azure CLI.

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 VS - oost, gaat u verder met Volgende hop gebruiken. Gebruik de opdracht az network watcher configure om een network watcher te maken in de regio VS - oost:

az network watcher configure \
  --resource-group NetworkWatcherRG \
  --locations eastus \
  --enabled

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 az network watcher show-next-hop 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:

az network watcher show-next-hop \
  --dest-ip 13.107.21.200 \
  --resource-group myResourceGroup \
  --source-ip 10.0.0.4 \
  --vm myVm \
  --nic myVmVMNic \
  --out table

Na een paar seconden wordt in de uitvoer aangegeven dat het 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:

az network watcher show-next-hop \
  --dest-ip 172.31.0.100 \
  --resource-group myResourceGroup \
  --source-ip 10.0.0.4 \
  --vm myVm \
  --nic myVmVMNic \
  --out table

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 az network nic show-effective-route-table :

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

De volgende tekst wordt opgenomen in de geretourneerde uitvoer:

{
  "additionalProperties": {
    "disableBgpRoutePropagation": false
  },
  "addressPrefix": [
    "0.0.0.0/0"
  ],
  "name": null,
  "nextHopIpAddress": [],
  "nextHopType": "Internet",
  "source": "Default",
  "state": "Active"
},

Toen u de opdracht voor het az network watcher show-next-hop testen van uitgaande communicatie naar 13.107.21.200 in Volgende hop gebruikte, werd de route met addressPrefix 0.0.0.0/0** gebruikt om verkeer naar het adres te routeren, omdat er geen andere route in de uitvoer het adres bevat. De standaardinstelling is dat alle adressen die niet zijn opgegeven in het adresvoorvoegsel van een andere route, worden doorgestuurd naar internet.

Toen u de az network watcher show-next-hop opdracht gebruikte om uitgaande communicatie naar 172.31.0.100 te testen, werd u echter geïnformeerd dat er geen volgend hoptype was. In de geretourneerde uitvoer ziet u ook de volgende tekst:

{
  "additionalProperties": {
    "disableBgpRoutePropagation": false
      },
  "addressPrefix": [
    "172.16.0.0/12"
  ],
  "name": null,
  "nextHopIpAddress": [],
  "nextHopType": "None",
  "source": "Default",
  "state": "Active"
},

Zoals u kunt zien in de uitvoer van de az network watcher nic show-effective-route-table opdracht, hoewel er een standaardroute naar het voorvoegsel 172.16.0.0/12, dat het adres 172.31.0.100 bevat, is het volgendeHopType 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 az group delete gebruiken om de resourcegroep en alle resources die deze bevat te verwijderen, als deze niet meer nodig zijn:

az group delete --name myResourceGroup --yes

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.