Résolution des problèmes des serveurs DNS

Essayez notre agent virtuel : il peut vous aider à identifier et à résoudre rapidement les problèmes courants liés au DNS.

Cet article explique comment résoudre les problèmes sur les serveurs DNS.

Vérifier la configuration IP

  1. Exécutez ipconfig /all dans une invite de commandes et vérifiez l’adresse IP, le masque de sous-réseau et la passerelle par défaut.

  2. Vérifiez si le serveur DNS fait autorité pour le nom recherché. Si c’est le cas, consultez Vérification des problèmes liés aux données faisant autorité.

  3. Exécutez la commande suivante :

    nslookup <name> <IP address of the DNS server>
    

    Par exemple :

    nslookup app1 10.0.0.1
    

    Si vous obtenez une réponse d’échec ou de délai d’attente, consultez Vérification des problèmes de récursivité.

  4. Videz le cache du programme de résolution. Pour ce faire, exécutez la commande suivante dans une fenêtre d’invite de commandes d’administration :

    dnscmd /clearcache
    

    Ou, dans une fenêtre PowerShell d’administration, exécutez l’applet de commande suivante :

    Clear-DnsServerCache
    
  5. Répétez l’étape 3.

Vérifier les problèmes de serveur DNS

Journal des événements

Vérifiez les journaux suivants pour voir s’il existe des erreurs enregistrées :

  • Application

  • Système

  • Serveur DNS

Tester à l’aide d’une requête nslookup

Exécutez la commande suivante et vérifiez si le serveur DNS est accessible à partir d’ordinateurs clients.

nslookup <client name> <server IP address>
  • Si le programme de résolution retourne l’adresse IP du client, le serveur ne présente aucun problème.

  • Si le programme de résolution retourne une réponse « Échec du serveur » ou « Requête refusée », la zone est probablement mise en pause ou le serveur est éventuellement surchargé. Vous pouvez savoir s’il est mis en pause en vérifiant l’onglet Général des propriétés de zone dans la console DNS.

Si le programme de résolution renvoie la réponse « Requête au serveur expirée » ou « Aucune réponse du serveur », le service DNS n’est probablement pas en cours d’exécution. Essayez de redémarrer le service de serveur DNS en entrant ce qui suit dans l’invite de commandes sur le serveur :

net start DNS

Si le problème se produit lorsque le service est en cours d’exécution, il est possible que le serveur n’écoute pas l’adresse IP que vous avez utilisée dans votre requête nslookup. Sous l’onglet Interfaces de la page de propriétés du serveur dans la console DNS, les administrateurs peuvent restreindre un serveur DNS afin qu’il écoute uniquement les adresses sélectionnées. Si le serveur DNS a été configuré pour limiter le service à une liste spécifique d’adresses IP configurées, il est possible que l’adresse IP utilisée pour contacter le serveur DNS ne figure pas dans la liste. Vous pouvez essayer une autre adresse IP dans la liste ou ajouter l’adresse IP à la liste.

Dans de rares cas, le serveur DNS peut avoir une configuration de pare-feu ou de sécurité avancée. Si le serveur se trouve sur un autre réseau accessible uniquement par le biais d’un hôte intermédiaire (tel qu’un routeur de filtrage des paquets ou un serveur proxy), il est possible que le serveur DNS utilise un port non standard pour écouter et recevoir les requêtes des clients. Par défaut, nslookup envoie des requêtes aux serveurs DNS sur le port UDP 53. Par conséquent, si le serveur DNS utilise un autre port, les requêtes nslookup échouent. Si vous pensez que cela peut être à l’origine du problème, vérifiez si un filtre intermédiaire est utilisé intentionnellement pour bloquer le trafic sur des ports DNS connus. Si ce n’est pas le cas, essayez de modifier les filtres de paquets ou les règles de port sur le pare-feu pour autoriser le trafic sur le port UDP/TCP 53.

Vérification des problèmes liés aux données faisant autorité

Vérifiez si le serveur qui retourne la réponse incorrecte est un serveur principal pour la zone (le serveur principal standard pour la zone ou un serveur qui utilise l’intégration Active Directory pour charger la zone) ou un serveur qui héberge une copie secondaire de la zone.

Si le serveur est un serveur principal

Le problème peut être dû à une erreur de l’utilisateur lorsque celui-ci entre des données dans la zone. Ou bien, cela peut être dû à un problème qui affecte la mise à jour dynamique ou la réplication Active Directory.

Si le serveur héberge une copie secondaire de la zone

  1. Examinez la zone sur le serveur principal (le serveur à partir duquel ce serveur extrait les transferts de zone).

    Notes

    Vous pouvez déterminer quel serveur est le serveur principal en examinant les propriétés de la zone secondaire dans la console DNS.

    Si le nom est incorrect sur le serveur principal, passez à l’étape 4.

  2. Si le nom est correct sur le serveur principal, vérifiez si le numéro de série sur le serveur principal est inférieur ou égal au numéro de série sur le serveur secondaire. Si c’est le cas, modifiez le serveur principal ou le serveur secondaire afin que le numéro de série sur le serveur principal soit supérieur au numéro de série sur le serveur secondaire.

  3. Sur le serveur secondaire, forcez un transfert de zone à partir de la console DNS ou en exécutant la commande suivante :

    dnscmd /zonerefresh <zone name>
    

    Par exemple, si la zone est corp.contoso.com, entrez : dnscmd /zonerefresh corp.contoso.com.

  4. Examinez à nouveau le serveur secondaire pour voir si la zone a été transférée correctement. Si ce n’est pas le cas, vous avez probablement un problème de transfert de zone. Pour plus d’informations, consultez Problèmes de transfert de zone.

  5. Si la zone a été transférée correctement, vérifiez si les données sont maintenant correctes. Si ce n’est pas le cas, les données sont incorrectes dans la zone principale. Le problème peut être dû à une erreur de l’utilisateur lorsque celui-ci entre des données dans la zone. Ou bien, cela peut être dû à un problème qui affecte la mise à jour dynamique ou la réplication Active Directory.

Vérification des problèmes de récursivité

Avec la récursivité, tous les serveurs DNS utilisés dans le chemin d’une requête récursive doivent pouvoir répondre et transférer des données correctes. Si ce n’est pas le cas, une requête récursive peut échouer pour l’une des raisons suivantes :

  • La requête expire avant de pouvoir être terminée.

  • Un serveur utilisé pendant la requête ne répond pas.

  • Un serveur utilisé pendant la requête fournit des données incorrectes.

Démarrez la résolution des problèmes sur le serveur utilisé dans votre requête d’origine. Vérifiez si ce serveur transfère les requêtes à un autre serveur en examinant l’onglet Redirecteurs dans les propriétés du serveur dans la console DNS. Si la case Activer les redirecteurs est activée et qu’un ou plusieurs serveurs sont répertoriés, ce serveur transfère les requêtes.

Si ce serveur transfère des requêtes à un autre serveur, recherchez les problèmes qui affectent le serveur vers lequel ce serveur transfère les requêtes. Pour vérifier la présence de problèmes, consultez Vérifier les problèmes de serveur DNS. Lorsque cette section vous indique d’effectuer une tâche sur le client, effectuez-la sur le serveur à la place.

Si le serveur est sain et peut transférer des requêtes, répétez cette étape, puis examinez le serveur vers lequel ce serveur transfère les requêtes.

Si ce serveur ne transfère pas les requêtes à un autre serveur, vérifiez si ce serveur peut interroger un serveur racine. Pour ce faire, exécutez la commande suivante :

nslookup
server <IP address of server being examined>
set q=NS
  • Si le programme de résolution retourne l’adresse IP d’un serveur racine, la délégation entre le serveur racine et le nom ou l’adresse IP que vous essayez de résoudre est probablement rompue. Suivez la procédure Tester une délégation rompue pour déterminer où vous avez une délégation rompue.

  • Si le programme de résolution renvoie une réponse « Requête au serveur expirée », vérifiez si les indications de racine pointent vers des serveurs racines fonctionnels. Pour ce faire, suivez la procédure Pour afficher les indications de racine actuelles. Si les indications de racine pointent vers des serveurs racines fonctionnels, il est possible que vous ayez un problème de réseau, ou que le serveur utilise une configuration de pare-feu avancée qui empêche le programme de résolution d’interroger le serveur, comme décrit dans la section Vérifier les problèmes de serveur DNS. Il est également possible que le délai d’attente récursif par défaut soit trop court.

Tester une délégation rompue

