Önceki İçindekiler Sonraki

1  DNS Nedir?

Alan adı sistemi (DNS - Domain Name System), alan adlarının (www.magmalinux.com gibi) internet üzerinde dağıtık, hiyerarşik bir düzende durduğu bir sistemdir. İnternetin telefon rehberi gibi düşünülebilir. Alan adı sistemi içerisinde isimlere karşılık telefon numarası yerine, internetteki sunucuların IP adresleri kayıtlıdır.

1.1  Neden DNS’e ihtiyaç duyuyoruz?

DNS, bir alan adının IP adresini bulmayı ya da bir IP adresinin alan adını bulmayı sağlar. DNS’in olmadığı bir dünya da yaşıyor olsaydık Google’a erişirken www.google.com yazmak yerine 64.233.167.99 gibi bir IP adresi yazıyor olurduk (İnternet’e bağlı her bilgisayarın bir IP adresi olduğunu hatırlayın). Her ziyaret edeceğimiz web sayfası için başka bir IP adresi ezberlediğimizi hayal edin. Bu hayal sizi yeterince korkuttuysa, DNS’in bulunduğu dünyamıza geri dönebilirsiniz. DNS’in olduğu bir dünyada ise bilmeniz gereken tek IP adresi, DNS sunucunuzun IP adresidir.

1.2  DNS Nasıl Milyonlarca Alan Adı Bilgisini Tutar?

Peki ya milyonlarca alan adının kaydı nerede tutuluyor? Nasıl tutuluyor? Milyonlarca kullanıcının aynı anda yaptığı sorguya nasıl yanıt veriliyor? Tüm bunlar olurken, milyonlarca DNS kaydı nasıl güncelleniyor? Eğer DNS’in ilk günlerindeki gibi tüm alan adı bilgileri tek bir merkezde tutuluyor olsaydı, yukarıdaki sorular bizim için gerçek bir kabus olurdu. Neyse ki, DNS sisteminin dağıtık dizin yapısı sayesinde, hiyerarşik yapıda birleşen her DNS sunucusunda, bir alan adının sadece belli bir kısmıyla ilgili bilgi tutulur.

1.3  DNS Hiyerarşisi

DNS hiyerarşisinin en tepesinde kök alan adı sunucuları (root nameservers) vardır. Şu an sayıları 13 olan kök sunucuları, her DNS sorgusunun başladığı yerdir.

Kök sunucuları sadece kendisinden bir alt seviyedeki .com, .net, .org, .tr gibi üst düzey alan adları (Top-Level Domains - TLD) sunucularının IP adreslerini bilir.

Örneğin www.magmalinux.com gibi bir adresi sorgularken, sorguladığımız DNS sunucusunun bu alan adı hakkında hiçbir bilgisi yok ise, sorguladığımız DNS sunucusu kök sunucularına bu alan adını sorar. Kök sunucuları sadece kendinden bir alt seviyedeki TLD sunucularının adreslerini bildiğinden, .com adreslerinin bilgilerini tutan TLD sunucusunun IP adresini verir. DNS sunucusu dönen bu cevap üzerine www.magmalinux.com adını com TLD sunucusunu sorar. com TLD sunucusu sadece kendinden bir alt seviyedeki magmalinux.com adının DNS sunucusunun adını (ns0.magmalinux.com) ve IP adresini (78.188.112.56) bilir ve bu bilgiyi bizim sorguladığımız DNS sunucusuna gönderir. Sorguladığımız DNS sunucusu son olarak ns0.magmalinux.com DNS sunucusuna www.magmalinux.com adını sorar. Eğer ns0.magmalinux.com DNS sunucusu www.magmalinux.com adını tanımlamışsa, ilgili adın IP adresi önce sorguladığımız DNS sunucusuna, bu sunucu tarafından da bize gönderilir. Görüldüğü gibi, DNS sunucuları aynı zamanda hakkında bilgi sahibi olmadığı alan adlarını öğrenmek için çözücü (resolver - DNS istemcisi) işlevini de görür.

1.4  DNS Sistemi Bileşenleri

DNS sistemi;

olmak üzere üç bileşenden oluşmalıdır.

1.5  Bölge Dosyaları

Bölge dosyaları bir alan adını ya da bir alt alan adını açıklayan kayıtlar içerir. Bölge dosyalarının içerdiği kayıtlara şöyle bir bakacak olursak:

A kaydı, MX kaydı gibi kelimeleri anlamadıysanız, okumaya devam edin. Yazının ilerleyen kısımlarında bunlara ayrıntılı olarak değinilecektir.

1.6  Ters Bölge Dosyaları

