Linux DNS Bölüm I


Bu makale serimizde DNS (Domain Name Server) yani alan adı sunucuları hakkında konuşuyor olacağız. Bu seriler sürecisinde Linux üzerindeki DNS ve BIND servisleri ile ilgili bil vermeye çalışacağım. Serileri sabır ile okuyup, bitirdikten sonra Linux sunucular üzerinde DNS servislerini kurabilecek, yapılandırabilecek ve yönetebilecek seviyeye gelmiş olacaksınız.

Açıklamalar:
DNS = Alan Adı Sunucusu(Domain Name Server).

DNS şu anda dünya üzerinde bulunan en büyük veritabanlarından biridir. Aslında veritabanı tabirinin ne kadar doğru olduğunu bilmiyorum çünkü veritabanı dendiğinde çoğumuzun aklına ORACLE Ya da MySQL benzeri veritabanı sunucuları geliyor. O yüzden gelin biz buna veritabaın yerine dijital telefon rehberi adı verelim.

DNS, yukarıda adını verdiğimiz telefon rehberi ile aynı mantıkta çalıştırır ve rehberde olduğu gibi isimleri numaralar ile eşleştirir. Burada isimlerin yerini alan adları, numaraların yerini ise IP adresleri alır(www.google.com – 212.77.192.59).

Telefon numaraları örneğinden devam edersek, telefon şirketleri numaraları ülke, şehir,bölge olarak sınıflara ayırır. DNS’de aynı telefon şirketleri gibi alan adlarını üst seviye alan adları(TLD- Top Level Domain) olarak sınıflara ayırır ve bu dizin adreslerini kök dizinde tutar. Üst seviye alan adları ve kök dizin hakkında makalenin ileri bölümlerinde detaylı bilgi vereceğim.

Peki bilgisayarımız http://www.google.com adresinin hangi sunucuda bulunduğunu nasıl biliyor? Aslında bilgisayarımız bu sorunun cevabını bilmiyor. Bu soruya cevap bulabilmesi için bilgisayarımız üzerinde birkaç işlemin gerçekleşmesi gerekmektedir.

DNS alan adlarını hiyerarşik bir düzende tutar. Ad sunucuları(nameservers) alan adlarının bu hiyerarşik düzen içerisine nerede olduğu hakkında bilgi verirler. İstemci tarafında ise çözümleyiciler(resolvers) isim sunucularından alan adı bilgilerini istenmesini sağlar. Aşağıdaki şekil de DNS sorgusunun nasıl çalıştığı gösterilmiştir.

Çoğu küçük ölçekli şirketler DNS sunucusu olarak servis sağlayıcılarının DNS sunucularını kullanmaktadırlar. Peki yerel DNS sunucuları mı, yoksa servis sağlayıcıları DNS sunucuları mı?

Aslında bir sorunun cevabını vermek, bu sunucuları yönetebilecek yetenekleriniz ile orantılıdır. Ben kontrolümde olmayan sunucuları kullanmayı pek sevmeyen bir kişi olarak, kendi sunucularımı kurmaktan yanayım (Uçakta bile her an uçağın kontrolünü alacakmışım gibi hissediyorum:)). Yerel sunucuların avantajları olarak aklıma ilk gelenleri sıralamak gerekirse;

  • Yönetim kolaylığı.
  • Kontrol (Web ve e-posta bilgilerinin yerel olarak tutulması).
  • İstediğiniz kadar sunucu eklenebilmesi.
  • İstediğiniz kadar alan adı barındırma.
  • Eğer e-ticaret yapıyorsa, veritabanı kontrolü.
  • BEDAVA!!! :)

Bu listeyi istersek uzatabiliriz. Servis sağlayıcı sunucularında aklıma ilk gelen ise güvenlik ayarlarının üst seviyede ayarlanıp, test edilmiş olmasıdır. Eğer sizin aklınıza gelenler varsa yorumlar bölümünde paylaşırsanız memnun olurum.

Son olarak günümüzde DNS sunucularının üstlenmiş oldukları rolleri düşünürsek, DNS kurulum, yapılandırma ve yönetebilmek sistem yöneticiliğinde en kritik noktalardan biri olduğu gibi elde edilebilecek en değerli yetenek olduğunu göreceğiz.

BIND, Linux DNS Servisi

BIND ( Berkeley Internet Name Daemon), Unix ve Linux işletim sistemleri üzerinde geçerli olarak gelen bir DNS servisidir.

