DNS protokolunde sorun giderme – dig

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 ms

tr.                     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 ms

kou.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 ms

www.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

This entry was posted in DNS. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

nine + 6 =