Diagnostiquer un problème de routage sur une machine virtuelleDiagnose a virtual machine routing problem

Dans cet article, vous apprenez à diagnostiquer un problème de routage en regardant les itinéraires qui sont effectifs pour une interface réseau sur une machine virtuelle.In this article, you learn how to diagnose a routing problem by viewing the routes that are effective for a network interface in a virtual machine (VM). Azure crée plusieurs itinéraires par défaut pour chaque sous-réseau de machine virtuelle.Azure creates several default routes for each virtual network subnet. Vous pouvez remplacer les itinéraires par défaut d’Azure, en définissant des itinéraires dans une table de routage que vous associez ensuite à un sous-réseau.You can override Azure's default routes by defining routes in a route table, and then associating the route table to a subnet. Ce mélange d’itinéraires que vous créez, d’itinéraires par défaut d’Azure et d’itinéraires propagés à partir de votre réseau local via une passerelle VPN Azure (si le réseau virtuel est connecté au réseau local) en utilisant Border Gateway Protocol (BGP), constitue les itinéraires effectifs de toutes les interfaces réseau d’un sous-réseau.The combination of routes you create, Azure's default routes, and any routes propagated from your on-premises network through an Azure VPN gateway (if your virtual network is connected to your on-premises network) via the border gateway protocol (BGP), are the effective routes for all network interfaces in a subnet. Si les notions de réseau virtuel, d’interface réseau ou de routage ne vous sont pas familières, consultez Vue d’ensemble du réseau virtuel, Interface réseau et Vue d’ensemble du routage.If you're not familiar with virtual network, network interface, or routing concepts, see Virtual network overview, Network interface, and Routing overview.

ScénarioScenario

Vous essayez de vous connecter à une machine virtuelle, mais la connexion échoue.You attempt to connect to a VM, but the connection fails. Afin de déterminer la raison pour laquelle vous ne pouvez pas vous connecter à la machine virtuelle, consultez les itinéraires effectifs d’une interface réseau au moyen du portail Azure, de PowerShell, ou d’Azure CLI.To determine why you can't connect to the VM, you can view the effective routes for a network interface using the Azure portal, PowerShell, or the Azure CLI.

Les étapes qui suivent supposent que vous disposez d’une machine virtuelle existante qui permet d’afficher les itinéraires effectifs.The steps that follow assume you have an existing VM to view the effective routes for. Si vous ne possédez pas une telle machine, commencez par déployer une machine virtuelle Linux ou Windows pour pouvoir accomplir les tâches de cet article.If you don't have an existing VM, first deploy a Linux or Windows VM to complete the tasks in this article with. Les exemples contenus dans cet article sont prévus pour une machine virtuelle nommée myVM, et une interface réseau appelée myVMNic1.The examples in this article are for a VM named myVM with a network interface named myVMNic1. La machine virtuelle et l’interface réseau se trouvent dans un groupe de ressources nommé myResourceGroup, et se situent dans la région USA Est.The VM and network interface are in a resource group named myResourceGroup, and are in the East US region. Modifiez les valeurs dans les étapes, selon le cas, pour la machine virtuelle dont vous analysez le problème.Change the values in the steps, as appropriate, for the VM you are diagnosing the problem for.

Diagnostiquer à l’aide du portail AzureDiagnose using Azure portal

  1. Connectez-vous au portail Azure avec un compte Azure disposant des autorisations nécessaires.Log into the Azure portal with an Azure account that has the necessary permissions.

  2. En haut du portail Azure, dans la zone de recherche, indiquez le nom d’une machine virtuelle en cours d’exécution.At the top of the Azure portal, enter the name of a VM that is in the running state, in the search box. Quand le nom de cette machine virtuelle apparaît dans les résultats de la recherche, sélectionnez-le.When the name of the VM appears in the search results, select it.

  3. Sous Paramètres sur la gauche, sélectionnez Mise en réseau et accédez à la ressource d’interface réseau en sélectionnant son nom.Under Settings on the left, select Networking, and navigate to the network interface resource by selecting its name. Afficher les interfaces réseauView network interfaces

  4. Sur la gauche, sélectionnez Itinéraires effectifs.On the left, select Effective routes. Les itinéraires effectifs d’une interface réseau nommée myVMNic1 sont Montrés dans l’image suivante : Afficher les itinéraires effectifsThe effective routes for a network interface named myVMNic1 are shown, in the following picture: View effective routes

    S’il existe plusieurs interfaces réseau attachées à la machine virtuelle, vous pouvez voir les itinéraires effectifs de chaque interface réseau en sélectionnant les interfaces une à une.If there are multiple network interfaces attached to the VM, you can view the effective routes for any network interface by selecting it. Chaque interface réseau pouvant se trouver dans un sous-réseau différent, ces interfaces peuvent chacune disposer de plusieurs itinéraires effectifs.Since each network interface can be in a different subnet, each network interface can have different effective routes.

    Dans l’exemple de l’image précédente, les itinéraires répertoriés sont les itinéraires par défaut qu’Azure crée pour chaque sous-réseau.In the example shown in the previous picture, the listed routes are default routes that Azure creates for each subnet. Votre liste contient au moins ces itinéraires, mais elle peut s’enrichir d’itinéraires supplémentaires, selon les fonctionnalités que vous avez peut-être activées pour votre réseau virtuel, par exemple son appairage à un autre réseau virtuel ou sa connexion à votre réseau local par le biais d’une passerelle VPN Azure.Your list has at least these routes, but may have additional routes, depending on capabilities you may have enabled for your virtual network such as it being peered with another virtual network or connected to your on-premises network through an Azure VPN gateway. Pour en savoir plus sur chacun de ces itinéraires, et sur les autres itinéraires pouvant s’afficher pour votre interface réseau, consultez Routage de trafic de réseaux virtuels.To learn more about each of the routes, and other routes you may see for your network interface, see Virtual network traffic routing. Si votre liste comporte un grand nombre d’itinéraires, il peut être plus facile de sélectionner Télécharger pour récupérer un fichier .csv contenant la liste des itinéraires.If your list has a large number of routes, you may find it easier to select Download, to download a .csv file with the list of routes.

Même si dans les étapes précédentes, les itinéraires effectifs ont été affichés à l’aide de la machine virtuelle, vous pouvez également les voir avec une :Though effective routes were viewed through the VM in the previous steps, you can also view effective routes through an:

Diagnostiquer à l’aide de PowerShellDiagnose using PowerShell

Notes

Cet article a été mis à jour pour tenir compte de l’utilisation du nouveau module Az d’Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Vous pouvez toujours utiliser le module AzureRM, qui continue à recevoir des correctifs de bogues jusqu’à au moins décembre 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Pour en savoir plus sur le nouveau module Az et la compatibilité avec AzureRM, consultez Présentation du nouveau module Az d’Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Pour des instructions d’installation du module Az, consultez Installer Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Vous pouvez exécuter les commandes qui suivent dans Azure Cloud Shell, ou en exécutant PowerShell à partir de votre ordinateur.You can run the commands that follow in the Azure Cloud Shell, or by running PowerShell from your computer. Azure Cloud Shell est un interpréteur de commandes interactif gratuit.The Azure Cloud Shell is a free interactive shell. Il contient des outils Azure courants préinstallés et configurés pour être utilisés avec votre compte.It has common Azure tools preinstalled and configured to use with your account. Si vous exécutez PowerShell sur votre ordinateur, vous devez utiliser le module Azure PowerShell version 1.0.0 ou ultérieure.If you run PowerShell from your computer, you need the Azure PowerShell module, version 1.0.0 or later. Exécutez Get-Module -ListAvailable Az sur votre ordinateur pour trouver la version installée.Run Get-Module -ListAvailable Az on your computer, to find the installed version. Si vous devez effectuer une mise à niveau, consultez Installer le module Azure PowerShell.If you need to upgrade, see Install Azure PowerShell module. Si vous exécutez PowerShell localement, vous devez aussi exécuter Connect-AzAccount pour vous connecter à Azure avec un compte disposant des autorisations nécessaires.If you are running PowerShell locally, you also need to run Connect-AzAccount to log into Azure with an account that has the necessary permissions.

Obtenez les itinéraires effectifs d’une interface réseau avec Get-AzEffectiveRouteTable.Get the effective routes for a network interface with Get-AzEffectiveRouteTable. L’exemple suivant récupère les itinéraires effectifs d’une interface réseau nommée myVMNic1, qui se trouve dans un groupe de ressources appelé myResourceGroup :The following example gets the effective routes for a network interface named myVMNic1, that is in a resource group named myResourceGroup:

