BIND Yapılandırması
Önceki DNS (Alan İsimlendirme Sistemi) Sonraki
BIND Yapılandırması
BIND, Linux dağıtımlarının hepsi ile gelen ve alan adı sorgularına yanıt veren yazılım paketidir. Açılımı Berkley Internet Domain Name şeklindedir.
Doğrudan Linux kurulu olan bir sunucu üzerindeki BIND yapılandırmasına geçmeden DNS ile ilgili temel birkaç konudan bahsetmekte fayda var. DNS ile ilgili yazılımları istemci ve sunucu olarak ikiye ayırmak daha doğru olur:
Sunucu, istemciden gelen sorgulara yanıt veren ve sürekli çalışan bir işlem olup BIND paketinden çıkan named yazılımı bu işi görür. İstemcilerse Linux dağıtımlarıyla gelen host, nslookup vb. programlar olup sorguyu yapan yazılımlardır. Bununla birlikte BIND yapılandırmasında sıklıkla karşımıza çıkacak olan birkaç kavram aşağıda açıklanmaktadır. Yeri geldikçe diğer kavramlara da değinilecektir.
BIND paketi bütün Linux dağıtımları ile gelir. BIND'ın yeni versiyonuna ihtiyaç duyduğunuzda ftp.metu.edu.tr adresinden paketi transfer edebilirsiniz. Gerekli kurulumları yaptığınızda /usr/sbin dizini altına named binary dosyasını koyacaktır.
named yapılandırması ile ilgili dosyalar ve işlevleri aşağıda yeralıyor.
Yukarıda belirtilen dosya isimlerinden named.boot dışındaki dosya isimleri genelde karşılaşılan isimler olduğu için kullanılmıştır. Bu dosya isimlerini istediğiniz gibi değiştirebilirsiniz.
``named'' yapılandırmasıyla ilgili kullanılan örnek dosyalar linux.org.tr alanının alan adı sunuculuğunu yapan metu.linux.org.tr makinasından alınmıştır (linux.org.tr ve metu.linux.org.tr aynı sunuculardır).
named.boot Dosyası
named.boot dosyası named programı çalıştığı zaman baktığı ilk yapılandırma dosyasıdır ve /etc dizini altındadır. named, bu yapılandırma dosyası ile diğer dosyalara veya DNS tanımlarının tutulduğu diğer dosyalara nasıl ulaşacağını öğrenir. Aşağıda linux.org.tr sunucusuna ait named.boot dosyasını göreceksiniz.
;
;    boot file for name server
;
directory /etc/namedb

;type           domain                source host/file          backup file

cache           .                                               root.cache
primary         linux.org.tr                                    named.hosts
primary         0.0.127.IN-ADDR.ARPA                            named.local
forwarders      144.122.199.20
named.boot dosyasında yer alan satırlara kısaca göz atacak olursak,
Caching Only Alan Adı Sunucu Yapılandırması
linux.org.tr sunucusu üzerindeki alan adı sunucu sadece caching only olarak çalışacak olsaydı, yukarıda belirtilen yapılandırma satırı aşağıdaki hale gelirdi.
named.boot
-----------
;
;    boot file for name server
;
;type           domain                source host/file          backup file

