nslookup

DNS kayıtlarını sorgularken en ulaşılabilir araç olan nslookup ın kullanımı görelim.

# Tipik kullanım

nslookup gokhankesici.com

Server: 172.16.227.2
Address: 172.16.227.2#53
Non-authoritative answer:
Name: gokhankesici.com
Address: 104.28.30.61
Name: gokhankesici.com
Address: 2400:cb00:2048:1::681c:1f3d

Yukarıdaki tipik kullanımda gokhankesici.com adresinin IP adresi (A,AAA) kayıtlarını sorgular. Server kısmında DNS sorgusunun yapıldığı sunucuyu gösterir.

# DNS Server Belirtme

DNS sorgusunu kendi sistemimizde tanımlı DNS sunucuya değilde başka bir dns sunucuya da direkt sorabilirsiniz. Bunun için sorgulanacak adresin ardından dns sunucu adresi girilir.

nslookup gokhankesici.com 1.1.1.1

# Kayıt Alanı Sorgulama

Bir dns kaydı içerisinde yer alan kayıtları aşağıdaki gibi sorgulayabilirsiniz. -query ifadesinin sorgulayacağınız adresten önce gelmesine dikkat ediniz.

nslookup -query=A google.com
nslookup -query=MX google.com
nslookup -query=NS google.com
nslookup -query=SOA google.com
nslookup -query=TXT google.com
nslookup -query=CNAME www.gmail.com

# Reverse DNS

IP den isme ulaşmak için hedef sunucu da PTR tanımının yapılmış olması gerekmektedir. Eğer tanımlıysa direkt ip vererek veya query typeını belirterek sorgulama yapabilirsiniz.

nslookup 8.8.8.8
nslookup -query=PTR 8.8.8.8

# Recursive, Iterative Query

Kayıtları sorgulamak dışında istekleri iki tipte iletiriz. Biri iterative, diğeri ise recursive. Özellikle Wiresharkla bir dns paketini açıp incelerseniz recursive ile ilgili flagi görebilirsiniz.

Örneğin google.com adresini sorguladığımızda dns sunucumuza yaptığımız istek recursivedir. DNS sunucumuz ile diğer isim sunucular arasındaki istekler ise iterativedir.

Özellikle name serverınız internete açıksa kesinlikle yönetmediğiniz kayıtlar için recursive sorgulara isim sunucumuzun cevap vermemesi beklenir. Yoksa isim sunucumuzu Googleın 8.8.8.8 DNS servisi gibi kullanabilirler.

Örneğin bir dns sunucusuna recursive istek yaptığımızda eğer recursive kabul ediliyorsa bize yanıt dönecektir.

nslookup -recurse gokhankesici.com 8.8.8.8
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: gokhankesici.com
Address: 104.28.30.61
Name: gokhankesici.com
Address: 104.28.31.61

Eğer recursive aktifse ve isim sunucunda kayıt mevcutsa yine cevap dönecektir.

nslookup -recurse gokhankesici.com chris.ns.cloudflare.com
Server: chris.ns.cloudflare.com
Address: 173.245.59.85#53
Name: gokhankesici.com
Address: 104.28.30.61
Name: gokhankesici.com
Address: 104.28.31.61

Eğer recursive aktifse ve isim sunucusunda kayıt mevcut değilse isim sunucusundan red görüyor olacaksınız.

nslookup -recurse google.com chris.ns.cloudflare.com
Server: chris.ns.cloudflare.com
Address: 173.245.59.85#53
** server cant find google.com: REFUSED

Iterative bir querye eğer isim sunucusunda kayıt mevcutsa cevap döner. Aksi durumda red görüyor olacaksınız.

nslookup -norecurse gokhankesici.com chris.ns.cloudflare.com
Server: chris.ns.cloudflare.com
Address: 173.245.59.85#53
Name: gokhankesici.com
Address: 104.28.31.61
Name: gokhankesici.com
Address: 104.28.30.61

# Interaktif Mod

Yukarıdaki komutlar interaktif olmayan moda örnektirler. İnteraktif modda ise nslookup aracı sizden sürekli direktif bekliyor. exit dediğinizde ise interaktif moddan çıkıyor.  Örnek bir gösterim:

> nslookup
> server 8.8.8.8
> set type=ns
> gokhankesici.com
> exit

Örneğin yukarıdaki interaktif moddaki komutlarda 8.8.8.8 dns sunucusuna gokhankesici.com un ns kaydını sorduk.

# Debugging

Interaktif modda iken set debug (veya d2 ) diyerek daha detaylı sonuçları görebilirsiniz. Çıktılar da işletim sistemi bazlı farklılıklar olabilir.

> set debug
> gokhankesici.com
Server: UnKnown
Address: 172.16.227.2
------------
Got answer:
HEADER:
opcode = QUERY, id = 3, rcode = NOERROR
header flags: response, auth. answer
questions = 1, answers = 1, authority records = 0, additional = 0
QUESTIONS:
gokhankesici.com.localdomain, type = A, class = IN
ANSWERS:
-> gokhankesici.com.localdomain
internet address = 104.28.30.61
ttl = 5 (5 secs)
------------
Name: gokhankesici.com.localdomain
Address: 104.28.30.61