Partager via


Diagnostiquer un problème de routage réseau d’une machine virtuelle en utilisant PowerShell

Dans cet article, vous apprendrez à utiliser l’outil Tronçon suivant Azure Network Watcher pour résoudre et diagnostiquer le problème de routage d’une machine virtuelle qui l’empêche de communiquer correctement avec d’autres ressources.

Prérequis

  • Compte Azure avec un abonnement actif. Créez un compte gratuitement.

  • Azure Cloud Shell ou Azure PowerShell.

    Les étapes de cet article exécutent les applets de commande Azure PowerShell de manière interactive dans Azure Cloud Shell. Pour exécuter les cmdlets dans le Cloud Shell, sélectionnez Ouvrir Cloud Shell dans le coin supérieur droit d’un bloc de code. Sélectionnez Copier pour copier le code, puis collez-le dans Cloud Shell pour l’exécuter. Vous pouvez également exécuter le Cloud Shell à partir du Portail Azure.

    Vous pouvez également installer Azure PowerShell localement pour exécuter les applets de commande. Exécutez Get-Module -ListAvailable Az pour trouver la version installée. Si vous exécutez PowerShell localement, connectez-vous à Azure avec la cmdlet Connect-AzAccount.

Création d'une machine virtuelle

Avant de pouvoir créer une machine virtuelle, vous devez créer un groupe de ressources pour qu’il contienne la machine virtuelle. Créez un groupe de ressources avec New-AzResourceGroup. L’exemple suivant crée un groupe de ressources nommé myResourceGroup à l’emplacement eastus.

New-AzResourceGroup -Name myResourceGroup -Location EastUS

Créez la machine virtuelle avec New-AzVM. Lors de l’exécution de cette étape, vous êtes invité à saisir vos informations d’identification. Les valeurs que vous saisissez sont configurées comme le nom d’utilisateur et le mot de passe pour la machine virtuelle.

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

La création de la machine virtuelle ne nécessite que quelques minutes. Ne poursuivez pas les étapes restantes avant que la machine virtuelle ne soit créée et que PowerShell ne retourne la sortie.

Tester la communication réseau

Pour tester une communication réseau avec Network Watcher, commencez par activer un observateur réseau dans la région de la machine virtuelle que vous souhaitez tester, puis utilisez la fonctionnalité de tronçon suivant de Network Watcher pour tester la communication.

Activer Network Watcher

Si vous avez déjà un observateur réseau activé dans la région USA Est, utilisez Get-AzNetworkWatcher pour le récupérer. L’exemple suivant récupère un observateur réseau existant nommé NetworkWatcher_eastus se trouvant dans le groupe de ressources NetworkWatcherRG :

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

Si vous n’avez pas encore d’observateur réseau activé dans la région USA Est, utilisez New-AzNetworkWatcher pour créer un observateur réseau dans cette région :

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

Utiliser le tronçon suivant

Azure crée automatiquement des itinéraires vers les destinations par défaut. Vous pouvez créer des itinéraires personnalisés pour remplacer les itinéraires par défaut. Parfois, les itinéraires personnalisés peuvent entraîner l’échec de la communication. Pour tester le routage à partir d’une machine virtuelle, utilisez la commande Get-AzNetworkWatcherNextHop afin de déterminer le tronçon de routage suivant lorsque le trafic est destiné à une adresse spécifique.

Testez la communication sortante de la machine virtuelle vers l’une des adresses IP pour www.bing.com :

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

Après quelques secondes, la sortie vous informe que NextHopType est défini sur Internet et que RouteTableId est défini sur System Route (Itinéraire système). Ce résultat vous permet de savoir qu’il existe un itinéraire valide vers la destination.

Testez la communication sortante de la machine virtuelle vers l’adresse 172.31.0.100 :

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

La sortie retournée vous informe que Aucun est la valeur de NextHopType et que RouteTableId est également défini sur System Route (Itinéraire système). Ce résultat vous permet de savoir que s’il existe un itinéraire système valide vers la destination, il n’existe aucun tronçon suivant pour acheminer le trafic vers la destination.

Afficher les détails d’un itinéraire

Pour procéder à une analyse plus approfondie du routage, passez en revue les itinéraires réels de l’interface réseau avec la commande Get-AzEffectiveRouteTable :

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

Une sortie contenant le texte suivant est retournée :

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        {}              

Comme vous pouvez le voir dans la sortie précédente, la route avec AddressPrefix défini sur 0.0.0.0/0 achemine tout le trafic non destiné aux adresses dans les préfixes d’adresses d’une autre route avec un tronçon suivant défini sur Internet. Comme vous pouvez le voir aussi dans la sortie, même s’il existe un itinéraire par défaut pour le préfixe 172.16.0.0/12, qui inclut l’adresse 172.31.0.100, NextHopType est défini sur Aucun. Azure crée un itinéraire par défaut pour 172.16.0.0/12, mais ne spécifie pas de type de tronçon suivant tant qu’aucune raison ne motive cette spécification. Si, par exemple, vous avez ajouté la plage d’adresses 172.16.0.0/12 à l’espace d’adressage du réseau virtuel, Azure modifie NextHopType pour le définir sur Réseau virtuel pour l’itinéraire. Une vérification permet ensuite d’afficher Réseau virtuel en tant que NextHopType.

Nettoyer les ressources

Quand vous n’avez plus besoin d’un groupe de ressources, vous pouvez utiliser Remove-AzResourceGroup pour le supprimer ainsi que toutes les ressources qu’il contient :

Remove-AzResourceGroup -Name myResourceGroup -Force

Étapes suivantes

Dans cet article, vous avez créé une machine virtuelle et diagnostiqué un problème de routage réseau à partir de celle-ci. Vous avez appris qu’Azure crée plusieurs itinéraires par défaut et testé le routage vers deux destinations différentes. En savoir plus sur le routage dans Azure et la création d’itinéraires personnalisés.

Pour les connexions sortantes d’une machine virtuelle, vous pouvez également déterminer la latence, le trafic réseau autorisé et refusé entre la machine virtuelle et un point de terminaison, à l’aide de la fonctionnalité Résolution des problèmes de connexion de Network Watcher. Vous pouvez effectuer un monitoring des communications entre une machine virtuelle et un point de terminaison, par exemple une adresse IP ou une URL, au fil du temps à l’aide de la fonctionnalité de monitoring des connexions de Network Watcher. Pour plus d’informations, consultez Effectuer le monitoring d’une connexion réseau.