Dünyadaki isim sunucularının büyük çoğunluğu BIND üzerinde çalışır ( Bir ara Microsoft sunucularının bile BIND üzerinde koştuğu efsanesi yayılmıştı:)). BIND’e alternatif olarak djbdns (http://cr.yp.to/djbdns.html) gösterilebilir. Djbdns genelde büyük ölçekli sunucularda kullanılır.

BIND 3 kısımdan oluşur.

  • Named
  • resolver library (çözümleyici kütüphane)
  • tools(araçlar)

named sunucuya gelen alan adı sorgularına cevap verir. Resolver library ise web tarayıcıları yada e-posta gibi uygulamaların DNS isminden IP adreslerini çözmesine yardımcı olur. Bu işlem için /etc/resolv.conf dosyasını kullanır. Son kısımda ise DNS sunucularını yönetmek için araçlar bulunur. Makale’nin ilerleyen bölümlerinde yukarıdaki başlıklar hakkında detaylı bilgiler veriyor olacağız.

DNS Sunucu Tipleri

Yetkili Alan Sunuları

Şirketimizde 10 sunucu ve 5 adet internet alan adını yönettiğimizi varsayalım. Internet üzerinden barındırmakta olduğumuz 5 adet internet sitesine ulaşılmak istendiğinde, yapılandırmış olduğumuz DNS sunucusuna bir sorgu gönderilecektir. Makale’nin başında bahsettiğimiz telefon rehberi mantığı bu örnekte kullanabiliriz. Telefon rehberinde Mehmet adlı kişiyi bulmak için önce rehber’e başvurulur, daha sonra M harfi açılarak Mehmet’e ait numara bulunur. İşte DNS bu işlemleri named.conf dosyası ile yapar. Gelen sorguyu alan BIND named.conf dosyasına bakar ve olumlu yada olumsuz bir cevap verir.

Yukarıda yazdığımız işlemleri gerçekleştiren ad sunucusuna Yetkili DNS Sunucu adı verilir. Bu sunucuların yapılandırma bilgisini ve named.conf hakkında detaylı bilgileri Linux DNS Sunucu Yapılandırması bölümünde bulabilirsiniz.

Birincil(Primary) ve İkincil(Secondary) Alan Sunuları

Internet üzerinde alan adlarımıza en az iki sunucu tanımlamamız gerekir. Bu sunucular birincil(primary,master) ve ikincil sunucuyu(secondary, slave) olarak adlandırılır. Bu yapılandırmanın sebebi birincil sunucunun, ikincil sunucuya alan transfer (zone transfer) işlemini gerçekleştirebilmesidir. Sunucu üzerinde yapılacak tüm değişiklikler birinci sunucuda yapılır ve ikincil sunucuya otomatik olarak uygulanır. Bu işlem ikincil sunucunun, birincil sunucuyu belirli aralıklar ile sorgulaması ile gerçekleşir.

Bu noktada dikkat edilmesi konu, birincil sunucularda meydana gelebilecek sorunlarda, ikincil sunucuların devreye girmesidir. Ancak ikincil sunucular, belirli aralıklar ile birincil sunucuları güncellemeler hakkında sorguladıkları için devamlı birincil sunucu olarak kalamazlar. İkincil sunucular belirli bir zaman sonunda güncelleme isteklerine cevap alamayacaklarından, gelen isteklere cevap vermeyeceklerdir.

Sunucuların hangi rolü üstleneceği bilgisi yapılandırma dosyalarında belirtilir.

Önbellek(Caching Only) Alan Sunuları

Sistem yöneticileri, ön bellek sunucularını, yetkili sunucular üzerindeki yükü azaltmak amacı ile kullanırlar. Önbellek sunucuları, yetkili sunuculardan aldıkları bilgileri, belirlenen zaman içerisinde saklayarak, DNS sorgularının hızlı çalışmasını sağlarlar.

Not: Bir Linux sistemine BIND’i kurduğunuz anda önbellek sunucusu geçerli sunucu olarak gelir.

Alan Adı Sorgulaması Nasıl?

DNS dizin yapısı 3 kısımdan oluşur.

  • Kök sunucular(Root Servers): Tüm sorgular bu dizinden başlar. Dünya üzerinde 13 adet kök sunucu bulunur. Bu sunucuların listesi named.ca dosyasında tutulur.
  • Üst seviye alan adı sunucuları(Top Level Domain Servers):.com, .edu, .org vb. Gibi üst seviye alan adlarını içerir.
  • Son kısım ise birincil dns sunucularının bulunduğu bölümdür.

Bu yapılandırmada en üst sunucular sadece bir alt seviye sunucuların IP adreslerini veritabanlarında saklarlar ve gelen isteklere göre gerekli sunuculara yönlendirirler.

Üst seviye alan adı sunucuları ise kendilerine ait tüm sunucuların adreslerini tutarlar. Yukarıda da belirttiğimiz gibi son kısım ise birincil DNS sunucularıdır.

Normalde bilgisayarlar isim çözümleme işlemine kendi bünyelerinde barındırdıkları hosts dosyasından başlarlar. Hosts dosyasının güncellemesi el ile yapılır. Konumuz dışında olduğundan makale dışı bırakıyoruz.

Alan adı sorgulama örneği

Şirketimizde bir adet birincil DNS sunucusu olduğunu varsayalım. Web tarayıcınıza http://www.cozumpark.com yazdığınızda, bilgisayarınızı DNS sunucunuza bu adresin IP adresini bilip bilmediğini sorar. Eğer DNS sunucunuz cevabı bilmiyorsa, kök sunucularına sorar.

Kök sunucuları gelen adresin üst seviye alan adına göre, bu durumda .com, gerekli üst seviye sunucusuna yönlendirir. Bu sunucular tüm birincil DNS sunucularının bilgilerini tutar. Örneğimizdeki sorguda üst seviye sunucusu cevap olarak IP adresi ve sunucu bilgisi verecektir.http://www.cozumpark.com ns1.cozumpark.com 212.77.192.59

Bu cevap sizin DNS sunucunuza gelerek web tarayıcınızda Çözümpark sitesinin görüntülenmesini sağlayacaktır. Sunucunuz gelen bilgiyi, belleğine kayıt ederek, bir sonraki sorguyu direkt olarak kendi veritabanından çalıştırarak, sorgulama işleminin zamanını kısaltacaktır. Ancak bu bilgiler bellekte, DNS sunucusunun ayar dosyasında belirtildiği süre zarfında tutulacaktır.

Bir sonraki makalede DNS sunucumuzu kurmaya başlıyor olacağız.

Reklamlar

Comments are disabled.

%d blogcu bunu beğendi: