Retour au blog Monitoring - 7 min

Erreur DNS_PROBE_FINISHED_NXDOMAIN : origine et solution

DNS_PROBE_FINISHED_NXDOMAIN : le DNS répond que ce nom n’existe pas. Vérifiez l’expiration, la zone et l’enregistrement, pas le serveur web.

DNS_PROBE_FINISHED_NXDOMAIN est un message de Chrome, pas un statut HTTP. La recherche DNS s’est terminée par NXDOMAIN : le serveur de noms qui fait autorité indique que ce nom n’existe pas. Code de réponse DNS 3, « Name Error ». Le navigateur s’arrête là. Il n’ouvre pas de connexion, il ne peut pas afficher un 404 ou un 500, et le certificat n’entre pas en jeu.

Ce n’est pas un délai DNS, ni un SERVFAIL. SERVFAIL veut dire que le résolveur n’a pas pu obtenir une réponse fiable. NXDOMAIN veut dire qu’il a obtenu une réponse nette : ce nom n’est pas publié.

Pourquoi le nom est déclaré inexistant

  • Le nom de domaine a expiré. Après la période où le registre le retire du DNS, les résolveurs répondent NXDOMAIN. Le site peut avoir fonctionné la veille.
  • La zone a été supprimée chez le hébergeur DNS, ou les serveurs de noms du domaine ne sont plus ceux qui portent la zone.
  • L’enregistrement demandé n’a jamais existé. www est publié, le sommet du domaine ne l’est pas, ou l’inverse. L’erreur ne touche alors qu’une des deux adresses.
  • Un CNAME pointe vers un nom qui n’existe pas. La cible a été supprimée, la source répond NXDOMAIN.
  • Une faute de frappe dans un lien, une campagne ou un favori. Le nom demandé n’est pas le vôtre. Corriger le serveur ne fera pas exister ce nom.
  • Un résolveur menteur ou un fichier hosts incomplet, dans un cas plus local : le public répond NXDOMAIN alors qu’un réseau interne résout encore l’ancien nom, ou le contraire.

Confirmer avec un résolveur public

  1. Interrogez un résolveur public, par exemple dig exemple.fr @8.8.8.8 et la même commande pour www. Lisez le statut. NXDOMAIN confirme le diagnostic. NOERROR avec une adresse veut dire que le DNS public va bien et que le problème est local au poste.
  2. Interrogez les serveurs de noms du domaine (dig NS, puis une requête vers l’un d’eux). S’ils répondent NXDOMAIN alors qu’un cache répond encore l’ancienne adresse, la zone a changé et les caches n’ont pas tous expiré.
  3. Vérifiez la date d’expiration et le statut au registre (clientHold, pendingDelete). Un domaine expiré ne se répare pas dans Nginx.
  4. Comparez le sommet et www, et la cible d’un éventuel CNAME.
  5. Depuis un téléphone hors de votre réseau, ouvrez le même nom. S’il échoue aussi, ce n’est pas le cache de votre bureau.

Un test d’URL qui ne peut pas résoudre le nom échoue avant le HTTP. Quand le DNS est rétabli, le même test doit obtenir un code de page. D’ici là, il ne mesure pas la boutique.

Rétablir la zone ou le nom

ConstatAction
Domaine expiréLe renouveler au registrar. Le DNS ne reviendra qu’après la remise en publication
Zone suppriméeRecréer la zone chez le DNS autoritaire, avec les enregistrements A ou AAAA
Mauvais serveurs de nomsRemettre les NS qui portent réellement la zone. Ne les changez pas une seconde fois pendant la propagation
www ou le sommet manquantCréer l’enregistrement qui manque, ou rediriger au niveau HTTP une fois les deux noms résolus
CNAME vers un nom absentCorriger la cible, ou remplacer le CNAME par une adresse
Faute dans le lienCorriger le lien. Le domaine sain n’a rien à changer

Après le rétablissement, les résolveurs qui ont mémorisé NXDOMAIN le gardent jusqu’au TTL de cette réponse négative. Le site peut donc revenir pour certains réseaux avant d’autres. Ce n’est pas une raison pour modifier encore les NS.

Ce qui ne change rien

Vider le cache du navigateur sans que la zone existe à nouveau laisse l’erreur en place. Renouveler le certificat, redémarrer PHP ou purger un CDN ne crée pas un nom DNS. Changer les serveurs de noms « pour essayer » pendant que le registrar montre un domaine expiré ajoute une seconde panne. Confondre NXDOMAIN et une coupure d’hébergement fait chercher un 500 qui n’a pas lieu : la requête n’atteint pas l’hébergement.

Quand le nom résout de nouveau, contrôlez le code HTTP et le contenu avec la méthode pour tester si un site répond vraiment. Les deux étapes sont séparées : d’abord le nom, ensuite la page. Les contrôles de surveillance du domaine doivent inclure la résolution, pas seulement le code 200 d’une IP déjà connue.

Questions fréquentes

NXDOMAIN est-il un code HTTP ?

Non. C’est une réponse DNS : le nom demandé n’existe pas dans la zone. Le navigateur Chrome l’affiche sous le libellé DNS_PROBE_FINISHED_NXDOMAIN. Aucune requête HTTP n’a été envoyée.

Vider le cache du navigateur suffit-il ?

Seulement si votre résolveur a gardé une réponse NXDOMAIN alors que la zone a été réparée. Si le registre ou la zone disent encore que le nom n’existe pas, le vidage ne change rien.

Pourquoi le site s’ouvre chez moi et pas chez un client ?

Votre machine peut utiliser un fichier hosts ou un résolveur interne qui connaît encore le nom. Un résolveur public, lui, reçoit NXDOMAIN. Il faut tester les deux.

Surveiller mes URL