DNS Nedir?
DNS (Domain Name System), internet ortamında alan adı-IP, IP-alan adı dönüşümlerini gerçekleştiren sistemdir. DNS sunucuları, URL (Uniform Resource Locator) ya da FQDN(Fully Qualified Domain Name) olarak adlandırılan adreslerin IP’lere çözümlenmesini sağlarlar. Bu işlem, hatırlaması zor olan IP adreslerini kullanmak yerine, hatırlaması daha kolay olan host isimlerinin kullanımına izin verir.
DNS host isimleri ile IP adresleri arasında çift taraflı dönüşüm sağlayan dağıtık bir database’ dir. DNS veritabanı sistemi en tepede root sunucularının yer aldığı ağaç yapısındadır. Ağaç yapısındaki dallanma maksimum 127 basamaktır. Her nokta maksimum 63 karakterden oluşabilmektedir. DNS sisteminde root nokta (.) ile gösterilir. Veritabanı üzerindeki her bir altnokta “domain”; bu domainden kollara ayrılan her bir parça ise “subdomain” olarak adlandırılır. Bir adres en alttan root’a gelecek şekilde gösterilir. Aynı düğüm (parent node) altındaki düğümlerin (children node) farklı isimde olması gerekir. Böylelikle domain adları tek olması sağlanmış ve olası çakışmalar önlenmiş olur.

DNS TARİHÇESİ
1960’ların sonlarına doğru Amerika’da ilk geniş alan bilgisayar ağı olan ARPAnet kuruldu. Amerika’da bulunan araştırma şirketleri arasında dosya, yazılım ve mail haberleşmesi ile birlikte isim-IP çözümlemesi için sürekli güncel tutulması gereken HOSTS.TXT dosyası oluşturuldu. HOSTS.TXT dosyası SRI-NIC ismi verilen bir bilgisayarda tutuluyordu. Ağa bağlanan her yeni bilgisayar ile bu dosya büyümekteydi. Ayrıca ağda bulunan bilgisayarların çözümleme işlemi için SRI-NIC’ e bağlanmaları gerekti. 1970 lerin sonlarına doğru HOSTS.TXT dosyası sistemin ihtiyaçlarına yetersiz kalmaya başlamıştı.
Bir bilgisayar üzerinden bütün isim-IP eşleştirmelerini çekme işlemi sistemin ihtiyaçlarına gerekli cevabı veremeyince DNS sistemi ortaya çıktı. 1984 te yayımlanan RFC 882 ve 883 e göre DNS sistemi global olarak geçerli olmakla birlikte yerel olarak ta yönetilebilir hale geldi. Yönetimin dağıtık yapıda olması internet trafiğini hafifletirken yerel olarak yönetilebilmesi sistemin daima güncel olmasına imkan sağlamış oldu.
DNS MİMARİSİ
- Root Sunucular
DNS sisteminin en üstünde bulunan root sunucuları internet ortamında kritik bir rol üstlenmektedirler. Çünkü host isimleri-ip dönüşümü ilk olarak root sunucularında başlar. Root sunucuları Top-Level Domain(Üst Düzey Alan ) sunucularının adresini bilirler ve gelen istekleri gerekli TLD sunucularına yönlendirirler. Internet üzerindeki isim çözümlemesinin doğru, güvenli ve devamlı olması için root sunucular gereklidir. Dünya üzerinde isim bazında 13 tane root sunucu bulunmaktadır.
- Top-Level Domain Sunucular
DNS domain uzayında ilk görev paylaşımı TLD’ler seviyesinde gerçekleşir. 2009 Ocak ayındaki verilere göre 20 adet jenerik TLD(gTLD) ve 248 adet ülke kodlu ccTLD (country code TLD ) bulunmaktadır. Belli başlı TLD’ler ve açıklamaları şunlardır:

