Dig, nslookup ve host gibi dns sorgulama araçları yerine kullanılabilen gelişmiş bir araçtır. ISC tarafından geliştirilen BIND DNS sunucusu ile birlikte geliştirilir ve uzun vadede Linux dağıtımlarında nslookup komutunun yerini alması beklenmektedir. Dig komutu domains sorgulama için çalıştırıldığında cevapla birlikte detay bilgiler de döner.
Bu detay bilgiler ek parametrelerle gizlenebilir.
# dig www.lifeoverip.net
; <<>> DiG 9.3.3 <<>> www.lifeoverip.net
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47172
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2;; QUESTION SECTION:
;www.lifeoverip.net. IN A;; ANSWER SECTION:
www.lifeoverip.net. 14400 IN A 80.93.212.86;; AUTHORITY SECTION:
lifeoverip.net. 30637 IN NS ns3.tekrom.com.
lifeoverip.net. 30637 IN NS ns4.tekrom.com.;; ADDITIONAL SECTION:
ns4.tekrom.com. 91164 IN A 70.84.223.227
ns3.tekrom.com. 165971 IN A 70.84.223.226;; Query time: 213 msec
;; SERVER: 195.175.39.40#53(195.175.39.40)
;; WHEN: Sat Jan 24 10:56:14 2009
;; MSG SIZE rcvd: 130
Çıktıların Detay açıklaması
Status:NOERROR
sorgulanan domain adının var olduğunu ve bu domainden sorumlu dns sunucunun sorgulara sağlıklı cevap verdiğini gösterir.
Status:SERVFAIL
domainin olduğunu fakat domainden sorumlu DNS sunucunun sorgulara sağlıklı cevap veremediğini gösterir. Yani sorun domainden sorumlu DNS sunucusundadır.
Status:NXDOMAIN
Domain ile ilgili ana DNS sunucuların bilgisinin olmadığını gösterir. Bu da ya o domain yoktur ya da bazı sebeplerden dolayı root dns sunuculara yayınlanmamıştır manasına gelir.
Olmayan bir domain sorgulandığında cevap olarak NXDOMAIN denecektir.
[[email protected] ~]# dig www.huzeyfe.net
; <<>> DiG 9.3.3 <<>> www.huzeyfe.net
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 8419
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0;; QUESTION SECTION:
;www.huzeyfe.net. IN A;; AUTHORITY SECTION:
net. 0 IN SOA a.gtld-servers.net. nstld.verisign-grs.com. 1232788241 1800 900 604800 900;; Query time: 119 msec
;; SERVER: 195.175.39.40#53(195.175.39.40)
;; WHEN: Sat Jan 24 11:02:25 2009
;; MSG SIZE rcvd: 106
Soru Kısmı
;; QUESTION SECTION:
;www.lifeoverip.net. IN A
DNS sunucuya giden sorgu kısmı.
Cevap Kısmı
;; ANSWER SECTION:
www.lifeoverip.net. 14400 IN A 80.93.212.86
DNS sunucudan dönen cevap kısmı.
;; AUTHORITY SECTION:
lifeoverip.net. 30637 IN NS ns3.tekrom.com.
lifeoverip.net. 30637 IN NS ns4.tekrom.com.
sorgulanan domainden sorumlu dns sunucu adresleri
;; ADDITIONAL SECTION:
ns4.tekrom.com. 91164 IN A 70.84.223.227
ns3.tekrom.com. 165971 IN A 70.84.223.226
Ek bilgiler.
;; Query time: 213 msec
Sorgulamanın ne kadar sürdüğü.
;; SERVER: 195.175.39.40#53(195.175.39.40)
sorgulanan dns sunucu
;; WHEN: Sat Jan 24 10:56:14 2009 tarih
;; MSG SIZE rcvd: 130 boyut
—
Dns sorgularının geçtiği sunucuları izlemek(dns trace)
Dns üzerinden sorun yaşadığınızı düşünüyorsanız sorunun kaynağını bulmak için dns trace çekilmesinde fayda var. DNs trace sorgulanan domaine ait tüm adımları detaylı bir şekilde gösterir. Böylece sorunun hangi aşamada hangi sunucudan kaynaklandığı bulunabilir.
Aşağıdaki çıktı bir istemci tarafından www.kou.edu.tr adresinin sorgulanması esnasında gidilen dns sunucularını ve onların döndüğü cevapları gösterir. Görüleceği üzere ilk olarak root serverlardan .tr uzantılı adreslerin nerede tutulduğu bilgisi alınmıştır. Sonrasında bu adreslerden birine kou.edu.tr domaininden sorumlu DNS sunucu sorulmuş ve cevap alınmıştır. Son olarak da www.kou.edu.tr domaini kou.edu.tr’den sorumlu dns sunucuya sorularak işlem tamamlanmıştır.
# dig +trace www.kou.edu.tr
; <<>> DiG 9.3.3 <<>> +trace www.kou.edu.tr
;; global options: printcmd
. 365519 IN NS B.ROOT-SERVERS.NET.
. 365519 IN NS C.ROOT-SERVERS.NET.
. 365519 IN NS D.ROOT-SERVERS.NET.
. 365519 IN NS E.ROOT-SERVERS.NET.
. 365519 IN NS F.ROOT-SERVERS.NET.
. 365519 IN NS G.ROOT-SERVERS.NET.
. 365519 IN NS H.ROOT-SERVERS.NET.
. 365519 IN NS I.ROOT-SERVERS.NET.
. 365519 IN NS J.ROOT-SERVERS.NET.
. 365519 IN NS K.ROOT-SERVERS.NET.
. 365519 IN NS L.ROOT-SERVERS.NET.
. 365519 IN NS M.ROOT-SERVERS.NET.
. 365519 IN NS A.ROOT-SERVERS.NET.
;; Received 500 bytes from 193.254.252.30#53(193.254.252.30) in 1 mstr. 172800 IN NS NS2.NIC.tr.
tr. 172800 IN NS NS3.NIC.tr.
tr. 172800 IN NS NS4.NIC.tr.
tr. 172800 IN NS NS5.NIC.tr.
tr. 172800 IN NS NS-TR.RIPE.NET.
tr. 172800 IN NS NS1.NIC.tr.
;; Received 250 bytes from 192.228.79.201#53(B.ROOT-SERVERS.NET) in 217 mskou.edu.tr. 43200 IN NS ns.ulak.net.tr.
kou.edu.tr. 43200 IN NS bim.kou.edu.tr.
;; Received 92 bytes from 144.122.95.52#53(NS2.NIC.tr) in 11 mswww.kou.edu.tr. 3600 IN A 194.27.72.123
kou.edu.tr. 3600 IN NS bim.kou.edu.tr.
;; Received 82 bytes from 193.140.83.251#53(ns.ulak.net.tr) in 10 ms
—
dig ile recursive olmayan dns sorguları
dig , öntanımlı olarak recursive dns sorguları gönderir. Eğer non-recursive dns sorgulaması yaptırılmak istenirse +norec parametresi kullanılır.
# dig +norec @195.175.39.40 www.lifeoverip.net.uk
; <<>> DiG 9.3.3 <<>> +norec @195.175.39.40 www.lifeoverip.net.uk
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41339
;; flags: qr ra; QUERY: 1, ANSWER: 0, AUTHORITY: 11, ADDITIONAL: 13;; QUESTION SECTION:
;www.lifeoverip.net.uk. IN A;; AUTHORITY SECTION:
uk. 1981 IN NS ns7.nic.uk.
uk. 1981 IN NS nsc.nic.uk.
uk. 1981 IN NS nsd.nic.uk.
uk. 1981 IN NS nsb.nic.uk.
uk. 1981 IN NS nsa.nic.uk.
uk. 1981 IN NS ns2.nic.uk.
uk. 1981 IN NS ns1.nic.uk.
uk. 1981 IN NS ns6.nic.uk.
uk. 1981 IN NS ns4.nic.uk.
uk. 1981 IN NS ns5.nic.uk.
uk. 1981 IN NS ns3.nic.uk.;; ADDITIONAL SECTION:
ns5.nic.uk. 6790 IN A 213.246.167.131
ns2.nic.uk. 6790 IN A 217.79.164.131
nsa.nic.uk. 6790 IN A 204.74.112.44
nsa.nic.uk. 28562 IN AAAA 2001:502:d399::44
nsd.nic.uk. 6790 IN A 199.7.67.44
nsd.nic.uk. 158281 IN AAAA 2001:502:100e::44
ns4.nic.uk. 6790 IN A 194.83.244.131
ns6.nic.uk. 6790 IN A 213.248.254.130
nsc.nic.uk. 6790 IN A 199.7.66.44
ns3.nic.uk. 6790 IN A 213.219.13.131
nsb.nic.uk. 160677 IN A 204.74.113.44
ns1.nic.uk. 6790 IN A 195.66.240.130
ns7.nic.uk. 6790 IN A 212.121.40.130;; Query time: 8 msec
;; SERVER: 195.175.39.40#53(195.175.39.40)
;; WHEN: Sat Jan 24 22:43:10 2009
;; MSG SIZE rcvd: 473
—
Dns sunucu versiyon Belirleme
DNS sunucu versiyon belirleme için standart bir yöntem yoktur. Üzerinde Bind çalışan sistemler için version.bind sorgusu işe yarar fakat başka dns sunucuları bu isteğe cevap vermezler.
# dig @ns1.tekrom.com txt chaos version.bind
; <<>> DiG 9.3.3 <<>> @ns1.tekrom.com txt chaos version.bind
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52098
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0;; QUESTION SECTION:
;version.bind. CH TXT;; ANSWER SECTION:
version.bind. 0 CH TXT “9.3.4-P1”;; AUTHORITY SECTION:
version.bind. 0 CH NS version.bind.;; Query time: 334 msec
;; SERVER: 70.84.223.230#53(70.84.223.230)
;; WHEN: Sat Jan 24 22:44:28 2009
;; MSG SIZE rcvd: 65
Dig ile Zone Transferi
dig aracı kullanılarak zone transferine açık bir sunucudan ilgili domaine ait tüm bilgiler edinilebilir.
# dig axfr huzeyfe.net @1.2.3.4
; <<>> DiG 9.3.3 <<>> axfr huzeyfe.net @mail.lifeoverip.net
; (1 server found)
;; global options: printcmd
huzeyfe.net. 86400 IN SOA ns1.gezginler.net. uyduruk.gmail.com. 2008100701 86400 7200 3600000 86400
huzeyfe.net. 14400 IN MX 0 huzeyfe.net.
huzeyfe.net. 86400 IN NS ns1.gezginler.net.
huzeyfe.net. 86400 IN NS ns1.softlayer.com.
huzeyfe.net. 86400 IN NS ns2.gezginler.net.
huzeyfe.net. 86400 IN NS ns2.softlayer.com.
huzeyfe.net. 14400 IN A 208.43.98.28
cpanel.huzeyfe.net. 14400 IN A 208.43.98.28
ftp.huzeyfe.net. 14400 IN A 208.43.98.28
localhost.huzeyfe.net. 14400 IN A 127.0.0.1
mail.huzeyfe.net. 14400 IN CNAME huzeyfe.net.
webdisk.huzeyfe.net. 14400 IN A 208.43.98.28
webmail.huzeyfe.net. 14400 IN A 208.43.98.28
whm.huzeyfe.net. 14400 IN A 208.43.98.28
www.huzeyfe.net. 14400 IN CNAME huzeyfe.net.
huzeyfe.net. 86400 IN SOA ns1.gezginler.net. uyduruk.gmail.com. 2008100701 86400 7200 3600000 86400
;; Query time: 18 msec
;; SERVER: 80.93.212.86#53(80.93.212.86)
;; WHEN: Sat Jan 24 11:01:31 2009
;; XFR size: 16 records (messages 1)
Değişken kaynak port ve XID değeri testi
Rekursif DNS sunucular başka dns sunuculardan istekde bulunurken kaynak port numarasını değiştirmeyebilirler. Bu, dns protokolünün kötüye kullanılmasına sebep
olabilir. DNS sorgulamaları UDP üzerinden çalıştığı için IP spoofing yapmak kolaydır. Bu sebeple dns protokolünün güvenliği kaynak port numarası ve transaction ID
(XID) değişkenine bağlıdır. Bu iki değişken ne kadar kuvvetli olursa dns üzerinden yapılacak cache poisoning türü ataklar o kadar başarısız olacaktır.
Kaynak port değeri yeterli derecede kuvvetli olan dns sunucunun verdiği cevap
# dig +short @195.175.39.40 porttest.dns-oarc.net txt
porttest.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
“195.175.39.228 is GREAT: 26 queries in 6.3 seconds from 26 ports with std dev 16123”
Kaynak port değeri yeterli derecede kuvvetli olmayan dns sunucunun verdiği cevap
# dig +short @vpn.lifeoverip.net porttest.dns-oarc.net txt
porttest.y.x.w.v.u.t.s.r.q.p.o.n.m.l.k.j.i.h.g.f.e.d.c.b.a.pt.dns-oarc.net.
“80.93.212.86 is POOR: 26 queries in 5.5 seconds from 1 ports with std dev 0”
Dig ile sorgulama zamanı (DNS yavaşlık göstergersi)
DNS sorgularınızda yavaşlık hissediyorsanız bunu dig komutunun çıktısındaki Query time değerinden öğrenebilirsiniz. Aynı adresi farklı iki dns sunucuya sorgulatıp “Query time “değerleri kontrol edilerek hangisinin daha hızlı cevap verdiği öğrenilebilir.
;; Query time: 4131 msec
Yavaş bir dns sunucu
# dig @4.2.2.1 www.bilgiguvenligi.org
; <<>> DiG 9.3.3 <<>> @4.2.2.1 www.bilgiguvenligi.org
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59504
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
…;; Query time: 256 msec
;; SERVER: 4.2.2.1#53(4.2.2.1)
;; WHEN: Sat Jan 24 23:00:40 2009
;; MSG SIZE rcvd: 56
Hızlı bir DNS sunucu
# dig @195.175.39.40 www.bilgiguvenligi.org
; <<>> DiG 9.3.3 <<>> @195.175.39.40 www.bilgiguvenligi.org
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46228
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2…
;; Query time: 8 msec
;; SERVER: 195.175.39.40#53(195.175.39.40)
;; WHEN: Sat Jan 24 23:00:27 2009
;; MSG SIZE rcvd: 136