cache           .                                               root.cache
primary         0.0.127.IN-ADDR.ARPA                            named.local
Bu yapılandırmayla çalışan alan adı sunucusu, named.cache dosyasında yer alan root sunucuları kullanarak gelen sorgulara yanıt verip, sorguların yanıtlarını cache'te tutmaktadır.
Birincil ve İkincil Alan Adı Sunucusu Yapılandırması
Yine linux.org.tr named.boot dosyasına bakacak olursak,
primary         linux.org.tr            named.hosts
satırıyla linux.org.tr makinası linux.org.tr alanı için primary sunucu ve bu domain ile ilgili bilgilerin tutulduğu dosya ise named.hosts dosyasıdır.
Yukarıdaki satırı named.boot dosyasına yazmamızla aslında işimiz bitmiyor.
linux.org.tr sunucusu linux.org.tr alanı için primary olduğunu, Türkiye için root sunucu olan knidos.cc.metu.edu.tr sunucusunun da bilmesi gerekiyor. Bunun için de http://www.metu.edu.tr/~dnsadmin adresinden gerekli form doldurup tanımların ODTÜ'deki yöneticiler tarafından yapılması gerekiyor. Bu form doğrultusunda da knidos.cc.metu.edu.tr sunucusunda aşağıdaki satırların girilmesi şarttır.
linux.org.tr.           IN      NS      metu.linux.org.tr.
metu.linux.org.tr.      IN      A       144.122.199.199
Şu an bu işlemler zaten yapılmış olup sadece bilginiz olması için bu satırlar yazılmıştır.
primary         0.0.127.IN-ADDR.ARPA    named.local
satırıyla linux.org.tr makinasında 127.0.0.1 IP adresine karşılık gelen loopback isminin tanımlarının yer alacağı dosya adı verilmiştir. Eğer Türkiye Linux Kullanıcıları Grubunun kendine ait bir IP adres bloğu, örneğin şu an ODTÜ'de kullanılan 144.122.199.0 bloğu verilmiş ve bu blok kendi alt gruplarına dağıtılmış olsaydı bu adreslere ait reverse tanımlar yine linux.org.tr makinasında tutulacaktı. Böyle bir durumda named.boot dosyasına aşağıdaki satır benzeri bir satır daha eklemek gerekecekti.
primary         199.122.144.IN-ADDR.ARPA    named.144.122.199
Türkiye Linux Kullanıcıları Grubu için kullanılan IP adresine ait gerekli reverse tanımı ilgili üniversitenin alan adı sunucusunda girilmiş durumdadır. Örneğin, metu.linux.org.tr için knidos.cc.metu.edu.tr sunucusunda aşağıdaki satır tanımlanmıştır.
199.199.122.144         IN      PTR     metu.linux.org.tr.
Bazı programların reverse tanımlarını kullanıyor olması nedeniyle (örneğin tcpd) bu tür tanımların girilmesi önemlidir. Bir veya daha fazla C sınıfı şeklinde IP adres blokları aldığınız zaman IP adresi aldığınız kurumdan, bu adres aralığının reverse tanımlarını sizin alan adı sunucunuza yönlendirilmesini isteyebilirsiniz. Bir C sınıfından az sayıdaki IP adresleri içinse yine IP adresini aldığınız kurum gerekli reverse tanımları sizin için yapmak zorundadır.
Şu an linux.org.tr makinası herhangi bir başka primary sunucunun secondary sunucusu olmadığı için named.boot dosyasında secondary geçen bir satıra rastlamadık. Örneğin linux.org.tr sunucusu linux.org sunucusunun secondary alan adı sunucusu olduğunu varsayalım, bu durumda aşağıdaki satırı named.boot dosyasına eklemememiz gerekecek.
secondary         linux.org     198.182.196.49    SEC.linux.org
Bu satırı eklediğimiz andan itibaren named belirli aralıklarla gidip linux.org sunucusundan DNS dosyalarının bir kopyasını linux.org.tr sunucusuna aktaracak. linux.org alanının secondary sunucusu oldugumuza dair bilginin de ayrıca linux.org alanının primary tanımlarını tutan sunucuda belirtilmesi gerekir.
named Yapılandırma Dosyası
named yapılandırma dosyalarında (named.hosts, named.local, named.cache, named.rev) karşılaşılan yapılandırma parametreleri ve ne anlama geldikleri aşağıda yeralmaktadır.
named.hosts, named.local vb. dosyalara girilen standart bir DNS kaydı aşağıdaki yapıda karşımıza çıkar.
[name] [ttl] IN type data
[ ] içerisinde belirtilen değerler isteğe bağlı olup gerekmediği durumlarda yazılmayabilir.
Şimdi de bu kısaltmaların bulunduğu named.cache, named.hosts, named.local gibi dosyalardan birer kesit alıp içeriklerine göz atalım.
metu:/etc/namedb# more named.cache
;       last update:    Nov 8, 1995
;       related version of root zone:   1995110800
;
;
; formerly NS.INTERNIC.NET
;
.                        3600000  IN  NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
;
; formerly NS1.ISI.EDU
;
.                        3600000      NS    B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET.      3600000      A     128.9.0.107
;
;
Yukarıdaki dosya, root name server'ların listesinin yer aldığı dosyadır. Süregelen değişiklikler doğrultusunda bu dosyada yer alan kayıtlar da değişebilirler. Sürekli güncel tutmak amacıyla ftp://nic.ddn.mil/netinfo/root-servers.txt adresinden dosyanın yeni halini belirli aralıklarla almakta fayda vardır.
ttl süresi ise olabildiğince büyük verilerek root sunucuların herhangi bir şekilde cache'ten silinmesi önlenmiş olur.
metu:/etc/namedb# more named.local
;
;       @(#)named.local 1.1     (Berkeley)      86/01/21
;
$ORIGIN 0.0.127.in-addr.arpa.
@       IN      SOA     metu.linux.org.tr. root.metu.linux.org.tr.  (
                                1996012201 ; Serial
                                3600    ; Refresh
                                300     ; Retry
                                3600000 ; Expire
                                14400 )  ; Minimum
        IN      NS      metu.linux.org.tr.
1       IN      PTR     localhost.
IN SOA ile başlayan satırda metu.linux.org.tr adresi ilgili domain konusunda yetkili sunucuyu, root.metu.linux.org.tr ise herhangi bir şekilde sorun olduğunda bağlantı kurulacak e-posta adresini (root@metu.linux.org.tr) belirtir.
Diğer bilgilerse sırayla metu.linux.org.tr'ın ``primary name server'' olduğunu ve 127.0.0.1 IP adresine localhost isminin karşılık geldiğini belirtir.
metu:/etc/namedb# more named.hosts
; Authoritative data for Berkeley.EDU (ORIGIN assumed Berkeley.EDU)
;
$ORIGIN linux.org.tr.
@               IN      SOA     metu.linux.org.tr. root.metu.linux.org.tr. (
                                1997072902      ; Serial
                                10800   ; Refresh 3 hours
                                3600    ; Retry   1 hour
                                3600000 ; Expire  1000 hours
                                86400 ) ; Minimum 24 hours
                IN      MX          10 metu
                IN      NS          metu
                IN      HINFO       "i486" "Linux 2.0.27"
localhost.      IN      A           127.1
metu            IN      A           144.122.199.199
                IN      A           144.122.199.199
www             IN      CNAME       metu
ftp             IN      CNAME       metu
gopher          IN      CNAME       metu
listproc        IN      CNAME       metu
ege             IN      A           155.223.97.31
www.ege         IN      CNAME       ege
burada diğer named.local dosyasından farklı olarak makina ismi - IP adresi eşlemesi yapılmış olup MX ve CNAME kavramları kullanılmıştır.
MX tanımın bulunduğu satırda linux.org.tr domaini için e-postaları alabilecek sunucu metu.linux.org.tr olarak tanımlanmış. 10 rakamı ise metu.linux.org.tr'nin linux.org.tr olarak gelmesi gereken mesajlardaki önceliğini belirtir. Sayı ne kadar küçük verilirse önceliği o kadar fazladır.
HINFO tanımının bulunduğu satır metu.linux.org.tr'ın donanım, işletim sistemi ve sürüm bilgilerini tutuyor.
CNAME geçen satırlar ise metu.linux.org.tr makinasının olması düşünülen diğer isimlerini tanımlamak için kullanıldı. Örneğin, www.linux.org.tr ile metu.linux.org.tr aynı sunucular olup www.linux.org.tr, metu.linux.org.tr'ın bir diğer adı (alias'ı) olarak gözükmektedir.
Bütün bu yapılandırma işlemleri bittikten sonra,
metu:/etc/namedb# named
komutunu çalıştırıp nslookup veya host gibi programlar yardımıyla name server'ımızın çalışıp çalışmadığını denemek kalıyor. Çalıştırdığımızda verilen hata mesajları /usr/adm/mesages dosyasına yazılır.
Önceki Üst Ana Başlık Sonraki
TCP/IP uygulamaları ve DNS Başlangıç host ve nslookup Programlarının Kullanımı
Bir Linux Kitaplığı Sayfası