Comment lire le résultat d'un dig : tutoriel ligne par ligne

dig est l'outil unix de référence pour interroger le DNS. Sa sortie peut paraître intimidante au premier abord. Voici comment lire chaque section (HEADER, QUESTION, ANSWER, AUTHORITY, ADDITIONAL) et tirer les bonnes conclusions.

Constantin Boulanger Publié le Mis à jour le 6 min de lecture

Sommaire

dig (Domain Information Groper) est l'outil unix standard pour interroger le DNS. Il fait partie du paquet bind-utils (Linux) ou bind (macOS Homebrew). Sa sortie est plus complète et brute que nslookup, ce qui en fait l'outil de référence des sysadmins et développeurs. Mais cette richesse rend la sortie intimidante au premier abord. Voici comment lire chaque section.

Anatomie d'une commande dig

$ dig exemple.fr

; <<>> DiG 9.18.18 <<>> exemple.fr
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;exemple.fr.            IN      A

;; ANSWER SECTION:
exemple.fr.     86400   IN      A       51.158.43.12

;; Query time: 32 msec
;; SERVER: 192.168.1.1#53(192.168.1.1) (UDP)
;; WHEN: Wed Apr 30 22:00:00 CEST 2026
;; MSG SIZE  rcvd: 55

5 sections principales : HEADER, OPT PSEUDOSECTION, QUESTION, ANSWER (+ éventuellement AUTHORITY et ADDITIONAL), et le récap technique en bas.

Section HEADER

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
  • opcode: QUERY = type d'opération (toujours QUERY pour un dig standard)
  • status: NOERROR = la requête a abouti. Autres valeurs possibles : NXDOMAIN (domaine inexistant), SERVFAIL (erreur du serveur DNS), REFUSED (résolveur refuse de répondre)
  • id: 12345 = identifiant unique de la requête (utilisé pour le matching réponse/requête)
  • flags :
    • qr = c'est une réponse (query response)
    • rd = recursion desired (le client a demandé une résolution récursive)
    • ra = recursion available (le serveur supporte la récursion)
    • aa (si présent) = authoritative answer (réponse vient du serveur autoritatif)
    • ad (si présent) = authenticated data (DNSSEC validé)
    • tc (si présent) = truncated (réponse trop longue, retransmettre en TCP)
  • QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 = nombre d'entrées dans chaque section

Section QUESTION

;; QUESTION SECTION:
;exemple.fr.            IN      A

Rappelle simplement la requête envoyée. Format : nom de domaine, classe (toujours IN pour Internet), type (A, AAAA, MX, CNAME, NS, TXT, SOA, etc.).

Section ANSWER

;; ANSWER SECTION:
exemple.fr.     86400   IN      A       51.158.43.12

