Diagnostic réseau sur Windows Server avec les commandes DOS
Windows Server offre une panoplie d'outils en ligne de commande pour diagnostiquer les problèmes de connectivité réseau. Dans ce chapitre, vous allez apprendre à utiliser des commandes indispensables et que tout administrateur système se doit de maitriser : « ipconfig », « ping », « tracert », « netsh » et « pathping ». Ces commandes sont disponibles à la fois sur Windows et Windows Server.
Sommaire
I. La commande ipconfig
La commande « ipconfig », que nous avons déjà évoquée dans un précédent chapitre, a pour objectif principal d’afficher la configuration réseau de chaque interface de la machine.
Ce sera l’occasion de vérifier si les paramètres sont corrects, et basiquement, de voir si la machine dispose bien d’une adresse IP sur la carte réseau connectée.
L’utilisation la plus courante est la suivante :
ipconfig /all
Cette commande retourne l’adresse IP, le masque de sous-réseau, la passerelle par défaut, le(s) serveur(s) DNS, etc… Défini sur chaque carte réseau.
Ce n’est pas la seule « fonction » de cette commande, puisque nous pouvons également évoquer :
- ipconfig /release : libérer l'adresse IP actuelle attribuée via DHCP.
- ipconfig /renew : renouveler l'adresse IP via DHCP.
- ipconfig /flushdns : vider le cache DNS, utile pour les problèmes de résolution de noms de domaine (liée à un cache obsolète).
- ipconfig /displaydns : afficher le contenu du cache DNS de la machine.
Les deux premières commandes sont utiles lorsque l’on cherche à vérifier le bon fonctionnement d’un serveur DHCP ou pour résoudre un problème de conflit d’adresses IP. Nous mettrons en pratique ces options par la suite.
II. La commande ping
La commande « ping » teste la connectivité entre une machine et une autre sur le réseau en envoyant des paquets « ICMP » (Internet Control Message Protocol). De plus, elle mesure également le temps de réponse, c’est-à-dire le temps nécessaire pour que le paquet émis par la « machine A » puisse atteindre la « machine B ».
Le « ping » sera utile dans différents scénarios, dont :
- Tester la communication entre deux équipements connectés à un réseau
- Diagnostiquer les problèmes de latence (via la lecture du temps de réponse)
- Mesurer la fiabilité d'un réseau à un instant t Identifier la cause d’un ralentissement sur un serveur ou une application (s’il y a des pertes de paquets)
A. Utilisation de la commande ping
Voici un exemple d’utilisation de la commande « ping » à destination de l’adresse IP « 1.1.1.1 » (un serveur DNS public). Ceci est un moyen de vérifier si la machine peut accéder à Internet. Il suffit de préciser l’adresse IP ou le nom de l’hôte à contacter.
ping 1.1.1.1
Voici le résultat obtenu :