Ters Bölge Dosyaları IP adresine karşılık gelen alan adı araştırılırken kullanılan dosyalardır. Ters bölge dosyaları içinde IP adresine karşılık alan adı bulunan PTR kayıtları vardır. Genel kullanım alanlarından bir tanesi, spam e-postaları engellemek amacıyla gönderenin IP adresi tersine sorgulanarak, gönderen e-posta adresinin alan adı kısmıyla uyuşup uyuşmadığına bakılmasıdır.

1.7  DNS Sorguları

DNS sunucusunun en temel görevi “www.google.com’un IP adresi nedir?” gibi sorulara yanıt vermektir. Genellikle DNS sunucusuna sorulan soruların büyük bir kısmı, hakkında hiçbir bilgi sahibi olmadığı alan adlarıyla ilgilidir. DNS sunucusu yazılımları bu tip sorulara da yanıt verirler. Böyle bir sorgu cevaplandırılırken aşağıdaki yöntemlerden biri kullanılır:

1.7.1  Özyinelemeli Sorgular

Özyinelemeli sorgu, çözücünün (resolver - DNS istemcisi) sorgunun tam yanıtını istediği sorgulardır. DNS sunucusu sorgunun tam yanıtına ulaşana kadar araştırmaya devam eder. Özyinelemeli sorguları destekleyen ama “google.com” için yetkili olmayan bir DNS sunucusunun, “www.google.com” alan adının IP adresini araştırırken geçtiği adımlara bakalım:

  1. Çözücü, DNS sunucusuna “www.google.com’un IP adresi ne?” diye sorar.
  2. DNS sunucusu yerel tablosuna (ön belleğine) bakar. Eğer burada bulamazsa,
  3. DNS sunucusu, kök sunucularından bir tanesine “www.google.com” IP adresini öğrenmek için istekte bulunur.
  4. Kök sunucusu, DNS sunucusuna .com adresleri için bir TLD sunucusu adresi döner.
  5. DNS sunucusu, com TLD sunucusuna “www.google.com” IP adresini öğrenmek için istekte bulunur.
  6. TLD sunucusu, DNS sunucusuna “google.com” alan adı için yetkili DNS sunucusu adresini döner.
  7. DNS sunucusu, “google.com” DNS sunucusuna “www.google.com” IP adresini sorar.
  8. “google.com” DNS sunucusundan dönen cevap, ilk başta sorguyu başlatan çözücüye gönderilir.

1.7.2  Özyinelemeli Olmayan Sorgular

Özyinelemeli olmayan sorgu, DNS sunucusunun sorguya kısmen yanıt verdiği sorgudur. DNS sunucusu, çözücüye “www.google.com” alan adı için IP adresini dönmek yerine, bu alan adının IP adresini bilebilecek başka bir sunucunun IP adresini döner. Tüm DNS sunucular bu çeşit sorguları desteklemelidir. Özyinelemeli olmayan sorguları destekleyen fakat “google.com” için yetkili olmayan bir DNS sunucusuna, “www.google.com” alan adının IP adresi sorulduğunda gerçekleşecek adımları inceleyelim:

  1. Çözücü, DNS sunucusuna “www.google.com’un IP adresi ne?” diye sorar.
  2. DNS sunucusu yerel tablosuna (ön belleğine) bakar. Eğer burada bulamazsa,
  3. DNS sunucusu, çözücüye kök sunucularından bir tanesinin adresini döner.
  4. Çözücü, kök sunucusuna “www.google.com” IP adresini öğrenmek için istekte bulunur.
  5. Kök sunucusu, çözücüye .com adresleri için bir TLD sunucusu döner.
  6. Çözücü, com TLD sunucusuna “www.google.com” IP adresini öğrenmek için istekte bulunur.
  7. TLD sunucusu, çözücüye “google.com” alan adı için yetkili DNS sunucusu adresini döner.
  8. Çözücü, “google.com” DNS sunucusuna “www.google.com” IP adresini sorar.
  9. “google.com” dan çözücüye dönen cevapla sorgu sonlanmış olur.

Windows ve çoğu Unix’lerde DNS çözücüler olabildiğince küçük tasarlanmış çözücülerdir (stub resolvers). Yani özyinelemeli olmayan sorguları takip edebilecek yetenekleri yoktur. Dolayısıyla kişisel bilgisayarınız için DNS sunucusu belirliyorsanız, özyinelemeli sorguları destekleyen bir sunucu belirtmelisiniz.

1.8  Birincil ve İkincil DNS sunucuları

DNS sunucumuzun (birincil DNS sunucusu) arızalanması ya da herhangi bir sebeple çalışmaması durumunda, ağımızın hayati noktası olan DNS sorgularını geçici bir süre yanıtlaması için başka bir sunucuyu (ikincil DNS sunucusu) yedekte tutmalıyız.


Önceki İçindekiler Sonraki