Normalde eğer bir DNS sunucusu, bir domain kaydı barındırıyorsa ve siz de direk bu domain'i sorgularsanız DNS sunucusu kendi yerel veritabanından bu bilgiyi size gönderir ve bunu önbelleğine alır. Eğer bu sorgulanan domain DNS sunucusunun yerelinde kayıtlı değilse ve de DNS sunucusu rekursif olarak ayarlanmış ise o zaman bu DNS sunucu sizin DNS sorgunuzun cevabını dışarıda arayıp bulacak ve size gönderecektir. Doğru olan DNS sunucuların rekursif sorgu yapmamasıdır.
Evlerimizde, ofislerimizde bulunan ADSL modemleri göz önüne alırsak, bu cihazlarıdaki DNS sunucularına aslında DNS Cache (Önbelleği) demek daha mantıklı olacaktır çünkü bunlar yerelinde bir veritabanı barındırmazlar sadece sizin domain sorgulama isteklerinizi rekursif olarak arayıp bulurlar, önbelleklerine alırlar ve size cevap gönderirler.
'DNS Cache Snooping' bir DNS Önbelleğinin(Cache) önceden bir 'domain'i sorgulayıp sorgulamadığını gösteren metoda verilen isimdir. Bunu yapmanın yolu DNS Önbelleğine sorgu gönderirken rekursif sorgulamadan bize cevap dönmesi sağlamak, bu sayede cevap önbelleğinden gelmiş olacak.
Örneğin benim evde modemim 192.168.1.1 adresine sahip ve önceden ![Linkler için yazının bulunduğu siteye gidiniz.] adresine girip girmediğime bir göz atalım. dig uygulamasına verilen +norecurse parametresi domain sorgulama işleminin rekursif olmasını engellemekte.
$ dig @192.168.1.1 www.pibilisim.com.tr +norecurse ; <<>> DiG 9.6.1-P1 <<>> @192.168.1.1 www.pibilisim.com.tr +norecurse ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31767 ;; flags: qr ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.pibilisim.com.tr. IN A ;; Query time: 31 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Sat Jul 31 09:51:30 2010 ;; MSG SIZE rcvd: 34 Bu sorgu sonucu bize herhangi bir cevap dönmedi çünkü önceden böyle bir sorgu gönderilmemişti. Mesela şimdi web tarayıcım ile bu ![Linkler için yazının bulunduğu siteye gidiniz.] girip çıkayım (tabi ki web tarayıcım da dns sunucu olarak 192.168.1.1 kullanıyor olmalı). Şimdi tekrar aynı sorguyu yapalım.
$ dig @192.168.1.1 www.pibilisim.com.tr +norecurse
; <<>> DiG 9.6.1-P1 <<>> @192.168.1.1 www.pibilisim.com.tr +norecurse ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17522 ;; flags: qr ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION: ;www.pibilisim.com.tr. IN A
;; ANSWER SECTION: www.pibilisim.com.tr. 3598 IN A 78.40.228.194
;; Query time: 36 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Sat Jul 31 09:54:36 2010 ;; MSG SIZE rcvd: 50 Görüldüğü üzere bu sefer "Answer Section" alanı dolu ve herhangi bir cevap döndü.
DNS Cache Snooping sayesinde bir domain'in DNS Sunucu/Cache(Önbellek) kullanıcıları tarafından önceden kullanıp kullanılmadığını analiz etme mümkün hale geliyor. Tabi ki bu sadece web sayfası gezmekle sınırlı değil, domain sorgulaması yapan tamamen farklı türde uygulamalar da sorgulama yapacaktır ve bu da DNS önbelleğinde kayıt altına alınacaktır.
Burada dikkat edilmesi gereken diğer bir konu da, DNS önbelleklerinin sonsuza kadar veri saklamadığıdır. Örneğin yukarıdaki www.pibilisim.com.tr örneğini ele alırsak, 3598 saniye sonra bu verinin ön bellekten silineceğini görebiliriz.
|