- İkinci Seviye Domain Sunucuları
İnternette kullanılması için kişi ya da kurumlara verilen değişken uzunluktaki domain adlarıdır. Örneğin: microsoft.com; cisco.com; teknosa.com…
- Altdomainler
İkinci seviye domainlerden türetilen ilave domianlerdir. Altdomainler DNS ağacının büyüterek istenildiğinde bölümlere ayrılmasına yardımcı olur.
- Sunucu Adı (Host Name)
DNS ağacında bir yaprağa karşı gelen isimler ve kaynak kayıtlarıdır. DNS alan adlandırmasında en sonda yer alırlar. “Sunucu Adı - Host Name” terimi bilgisayar ağlarında bir makine adına karşılık gelir. Bu makine basit bir bilgisayar olabileceği gibi bir ağ yazıcısı, fax makinası, modem, depolama ünitesi, sunucu vb ağa bağlanabilen herhangi bir araç olabilir. Bu makinaların her birine özgün bir sunucu adı atanabilir.
DNS sisteminde ağ üzerindeki makinalar sunucu adı ve alan adı birleşmesiyle adlandırılırlar. FQDN(Fully Qualified Domain Name) denen bu yapıda her domain ismi maksimum 63 karakterden oluşabilir ve toplamda da 255 karakteri aşamaz.
DNS YETKİLENDİRME
DNS’ te her bir domain farklı bir organizasyon tarafından yönetilir. Her organizasyon da kendi domain’ ini farklı subdomain’ lere bölüp yönetimlerini diğer organizasyonlara verebilir. Böylece DNS sisteminin yönetimi dağıtık hale getirilerek kolaylaştırılır. DNS sisteminin temel amaçlarından biri olan yönetimin dağıtılması yetkilendirme (delegation) aracılığı ile gerçekleştirilir.
Yetkilendirme ile, herhangi bir domain’ i yöneten kuruluş; bu domain’ i birçok subdomain’ e bölebilir. Subdomain’ lerden herhangi birinin sorumluğunun başka bir organizasyona verilmesi “delegation” olarak adlandırılır. Her bir subdomain için farklı kurumlar yetkilendirilebilir. Yani yetkili kurum o subdomain’ deki tüm veriyi korumak ve yönetmekle sorumludur. İstediği şekilde veriyi değiştirebilir ve hatta kendi subdomain’ inini daha birçok subdomain’ e bölerek yetkilendirir. İlk domain sadece diğer subdomain’ lerin veri kaynaklarına doğru pointer’ lar (işaretçi) içerir. Gelen sorguları da bu sayede yönlendirir.
Tüm top-level domain’ ler ile second-level ve daha alt seviyedeki domain’ ler delegation ile daha küçük birçok yönetilebilir birime ayrılabilirler. Bir Dns server tarafından yönetilen, isim cözümlemesi yapılan bu kücük birimlere zone adı verilir. Bu birimlere ait bilgilerin tutulduğu name server’ lara da o zone için “authority – yetkili” denilir.
Zone Türleri
Birincil (Primary) Zone: Bölge veritabanı dosyasının master kopyasıdır. Bölgenin yaratıldığı bilgisayarda yer alır.
İkincil (Secondary) Zone: Bölge veritabanı dosyasının bir kopyasıdır (replika). Bu dosya ana DNS sunucu üzerinde ya da diğer DNS sunucularında yaratılır. Dosya read-only dir.
Kalıntı (Stub) Zone: Yalnızca NS, SOA ve A kayıtlarını içeren zondur. Stub zone içeren sunucu o zondan sorumlu (authoritative) değildir.
Birincil zone ile ikincil zone bilgilerinin eşitliği SOA kaydı içindeki seri numarasıyla belirlenir. Seri numarasının eşit olması zone transferinin gerekli olmadığını belirtir. Master sunucudaki seri numarasının daha büyük olması zone’un güncellendiğini ve zone transferinin gerekli olduğunu gösterir.
Zone ile domain arasındaki fark zone’un sadece kendi adıyla aynı olan domain ile ilgili bilgileri tutar. Yetkilendirilmiş subdomainlerdeki domain isimlerini içermez. Yani aşağıdaki şekle göre itü domaini itüdeki bütün bilgisayarları içerirken itü zone’u; itü domaininde yetkilendirilmemiş bölgeleri içerir.

