DNS client tools

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Type Outils client DNS (dig)
Paquet bind-utils (RHEL) / dnsutils (Debian)
Voir aussi Bind · Bind DNS server · Host

dig (domain internet groper) est l'outil de référence pour interroger et diagnostiquer un serveur DNS — bien plus complet que nslookup pour du dépannage. Cette page couvre deux usages courants : tester un transfert de zone et suivre une résolution récursive complète.

Tester un transfert de zone (AXFR)

Un transfert de zone (AXFR) copie l'intégralité d'une zone depuis le serveur faisant autorité — utile pour vérifier qu'un secondaire peut bien répliquer, mais aussi une opération sensible à restreindre : une zone en clair révèle toute la cartographie interne d'un domaine (voir Bind DNS server pour la restreindre par clé TSIG).

Sans autorisation, la demande est refusée :

dig @192.168.122.183 example.com -t AXFR
; <<>> DiG 9.x <<>> @192.168.122.183 example.com -t AXFR
; (1 server found)
;; global options:  printcmd
; Transfer failed.

Avec la clé TSIG autorisée (cf. génération dans Bind DNS server) :

dig @192.168.122.183 example.com -t AXFR -y 'shadow-slave:REMPLACER_PAR_LA_CLE_GENEREE='
example.com.        86400   IN   SOA   ns1.example.com. root.example.com. 49 10800 900 604800 86400
example.com.        86400   IN   A     192.168.122.1
example.com.        86400   IN   NS    ns1.sub.example.com.
example.com.        86400   IN   NS    ns1.example.com.
ns1.example.com.    86400   IN   A     192.168.122.183
ns2.example.com.    86400   IN   A     192.168.122.46
sub.example.com.    86400   IN   NS    ns1.sub.example.com.
ns1.sub.example.com. 86400  IN   A     192.168.122.46
www.example.com.    86400   IN   A     192.168.122.100
example.com.        86400   IN   SOA   ns1.example.com. root.example.com. 49 10800 900 604800 86400
shadow-slave.       0       ANY  TSIG  hmac-md5.sig-alg.reg.int. ... NOERROR 0
;; Query time: 2 msec
;; SERVER: 192.168.122.183#53(192.168.122.183)
;; XFR size: 10 records (messages 1)

Le dernier enregistrement TSIG dans la réponse confirme que le transfert a bien été authentifié par la clé, pas seulement autorisé par IP.

Suivre une résolution récursive complète (+trace)

+trace déroule la résolution étape par étape depuis les serveurs racine, en suivant la délégation de zone en zone — utile pour diagnostiquer un problème de délégation ou de glue record :

dig +trace -t A example.org
;; global options:  printcmd
.                    518373  IN  NS  a.root-servers.net.
.                    518373  IN  NS  b.root-servers.net.
...
;; Received 512 bytes from 127.0.0.1#53(127.0.0.1) in 0 ms

com.                 172800  IN  NS  a.gtld-servers.net.
...
;; Received 501 bytes from 192.33.4.12#53(a.root-servers.net) in 347 ms

example.org.         172800  IN  NS  ns1.example-hosting.net.
example.org.         172800  IN  NS  ns2.example-hosting.net.
;; Received 179 bytes from 192.55.83.30#53(a.gtld-servers.net) in 910 ms

example.org.         30      IN  A   203.0.113.10
;; Received 163 bytes from 208.78.70.34#53(ns1.example-hosting.net) in 752 ms

Chaque bloc correspond à une étape de la délégation : serveurs racine → serveurs du TLD (.com, .org…) → serveurs faisant autorité pour le domaine, qui renvoient finalement l'enregistrement demandé.

Options utiles au quotidien

dig +short exemple.tld A          # réponse brute, sans les en-têtes (idéal en script)
dig -x 192.168.1.10                # résolution inverse (PTR)
dig @8.8.8.8 exemple.tld           # interroger un serveur DNS précis plutôt que le résolveur local
dig exemple.tld MX                 # type d'enregistrement spécifique

Voir aussi

  • Bind — présentation générale de BIND
  • Bind DNS server — mise en place des clés TSIG utilisées ici pour le transfert de zone
  • Options bind — description des champs d'un enregistrement DNS et de la zone SOA
  • Host — alternative plus simple à dig pour une résolution rapide