dig +trace
bir ad sunucusu gibi davranarak çalışır ve yol boyunca yönlendirmeleri izleyerek ağacın kökünden başlayan yinelemeli sorguları kullanarak ad alanı ağacında çalışır.
Yaptığı ilk şey normal sistem DNS sunucusundan NS kayıtlarını "."
Geçerli kök adı sunucuları listesi olacak bir yanıt aldıktan sonra, bir tane seçecek ve daha sonra ilk kez ek kayıtlar bölümünde almadıysa, bu ad için A kaydı isteyecektir. sonraki sorgunun gönderileceği IP adresi. IP adresi 192.5.5.241 olan f.root-servers.net adresini seçtiğini varsayalım.
Bu noktada, dig +trace www.google.co.uk.
çözüm yolunu izlemek istediğimiz bir alan adıyla komutumuz olarak kullanalım .
Sahne arkasındaki bir sonraki sorgu şudur:
$ dig +norecurse @192.5.5.241 www.google.co.uk
; <<>> DiG 9.9.4 <<>> +norecurse @192.5.5.241 www.google.co.uk
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8962
;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 11, ADDITIONAL: 15
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.google.co.uk. IN A
;; AUTHORITY SECTION:
uk. 172800 IN NS ns5.nic.uk.
uk. 172800 IN NS ns6.nic.uk.
uk. 172800 IN NS ns4.nic.uk.
uk. 172800 IN NS nsc.nic.uk.
uk. 172800 IN NS ns2.nic.uk.
uk. 172800 IN NS ns3.nic.uk.
uk. 172800 IN NS nsd.nic.uk.
uk. 172800 IN NS nsa.nic.uk.
uk. 172800 IN NS ns7.nic.uk.
uk. 172800 IN NS nsb.nic.uk.
uk. 172800 IN NS ns1.nic.uk.
;; ADDITIONAL SECTION:
ns1.nic.uk. 172800 IN A 195.66.240.130
ns2.nic.uk. 172800 IN A 217.79.164.131
ns3.nic.uk. 172800 IN A 213.219.13.131
ns4.nic.uk. 172800 IN A 194.83.244.131
ns5.nic.uk. 172800 IN A 213.246.167.131
ns6.nic.uk. 172800 IN A 213.248.254.130
ns7.nic.uk. 172800 IN A 212.121.40.130
nsa.nic.uk. 172800 IN A 156.154.100.3
nsb.nic.uk. 172800 IN A 156.154.101.3
nsc.nic.uk. 172800 IN A 156.154.102.3
nsd.nic.uk. 172800 IN A 156.154.103.3
ns1.nic.uk. 172800 IN AAAA 2a01:40:1001:35::2
ns4.nic.uk. 172800 IN AAAA 2001:630:181:35::83
nsa.nic.uk. 172800 IN AAAA 2001:502:ad09::3
;; Query time: 45 msec
;; SERVER: 192.5.5.241#53(192.5.5.241)
;; WHEN: Tue Feb 11 19:19:14 MST 2014
;; MSG SIZE rcvd: 507
Vay canına, şimdi ad sunucuları olduğunu biliyoruz uk
ve kök sunucunun bildiği tek şey bu. Bu bir yönlendirmedir , çünkü özyineleme istemedik ( +norecurse
kapatır).
Harika, durulayıp tekrarlıyoruz. Bu sefer uk
isim sunucularından birini seçip aynı soruyu soruyoruz .
$ dig +norecurse @195.66.240.130 www.google.co.uk
; <<>> DiG 9.9.4 <<>> +norecurse @195.66.240.130 www.google.co.uk
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 618
;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.google.co.uk. IN A
;; AUTHORITY SECTION:
google.co.uk. 172800 IN NS ns1.google.com.
google.co.uk. 172800 IN NS ns3.google.com.
google.co.uk. 172800 IN NS ns2.google.com.
google.co.uk. 172800 IN NS ns4.google.com.
;; Query time: 354 msec
;; SERVER: 195.66.240.130#53(195.66.240.130)
;; WHEN: Tue Feb 11 19:22:47 MST 2014
;; MSG SIZE rcvd: 127
Harika, şimdi uk
üst düzey ad sunucusunun bir bölge olduğunu bildiğini google.co.uk
ve bu isim sunucularına soruyu sormamızı söylediğini öğrendik. Bu başka bir tavsiye.
Durulayın, tekrarlayın.
Ancak bu sefer yanıtın ek kayıtlar bölümünde A kaydı almadık, bu yüzden birini seçiyoruz, diyelim ki ns2.google.com, ve adresini bulmalıyız. Biz yeniden ns2.google.com için IP adresini bulmak için ağacın aşağı (yine kökünde) sorgu ve kovalamaca. Kısmen kısalık için atlayacağım, ancak bunun için IP'nin 216.239.34.10 olduğunu öğreniyoruz.
Yani bir sonraki sorgumuz:
$ dig +norecurse @216.239.34.10 www.google.co.uk
; <<>> DiG 9.9.4 <<>> +norecurse @216.239.34.10 www.google.co.uk
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33404
;; flags: qr aa; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.google.co.uk. IN A
;; ANSWER SECTION:
www.google.co.uk. 300 IN A 74.125.225.216
www.google.co.uk. 300 IN A 74.125.225.223
www.google.co.uk. 300 IN A 74.125.225.215
;; Query time: 207 msec
;; SERVER: 216.239.34.10#53(216.239.34.10)
;; WHEN: Tue Feb 11 19:26:43 MST 2014
;; MSG SIZE rcvd: 82
Ve işimiz bitti! (son olarak) Tamamlandığımızı nereden biliyoruz? Www.google.co.uk için A kayıtları olan sorgumuz için bir yanıt aldık. Ayrıca artık bir referans olmadığından, aa
bitin son yanıtta ayarlandığı anlamına gelir, bu da sorgunuz için yetkili cevaptır .
Yani kullandığınız her adımda olan budur dig +trace
.
DNSSEC uyumlu bir dig sürümünüz varsa +dnssec
ve komuta eklerseniz , daha fazla kayıt görebilirsiniz. Bu ekstra kayıtların ne olduğu okuyucu için bir alıştırma olarak bırakılır ... ama nasıl dig +sigchase
çalıştığına girer .