|
|
DNS Nedir?
Domain Name System [DNS] (Alan Adı Sistemi) dağıtık yapıda bir
veritabanıdır. Bu sistem makina isimlerini IPv4 (ya da ipv6) adreslere ya da
IPv4 adresleri makina isimlerine çevirmeye yarar. Ayrıca bir alan için gerekli
eposta sunucusunun adreslerini ya da alanadı sunucularının hangi IP adreslerinde
bulunduğunu daha teknik bir ifade ile RR(Resource Records)'ları tutar. DNS
yapısı gereği hızlı olmalıdır. Bu yüzden yapılan sorgulamalar eğer 512 bayttan
küçük ise ya da yapılan işlem asıl DNS sunucusu ile yardımcı DNS sunucusu
arasında bölge transferi değilse UDP üzerinden yapılacaktır. DNS sisteminin
yazarları DNS için gerekli bilgileri diğer Internet araçlarında olduğu gibi
RFC'lerde tanımlamışlardır (RFC 1034 ve 1035). Bu belgelere bakarsanız içinde
bir kaç kod ve bölge soayalarının nasıl yazılacağını bulursunuz.
BIND'de
(Berkeley Internet Name Daemon) yazılırken bu kriterler dikkate alınmıştır.
Fakat bu sistemde gereksiz karmaşıklıkta kodlar ve bunun getirdiği güvenlik
problemleri vardır. Fakat djbdns bu karmaşadan uzak ve güvenli bir yazılımdır.
Bunun sonucu olarakta "two-thumbs-up bir daemon" olmaya bizce hak kazanmıştır.
Hatta bizce bind 9.1.X ve ileriki sürümlerinde kullanılan "Dns-sec sistemi" bile
bind için bir çözüm olmaktan çok uzaktır. Sonuçta temel yani "daemon Internet"in
ilk zamanlarından kalmıştır. Şu an IPv4'te yaşanılan güvenlik sorunları da aynı
sebepten oluşmaktadır.
Bu yüzden köklü bir değişim olması gerekliliği
savunulmuş ve IPv6 ortaya atılmıştır. Bind içinde benzer model söz konusu
olmadıkçca djbdns popüleritesini sürdürecektir. (Haklı bir popülerite !!!).
Genel olarak dns yazılımlarının yaptığı iki vazife vardır. Bind
kullananlar eğer çok profesyenel değillerse ya da bu konu ile alakalı kitap
okunmamışsa bu iki olguyu karıştırabilmektedirler. Bunlar:
Resolving
(Çözümleme): Aranılan bir kaydı bulma işlemi
Mesela http://www.yildiz.edu.tr/
adresine karşılık gelen IPv4 adresinin 193.140.1.1 olmasının bulunması.
Çözümleme yapan yazılımlar iki çeşit işlem yaparlar; ardışık çözümeme ve ardışık
olmayan çözümleme. Sorgularda gönderilen RD (recursion required - ardışık
gerekli) bitlerine göre sorgunun türü belirlenir. Ardışık olmayan sorgulara
cevap veren sunucular cevap olarak ardışık isim sunucuları verirler.
Sonuç olarak yapılan bir sorgu ardışık ise http://www.yildiz.edu.tr/
için doğrudan 193.140.1.1 IP'si ya da "makina bulunamadı" cevabı verilebilir.
Fakat ardışık olmayan bir sorguda cevabı bulmak için başka bir isim sunucusunun
IP'sini verebilir. Ardışık olmayan sorgular aynı zamanda yinelemeli sorgular
olarak daa bilinirler.
Authoritive Nameserving (Yetkili İsim
Sunumu)
Bir alan hakkında bilgi bulunduran sunucudur. Mesela yildiz.edu.tr
alanının MX, NS, A (Bunlar - Resource Record - Özkaynak Kaydı olarak bilinir)
kayıtlarının tutulduğu isim sunucusudur.
CANLI BIR ÖRNEK
Bir
sorgu nasıl yapılır. Mesela http://www.yildiz.edu.tr/ adresinin IPv4 karşılığı
nedir? Bunun için çözümleyici ya da sizin bilgisayarınız Internet'te birkaç
yetkili isim sunucusunu gezmek zorundadır. İlk başta " . " sunucularından tr
TLD'si için yetkili isim sunucu IP'si bulunur. Bunun IP'si (ki bu IP'nin makina
ismi ülkemiz için ns1.metu.edu.tr ya da ns2.metu.edu.tr'dir) alındıktan sonra bu
yetkili isim sunucuya "edu.tr." i barındıran yetkili isim sunucu IP'si sorulacak
ve bu işlem böylece devam edecektir ve sonuç olarak 193.140.1.1 adresini sizin
makinanız ya da /etc/resolv.conf dosyanızda bulunan çözümleyicinin
yildiz.edu.tr'nin yetkili isim sunucusundan aldığı bilgilere göre belleğinde
belli bir müddet tutacaktır. Bu süreye TTL (time to live - yaşam süresi) denir.
Bu süre boyunca çözümleyici gerekli bilgileri belleğinde saklayacaktır. DjbDNS
için aksi belirtilmezse bu süre 42 dakikadır. Kurulacak göre bu süre 5 saniye de
yapılabilir. (Nitekim birden fazla www sunucunuz var ve bunlar arasında döner
turnuva kullanarak yük dengelemesi yapmak istersek bu saniye değeri
kullanılacaktır).
|

|
|