Dig

Un article de WindowsLinux.Net - Astuces pour Windows et Linux.

Dig est une commande qui nous permet de savoir "quel chemin" prend une requête DNS, en nous donnant le nom des serveurs dns qui sont utilisés pour résoudre l'adresse.

Prenons par exemple le nom de domaine yahoo.fr (le paramètre A pour désigner le serveur, ou encore MX pour le serveur mail - je vous conseille de lire la documentation associée : "man dig").


Commande :

dig yahoo.fr A

Réponse :

; <<>> DiG 9.3.4 <<>> yahoo.fr A
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28028
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 5, ADDITIONAL: 5
 
;; QUESTION SECTION:
;yahoo.fr.                      IN      A
 
;; ANSWER SECTION:
yahoo.fr.               489     IN      A       217.12.6.29
yahoo.fr.               489     IN      A       217.146.186.221
 
;; AUTHORITY SECTION:
yahoo.fr.               52285   IN      NS      ns1.yahoo.com.
yahoo.fr.               52285   IN      NS      ns2.yahoo.com.
yahoo.fr.               52285   IN      NS      ns3.yahoo.com.
yahoo.fr.               52285   IN      NS      ns5.yahoo.com.
yahoo.fr.               52285   IN      NS      ns7.yahoo.com.
 
;; ADDITIONAL SECTION:
ns1.yahoo.com.          39195   IN      A       66.218.71.63
ns2.yahoo.com.          39195   IN      A       68.142.255.16
ns3.yahoo.com.          39199   IN      A       217.12.4.104
ns5.yahoo.com.          39199   IN      A       216.109.116.17
ns7.yahoo.com.          40147   IN      A       68.142.226.82
 
;; Query time: 1 msec
;; SERVER: 193.24.213.101#53(193.24.213.101)
;; WHEN: Sat Apr 28 01:59:09 2007
;; MSG SIZE  rcvd: 237


Ajouter l'option "+trace" à la commande précédente est très utile et nous permet de voir le cheminement depuis les serveurs root :

dig yahoo.fr A +trace

Réponse :

; <<>> DiG 9.3.4 <<>> yahoo.fr A +trace
;; global options:  printcmd
.                       447419  IN      NS      G.ROOT-SERVERS.NET.
.                       447419  IN      NS      H.ROOT-SERVERS.NET.
.                       447419  IN      NS      I.ROOT-SERVERS.NET.
.                       447419  IN      NS      J.ROOT-SERVERS.NET.
.                       447419  IN      NS      K.ROOT-SERVERS.NET.
.                       447419  IN      NS      L.ROOT-SERVERS.NET.
.                       447419  IN      NS      M.ROOT-SERVERS.NET.
.                       447419  IN      NS      A.ROOT-SERVERS.NET.
.                       447419  IN      NS      B.ROOT-SERVERS.NET.
.                       447419  IN      NS      C.ROOT-SERVERS.NET.
.                       447419  IN      NS      D.ROOT-SERVERS.NET.
.                       447419  IN      NS      E.ROOT-SERVERS.NET.
.                       447419  IN      NS      F.ROOT-SERVERS.NET.
;; Received 436 bytes from 193.24.213.101#53(193.24.213.101) in 2 ms
 
fr.                     172800  IN      NS      D.EXT.NIC.fr.
fr.                     172800  IN      NS      C.NIC.fr.
fr.                     172800  IN      NS      E.EXT.NIC.fr.
fr.                     172800  IN      NS      B.EXT.NIC.fr.
fr.                     172800  IN      NS      A.EXT.NIC.fr.
fr.                     172800  IN      NS      C.EXT.NIC.fr.
fr.                     172800  IN      NS      B.NIC.fr.
fr.                     172800  IN      NS      E.NIC.fr.
fr.                     172800  IN      NS      A.NIC.fr.
;; Received 434 bytes from 192.112.36.4#53(G.ROOT-SERVERS.NET) in 116 ms
 
yahoo.fr.               172800  IN      NS      ns2.yahoo.com.
yahoo.fr.               172800  IN      NS      ns1.yahoo.com.
yahoo.fr.               172800  IN      NS      ns5.yahoo.com.
yahoo.fr.               172800  IN      NS      ns3.yahoo.com.
yahoo.fr.               172800  IN      NS      ns7.yahoo.com.
;; Received 125 bytes from 204.152.184.85#53(D.EXT.NIC.fr) in 160 ms
 