Name serverlar domain yerine zone bilgilerini tutarlar. Çünkü bir domain, name server’ ın ihtiyacından daha fazla bilgi içerebilir. Domain, diğer name server’ ların yetkili olduğu bilgileri taşıyabilir. Fakat zone delegation ile sınırlandırıldığından bu bilgileri asla taşımaz.
Name server’ ların domain yerine neden zone’ ları tuttukları çok önemlidir. Bir root server’ ın root zone yerine root domain’ ini içerdiğini düşünürsek, bu root server’ ın tüm name uzayını içerdiği anlamına gelecektir.
DNS MİMARİSİ
DNS sistemi name server’ lar (isim sunucuları) ve resolver’ lardan (çözümleyici) oluşur. Name server’ lar host isimlerine karşılık gelen IP adres bilgilerini tutarlar. Resolver’ lar ise DNS istemcileridir(client), bilgisayarlara yüklü TCP/IP protokolünün bir bileşenidir ve DNS server yada server’ ların adreslerini içerir.
DNS serverları herhangi bir domain/zone için yetkili olup olmamalarına göre ikiye ayrılır:
Authoritative DNS name server :
Bir zone veya domain için yapılan tüm DNS sorgularından sorumludur.
- Primary server (Master Server)
- Secondary server (Slave Server)
Non-Authoritative DNS name caching server :
Bir zone veya domain için yetkilendirilmemiştir. İlk sorgulamada gereken veriyi authoritative server’ lardan aldıktan sonra TTL süresince cache’ te tutar. Böylelikle zamandan kazanç sağlamakla birlikte bandwidth trafiği de fazla etkilenmez
DNS SORGU TİPLERİ
Dns sorguları bir clientten dns servera yada dns server dan başkabir dns server a olabilir. Bu iki sorgu tipleri ayrı ayrı değerlendirilmektedir. Recursive Query ve İterative Query olmak üzere iki çeşit sorgu tipi vardır.
Recursive Sorgu
Client tarafından dns server a yapılan sorgudur. İstemcinin network teki bir kaynağa yada internetteki herhangi bir siteye bağlanmak için ip adresini dns server a sorarken yaptığı sorgu tipidir. Bu sorgu olumlu yada olumsuz cevaplanmak zorundadır. Client sorgusunu dns servera recursive sorgu olarak yapar, dns server da clientin yaptığı sorguyu alır ve cevabı iletir. Eğer dns server cevabı bilmiyorsa diğer dns serve yada server lara sorarak öğrenir ve sorguyu yapan client e cevabı olumlu yada olumsuz olarak yapar
Iterative Sorgu
Dns server ların kendi aralarında yaptıkları sorgulara denir. Client in dns server a ulaşmak istediği ip adresini sorduğında dns server bu ip adresini biliyorsa cevap verir. Eğer dns server client in istediği isim cözümlemesini kendi database inden yada cache inden karşılayamıyorsa internette yada localde bulunan diğer dns serverlardan ip adresini ister. Bu işlemi istenilen ip adresini bulana kadar sürdürür. İterative sorgu ile sorgu yapılan server dan sahip olduğu en sağlıklı cevabı ister. İterative sorguyu alan dns server kendi database ine ve cache ine bakar ve sorguyu yapan dns server a ip adresi yada aradığı ip adresini bulabileceği dns server ın ip adresi bildirir. Dns server in diğer dns server yada serverlara yaptığı sorgulama tipi iterative sorgudur.
DNS İSİM ÇÖZÜMLEMESİ
DNS sunucuları sorumlu olduğu ve de başka yollara ile öğrendiği bütün FQDN’leri ve IP adreslerinin listesini belleğinde saklar. İstemcilerin öğrenmek istediği IP ve FQDN’leri öğrenebilmesi için sorgusunda FQDN/IP, sorgu çeşidini (Kaynak Kaydı(Resource Record)) belirtmesi gerekir.
İstemci tarafından yapılan bir DNS sorgusunun işleyişi şu şekilde gerçekleşir:
1. İstemci öncelikle kendi belleğinde kayıtlı adresleri tarar
2. İstemci tarafından cache’lenmiş kayıtlara bakar
3. İstemci kendisinde aradığı cevabı, sorguyu belleğinde kayıtlı DNS sunucularına gönderir
4. DNS sunucuları gelen sorgunun yetkili olduğu kısımda olup olmadığına bakar
5. Değilse cevabın cache’inde olup olmadığını kontrol eder
6. Eğer DNS sunucusu sorguya cevap bulamazsa, belleğinde kayıtlı Root(Kök) sunucularına sorguyu yönlendirir.
7. Kök sunucuları sorguyu ilgili TLD sunucularına yönlendirir.
8. TLD sunucuları sorguyu ilgili sunuculara yönlendirerek istemciye cevap dönülmesi sağlanır

