Dig (programme informatique)

Un article de Wikipédia, l'encyclopédie libre.

Pour les articles homonymes, voir Dig.

dig est un programme informatique de débogage de serveurs DNS.

Utilisable en ligne de commande, il permet d'interroger le serveur de son choix (par défaut, il utilise le même serveur que les applications locales, celui spécifié, sur Unix, dans le fichier /etc/resolv.conf).

Dig est généralement fourni avec le package bind-tools sous Unix.

Par exemple, voici comment demander les enregistrements DNS de type A (adresse IP version 4), le type par défaut, pour le nom fr.wikipedia.org :

% dig fr.wikipedia.org.
...
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51006
;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 3, ADDITIONAL: 3
...
;; ANSWER SECTION:
fr.wikipedia.org.       1652    IN      CNAME   rr.wikimedia.org.
rr.pmtpa.wikimedia.org. 1068    IN      A       207.142.131.202
...

Si on souhaite un autre type d'enregistrement, on peut le spécifier sur la ligne de commandes (l'ordre n'est pas important, dig trouve en général tout seul s'il s'agit d'un nom ou bien d'un type). Par exemple, pour un enregistrement MX :

% dig MX wikipedia.org. 
...
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13841
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
...
;; ANSWER SECTION:
wikipedia.org.          3600    IN      MX      50 pascal.knams.wikimedia.org.
wikipedia.org.          3600    IN      MX      10 mail.wikimedia.org.

Enfin, on peut aussi désigner un serveur particulier, par exemple ici pour connaitre les serveurs de noms de ".fr" tels qu'ils sont connus des serveurs racine :

% dig @f.root-servers.net NS fr.
...
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51518
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 9, ADDITIONAL: 12
...
;; AUTHORITY SECTION:
fr.                     172800  IN      NS      B.EXT.NIC.fr.
fr.                     172800  IN      NS      B.NIC.fr.
fr.                     172800  IN      NS      C.EXT.NIC.fr.
fr.                     172800  IN      NS      C.NIC.fr.
...

Parmi les options de la réponse (flags), la plus importante est sans doute aa (authoritative answer) qui, lorsqu'elle est présente, indique que la réponse vient directement d'un serveur faisant autorité.

Le statut de la réponse (status) indique si la requête a été couronnée de succès ou pas. NOERROR dit que oui, NXDOMAIN (No such domain) que le nom n'existe pas, SERVFAIL (Server failure) que le serveur de noms est mal configuré, etc.

Notons qu'on peut avoir NOERROR et pas de réponse, par exemple si le nom existe mais ne contient pas d'enregistrements du type demandé.

dig n'est pas limité à l'IPv4, et peut également fonctionner avec de l'IPv6, comme l'illustre l'exemple suivant:

dig -6 AAAA www.ipv6tf.org

; <<>> DiG 9.3.1 <<>> -6 AAAA www.ipv6tf.org
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33690
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.ipv6tf.org.                        IN      AAAA

;; ANSWER SECTION:
www.ipv6tf.org.         1121    IN      AAAA    2001:7f9:1000:1::103

;; Query time: 57 msec
;; SERVER: ::ffff:84.103.237.144#53(84.103.237.144)
;; WHEN: Wed Aug 16 23:34:32 2006
;; MSG SIZE  rcvd: 60

[modifier] Voir aussi