Cet article fait partie de notre guide: Guide des bonnes pratiques sur les serveurs Windows

Réseau : comment bien diagnostiquer une panne DNS

Les administrateurs réseau peuvent dépanner la résolution de noms à l'aide de diverses méthodes, notamment ping, nslookup et les cmdlets PowerShell. Cet article liste les bonnes pratiques.

La fonction de résolution des noms – la fonction d’un serveur DNS - est l'un des services les plus critiques du réseau. Sans elle, les imprimantes, serveurs, sites web et autres services essentiels du réseau pourraient devenir inaccessibles. Cet article présente plusieurs méthodes et commandes de dépannage de la résolution des noms du point de vue du client.

En réseau, le serveur DNS sert à mettre en relation deux identités importantes : les noms d'hôte et les adresses IP. Les humains sont généralement plus à l'aise avec les noms d'hôte, qui sont plus faciles à mémoriser. Cependant, le protocole TCP/IP nécessite des adresses IP source et destination pour communiquer. La résolution de noms fonctionne entre ces deux identités.

La résolution de noms est un service réseau essentiel. Il est donc utile que les administrateurs soient sûrs d'eux et rapides lors du dépannage. Pour y parvenir, il faut diagnostiquer avec exactitude la panne d’un serveur DNS, ce qui se fait grâce à plusieurs tests qui peuvent être menés depuis des machines clients. Ces tests comprennent les étapes suivantes :

  • Effectuer un ping de la destination par nom, puis par adresse IP, afin de déterminer si le problème est lié à la résolution de noms ou à la connectivité de base.
  • Afficher et confirmer la configuration DNS du client, qu'elle soit statique ou dynamique.
  • Tester la connectivité au serveur DNS, en accordant une attention particulière aux firewalls et aux routeurs situés tout au long du réseau.
  • Interroger manuellement le serveur DNS à l'aide d'outils tels que dig, host, nslookup et Resolve-DnsName.

Précisez un problème de connectivité grâce à ping

Supposons qu'un utilisateur reçoive un message d'erreur indiquant qu'un serveur de fichiers spécifique est introuvable. Un administrateur peut commencer à diagnostiquer le problème en ouvrant un terminal sur sa machine et en y utilisant la commande ping. Celle-ci permet de déterminer si la résolution des noms échoue, ou s'il existe un autre problème de connectivité. Commencez par envoyer une commande ping à la ressource par son nom d'hôte, puis par son adresse IP.

Si la commande ping par nom réussit, le système local dispose d'un chemin d'accès au système distant et le problème n'est probablement pas lié à la résolution de noms.

Si le ping par nom échoue, essayez un ping par adresse IP. Si cet essai échoue aussi, cela signifie que les systèmes local et distant n'ont pas de connectivité réseau entre eux. Il peut s'agir d'un problème de câble, de commutateur, de routeur ou de firewall.

Mais si le ping par adresse IP réussit alors que le ping par nom échoue, il s'agit probablement d'un problème de résolution de nom. Le ping fonctionne, mais pas lorsque la destination est identifiée par un nom.

Schéma d'une procédure de diagnostic réseau avec la commande ping.
La procédure de diagnostic avec la commande ping.

Si ces tests orientent les administrateurs vers un problème de résolution des noms, l'étape suivante consiste à vérifier la connectivité avec le serveur DNS.

Vérifiez les paramètres DNS

Pour vérifier la connectivité aux serveurs DNS, commencez par utiliser les commandes de configuration IP standard de chaque système d'exploitation.

Sur un poste (ou un serveur) Linux, utilisez la commande resolvectl status qui affiche les serveurs DNS configurés.

Screenshot des informations DNS avec resolvectl
Affichez les informations DNS avec la commande resolvectl.
Screenshot des informations DNS avec Network Manager
Affichez les informations DNS avec l'outil graphique Network Manager.

Pour macOS, tapez scutil --dns pour afficher les serveurs DNS configurés.

Screenshot des informations DNS avec scutil
Affichez les informations DNS avec la commande scutil.
Screenshot des informations DNS avec l'outil graphique Network tool
Affichez les informations DNS avec l'outil graphique Network.

Pour Windows, tapez ipconfig /all pour afficher les serveurs DNS configurés.

Screenshot des informations DNSavec ipconfig
Affichez les informations DNS avec la commande ipconfig.
Screenshot des informations DNS avec un outil graphique Windows
Affichez les informations DNS avec l'outil graphique Windows Network.

Une autre solution pour Windows est la cmdlet PowerShell Get-DnsClientServerAddress.

Screenshot des informations DNS avec Get-DnsClientServerAddress
Affichez les informations DNS avec la cmdlet Get-DnsClientServerAddress.

