Dig (programme informatique)
Un article de Wikipédia, l'encyclopédie libre.
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