Caching
Caching işlemi DNS sorgularını hızlandıran en önemli özelliklerden biridir. DNS sunucuları ve istemciler bir kere öğrendikleri bilgiyi belli bir TTL(Time-To-Live) değeri süresince belleklerinde tutarlar. Böylece yapılacak sonraki aynı sorgular için işlem süresi azalır. Caching ile Root sunucuların sürekli sorgulanması önlenir aynı zamanda da veri trafiğinden tasarruf edilmiş olur.
TTL(Time-To-Live Yaşam Süresi)
DNS sunucularının cache’lerindeki bilgi sürekli tutulmaz. Aksi halde authoritative server’ lardaki değişiklik network üzerinde geçerli olmaz böylece istemcilere yanlış cevap dönülmüş olur. Bu yüzden bilgiler sunucularda “TTL – Time to Live” denilen bir yaşam süresince tutulur. Bu süre aşılınca cache’ teki bilgi atılır ve yenilenmiş veri authoritative server’ lardan çekilir.
Ters DNS Çözümlemesi
IP adresinden isim çözümlemesi yapılmasıdır. Ters sorgulama için “in-addr.arpa” adında özel bir domain bulunmaktadır. Örneğin, 160.75.99.72 adresine karşılık gelen bilgisayar ismini bulmak için DNS sunucuya “72.99.75.160.in-addr.arpa” kayıtı sorulur.

DNS SUNUCULARINDA YÜK DENGELEMESİ (ROUND-ROBIN)
Çok fazla istek alan domain’ lerin (google.com, yahoo.com gibi) tutulduğu sunucularda aşırı trafik meydana gelir. Yük dağılımının yapılması ve yedekleme amacıyla bu domain’ ler birden fazla server’ da tutulur. Yani aynı host ismine birden fazla IP adresi atanır.

Mehmet Burak Uysal
Bu yazıyı beğendiniz mi?

13 Kasım 2009, 01:41
Elinize sağlık, SNMP ile alakalı yazılarınızı da bekliyorum.
19 Kasım 2009, 21:17
Guzel bir yazi olmus ama yazinin altinda kaynak belirtseniz daha iyi olurdu. Yazının son cümlesi doğrudan http://ipucu.enderunix.org/view.php?id=271&lang=tr adresinden alınmış gözüküyor.
25 Kasım 2009, 17:35
Belirtilen kısmı anonim bir ppt sunumundan almıştım. İlgili kısım yazıdan çıkartılmıştır. İlginize teşekkür ederim.
24 Haziran 2011, 13:57
elinize sağlık güzel bi kaynak olmuş…
28 Ağustos 2011, 12:30
merhaba,
belki de anonim bir ppt sunusu olarak belirttiğiniz o sunudur. ihtiyaç duyulan başka bilgiler olursa benimle iletişime geçebilirsiniz.
yazı güzel olmuş, gördüğüm resimler (dns sorgusu, reverse tree yapısı) zamanında hazırlamış olduğum bir sunudan direk alınmış.
selamlar…
21 Eylül 2011, 20:23
Merhabalar Turan Bey;
Eğer bahsedilen sunum sizin hazırladığınız ise vakti zamanında benimde bu konuyu öğrenmemde çok faydalı olmuştu. O bakımdan tekrar teşekkür ederim. Sizleri aramızda yazar olarak ta görmek isteriz. Eğer isterseniz bizimle iletişime geçebilirsiniz. Sağlıcakla…