Get-AzEffectiveRouteTable `
  -NetworkInterfaceName myVMNic1 `
  -ResourceGroupName myResourceGroup `
  | Format-Table

Pour comprendre les informations retournées dans le résultat, consultez Vue d’ensemble du routage.To understand the information returned in the output, see Routing overview. Le résultat n’est retourné que si la machine virtuelle est en cours d’exécution.Output is only returned if the VM is in the running state. S’il existe plusieurs interfaces réseau attachées à la machine virtuelle, vous pouvez examiner les itinéraires effectifs de chaque interface réseau.If there are multiple network interfaces attached to the VM, you can review the effective routes for each network interface. Chaque interface réseau pouvant se trouver dans un sous-réseau différent, ces interfaces peuvent chacune disposer de plusieurs itinéraires effectifs.Since each network interface can be in a different subnet, each network interface can have different effective routes. Si des problèmes de communication subsistent, consultez Diagnostic supplémentaire et Considérations.If you're still having a communication problem, see additional diagnosis and considerations.

Si vous ignorez le nom d’une interface réseau, mais que vous connaissez le nom de la machine virtuelle à laquelle l’interface réseau est attachée, les commandes suivantes retournent les ID de toutes les interfaces réseau attachées à une machine virtuelle :If you don't know the name of a network interface, but do know the name of the VM the network interface is attached to, the following commands return the IDs of all network interfaces attached to a VM:

$VM = Get-AzVM -Name myVM `
  -ResourceGroupName myResourceGroup
$VM.NetworkProfile

Le résultat ressemble à ce qui suit :You receive output similar to the following example:

