dig (programme informatique)

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

dig (de l'anglais domain information groper) est un client de type Unix en ligne de commande, permettant d'interroger des serveurs DNS. Sous Linux, il est disponible dans le package dnsutils. Sous Fedora, le package est bind-utils[1].

Utilisation[modifier | modifier le code]

Voici comment demander les enregistrements de type A (adresse IP, le type par défaut), pour le nom fr.wikipedia.org[2] :

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

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

Références[modifier | modifier le code]

  1. « apps.fedoraproject.org/package… »(Archive.orgWikiwixArchive.isGoogleQue faire ?).
  2. (en) « DIG - DNS lookup », sur kloth.net (consulté le ).

Voir aussi[modifier | modifier le code]