DNS (Domain Name System - Etki Alanı Ad Sunucusu)

Eyl 06, 2013

TCP/IP ağları için kullanılan global bir isim çözümleme protokolüdür. DNS sunucuları, URL (Uniform Resource Locator-Tekbiçimli Kaynak Konumlayıcı) veya FQDN (Fully Qualified Domain Name-Tam Etki Alanı Adı) adreslerini IP'lere çözümleyerek, hatırlanması zor olan IP adresleri yerine daha kolay olan sunucu (host) isimlerinin kullanılmasına olanak verir.

DNS Yapısı

FQDN: İstemcinin etki alanı (domain) içerisindeki tam ismidir. Örnek: "bidb.itu.edu.tr"

Bir etki alanı içerisindeki makineler, isim çakışmalarını önlemek amacıyla hiyerarşik düzenle oluşturulmuş bir isim yapısı kullanır. DNS veritabanı en üstte "root" (kök) sunucuların yer aldığı bir ağaç yapısındadır. Her bir alt nokta bir etki alanı ve bu etki alanlarından ayrılan her bir parça da alt etki alanı (subdomain) olarak adlandırılır.

Kök Sunucular: DNS sisteminin en üstünde bulunurlar ve sunucu adı-ip dönüşümünün başladığı yerdir. Gelen istekleri TLD (Top Level Domain-Üst Düzey Etki Alanı) sunucularına yönlendirirler. Dünya üzerinde 13 adet kök sunucusu bulunmaktadır.

TLD Sunucular: Görev dağılımının ilk olarak yapıldığı yerdir. gTLD (generic TLD-genel TLD) ve ccTLD (country code TLD-ülke kodlu TLD)lerden oluşur.

 Belli Başlı TLD Örnekleri
 com Ticari Kuruluşlar  tr   Türkiye
 org Ticari Olmayan Kuruluşlar  us   Amerika
 mil Askeri Kurumlar  gb   İngiltere
 net Network (Ağ) Organizasyonları  de   Almanya
 edu Eğitim Kurumları  au   Avustralya
 gov Hükümet Kurumları  fr   Fransa
 int Uluslararası Kurumlar  it   İtalya
 info Bilgi Servisleri  ca   Kanada
 name Bireysel Kullanım  ru   Rusya
 tel İnternet, İletişim Servisleri  es   İspanya

İkinci Seviye Etki Alanı Sunucuları: Kişi veya kurumlara verilen, farklı uzunluklardaki etki alanı isimleridir. Örnek: "microsoft.com" vb.

Alt Etki Alanı (Subdomain): DNS ağacının genişletilerek, istenildiği zaman bölümlere ayrılması için ikinci seviye etki alanlarından üretilen ek etki alanlarıdır.

Yetkilendirme

Yönetim kolaylığı sağlanması amacı ile DNS sistemindeki etki alanlarının alt etki alanlarına bölünerek yönetimlerinin farklı kurumlara verilmesine yetkilendirme denir. Bu yolla, o alt etki alanındaki tüm verinin yönetimi, korunması ve sorumluluğu tamamen o kuruma geçmiş olur.

DNS Alan (Zone) Yapısı

Bir DNS sunucusu tarafından yönetilen etki alanına "zone" denir. İçerisinde bilgisayar isimleri, RR (resource records-kaynak kayıtları), FQDN gibi veriler tutulur.

Alan Türleri

İleri Yönlü Arama Alanı (Forward Lookup Zone): İsimden IP çözümlemesi yapan alan olarak adlandırılır.

  • Birincil Alan (Primary Zone): Oluşturulduğu yönetici (master) DNS sunucusu dışında başka bir DNS sunucusu tarafından yönetilmesi mümkün olmayan, bütün kayıtları üzerinde tutan ve DNS veritabanına yazma hakkına sahip tek alan çeşididir. Yönetici alan olarak da bilinir.
  • İkincil Alan (Secondary Zone): DNS veritabanına yazma hakkına sahip olmayan, sadece birincil alanın yazdıklarını okuma prensibiyle çalışan alan çeşididir. Belirli zaman aralıklarıyla birincil alandan veri kopyalarını başka bir DNS sunucusu üzerine alır ve onun yedeği gibi çalışır.
  • Kalıntı Alan (Stub Zone): İçerisinde NS (Name Server-Ad sunucusu), SOA (Start Of Authority-Yetki Başlangıcı) ve A(Adress Record-Adres Kaydı) kayıtlarını tutan ve üzerinde herhangi bir yetki bulundurmayan alan çeşididir. Diğer etki alanlarının NS kayıtlarını sorumlu DNS sunucusuna sorgu yapmadan kendi üzerinden yapması prensibi ile çalışır.

Ters Yönlü Arama Alanı (Reverse Lookup Zone): İleri yönlü arama alanının tersine, IP'den isim çözümlemesini yapar.

Belli Başlı DNS Kayıt Türleri

Host(A) (Adress Record-Adres Kaydı): Sunucu isimleri ile ip eşleşmesinin yapıldığı adres kayıtlarıdır.
AAA (Address Record): A kaydı ile aynı görevi yapan, ip V6 ile kullanılmak üzere tasarlanmış bir kayıttır.
NS (Name Server-Ad sunucusu): Ağ üzerinde bulunan, kullanımdaki DNS sunucularını tanımlamaya yarayan kayıttır.
SRV (Service Record-Servis Kaydı): Tek bir DNS sorgusuyla TCP/IP tabanlı benzer birçok sunucunun bulunmasını sağlayan kayıttır.
MX (Mail Exchanger-Posta Ulaştırıcı): Sistemde bulunan posta sunucularının tanımlanması ve bilgilerinin DNS tarafından bilinmesini sağlayan kayıttır.
PTR (Pointer Record-İşaretçi Kaydı): IP adresinden isim eşleşmesini üzerinde bulunduran ve sadece ters yönlü arama alanında kullanılabilen kayıttır.
SOA (Start Of Authority-Yetki Başlangıcı): Bir alan üzerinde yetkili DNS sunucusunun adını içeren ve tüm alanlar için ilk başta gelen kayıttır.
TXT (Text-Metin Kaydı): Bir metin dosyası içerisinde, belirli bir kaynak hakkındaki konum vb. bilgilerini içeren kayıttır.
CNAME (Canonical Name-Kurallı Ad): Başka bir DNS sunucusunda bulunan kaydın, farklı bir isimle alana kaydedilmesini sağlayan kayıttır.