Commencez les tests de la procédure suivante en interrogeant un serveur racine valide. Le test vous guide tout au long d’un processus d’interrogation de tous les serveurs DNS de la racine jusqu’au serveur que vous testez à la recherche d’une délégation rompue.

  1. À l’invite de commandes sur le serveur que vous testez, entrez les éléments suivants :

    nslookup
    server <server IP address>
    set norecursion
    set querytype= <resource record type>
    <FQDN>
    

    Notes

    Le type d’enregistrement de ressource est le type d’enregistrement de ressource qui faisait l’objet de votre requête d’origine. Le FQDN est le nom de domaine complet qui faisait l’objet de votre requête (terminé par un point).

  2. Si la réponse inclut une liste d’enregistrements de ressources « NS » et « A » pour les serveurs délégués, répétez l’étape 1 pour chaque serveur et utilisez l’adresse IP des enregistrements de ressources « A » comme adresse IP du serveur.

    • Si la réponse ne contient pas d’enregistrement de ressource « NS », une délégation est rompue.

    • Si la réponse contient des enregistrements de ressources « NS », mais aucun enregistrement de ressource « A », saisissez set recursion et interrogez individuellement les enregistrements de ressources « A » des serveurs répertoriés dans les enregistrements « NS ». Si vous ne trouvez pas au moins une adresse IP valide d’un enregistrement de ressource « A » pour chaque enregistrement de ressource « NS » dans une zone, une délégation est rompue.

  3. Si vous déterminez qu’une délégation est rompue, corrigez-la en ajoutant ou en mettant à jour un enregistrement de ressource « A » dans la zone parente à l’aide d’une adresse IP valide pour un serveur DNS correct pour la zone déléguée.

Pour afficher les indications de racine actuelles

  1. Démarrez la console DNS.

  2. Ajoutez ou connectez-vous au serveur DNS pour lequel une requête récursive a échoué.

  3. Cliquez avec le bouton droit sur le serveur, puis sélectionnez Propriétés.

  4. Cliquez sur Indications de racine.

Vérifiez la connectivité de base aux serveurs racines.

  • Si les indications de racine semblent être configurées correctement, vérifiez que le serveur DNS utilisé dans une résolution de noms ayant échoué peut effectuer un test ping sur les serveurs racines par adresse IP.

  • Si les serveurs racines ne répondent pas au ping par adresse IP, les adresses IP des serveurs racines ont peut-être changé. Toutefois, il est rare que des serveurs racines soient reconfigurés.

Problèmes de transfert de zone

Exécutez les vérifications suivantes :

  • Vérifiez le serveur DNS principal et secondaire dans l’observateur d’événements.

  • Vérifiez le serveur principal pour voir s’il refuse d’envoyer le transfert pour des raisons de sécurité.

  • Vérifiez l’onglet Transferts de zone des propriétés de zone dans la console DNS. Si le serveur restreint les transferts de zone à une liste de serveurs, tels que ceux répertoriés sous l’onglet Serveurs de noms des propriétés de zone, assurez-vous que le serveur secondaire figure dans cette liste. Assurez-vous que le serveur est configuré pour envoyer des transferts de zone.

  • Vérifiez la présence de problèmes dans le serveur principal en suivant les étapes de la section Vérifier les problèmes de serveur DNS. Lorsque vous êtes invité à effectuer une tâche sur le client, effectuez la tâche sur le serveur secondaire à la place.

  • Vérifiez si le serveur secondaire exécute une autre implémentation de serveur DNS, telle que BIND. Si c’est le cas, le problème peut avoir l’une des causes suivantes :

    • Le serveur principal Windows peut être configuré pour envoyer des transferts de zone rapides, mais le serveur secondaire tiers peut ne pas prendre en charge ce type de transfert. Si c’est le cas, désactivez les transferts de zone rapides sur le serveur principal à partir de la console DNS en cochant la case Activer la liaison des secondaires sous l’onglet Avancé des propriétés de votre serveur.

    • Si une zone de recherche directe sur le serveur Windows contient un type d’enregistrement (par exemple, un enregistrement SRV) que le serveur secondaire ne prend pas en charge, le serveur secondaire peut avoir des problèmes lors de l’extraction de la zone.

Vérifiez si le serveur principal exécute une autre implémentation de serveur DNS, telle que BIND. Si c’est le cas, il est possible que la zone sur le serveur principal inclue des enregistrements de ressources incompatibles que Windows ne reconnaît pas.

Si le serveur maître ou le serveur secondaire exécute une autre implémentation de serveur DNS, vérifiez que les deux serveurs prennent en charge les mêmes fonctionnalités. Vous pouvez vérifier le serveur Windows dans la console DNS sous l’onglet Avancé de la page de propriétés du serveur. En plus de la zone Activer la liaison des secondaires, cette page inclut la liste déroulante Vérification de nom. Cela vous permet de sélectionner l’application de la conformité RFC stricte pour les caractères dans les noms DNS.