NetworkInterfaces
-----------------
{/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.Network/networkInterfaces/myVMNic1

Dans la précédente sortie, le nom d’interface réseau est myVMNic1.In the previous output, the network interface name is myVMNic1.

Diagnostiquer à l’aide d’Azure CLIDiagnose using Azure CLI

Vous pouvez exécuter les commandes qui suivent dans Azure Cloud Shell, ou en exécutant l’interface CLI à partir de votre ordinateur.You can run the commands that follow in the Azure Cloud Shell, or by running the CLI from your computer. Azure CLI version 2.0.32 ou ultérieure est nécessaire pour cet article.This article requires the Azure CLI version 2.0.32 or later. Exécutez az --version pour rechercher la version installée.Run az --version to find the installed version. Si vous devez installer ou mettre à niveau, voir Installer Azure CLI.If you need to install or upgrade, see Install Azure CLI. Si vous exécutez Azure CLI localement, vous devez aussi exécuter az login et vous connecter à Azure avec un compte disposant des autorisations nécessaires.If you are running the Azure CLI locally, you also need to run az login and log into Azure with an account that has the necessary permissions.

Obtenez les itinéraires effectifs d’une interface réseau avec az network nic show-effective-route-table.Get the effective routes for a network interface with az network nic show-effective-route-table. L’exemple suivant récupère les itinéraires effectifs d’une interface réseau nommée myVMNic1, qui se trouve dans un groupe de ressources appelé myResourceGroup :The following example gets the effective routes for a network interface named myVMNic1 that is in a resource group named myResourceGroup:

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

Pour comprendre les informations retournées dans le résultat, consultez Vue d’ensemble du routage.To understand the information returned in the output, see Routing overview. Le résultat n’est retourné que si la machine virtuelle est en cours d’exécution.Output is only returned if the VM is in the running state. S’il existe plusieurs interfaces réseau attachées à la machine virtuelle, vous pouvez examiner les itinéraires effectifs de chaque interface réseau.If there are multiple network interfaces attached to the VM, you can review the effective routes for each network interface. Chaque interface réseau pouvant se trouver dans un sous-réseau différent, ces interfaces peuvent chacune disposer de plusieurs itinéraires effectifs.Since each network interface can be in a different subnet, each network interface can have different effective routes. Si des problèmes de communication subsistent, consultez Diagnostic supplémentaire et Considérations.If you're still having a communication problem, see additional diagnosis and considerations.

Si vous ignorez le nom d’une interface réseau, mais que vous connaissez le nom de la machine virtuelle à laquelle l’interface réseau est attachée, les commandes suivantes retournent les ID de toutes les interfaces réseau attachées à une machine virtuelle :If you don't know the name of a network interface, but do know the name of the VM the network interface is attached to, the following commands return the IDs of all network interfaces attached to a VM:

az vm show \
  --name myVM \
  --resource-group myResourceGroup

Résoudre un problèmeResolve a problem

En règle générale, la résolution des problèmes de routage englobe les solutions suivantes :Resolving routing problems typically consists of:

  • Ajout d’un itinéraire personnalisé pour remplacer un des itinéraires par défaut d’Azure.Adding a custom route to override one of Azure's default routes. Découvrez comment ajouter un itinéraire personnalisé.Learn how to add a custom route.
  • Modification ou suppression d’un itinéraire personnalisé pouvant provoquer le routage vers un emplacement non souhaité.Change or remove a custom route that may cause routing to an undesired location. Découvrez comment modifier ou supprimer un itinéraire personnalisé.Learn how to change or delete a custom route.
  • Vérification de l’association de la table de routage qui contient les itinéraires personnalisés définis, au sous-réseau dans lequel se trouve l’interface réseau.Ensuring that the route table that contains any custom routes you've defined is associated to the subnet the network interface is in. Découvrez comment associer une table de routage à un sous-réseau.Learn how to associate a route table to a subnet.
  • Vérification du bon fonctionnement des dispositifs, tels qu’une passerelle VPN Azure ou des appliances virtuelles de réseau déployées.Ensuring that devices such as Azure VPN gateway or network virtual appliances you've deployed are operable. Utilisez la fonctionnalité Diagnostics VPN de Network Watcher pour déterminer les problèmes rencontrés avec une passerelle VPN Azure.Use the VPN diagnostics capability of Network Watcher to determine any problems with an Azure VPN gateway.

Si des problèmes de communication subsistent, consultez Considérations et Diagnostic supplémentaire.If you're still having communication problems, see Considerations and Additional diagnosis.

ConsidérationsConsiderations

Lors de la résolution de problèmes de communication, considérez les points suivants :Consider the following points when troubleshooting communication problems:

  • Le routage est basé sur le plus long préfixe correspondant parmi les itinéraires que vous avez définis, le BGP (Border Gateway Protocol) et les itinéraires système.Routing is based on longest prefix match (LPM) among routes that you've defined, border gateway protocol (BGP), and system routes. S’il existe plusieurs itinéraires avec la même correspondance de préfixe le plus long, un itinéraire est sélectionné en fonction de son origine, selon l’ordre répertorié dans Vue d’ensemble du routage.If there is more than one route with the same LPM match, then a route is selected based on its origin in the order listed in Routing overview. Avec les itinéraires effectifs, vous ne pouvez voir que les itinéraires effectifs présentant une correspondance de préfixe le plus long, par rapport à tous les itinéraires disponibles.With effective routes, you can only see effective routes that are an LPM match, based on all the available routes. En comprenant comment sont évalués les itinéraires d’une interface réseau, il est beaucoup plus facile ensuite de résoudre les problèmes d’itinéraires spécifiques qui peuvent avoir une incidence sur la communication depuis votre machine virtuelle.Seeing how the routes are evaluated for a network interface makes it a lot easier to troubleshoot specific routes that may be impacting communication from your VM.
  • Si vous avez défini des itinéraires personnalisés vers une appliance virtuelle de réseau, en utilisant Appliance virtuelle comme type de tronçon suivant, assurez-vous que le transfert IP est activé sur l’appliance virtuelle de réseau recevant le trafic, sinon les paquets sont ignorés.If you've defined custom routes to a network virtual appliance (NVA), with Virtual Appliance as the next hop type, ensure that IP forwarding is enabled on the NVA receiving the traffic, or packets are dropped. En savoir plus sur l’activation du transfert IP pour une interface réseau.Learn more about enabling IP forwarding for a network interface. Le système d’exploitation, ou l’application dans l’appliance virtuelle de réseau, doit être également en mesure de transférer le trafic réseau et être configuré pour cela.Additionally, the operating system, or application within the NVA must also be able to forward network traffic and be configured to do so.
  • Si vous avez créé un itinéraire vers 0.0.0.0/0, l’intégralité du trafic internet sortant est acheminé vers le tronçon suivant que vous avez spécifié, par exemple vers une appliance virtuelle de réseau ou une passerelle VPN.If you've created a route to 0.0.0.0/0, all outbound internet traffic is routed to the next hop you specified, such as to an NVA or VPN gateway. La création d’un itinéraire de ce type est généralement appelé « tunneling forcé ».Creating such a route is often referred to as forced tunneling. Les connexions à distance, utilisant les protocoles RDP ou SSH depuis internet vers votre machine virtuelle, peuvent ne pas fonctionner avec cet itinéraire, selon la façon dont le tronçon suivant gère le trafic.Remote connections using the RDP or SSH protocols from the internet to your VM may not work with this route, depending on how the next hop handles the traffic. Le tunneling forcé peut être activé :Forced-tunneling can be enabled:
    • Lors de l’utilisation du VPN de site à site, en créant un itinéraire avec comme type de tronçon suivant une passerelle VPN.When using site-to-site VPN, by creating a route with a next hop type of VPN Gateway. En savoir plus sur la configuration du tunneling forcé.Learn more about configuring forced tunneling.
    • Si un 0.0.0.0/0 (itinéraire par défaut) est publié sur BGP via une passerelle de réseau virtuel lors de l’utilisation d’un VPN de site à site, ou du circuit ExpressRoute.If a 0.0.0.0/0 (default route) is advertised over BGP through a virtual network gateway when using a site-to-site VPN, or ExpressRoute circuit. En savoir plus sur l’utilisation de BGP avec un VPN de site à site ou ExpressRoute.Learn more about using BGP with a site-to-site VPN or ExpressRoute.
  • Pour que le trafic d’homologation de réseau virtuel fonctionne correctement, un itinéraire système, avec comme type de tronçon suivant VNet Peering, doit exister pour la plage de préfixes du réseau virtuel homologué.For virtual network peering traffic to work correctly, a system route with a next hop type of VNet Peering must exist for the peered virtual network's prefix range. S’il n’existe aucune route de ce type, et si le lien de peering de réseau virtuel est Connecté :If such a route doesn't exist, and the virtual network peering link is Connected:
  • Même si Azure affecte des itinéraires par défaut à chaque interface réseau Azure, si vous disposez de plusieurs interfaces réseau attachées à la machine virtuelle, seule l’interface réseau principale se voit attribuer un itinéraire par défaut (0.0.0.0/0), ou une passerelle, au sein du système d’exploitation de la machine virtuelle.Though Azure assigns default routes to each Azure network interface, if you have multiple network interfaces attached to the VM, only the primary network interface is assigned a default route (0.0.0.0/0), or gateway, within the VM's operating system. Découvrez comment créer un itinéraire par défaut pour les interfaces réseau secondaires attachées à une machine virtuelle Windows ou Linux.Learn how to create a default route for secondary network interfaces attached to a Windows or Linux VM. Apprenez-en davantage sur les interfaces réseau principale et secondaire.Learn more about primary and secondary network interfaces.

Diagnostic supplémentaireAdditional diagnosis

  • Pour exécuter un test rapide en vue de déterminer le type de tronçon suivant pour le trafic destiné à un emplacement, utilisez la fonctionnalité Tronçon suivant d’Azure Network Watcher.To run a quick test to determine the next hop type for traffic destined to a location, use the Next hop capability of Azure Network Watcher. Cette fonctionnalité vous renseigne sur le type de tronçon suivant du trafic destiné à un emplacement spécifié.Next hop tells you what the next hop type is for traffic destined to a specified location.
  • Si aucun itinéraire n’est à l’origine de l’échec de la communication réseau d’une machine virtuelle, le problème peut provenir d’un logiciel de pare-feu s’exécutant dans le système d’exploitation de la machine virtuelle.If there are no routes causing a VM's network communication to fail, the problem may be due to firewall software running within the VM's operating system
  • Si vous établissez un trafic de tunneling forcé vers un appareil local par l’intermédiaire d’une passerelle VPN, ou d’une appliance virtuelle de réseau, il est possible que vous ne puissiez pas vous connecter à une machine virtuelle depuis internet, selon la façon dont vous avez configuré le routage pour ces dispositifs.If you are force tunneling traffic to an on-premises device through a VPN gateway, or NVA, you may not be able to connect to a VM from the internet, depending on how you've configured routing for the devices. Vérifiez que le routage configuré pour le dispositif achemine le trafic jusqu’à une adresse IP publique ou privée pour la machine virtuelle.Confirm that the routing you have configured for the device routes traffic to either a public or private IP address for the VM.
  • Utilisez la fonctionnalité Résolution des problèmes de connexion de Network Watcher pour déterminer les causes de routage, de filtrage ou les causes internes au système d’exploitation pouvant être à l’origine des problèmes de communication sortante.Use the connection troubleshoot capability of Network Watcher to determine routing, filtering, and in-OS causes of outbound communication problems.

Étapes suivantesNext steps