dig (programme informatique)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Dig.

dig est un programme informatique de débogage[réf. nécessaire] de serveurs DNS. Il signifie Domain Information Groper, littéralement Chercheur d'Information sur les Domaines.

Utilisable en ligne de commande, il permet aussi d'interroger le serveur DNS 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.

Exemples[modifier | modifier le code]

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.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.
...

Dans la réponse, on trouve des indicateurs (flags), le plus important est sans doute aa (authoritative answer) qui, lorsqu'il est présent, indique que la réponse vient directement d'un serveur faisant autorité.

Dans la réponse, l'état (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 @k.root-servers.net . ns +bufsize=1024
; <<>> DiG 9.7.0-P1 <<>> -6 @k.root-servers.net . ns +bufsize=1024
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38130
;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 22
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;.                              IN      NS

;; ANSWER SECTION:
.                       518400  IN      NS      a.root-servers.net.
.                       518400  IN      NS      b.root-servers.net.
.                       518400  IN      NS      c.root-servers.net.
.                       518400  IN      NS      d.root-servers.net.
.                       518400  IN      NS      e.root-servers.net.
.                       518400  IN      NS      f.root-servers.net.
.                       518400  IN      NS      g.root-servers.net.
.                       518400  IN      NS      h.root-servers.net.
.                       518400  IN      NS      i.root-servers.net.
.                       518400  IN      NS      j.root-servers.net.
.                       518400  IN      NS      k.root-servers.net.
.                       518400  IN      NS      l.root-servers.net.
.                       518400  IN      NS      m.root-servers.net.

;; ADDITIONAL SECTION: 
a.root-servers.net.     518400  IN      A       198.41.0.4 
b.root-servers.net.     518400  IN      A       192.228.79.201
c.root-servers.net.     518400  IN      A       192.33.4.12 
d.root-servers.net.     518400  IN      A       128.8.10.90
e.root-servers.net.     518400  IN      A       192.203.230.10
f.root-servers.net.     518400  IN      A       192.5.5.241
g.root-servers.net.     518400  IN      A       192.112.36.4
h.root-servers.net.     518400  IN      A       128.63.2.53
i.root-servers.net.     518400  IN      A       192.36.148.17
j.root-servers.net.     518400  IN      A       192.58.128.30
k.root-servers.net.     518400  IN      A       193.0.14.129
l.root-servers.net.     518400  IN      A       199.7.83.42 
m.root-servers.net.     518400  IN      A       202.12.27.33
a.root-servers.net.     518400  IN      AAAA    2001:503:ba3e::2:30
f.root-servers.net.     518400  IN      AAAA    2001:500:2f::f
h.root-servers.net.     518400  IN      AAAA    2001:500:1::803f:235
i.root-servers.net.     518400  IN      AAAA    2001:7fe::53
j.root-servers.net.     518400  IN      AAAA    2001:503:c27::2:30
k.root-servers.net.     518400  IN      AAAA    2001:7fd::1
l.root-servers.net.     518400  IN      AAAA    2001:500:3::42
m.root-servers.net.     518400  IN      AAAA    2001:dc3::35

;; Query time: 175 msec
;; SERVER: 2001:7fd::1#53(2001:7fd::1)
;; WHEN: Wed Jul  7 17:22:17 2010
;; MSG SIZE  rcvd: 671

Voir aussi[modifier | modifier le code]

Lien externe[modifier | modifier le code]