Quelles que soient les commandes utilisées par les administrateurs pour afficher la configuration DNS, l'objectif est de s'assurer qu'il n'y a pas d'erreurs typographiques. Les clients doivent pouvoir trouver les serveurs DNS et s'y connecter. La meilleure pratique consiste à répertorier au moins deux serveurs de résolution de noms que le client peut interroger.

Notez que le client reçoit probablement ces paramètres par le biais du protocole de configuration dynamique de l'hôte (DHCP). Confirmez que les paramètres de résolution de noms du serveur DHCP sont corrects.

 

Screenshot des paramètres DNS sur un serveur Windows
Les paramètres DNS d'une zone DHCP sur un serveur Windows.

Testez la connexion au DNS

Une fois que les administrateurs ont identifié les serveurs DNS utilisés par le client, ils peuvent tester la connectivité à l'aide de la commande ping. Effectuez ce test avec l'adresse IP du serveur DNS, car c'est celle qu'utilise l'ordinateur client.

Par exemple, si le serveur DNS se trouve à l'adresse 192.0.2.127, entrez ping 192.0.2.127. Si ce ping échoue, vérifiez que les points suivants sont respectés :

  • le serveur DNS est en place et le service est en cours d'exécution ;
  • les paramètres du pare-feu sur le serveur DNS autorisent les requêtes entrantes sur le port 53/udp ;
  • tous les routeurs entre le client et le serveur DNS sont fonctionnels ; et
  • tout filtrage de paquets sur les routeurs entre le client et le serveur DNS autorise le trafic sur le port 53/udp.

Interrogez manuellement le DNS

Le client de résolution de noms du système interroge automatiquement le DNS sans intervention de l'utilisateur pour des outils tels que les navigateurs web, le ping et les scripts. Cependant, il peut être utile pour le dépannage de lancer manuellement des requêtes de résolution de noms. Par exemple, les administrateurs peuvent essayer de tester la connectivité à un serveur DNS particulier, vérifier qu'un serveur spécifique renvoie un résultat attendu, ou identifier le domaine ou d'autres informations sur le service DNS. Il existe de nombreux outils permettant d'interroger manuellement le DNS.

1/ avec nslookup

Derrière la commande nslookup se cache un puissant utilitaire de résolution de noms. Il est disponible pour Windows, Linux et macOS, ce qui est utile pour les administrateurs qui travaillent sur les trois plateformes.

Les administrateurs peuvent taper nslookup workstation1 pour résoudre l'adresse IP de workstation1. Le serveur DNS configuré du système renvoie les résultats. Les administrateurs peuvent envoyer une requête de recherche inversée en utilisant l'adresse IP au lieu du nom d'hôte, comme ceci : nslookup 192.0.2.2.

Nslookup dispose également d'un puissant mode interactif qui permet aux administrateurs de lancer des transferts de zone et d'afficher divers types d'enregistrements de ressources. Bien que ce mode offre trop de fonctionnalités pour être abordé dans cet article, il est intéressant pour les administrateurs d'en apprendre les détails.

2/ avec dig

L'utilitaire dig est une autre option. Il affiche à peu près les mêmes informations que nslookup, mais dans un format plus organisé. Dig n’est pas nécessairement installé par défaut, mais les administrateurs peuvent l'ajouter. Dig permet d'effectuer des recherches directes et inverses et peut afficher des enregistrements de ressources spécifiques de la zone. Comme pour nslookup, la syntaxe est dig workstation1.

3/ avec host

La commande host affiche un résultat simple. Cette simplicité est utile pour les scripts qui extraient puis utilisent les informations recueillies par la commande host. Comme pour dig et nslookup, les administrateurs peuvent saisir la commande et le nom d'hôte ou l'adresse IP qu'ils souhaitent résoudre, par exemple host workstation1.

4/ avec les cmdlets PowerShell

Windows PowerShell s'appuie sur la cmdlet Resolve-DnsName pour lancer des requêtes manuelles de résolution de noms. Sa flexibilité permet aux administrateurs d'afficher exactement les informations requises. La syntaxe de la cmdlet est similaire à celle des autres commandes, mais pas tout à fait la même : Resolve-DnsName -Name workstation1.

Pour cibler un serveur DNS spécifique (disons 192.0.2.24) afin de fournir une résolution, tapez Resolve-DnsName -Name workstation1 -Server 192.0.2.24.

Comme pour dig et host, les administrateurs peuvent ajouter Resolve-DnsName à des scripts PowerShell pour manipuler les informations en fonction des besoins.

Test-DnsServer est une autre cmdlet utile pour confirmer la fonctionnalité du DNS. La sortie indique si la destination est un serveur DNS. La syntaxe pour vérifier si 192.0.2.24 est un serveur DNS est Test-DnsServer -IPAddress 192.0.2.24.

Pour approfondir sur Administration de réseaux