DNS troubleshooting : dig, DNSSEC et résolution de problèmes

Publié le 16 janvier 2026

Linux
Réseau
DNS

Le DNS est un pilier de l'infrastructure réseau. Quand il dysfonctionne, tout s'arrête. Savoir diagnostiquer rapidement avec dig, comprendre les enregistrements et valider DNSSEC fait la différence entre 5 minutes et 2 heures de downtime.

Plan

  • Outils de diagnostic DNS : dig, host, nslookup
  • Analyser les réponses DNS et les codes de retour
  • Timeouts et résolution lente : diagnostic
  • DNSSEC : validation et troubleshooting
  • Split-horizon DNS et vues
  • Conclusion

Outils de diagnostic DNS

dig : l'outil de référence

# Requête basique
dig example.com

# Spécifier le type d'enregistrement
dig example.com A
dig example.com MX
dig example.com TXT
dig example.com NS

# Interroger un serveur DNS spécifique
dig @8.8.8.8 example.com
dig @1.1.1.1 example.com A

# Réponse courte
dig +short example.com
dig +short example.com MX

# Trace complète (récursion)
dig +trace example.com

host : simple et rapide

host example.com
host -t MX example.com
host 93.184.216.34  # Reverse DNS

nslookup : legacy mais présent

nslookup example.com
nslookup example.com 8.8.8.8

Analyser les réponses DNS

Anatomie d'une réponse dig

dig example.com A

; <<>> DiG 9.18.24 <<>> example.com A
;; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; QUESTION SECTION:
;example.com.                   IN      A

;; ANSWER SECTION:
example.com.            3600    IN      A       93.184.216.34

;; Query time: 12 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Tue Jan 14 11:30:00 CET 2026
;; MSG SIZE  rcvd: 56

Sections importantes :

  • QUERY : nombre de questions
  • ANSWER : réponses obtenues
  • AUTHORITY : serveurs autoritaires
  • ADDITIONAL : infos supplémentaires
  • Query time : latence
  • SERVER : serveur DNS utilisé

Codes de retour (RCODE)

# NOERROR (0) : succès
# SERVFAIL (2) : échec serveur DNS
# NXDOMAIN (3) : domaine inexistant
# REFUSED (5) : requête refusée

dig nonexistent.example.com
# status: NXDOMAIN

TTL : Time To Live

dig example.com

# Réponse :
example.com.    3600    IN      A       93.184.216.34
#               ↑ TTL en secondes (1h ici)

Le TTL indique combien de temps la réponse peut être cachée.


Timeouts et résolution lente

Identifier un timeout

dig example.com

# Si timeout :
;; connection timed out; no servers could be reached

Causes fréquentes :

  • Firewall bloquant le port 53 (UDP/TCP)
  • Serveur DNS down ou injoignable
  • Problème réseau

Tester la connectivité DNS

# Ping du serveur DNS
ping 8.8.8.8

# Test port 53 UDP
nc -u -z -v 8.8.8.8 53

# Test port 53 TCP (pour grosses réponses)
nc -z -v 8.8.8.8 53

Mesurer la latence

# Comparer plusieurs serveurs
for dns in 8.8.8.8 1.1.1.1 9.9.9.9; do
    echo "DNS: $dns"
    dig @$dns example.com | grep "Query time"
done

Vérifier /etc/resolv.conf

cat /etc/resolv.conf

# Contenu typique
nameserver 8.8.8.8
nameserver 1.1.1.1
options timeout:2 attempts:3

DNSSEC : validation et troubleshooting

Qu'est-ce que DNSSEC ?

DNSSEC signe cryptographiquement les enregistrements DNS pour garantir leur authenticité et intégrité.

Vérifier DNSSEC

# Vérifier si DNSSEC est actif
dig example.com +dnssec

# Réponse avec flag AD (Authenticated Data)
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2

Valider DNSSEC manuellement

# Obtenir la clé DNSKEY
dig example.com DNSKEY +short

# Valider la chaîne de confiance
dig +dnssec +multiline example.com

Débugger DNSSEC

# Si SERVFAIL avec DNSSEC
dig example.com +dnssec +cd
# +cd = checking disabled (ignore DNSSEC)

# Si ça fonctionne avec +cd, problème DNSSEC

Erreurs courantes :

  • Signature expirée
  • Clés non synchronisées
  • Horloge système incorrecte

Split-horizon DNS

Principe

Retourner des réponses différentes selon la source de la requête (interne vs externe).

Exemple avec BIND

# /etc/bind/named.conf.local
view "internal" {
    match-clients { 192.168.1.0/24; };
    zone "example.com" {
        type master;
        file "/etc/bind/zones/internal/example.com.zone";
    };
};

view "external" {
    match-clients { any; };
    zone "example.com" {
        type master;
        file "/etc/bind/zones/external/example.com.zone";
    };
};

Tester depuis différents réseaux

# Depuis le réseau interne
dig @dns-server.local app.example.com
# Réponse : 192.168.1.10 (IP privée)

# Depuis Internet
dig @dns-server.public app.example.com
# Réponse : 203.0.113.50 (IP publique)

Conclusion

Maîtriser dig et les outils de diagnostic DNS permet de résoudre rapidement les problèmes de résolution. Comprendre les TTL, valider DNSSEC et identifier les timeouts sont des compétences essentielles pour tout sysadmin.

Besoin d'aide sur ce sujet ?

Notre équipe d'experts est là pour vous accompagner dans vos projets.

Contactez-nous

Articles similaires qui pourraient vous intéresser