Wireshark Lab.: DNS Domain Name System (DNS), host adlarını IP adreslerine çeviren ve Internet alt yapısında ciddi role sahip olan bir protokoldür. Bu deneyde DNS in istemci tarafı incelenecektir. İstemciler bu protokolde genellikle yerel DNS sunucularına bir sorgu (query) gönderir ve bir cevap (response) alırlar. (Ayrıntılı bilgiyi kitabınızdan okuyabilirsiniz). Deneye başlamadan önce yerel DNS sunucuları, DNS ön bellekleme, DNS kayıtları ve mesajları ve bir DNS kaydındaki TYPE alanı konularına çalışmanız faydalı olacaktır. 1. nslookup Bu deneyde nslookup aracı kapsamlı şekilde kullanılacaktır. Linux/Unix sistemlerinde nslookup ı kullanmak için komut satırına nslookup yazılması yeterlidir. Windows ta ise komut istemcisi açılıp komut satırına nslookup yazılması gerekmektedir. nslookup aracı, hostlarda çalışan ve herhangi bir DNS sunucusuna sorgu yapabilen bir yazılımdır. Sorgulanan DNS sunucusu; kök, üst-seviye-alan (top-level-domain), yetkili (authoritative) veya orta dereceli (intermediate) bir DNS sunucusu olabilir. Belirlenen DNS sunucusuna sorgu gönderilir ve alınan cevap ekranda gösterilir. Yukarıda görülen ekran görüntüsü birbirinden farklı üç adet nslookup sorgusunun sonuçlarını göstermektedir. Bu örnekte host Brooklyn de bulunan Polytechnic Üniversitesinin kampüsündedir ve varsayılan DNS sunucusu dns-prime.poly.edu dur. nslookup komutu çalıştırıldığında eğer hiçbir DNS sunucusu belirtilmemişse var sayılan DNS sunucusuna sorgu gönderilir. İlk komut incelenirse: 1
nslookup www.mit.edu Bu komutun anlamı: www.mit.edu hostunun IP adresini bana gönderir misin? 'dir. Ekran görüntüsünden anlaşılacağı üzere gelen cevapta iki parça bilgi vardır: (1) Cevabı sağlayan DNS sunucusunun adı ve IP adresi ve (2) cevabın kendisi (www.mit.edu hostunun adı ve IP adresi). Cevap her ne kadar yerel DNS sunucusundan gelmiş olsa da yerel sunucu cevabı alabilmek için birden fazla DNS sunucusuna bağlanmıştır. İkinci komut incelenirse: nslookup type=ns mit.edu Bu örnekte mit.edu alanına -type=ns seçeneği eklenerek sorgu yapılmıştır. Bu işlemle birlikte var sayılan yerel DNS sunucusuna bir type-ns kaydı için sorgu yapılmıştır. Komutun anlamı: mit.edu. için yetkili DNS lerin host adlarını bana gönderir misin dir. Sorgunun cevabında ekran görüntüsünden de görülebileceği üzere önce cevabı sağlayan DNS sunucusunun adı ve IP adresi (var sayılan yerel DNS sunucusu) ardından da MIT nin yetkili DNS sunucularının adları ve IP adresleri gönderilmiştir. Bununla birlikte sorgunun cevabında görülen non-authoritative ifadesinin anlamı cevabın MIT DNS sunucusundan değil başka bir sunucunun ön belleğinden gelmiş olmasıdır. Son olarak üçüncü komut incelenirse: nslookup www.aiit.or.kr bitsy.mit.edu Bu örnekte ise sorgu yerel sunucu yerine bitsy.mit.edu DNS sunucusuna gönderilmiştir. Bu nedenle sorgu ve cevap işlemi belirlenen DNS sunucu ve host arasında gerçekleşecektir. bitsy.mit.edu sunucusu www.aiit.or.kr (Advanced Institute of Information Technology (Kore)) hostunun adını ve IP adresini cevap olarak getirmiştir. Birkaç örnekten sonra nslookup komutunun yazım kuralını inceleyelim: nslookup seçenek1 seçenek2 bulunmak-istenen-host dns-sunucu Genel olarak nslookup komutu sıfır, bir, iki ya da daha fazla seçenekle ile çalıştırılabilir. Yukarıdaki örnekte görüldüğü üzere dns-sunucu alanı seçmeli olup hiçbir şey belirtilmediği takdirde var sayılan yerel sunucuya istekler gönderilmektedir. Verilen bilgiler doğrultusunda aşağıda istenen sorguları yapıp sorgu cümlelerinizi ve sonuçlarını yazınız: 1. Asya kıtasındaki bir Web sunucusunun IP adresini elde edebilecek bir nslookup sorgusu yazınız. 2. Avrupa kıtasındaki bir DNS sunucusunun yetkili DNS sunucularını elde edebilecek bir nslookup sorgusu yazınız. 3. İkinci soruda elde ettiğiniz bir DNS sunucusu üzerinden Yahoo e-posta sunucusuna gönderilecek bir nslookup sorgusu yazınız. 2
2. ipconfig Host bilgisayarın adresini, DNS sunucu adresini, adaptör tipini vs. öğrenebilmek için kullanılan en yaygın komutlardan biri de Windows için ipconfig Linux/Unix içinse ifconfig komutudur. Örneğin hostunuzla ilgili tüm bilgileri görmek isterseniz ipconfig \all komutunu komut satırına girmeniz yeterlidir. Bu işlemin sonucu aşağıda görüldüğü üzeredir. ipconfig hostunuzda depolanan DNS bilgisini yönetmek için de çok yararlı bir komuttur. Hostun ön belleğinde bulunan DNS kayıtlarını görmek için C: dizinine geçtikten sonra ipconfig /displaydns komutu çalıştırılmalıdır. Ön belleği temizlemek içinse ipconfig /flushdns komutu çalıştırılmalıdır. 3. DNS protokolünü Wireshark ile takip etmek nslookup ve ipconfig komutlarını inceledikten sonra deneye başlayabilirsiniz. Öncelikle olağan bir Web gezintisi ile DNS paketleri yakalayalım: 1. ipconfig komutunu kullanarak DNS ön belleğinizi temizleyiniz. 2. Tarayıcınızı açıp ön belleğini temizleyiniz (Internet Explorer için Araçlar Internet Seçenekleri Genel Dosyaları Sil) 3. Wireshark ı başlatınız. Filtre kısmına ip.addr==ip_adresiniz bilgisini giriniz. Filtre özelliği size gelmeyen paketleri listeden çıkaracaktır. 4. Wireshark paket yakalama işlemini başlatınız. 5. Tarayıcınızdan http://www.ietf.org adresini ziyaret ediniz. 6. Paket yakalama işlemini durdurunuz. 3
Paket yakalama işleminde başarısız olduysanız iz (trace) dosyalarını kullanabilirsiniz. Aşağıdaki soruları yanıtlayınız. 4. DNS sorgu ve cevap mesajlarını bulunuz. Bu mesajlar TCP üzerinden mi UDP üzerinden mi gönderilmiştir? 5. DNS sorgu mesajının hedef portu nedir? Cevap mesajının kaynak portu nedir? 6. DNS sorgu mesajı hangi IP adresine gönderilmiştir. Bu adres sizin DNS sunucunuzun 7. DNS sorgu mesajını inceleyiniz. Hangi tipte bir DNS sorgusudur? DNS sorgu mesajı 8. DNS cevap mesajını inceleyiniz. Kaç adet cevap gelmiştir. Her bir cevap ne 9. Hostunuz tarafından gönderilen sonraki TCP SYN paketlerini göz önüne alınız. SYN paketlerinin hedef IP adresi DNS cevap mesajında gelenlerin herhangi biri ile uyuşuyor mu? 10. Bu Web sayfası resim dosyaları içermektedir. Hostunuz her bir resim dosyasını getirmeden önce yeni DNS sorguları yapmış mıdır? Şimdi nslookup komutu ile Wireshark uygulaması yapalım 1. Wireshark paket yakalama işlemini başlatınız 2. www.mit.edu adresine bir nslookup sorgusu gönderiniz (Komut satırından) 3. Paket yakalama işlemini durdurunuz. Aşağıdaki ekran görüntüsüne benzer bir sonuç almanız gerekmektedir. 4
Yukarıdaki ekran görüntüsünden de anlaşılacağı üzere nslookup komutu üç adet DNS sorgusu yollamış ve üç adet cevap almıştır. Bu uygulamanın amacı aşağıdaki soruları yanıtlarken ilk iki sorgu/cevap çiftlisini önemsememenizi, son sorgu/cevap çiftlilerine odaklanmanız gerektiğini anlatmaktır. Buna göre aşağıdaki soruları cevaplayınız 11. DNS sorgu mesajının hedef portu nedir? Cevap mesajının kaynak portu nedir? 12. DNS sorgu mesajı hangi IP adresine gönderilmiştir. Bu adres sizin DNS sunucunuzun 13. DNS sorgu mesajını inceleyiniz. Hangi tipte bir DNS sorgusudur? DNS sorgu mesajı 14. DNS cevap mesajını inceleyiniz. Kaç adet cevap gelmiştir. Her bir cevap ne Bir önceki deneyi aşağıdaki komutu kullanarak tekrarlayınız: nslookup type=ns mit.edu 15. DNS sorgu mesajı hangi IP adresine gönderilmiştir. Bu adres sizin DNS sunucunuzun 16. DNS sorgu mesajını inceleyiniz. Hangi tipte bir DNS sorgusudur? DNS sorgu mesajı 17. DNS cevap mesajını inceleyiniz. Hangi MIT isim sunucuları cevap olarak gelmiştir? Bu mesaj aynı zamanda MIT isim sunucularının IP adreslerini içeriyor mu? Bir önceki deneyi aşağıdaki komutu kullanarak tekrarlayınız: nslookup www.aiit.or.kr bitsy.mit.edu 18. DNS sorgu mesajı hangi IP adresine gönderilmiştir. Bu adres sizin DNS sunucunuzun 19. DNS sorgu mesajını inceleyiniz. Hangi tipte bir DNS sorgusudur? DNS sorgu mesajı 20. DNS cevap mesajını inceleyiniz. Kaç adet cevap gelmiştir. Her bir cevap ne 5