← retour aux snippets

dig: diagnostiquer la résolution DNS

Résoudre des enregistrements A/AAAA/CNAME/NS, suivre la chaîne et cibler un résolveur précis.

bash réseau #dns#dig#network#cli

objectif

Vérifier la résolution DNS d’un domaine, inspecter les enregistrements, choisir le résolveur interrogé et suivre la délégation.

code minimal

# IPv4 et IPv6 en sortie compacte
dig +short data.pm A
dig +short data.pm AAAA

utilisation

# vérifier le CNAME et la cible finale (chaîne)
dig +noall +answer data.pm CNAME
dig +noall +answer $(dig +short data.pm CNAME) A

# interroger un résolveur spécifique (Cloudflare, Google, serveur interne)
dig @1.1.1.1 data.pm A
dig @8.8.8.8 data.pm A
dig @10.0.0.53 intranet.local A

# obtenir TTL, flags et section ANSWER lisible
dig data.pm A +nocmd +noquestion +authority +answer

# records courants
dig +short data.pm TXT
dig +short data.pm MX
dig +short _sip._tcp.data.pm SRV

# vérifier le SOA et les NS d'une zone
dig +noall +answer data.pm SOA
dig +noall +answer data.pm NS

# suivre la délégation depuis la racine (trace)
dig +trace data.pm

# vérifier la résolution inverse (PTR) d'une IP
dig +short -x 93.184.216.34

# forcer TCP (pare-feu strict, grosses réponses)
dig +tcp data.pm TXT

# mesurer le temps de réponse
dig data.pm A +stats | grep 'Query time'

variante(s) utile(s)

# forcer IPv4 ou IPv6 pour la requête
dig -4 data.pm A
dig -6 data.pm AAAA

# afficher toutes les sections de manière concise
dig data.pm ANY +noall +answer

# vérifier DNSSEC (AD = Authenticated Data côté résolveur)
dig data.pm A +dnssec +multi +noall +answer

# récupérer le SPF (souvent dans TXT)
dig +short data.pm TXT | grep -i 'v=spf1'

# comparer la vue entre deux résolveurs (cache/CDN)
for s in 1.1.1.1 8.8.8.8 9.9.9.9; do
  printf '%-8s ' "$s"; dig @"$s" +short data.pm CNAME; done

# vérifier un enregistrement spécifique à un sous-domaine
dig +noall +answer api.eu.data.pm A

# script: alerte si pas de réponse A dans 5s (timeout et tentative)
domain="data.pm"
dig +time=5 +tries=2 +short "$domain" A | grep -qE '^[0-9]+' || { echo "DNS KO pour $domain" >&2; exit 1; }

notes

  • +short donne une sortie exploitable en scripts; utilisez +noall +answer pour une vue lisible sans bruit.
  • précisez @serveur pour isoler un problème (résolveur local vs public vs autoritaire).
  • +trace interroge récursivement depuis la racine; utile pour diagnostiquer la délégation et le glue.
  • forcez +tcp si les réponses sont tronquées (TC=1) ou si UDP est filtré.
  • la résolution inverse (-x) dépend de la zone PTR (in-addr.arpa/ip6.arpa) publiée par le propriétaire du bloc IP.