La réponse à votre question. Format de chaque ligne : nom de domaine, TTL (en secondes), classe, type, valeur.

  • exemple.fr. = nom de domaine (le point final indique FQDN)
  • 86400 = TTL = 24 heures (le résolveur peut conserver cette réponse en cache 24 h)
  • IN = classe Internet (standard)
  • A = type d'enregistrement (IPv4)
  • 51.158.43.12 = valeur (l'adresse IPv4)

Plusieurs réponses possibles dans cette section pour un même nom (ex. round-robin DNS avec plusieurs A records).

Sections AUTHORITY et ADDITIONAL (selon requête)

;; AUTHORITY SECTION:
exemple.fr.     86400   IN      NS      ns1.cloudflare.com.
exemple.fr.     86400   IN      NS      ns2.cloudflare.com.

;; ADDITIONAL SECTION:
ns1.cloudflare.com.     3600    IN      A       108.162.193.1
  • AUTHORITY : liste les nameservers autoritatifs du domaine (qui héberge officiellement la zone DNS)
  • ADDITIONAL : informations bonus, typiquement les IPs des nameservers AUTHORITY (évite une seconde requête)

Récap technique en bas

;; Query time: 32 msec
;; SERVER: 192.168.1.1#53(192.168.1.1) (UDP)
;; WHEN: Wed Apr 30 22:00:00 CEST 2026
;; MSG SIZE  rcvd: 55
  • Query time: 32 msec = temps de réponse
  • SERVER = quel résolveur DNS a été interrogé (par défaut celui dans /etc/resolv.conf)
  • WHEN = horodatage de la requête
  • MSG SIZE rcvd: 55 = taille en octets de la réponse DNS

Variantes utiles de dig

CommandeUsage
dig +short exemple.frSortie minimale, juste les valeurs (1 par ligne)
dig MX exemple.frRécupérer les enregistrements MX (mails)
dig TXT exemple.frRécupérer les TXT (SPF, DKIM, DMARC, etc.)
dig NS exemple.frVoir les nameservers du domaine
dig +trace exemple.frVoir le chemin complet de résolution depuis la racine
dig +dnssec exemple.frInclure les enregistrements DNSSEC (RRSIG)
dig @1.1.1.1 exemple.frForcer la requête vers Cloudflare (1.1.1.1)
dig @8.8.8.8 exemple.frForcer la requête vers Google (8.8.8.8)
dig +noall +answer exemple.frSortie ANSWER seule, sans header ni footer

Comprendre les status codes

StatusSignificationAction typique
NOERRORRequête réussieLire la section ANSWER
NXDOMAINLe nom de domaine n'existe pasVérifier l'orthographe, ou domaine vraiment inexistant
SERVFAILErreur côté serveur DNSTester avec un autre résolveur (@8.8.8.8), vérifier DNSSEC
REFUSEDLe serveur refuse de répondreProbablement filtre IP ou config restrictive
NOTIMPType de requête non implémentéType DNS exotique non supporté

Ce qu'il faut retenir

  • 5 sections : HEADER (status, flags), QUESTION (rappel), ANSWER (réponse), AUTHORITY (NS), ADDITIONAL (IPs des NS).
  • Status à connaître : NOERROR (OK), NXDOMAIN (n'existe pas), SERVFAIL (erreur).
  • Format ANSWER : nom + TTL + classe + type + valeur.
  • Variantes utiles : +short, +trace, +dnssec, @resolver.
  • Pour usage rapide sans dig : notre outil DNS Lookup en ligne.

Questions fréquentes

dig est-il préféré à nslookup ?

Oui chez les sysadmins. Sortie plus complète, formatage cohérent, plus de variantes. nslookup est plus court mais cache des informations utiles (flags, sections AUTHORITY/ADDITIONAL).

Pourquoi dig retourne-t-il des résultats différents selon le résolveur ?

Caches différents. Le résolveur de votre FAI peut avoir une réponse en cache plus ancienne (ou plus récente) que celui de Cloudflare. Pour comparer : dig @1.1.1.1 exemple.fr vs dig @8.8.8.8 exemple.fr.

Comment forcer une résolution sans cache ?

Aucune commande dig ne contourne tous les caches (résolveur, fournisseur DNS). Workaround : interroger directement le nameserver autoritatif avec dig @ns1.cloudflare.com exemple.fr — réponse fraîche depuis la source.

Que signifie le flag aa dans la réponse ?

Authoritative Answer : la réponse vient directement du nameserver autoritatif du domaine, pas d'un cache. Apparaît quand vous interrogez directement les NS du domaine avec dig @ns1.exemple.fr exemple.fr.

Comment vérifier le TTL réel observé par les résolveurs ?

Lancer dig exemple.fr deux fois consécutives : le TTL affiché diminue à chaque requête (c'est le temps restant en cache du résolveur, pas le TTL d'origine). Pour voir le TTL d'origine : interroger directement le nameserver autoritatif.

dig fonctionne sur Windows ?

Pas par défaut. Installer via WSL (Windows Subsystem for Linux) avec apt install bind9-dnsutils, ou via le port BIND pour Windows. Alternative native Windows : nslookup ou Resolve-DnsName en PowerShell.

Tester sans installer dig

Si vous voulez interroger un DNS sans ouvrir un terminal ou installer dig, notre outil DNS Lookup en ligne fait la même chose en quelques clics — utile pour partager le résultat avec des collègues non techniques.

Lancer un DNS Lookup gratuitement — ou activer la surveillance DNS continue.

À lire aussi

Agences et freelances 6 min

Freelances : surveiller 5 sites clients sans budget infrastructure

Vous gérez 3 à 10 sites clients en freelance. Vous ne pouvez pas facturer 50€/mois d'outil monitoring par client. Voici la stack minimaliste qui couvre l'essentiel à 5-15€/mois total et se refacture en prestation.

DNS 6 min

DNS A vs CNAME : différence et quand utiliser chacun

Un enregistrement A pointe vers une adresse IP. Un CNAME pointe vers un autre nom de domaine. Cette distinction simple cache des conséquences performances, des contraintes RFC et des choix d'architecture. Voici quand utiliser quoi.

DNS 6 min

Octobre 2021 : autopsie de la panne DNS Facebook qui a duré 6 heures

Le 4 octobre 2021, Facebook, Instagram et WhatsApp ont disparu d'internet pendant près de 6 heures. La cause : une mise à jour BGP qui a propagé la disparition de tous les nameservers Facebook. Voici l'autopsie technique et les leçons à appliquer.