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/

