DNS
DNS nedir? DNS,Domain Name System’in kısaltılmış şeklidir. Türkçe karşılığı ise Alan İsimlendirme Sistemi olarak bilinir. DNS, 256 karaktere kadar büyüyebilen host isimlerini IP’ye çevirmek için kullanılan bir sistemdir. Host ismi,tümüyle tanımlanmış isim (full qualified name) olarak da bilinir ve hem bilgisayarın ismini hem de bilgisayarın bulunduğu Internet domainini gösterir. Örneğin tuna.resit.com.tr ismi. Bu isimde “resit.com.tr” ifadesi internet domainini, “tuna” ifadesi ise bu domaindeki tek bir makineyi belirtir. DNS , verilen bir makina adının IP adresini çözerek makinaların Internet üzerinde host isimleri ile haberleşmelerine olanak tanır.
DNS’in amacı nedir? DNS, kolay anlaşılabilir ve kullanılabilir makine ve alan isimleri ile makine IP adresleri arasında çift taraflı dönüşümü sağlar. IP adreslerinin gündelik hayatta kullanımı ve hatırlanması pek pratik olmadığı için domain isimlendirme sistemi kullanılır. Ana amacı, ağ uzerinden gelen alan adı veya IPnumarası ile ilgili sorgulamalara yanıt vermektir. Bu amaç için cok yaygın olarak "Berkeley Internet Name Domain (BIND)" yazılımı kullanılmaktadır. Siz bir siteye erişmek istediğinizde, DNS sayesinde hangi site nerde , hangi IP hangi bilğisayara ait olduğu belirlenir, ve istediğiniz yere erişirsiniz.
DNS’in yapısı DNS sistemi isim sunucuları ve çözümleyicilerinden oluşur. İsim sunucuları olarak düzenlenen bilgisayarlar host isimlerine karşılık gelen IP adresi bilgilerini tutarlar. Çözümleyiciler ise DNS istemcilerdir. DNS istemcilerde, DNS sunucu yada sunucuların adresleri bulunur. Bir DNS istemci bir bilgisayarın ismine karşılık IP adresini bulmak istediği zaman isim sunucuya başvurur. İsim sunucu, yani DNS sunucu da eğer kendi veritabanında öyle bir isim varsa, bu isme karşılık gelen IP adresini istemciye gönderir. DNS veritabanına kayıtların elle,tek tek girilmesi gerekir. Internet adresleri ilkönce ülkelere göre ayrılır. Adreslerin sonundaki tr, de , uk gibi ifadeler adresin bulunduğu ülkeyi gösterir. Örneğin tr Türkiyeyi, de Almanyayı, uk İngiltereyi gösterir. ABD adresleri için bir ülke takısı kullanılmaz çünkü DNS ve benzeri uygulamaları yaratan ülke ABD’dir. Internet adresleri ülkelere ayrılıdıktan sonra com, edu, gov gibi daha alt bölümlere ayrılır. Bu ifadeler DNS’de üst düzey (top-level) domainlere karşılık gelir. Üst düzey domainler aşağıdaki gibidir:
Uzantılar Com :Ticari kuruluşları gösterir. Edu :Eğitim kurumlarını gösterir. Org :Ticari olmayan, hükümete de bağlı bulunmayan kurumları gösterir. Net :Internet omurgası işlevini üstlenen ağları gösterir. Gov :Hükümete bağlı kurumları gösterir. Mil :Askeri kurumları gösterir. Num :Telefon numaralarını bulabileceğiniz yerleri gösterir. Arpa :Ters DNS sorgulaması yapılabilecek yerleri gösterir.
DNS sunucu çeşitleri Çalışmalarına göre DNS sunucular üçe ayrılır. Birincil isim sunucu(Primary Name Server): Bölgesiyle ilgili bilgileri kendisinde bulunan bölgeden (zone file) elde eder. Bu dosyaya bilgiler elle tek tek girilir. İkincil isim sunucu(secondary name server): Bölgesiyle ilgili bilgileri bağlı bulunduğu bir DNS server’dan alır. Yani bilgileri bu sunucuya elle girmek gerekmez. Yalnızca-Kaşeleyen isim sunucu (caching-Only name server): Kendisinde bölge bilgilerinin tutulduğu bir dosya bulunmaz. Bağlı bulunduğu sunucuya sorarak topladığı bilgileri hem istemcilere ulaştırır, hemde kaşesine koyar
Birincil DNS Sunucu Birincil DNS sunucu yetkili olduğu bölge ile ilgili bilgileri kendi üzerinde bulunan bölge dosyasından (zone file) alır demiştik. O bölgede bulunan bilgisayarlara da DNS sunucu adresi olarak Birincil DNS sunucunun adresi verilir. Böylece isim/IP çözümlemesi yapan istemci bilgisayarlar Birincil DNS sunucuya başvururlar, isme karşılık IP adresi bilgisini ondan alırlar.
İkincil DNS Sunucu Eğer ağımızda çok sayıda bilgisayar varsa bütün bilgisayarların tek bir DNS sunucuya gitmeleri sonucunda isim/IP çözümleme performansımız düşecektir. Bu durumda ikinci bir DNS sunucu kurup bilgileri ona da tek tek elle gireriz ve bilgisayarların yarısında DNS sunucu olarak bu bilgisayarı gösteririz. Ama ağımızda çok bilgisayar olduğu için ikinci DNS sunucuya bilgileri girmek büyük bir yük getirecektir. Üstelik işlerimiz ilk girişle bitmeyecek. Bir de her iki DNS sunucusunun bilgilerinin güncel kalmasını sağlamamız gerekecektir. İkinci DNS sunucuda burda bize kolaylık sağlar. İkincil DNS sunucunun bilgilerini bağlı bulunduğu DNS sunucusundan alması “bölge bilgisi aktarımı”(zone transfer) olarak adlandırılır. İkincil DNS sunucu hem yük dağıtımı yapmamızı hem de bir arıza durumunda sistemin ayakta kalmasını (isim/IP çözümlemesi yapılabilmesi) sağlar. Her bölgenin bilgisi ayrı dosyalarda saklanır. Bu yüzden birincil, ikincil gibi gibi ayrımlar bölge temelinde yapılır. Yani bir DNS sunucu bir bölge için birincil DNS sunucu iken, başka bir bölge için ikincil DNS sunucu olabilir.
Yalnızca-Kaşeleyen DNS sunucu İkincil DNS sunucu tek bir lokasyonda, hızlı bir ağ üzerinden birbirine bağlanmış çok sayıda bilgisayarın bulunduğu kurumlar için oldukça iyi bir çözümdür. Fakat kurumda çok sayıda bilgisayar bulunuyorsa birincil ile ikincil DNS sunucular arasındaki bölge bilgileri aktarımı büyük bir trafik üretecektir. Bunun çözümü için yalnızca-kaşeleyen DNS sunucu kurulmalıdır.yalnızca-kaşeleyen sunucuya bilgiler elle girilmez. İkinci lokasyondaki bilgisayarlara DNS sunucu olarak kendi lokasyonlarındaki yalnızca-kaşeleyen sunucunun adersi verilir.yalnıca-kaşeleyen DNS sunucuda birinci lokasyondaki birincil ya da ikincil DNS sunucunun adresi vardır. Bir bilgisayar isim/IP çözümlemesi yapacağı zaman bu yalnızca-kaşeleyen DNS sunucuya gider. Yalnızca-kaşeleyen DNS sunucuda bir bilgi yoktur bu yuzden yalnızca-kaşeleyen DNS sunucu iki lokasyon arasındaki hatta çıkar, bağlı bulunduğu DNS sunucuya gider, sorgulamasını yapar, aldığı yanıtı da soru soran kendi lokasyonundaki bilgisayara iletir ve elde ettiği bilgiyi bir DNS kaşesinde saklar. Eğer aynı bilgiye belli bir zaman diliminde ikinci bir bilgisayar daha erişmek isterse artık aradaki hatta çıkmadan elimizdeki bilgiyi kullanırız.
DNS dosyaları DNS için gerekli olan dosya türleri şunlardır: 1-named.boot: Bu dosya, DNS çalışmaya başladığında program tarafından okunan ilk dosyadır. 2-named.local: Bu dosya, "loopback" denilen ve makinenin kendisini gösteren adresin çözümlenmesi icin kullanılan bir dosyadır. 3. named.ca: En üst seviyede bulunan ve "root server (.)" denilen makinelerin adreslerini içerir. 4. named.hosts: Bu dosya, DNS çalıştıran bir alt alanda bulunan makinelerin adreslerinin yazıldığı yani sorumlu olduğunuz alanınızda çalısan tüm bilgisayarların adreslerinin tutuldugu dosyadır. 5. named.reverse: Bu dosya, yukarıda açıkladığımız named.hosts dosyasının içerdiği IP adreslerini makinelerin isimlerine çevirmek için kullanılır ve yapı olarak named.local dosyasına benzer.
DNS'te kullanılan kaynak kodlar ve anlamları A – Address : Belli bir makinenin internet adresini bildirmek ve makine ismini IP adresine eslemek icin kullanılır. CNAME - Canonical Name : Esas makine ismine ek olarak başka bir isim daha tanımlamak için kullanılır. HINFO - Host Information : Bilgisayarın donanım ve işletim sistemi bilgilerini yazmak için kullanılır MX - Mail Exchanger : Belli bir alan adına gelen e-postaların hangi makineye dağıtılacağını gösterir NS - Name Server: Internet üzerindeki belli bir alandan sorumlu olan bilgisayarın adresini belirtir PTR – Pointer : Bilgisayar IP adresini bilgisayar ismine eşlemek için kullanılır. SOA - Start of Authority : SOA tanımı, internet üzerindeki bir alanın başlangıcını ve bu alandan sorumlu olunduğunu belirlemek için kullanılır. TXT - Text Data : Açıklayıcı bilgi vermek amacıyla kullanılır WKS - Well Known Services : Bilgisayar tarafindan sunulan servisler hakkında bilgi verme amacıyla kullanılır
Bir name server’ın görevi İsim/IP çözümlemesi yapmak Yaptığı sorgulamaların sonuçlarını belli bir süre saklamak Kendi domaini için isim/IP bilgilerini sunmak
DNS sorgulaması Bilgisayar herhangi bir adres sorgusu yapmak istediğinde bu sorgusunu Lokal DNS’e gönderir(1). Lokal DNS ise bu adresi bularak isteğe cevap verir(2). Eğer Lokal DNS üzerinde bu bilgi yoksa sorgulama işleri aşağıdaki şekilde görüldüğü gibi ilerler.
Bilgisayar sorgusunu Lokal DNS’e gönderir(1). Lokal DNS bu isteği alır Bilgisayar sorgusunu Lokal DNS’e gönderir(1). Lokal DNS bu isteği alır. Kendi verilerinde bu isteğin karşılığı bulunmadığı için kendisinin bir üst seviyesindeki yetkili root DNS makinasına bu isteği iletir(2). Root DNS aranılan adresten sorumlu olan sunucunun adresini yani uzaktaki DNS’in adresini Lokal DNS’e iletir(3). Lokal DNS aldığı bu adrese istenen sorguyu gönderir(4). Uzaktaki DNS istenen veriyi Lokal DNS’e gönderir(5). Lokal DNS ise aldığı veriyi sorgulama işleminin yapan ilk bilgisayara verir(6). Aynı isteklerin bir yerde toplanması(cache) sorgulama işleminin hızını arttırır. Lokal sunucu aynı adrese bağlanmak isteyen başka bir bilgisayar için (2) ve (3).cü adımları atlayarak işlemi daha hızlı gerçekleştirir.
Ters DNS Sorgulaması DNS sunucusu herzaman isim/IP çözümlemesi yapmaz. Eğer uygun bir şekilde kurulursaIP/isim çözümlemesi de yapabilir. Yani bir DNS sunucuya IP adresi verip, karşılığında isim de alabiliriz. Buna ters sorgulama (inverse query) denilir. Ters sorgulamayı kolaylaştırmak için in-addr.arpa adında özel bir domain yaratılır. Bu domainde de isim/IP eşlemeleri bulunur ama IP adresleri soldan sağa doğru, isimler ise sağdan sola doğru özelleştikleri için bu domaindeki adreslerin oktetleri tersten yazılır. In-addr.arpa domaini yaratıldıktan sonra işaretçi kayıtları (pointer records) denilen kayıtlar bu domaine eklenir. Örneğin, 195.142.78.98 adresine karşılık gelen bilgisayar ismini bulmak için DNS sunucuya 98.78.142.195.in-addr.arpa kayıtı sorulur.
This is the answer