Nous avons obtenu une réponse, ce qui signifie que la machine locale parvient à contacter l’adresse IP « 1.1.1.1 ». Il y a une perte de 0%, ce qui signifie qu’il n’y a pas eu d’interruption ou de perte de paquets. Enfin, la valeur « temps » sur chaque ligne correspond à la latence sur le réseau, et il est toujours exprimé en millisecondes.
Voici des explications supplémentaires pour interpréter le résultat de cette commande :
- octets=32
Le paquet correspondant au « ping » est d'une taille de 32 octets. La taille du paquet peut être modifiée, par exemple sous Linux c'est 64 octets. Sous Windows, l'option « -l » permet de modifier la taille du paquet. Par exemple pour 1024 octets :
ping 1.1.1.1 -l 1024
- TTL=54
« TTL » signifie « Time To Live », cette valeur correspond à la durée de vie du paquet avant qu'il ne soit détruit. En fait, lorsqu'un « ping » est envoyé, il a une valeur initiale pour le TTL, qui est généralement fixée à 64 (ou 128).
A chaque fois que le paquet va passer au travers d'un routeur, le TTL sera réduit de 1. Lorsque l'on voit un « TTL=54 », on peut en déduire que le paquet a traversé 10 routeurs avant d'atteindre sa cible : ce n'est pas étonnant puisque « 1.1.1.1 » correspond à l'adresse IP d’un serveur DNS public situé sur Internet.
Remarque : quand nous effectuons un ping à destination d’un hôte qui est sur le même segment réseau (exemple : deux serveurs connectés sur le VLAN), et bien, le TTL reste à « 64 » (ou à sa valeur initiale), car on ne traverse pas de routeur.
B. Effectuer un ping continu
Par défaut, Windows va réaliser 4 ping et s'arrêter. Si vous voulez effectuer un ping continue qui s'arrête seulement lorsque l'on décide de l'arrêter (utile pour tester une connexion pendant plusieurs minutes), il faut ajouter une option :
ping 1.1.1.1 -t
C. Quand l’hôte ne répond pas au ping…
Dans le cas où l'hôte distant ne répond pas au « ping », cela peut s'expliquer par de nombreuses raisons, parmi lesquelles :
- L'hôte distant est injoignable à cause d'un problème de routage (acheminement du paquet sur le réseau)
- Un pare-feu entre les deux machines bloque le ping
- Le pare-feu local de l'hôte distant est configuré pour ne pas répondre au ping
- Le pare-feu réseau situé entre les deux hôtes est configuré pour bloquer le ping
- Le ping est effectué sur un nom de domaine est le DNS ne parvient pas à résoudre ce nom
- Etc.
Pour approfondir ce sujet, consultez cet article :
III. La commande tracert
La commande « tracert » (trace route) détermine le chemin emprunté par les paquets pour atteindre une destination, en listant tous les routeurs intermédiaires. Autrement dit, ceci permet de prendre connaissance de l’itinéraire emprunté pour atteindre une destination.
Le « tracert » peut être utilisé à la suite d’un « ping » pour tenter d’en savoir plus sur un problème de connexion réseau. De plus, nous pouvons l’utiliser pour vérifier des règles de routage et s’assurer que trafic réseau est bien acheminé vers le « bon chemin ».
L’exemple ci-dessous sert à effectuer un « tracert » à destination de l’hôte « www.microsoft.com » :
tracert www.microsoft.com
Voici un exemple de résultat :

Chaque ligne représente un « saut » vers un routeur intermédiaire, avec le temps de réponse correspondant. Cela permet d'identifier où les ralentissements ou les interruptions se produisent sur le chemin réseau.
Dans la commande « tracert », les astérisques (*) apparaissent lorsqu'aucune réponse n'est reçue pour l'un des paquets envoyés à un saut. Ceci dépend de la configuration du routeur et n’empêchera pas « tracert » de poursuivre l’opération.
Par défaut, « tracert » va tenter de traduire les adresses IP en nom, ce qui nécessite du temps supplémentaire. Pour désactiver cette fonction, utilisez cette syntaxe :
tracert -d www.microsoft.com
IV. La commande pathping
La commande « pathping » présente l’avantage de combiner les fonctionnalités des outils « ping » et « tracert » pour fournir des informations détaillées sur la latence et la perte de paquets sur chaque saut du chemin réseau.
Prenons un nouvel exemple à destination de l’adresse IP « 192.168.137.1 » située sur un autre sous-réseau vis-à-vis de ma machine.
pathping www.microsoft.com
Dans un premier temps, « pathping » va déterminer l’itinéraire pour atteindre l’hôte distant et l’afficher dans la console, sur le même principe que « tracert ».
Ensuite, dans un second temps, « pathping » va envoyer des « ping » (avec « ICMP ») sur chaque routeur intermédiaire ainsi que sur l’hôte de destination. Il va envoyer ces requêtes « ping » pendant un certain temps puis calculer des statistiques précises dans la console.