DNS Alan Transferi

Herhangi bir alan veritabanındaki dosyaların kopyalanarak farklı DNS sunucuları tarafından da tutulması işlemine DNS Alan Transferi denir. Alan dosyaları üzerinde değişiklik sadece yönetici sunucular tarafından yapılabilir ve alan transferinin gerçekleşmesi ancak birincil DNS sunucusu üzerinde gerekli izinlerin verilmesi ile gerçekleşebilir. Birincil ve ikincil DNS sunucular arasındaki alan transferi, içinde veritabanının sürüm numarasının tutulduğu bir seri numarası yardımıyla olur. Değişen her kayıt sonrası seri numarası artar. Her sorgu öncesi ikincil DNS sunucusu bu seri numaralarına bakar ve eğer kendi seri numarası birincil DNS sunucusundan küçükse, değişiklikleri birincil sunucu üzerinden transfer eder. DNS Alan Transferi'ndeki başlıca amaç, yönetici sunucunun çökmesi veya durması durumunda ağ üzerindeki çözümlemeyi kesintisiz devam ettirmektir.

DNS sistemi ad sunucuları (name server) ve çözümleyiciler (resolver)'den oluşur. Ad sunucuları, sunucu isimleri ile eşleşen IP adreslerinin bilgilerini tutarlar. Çözümleyiciler ise DNS istemcileridir ve DNS sunucularının adreslerini içerir.
DNS sunucuları etki alanı ve alan içerisindeki yetki durumlarına göre ikiye ayrılır:

  • Yetkili DNS Ad Sunucusu (Authoritative DNS Name Server): Bir etki alanı veya alan için yapılan tüm sorgulardan sorumlu sunucudur. Birincil sunucu (Primary/Master Server) ve İkincil sunucu (Secondary/Slave Server) olmak üzere iki çeşittir.
  • Yetkisi Olmayan DNS Ad Önbellek Sunucusu (Non-Authoritative DNS Name Caching Server): Bir etki alanı veya alan için yetkilendirilmemiş, sadece ilk sorguda gelen veriyi alıp TTL (Time To Live-Yaşam Süresi) boyunca önbellekte saklamaya yarayan sunucudur. Böylelikle zamandan tasarruf edilir ve bant genişliği trafiği de etkilenmemiş olur.

DNS Sorgu Tipleri

DNS sorguları, istemci ile sunucu arasında veya sunucu ile sunucu arasında olmak üzere iki tiptir:

  • Özyinelemeli (Recursive) Sorgu: İstemcinin, ağ üzerinde bir kaynağa veya bir internet sitesine bağlanmak üzere ip adresini DNS sunucusuna sorarken yaptığı sorgu tipidir. İstemci DNS sunucusuna sorguyu yaptığında; sunucu sorguyu alır, kendi kayıtlarıyla karşılaştırır veya diğer sunuculara sorarak cevabı iletir. Olumlu veya olumsuz bu sorguya DNS tarafından mutlaka cevap dönülmelidir.
  • Tekrarlamalı (Iterative) Sorgu: DNS sunucularının kendi arasında yaptıkları sorgu tipidir. Eğer DNS sunucusu, istemcinin sorgusuna kendi veritabanından yanıt dönemiyorsa, İnternette veya yereldeki diğer DNS sunucularında bu ip'yi bulana kadar bu sorguyu döndürür. Bu sorguyu alan DNS sunucusu kendi cache(önbellek)'ine bakar ve ip adresini ya da o adresin bulunabileceği DNS sunucusunu cevap olarak döner.

Kullanım Şekillerine Göre DNS Yapıları  

Önbellek Ad Sunucusu (Caching-Only Name Server): Üzerinde sadece DNS sunucusunun kurulu olduğu, herhangi bir alan yapısının olmadığı ve isim çözümleme işinin önbellekte tutulan, belirli zaman aralılarıyla güncellenen bir dosya üzerinden yapıldığı DNS yapısıdır. Önbellekte isim-IP eşleşmelerinin hangi aralıklarla tutulacağının belirlendiği süreye TTL denir. Bu süre için varsayılan değer 60dk'dır.

İletici (Forwarder): Bir DNS sunucusunun yetkili olduğu ağ üzerinde yaptığı tekrarlamalı sorgular boyunca geçen zamandan tasarruf etmek ve oluşan bant genişliği trafiğini azaltmak amacıyla sunucu başka bir DNS sunucusuna iletilebilir. İletim sonrasında, iletildiği yeni sunucu istenilen IP adresini yetkili sunucu yerine bulur ve bildirir. Yetkili DNS sunucusunun, bilinmeyen IP adreslerini tekrarlamalı olarak sorgulamak yerine, yönlendirildiği DNS sunucusuna özyinelemeli sorgu yapmasına "forwarding" (iletim) denir. Bu sayede, yetkili sunucu çok sayıda sorgu yapmaktan kurtulur ve tek bir sorgu ile bilinmeyen IP adresini önbelleğine ekleyebilir.