yahoo.fr.               900     IN      A       217.12.6.29
yahoo.fr.               900     IN      A       217.146.186.221
yahoo.fr.               172800  IN      NS      ns1.yahoo.com.
yahoo.fr.               172800  IN      NS      ns2.yahoo.com.
yahoo.fr.               172800  IN      NS      ns3.yahoo.com.
yahoo.fr.               172800  IN      NS      ns5.yahoo.com.
yahoo.fr.               172800  IN      NS      ns7.yahoo.com.
;; Received 237 bytes from 68.142.255.16#53(ns2.yahoo.com) in 82 ms


Un autre exemple, sur fr.yahoo.com :

dig fr.yahoo.com A +trace


; <<>> DiG 9.3.4 <<>> fr.yahoo.com A +trace
;; global options:  printcmd
.                       446720  IN      NS      L.ROOT-SERVERS.NET.
.                       446720  IN      NS      M.ROOT-SERVERS.NET.
.                       446720  IN      NS      A.ROOT-SERVERS.NET.
.                       446720  IN      NS      B.ROOT-SERVERS.NET.
.                       446720  IN      NS      C.ROOT-SERVERS.NET.
.                       446720  IN      NS      D.ROOT-SERVERS.NET.
.                       446720  IN      NS      E.ROOT-SERVERS.NET.
.                       446720  IN      NS      F.ROOT-SERVERS.NET.
.                       446720  IN      NS      G.ROOT-SERVERS.NET.
.                       446720  IN      NS      H.ROOT-SERVERS.NET.
.                       446720  IN      NS      I.ROOT-SERVERS.NET.
.                       446720  IN      NS      J.ROOT-SERVERS.NET.
.                       446720  IN      NS      K.ROOT-SERVERS.NET.
;; Received 436 bytes from 193.24.213.101#53(193.24.213.101) in 2 ms
 
com.                    172800  IN      NS      a.gtld-servers.net.
com.                    172800  IN      NS      b.gtld-servers.net.
com.                    172800  IN      NS      c.gtld-servers.net.
com.                    172800  IN      NS      d.gtld-servers.net.
com.                    172800  IN      NS      e.gtld-servers.net.
com.                    172800  IN      NS      f.gtld-servers.net.
com.                    172800  IN      NS      g.gtld-servers.net.
com.                    172800  IN      NS      h.gtld-servers.net.
com.                    172800  IN      NS      i.gtld-servers.net.
com.                    172800  IN      NS      j.gtld-servers.net.
com.                    172800  IN      NS      k.gtld-servers.net.
com.                    172800  IN      NS      l.gtld-servers.net.
com.                    172800  IN      NS      m.gtld-servers.net.
;; Received 490 bytes from 198.32.64.12#53(L.ROOT-SERVERS.NET) in 154 ms
 
yahoo.com.              172800  IN      NS      ns1.yahoo.com.
yahoo.com.              172800  IN      NS      ns2.yahoo.com.
yahoo.com.              172800  IN      NS      ns3.yahoo.com.
yahoo.com.              172800  IN      NS      ns4.yahoo.com.
yahoo.com.              172800  IN      NS      ns5.yahoo.com.
;; Received 200 bytes from 192.5.6.30#53(a.gtld-servers.net) in 111 ms
 
fr.yahoo.com.           1800    IN      CNAME   www.euro.yahoo-eu1.akadns.net.
.                       3600000 IN      NS      A.ROOT-SERVERS.net.
.                       3600000 IN      NS      B.ROOT-SERVERS.net.
.                       3600000 IN      NS      C.ROOT-SERVERS.net.
.                       3600000 IN      NS      D.ROOT-SERVERS.net.
.                       3600000 IN      NS      E.ROOT-SERVERS.net.
.                       3600000 IN      NS      F.ROOT-SERVERS.net.
.                       3600000 IN      NS      G.ROOT-SERVERS.net.
.                       3600000 IN      NS      H.ROOT-SERVERS.net.
.                       3600000 IN      NS      I.ROOT-SERVERS.net.
.                       3600000 IN      NS      J.ROOT-SERVERS.net.
.                       3600000 IN      NS      K.ROOT-SERVERS.net.
.                       3600000 IN      NS      L.ROOT-SERVERS.net.
.                       3600000 IN      NS      M.ROOT-SERVERS.net.
;; Received 281 bytes from 66.218.71.63#53(ns1.yahoo.com) in 154 ms




La partie intéressante dans toutes ces lignes est donc :

- Les lignes qui affichent le nom des serveurs qui ont l'enregistrement


- La ligne :

Received XXX bytes from x.x.x.x#53(X.SERVEURDNS.TLD) in XXX ms


Qui nous montre quel serveur à répondu à notre requête (sur le #53 : port 53).


D'autres options sont utiles comme l'option "@ServeurDNS", ou encore "-b" (voyez le "man dig").

Pour Windows

Voir cette page : http://members.shaw.ca/nicholas.fong/dig/