Vous devez savoir que :
- 0% signifie qu’il n’y a eu aucune perte de paquets vers cet hôte
- 100% signifie qu’il n’y a pas eu de réponse au ping (ce dernier peut être désactivé)
- Tous les autres pourcentages sont synonymes de pertes de paquets
- La valeur « 0/100 » indique qu’il y a eu 0 paquet perdu sur 100 paquets envoyés.
De plus, l’outil « pathping » calcule le « RTT » (Round Trip Time) pour contacter chaque routeur intermédiaire ainsi que l’hôte de destination.
Le RTT représente le temps nécessaire pour qu'un paquet de données soit envoyé depuis un point A, atteigne un point B (la destination), et que la réponse revienne de B à A (l'acquittement). Ceci correspond donc à l’aller-retour, contrairement à la latence.
Là encore, comme avec « tracert », le temps d’exécution peut être optimisé en désactivant la résolution de nom. Voici l’option à ajouter :
pathping -n 192.168.137.1
Cette option s’avère très utile lorsqu’il y a un grand nombre de sauts entre la source et la destination.
V. La commande netsh
L’outil « netsh » contient de nombreuses options qui font de lui un outil très complet et polyvalent pour configurer le réseau sur Windows, mais aussi obtenir des informations sur l’état actuel : configuration IP, configuration du pare-feu, etc.
Remarque : les commandes basées sur « netsh » requièrent généralement les privilèges administrateur, car elles modifient les paramètres du système.
A. Afficher la configuration réseau
Pour afficher l’état des interfaces réseau et obtenir la liste des adresses IP :
netsh interface ip show config
Contrairement à la commande « ipconfig », celle-ci retourne aussi des informations sur l’interface de boucle locale (« loopback »).
De plus, vous pouvez consulter la table de routage (même s’il y a aussi la commande « route print » pour cela) :
netsh interface ip show route
Le jeu de commande « netsh interface ip show » permet d’accéder à de nombreuses options, comme le montre l’image ci-dessous :

B. Configurer une adresse IP statique
Dans un précédent chapitre, nous avons vu comment configurer une adresse IP, sans pour autant évoquer la méthode basée sur « netsh ». Voici un exemple pour définir l’adresse IP « 192.168.10.201/24 » et une passerelle par défaut sur l’interface « Ethernet ».
netsh interface ip set address name="Ethernet" static 192.168.10.201 255.255.255.0 192.168.10.1
De plus, le serveur DNS « 192.168.10.1 » peut être configuré de cette façon :
netsh interface ip set dns name="Ethernet" static 192.168.10.1
Ensuite, avec la commande évoquée dans le point précédent, vous pouvez vérifier la prise en charge de la configuration.
C. Réinitialiser la pile TCP/IP
La résolution de certains problèmes de connectivité liés à la machine locale peut passer par la réinitialisation de la pile TCP/IP de Windows, afin de repartir sur une base saine.
Cette opération peut être effectuée à l’aide de la commande « netsh », de cette façon :
netsh int ip reset
Cette commande supprime les adresses IP configurées sur les cartes réseau. Bien entendu, elle va plus loin puisqu’elle réinitialise tous les paramètres situés dans les deux clés de Registre Windows suivantes :
- SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
- SYSTEM\CurrentControlSet\Services\DHCP\Parameters
Vous pouvez l’utiliser sur un serveur ou un poste de travail Windows.
D. Vérifier l’état du pare-feu Windows
L’outil « netsh » permet de configurer le pare-feu Windows Defender en ligne de commande. Nous n’irons pas jusque-là, mais vous pouvez consulter l’état du pare-feu pour chaque profil avec cette commande :
netsh advfirewall show allprofiles
Ceci va lister chaque profil et sa configuration actuelle.

Suite à la lecture de ce chapitre, vous avez une bonne compréhension de plusieurs commandes très utile pour la configuration et le diagnostic réseau !

