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.

Par Constantin Boulanger
Publié le
6 min de lecture

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.

Articles similaires