
DNS KURULUMU
1- DNS Domain Name System (Alan Adı sistemi):
Alan adı sistemi, sunucunun ve ona bağlı istemcilerin internet kayıtlarının tutulduğu bir tür veri tabanıdır. Siz bir siteye erişmek istediğinizde, DNS sayesinde hangi site nerede , hangi IP hangi bilgisayara ait olduğu belirlenir, ve istediğiniz yere erişirsiniz.
Bu sistem istemcilerin ve sunucuların isimlerini , alan adını ve IP numarası gibi bilgileri içerir.
DNS yapısı LINUX dosya sistemine cok benzer.
Her ikisinin yapısı ağac (tree) şeklinde olup en tepede / kök (root) kısmı vardır. DNS de / (kok) COM ,EDU,GOV, NET gibi alt alanlara (domains) ayrılırken Linux te de /usr /home /var gibi yapılanmaktadır. Tüm bu alt alanlar ise (subdomains) başka alt alanları içermektedir. Örneğin students.itu.edu.tr alanını ele alırsak en tepede / (kök) daha sonra “tr” alanı onun alt altında “edu” daha sonra “itu” ve son olarak “students” alt alanı bulunur (yukarıdaki gibi). Şekilden de anlaşıldığı gibi her alan üstündeki alanın (domain) alt alanıdır.
İki çeşit ad sunucusu vardır :
Birincil ad sunucusu (primary name server);
İkincil ad sunucusu (secondary name server);
Birincil ad sunucusu bulunduğu alandaki bilgileri dosyalardan toplar.
İkincil ad sunucusu ise bilgileri bölgedeki diğer ad sunucularından toplar. İkincil başladığı zaman ad sunucusuna bağlanır ve kendisindeki bilgileri günceller. Birden fazla sunucuya sahip olmakta fayda vardır. Çünkü birinci sunucu çalışmaz hale geldiğinde, diğeri çalışmaya devam edebilir.
2- KURULUM
Aşağıda anlatılacak olan kurulum sadece birincil ad sunucusunu kapsamaktadır ve Redhat 6.0 ve 6.1 Linux e göre yazılmıştır. Diğer linux dağıtımlarında dosyaların yerleri farklı olabilir.
DNS için caching-nameserver ve bind , bind-devel, bind-utils adlı programlara ihtiyacımız var. Bu programlar sadece Ad sunucu (Name server) makinasında olması yeterlidir. Sisteminizde caching-nameserver yüklü olup olmadığını anlamak için komut satırında:
# rpm -qi caching-nameserver komutunu verin,
“bind ” icin ise
#rpm -qi bind
#rpm -qi bind-devel
#rpm -qi bind-utils
komutlarını tek tek yazınız.
Eğer bind , bind-devel , bind-utils ,caching-nameserver programları yüklü ise bu programlar hakkında bilgi veren bir yazı çıkacaktır. Yok bunlardan biri kurulu değil ise caching-nameserver için :
” Caching-nameserver için “package caching-nameserver is not installed ”
Bind için “package bind is not installed ” diye bir hata mesajı alırsınız.
Yüklenmemiş programları yüklemek için Redhat 6.1 cd sini takın
sisteme root olarak girin. Cdrom u mount etmek için komut satırında şu komutları yazın:
# mount /dev/cdrom /mnt/cdrom
daha sonra
# cd /mnt/cdrom/Redhat/RPMS
yazarak RPMS dizinine geçin ve caching-nameserver kurmak için
# rpm -i caching-nameserver-6.0-2.noarch.rpm
“bind ” bind-devel, bind-utils leri kurmak için ise aynı dizinde
sırayla
# rpm -i bind-8.2.1-7.i386.rpm
#rpm -i bind-devel-8.2.1-7.i386.rpm
#rpm -I bind-utils-8.2.1-7.i386.rpm komutlarını veriniz.
Yukarıdaki versiyon numaraları Redhat 6.1 paketi ile gelendir. Siz kendinizdeki
Versiyon ile değiştiriniz.
3-DNS KONFİGÜRASYONU
Ayarlara başlamadan önce aşağıdaki bir sisteme sahip oldugumuzu kabul edip ona göre örnek ayarlama yapılacaktır.
Ad sunucusu (Name Server) =ay isimli bilgisayarım ,
İstemciler (hosts) =beyaz,hidiv ,serhat isimli uç tane bilgisayarım var.
Alan adı (Domain Name) =deneme.com.tr
IP adresleri:
ay = 192.168.1.1
beyaz = 192.168.1.2
serhat = 192.168.1.3
hidiv = 192.168.1.4
Yukarıdaki tüm makinaların internet bağlantısı olduğu kabul edilmiştir.
bind 8.* versiyonunda konfigürayon dosyalarından biri /etc/named.conf dosyasıdır. Bu dosyada hangi alanlar için kayıt yapılacak, ve bu dosyaların yeri nerede olduğu belirlenir.
/etc/named.conf dosyasını ilk olarak bir editorle actığınız zaman
şöyle bir şeyle karşılasırsınız:
options {
directory “/var/named”;
};
zone “.” {
type hint;
file “named.ca”;
};
zone “0.0.127.IN-ADDR.ARPA”{
type master;
file “named.local”;
};
burada directory “/var/named” caching-nameserver ile ilgili dosyaların bulunduğu dizini ifade eder. Yukarıda dosyaların /var/named dizininde oldugunu gösterir. /var/named/named.ca cache dosyasıdır ve internetteki (root name servers ) (root ad sunucularinin ) listesi yer almaktadır ve sürekli olarak yenilenmektedir.
named.local dosyasında :
@ IN SOA localhost. root.localhost. (
1999102802 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; default_ttl
)
@ IN NS localhost.
1 IN PTR localhost.
/etc/host.conf dosyası içinde
order , hosts ,bind
diye bir kısım olması lazım, bunun manası sistem de ad araması yaparken ilk önce /etc/hosts dosyasına bakılmasını orada bulunmazsa ad sunucusun (Name server) bakacağını ifade eder.
/etc/hosts
dosyasına istemcilerin (hosts) ve ad sunucusunun (Name server) in
IP sini asagıdaki gibi eklemekte fayda vardır:
192.168.1.1 ay.deneme.com.tr ay (sırayla IP ,tum alan adı ,makina ismi )
192.168.1.2 beyaz.deneme.com.tr beyaz
/etc/nsswitch.conf dosyası içinde
hosts: files dns nis
kısmını bulun ve içinde dns seçeneği yoksa ekleyin
/etc/resolv.conf dosyasına
domain deneme.com.tr
search deneme.com.tr
nameserver 192.168.1.1
ekleyin. Search satırına aramasını istediğiniz alanlar (domains) ları ekleyebilirsiniz. Mesela search kısmına “cslab.itu.edu.tr” ekleyelim
search deneme.com.tr cslab.itu.edu.tr
daha sonra oslo isimli makinaya telnet çekelim.
# telnet oslo
yazdığınızda Ad sunucusu (Name Server) ilk önce oslo.deneme.com.tr isimli makinayı arar, bulamazsa oslo.cslab.itu.edu.tr alanında makina adını bakar. Bunun yararı cslab.itu.edu.tr alanındaki bir makinaya telnet veya ftp çekerken makinanın tum ismini yazmak yerine, sadece ismini yazmanız yetecek.
# telnet oslo.cslab.itu.edu.tr
yazmak yerine sadece
# telnet oslo
yazmanız yetecektir. Fakat search satırına çok fazla alan eklediğinizde ad sunucusunun ,aradığı adresi tüm search listesini tek tek deneyecektir. Bu ise zaman kaybına sebep olur. Çok fazla alan eklememekte yarar var.
Şimdi kendi DNS imizi kurmak için
/etc/named.conf dosyasını aşağıdaki değiştirdim
options {
directory “/var/named”;
};
zone “.” {
type hint;
file “named.ca”;
};
zone “deneme.com.tr”{
type master;
file “deneme.com.tr”;
notify yes;
};
zone “1.168.192.IN-ADDR.ARPA”{
type master;
file “192.168.1″;
notify yes;
};
zone “0.0.127.IN-ADDR.ARPA”{
type master;
file “named.local”;
};
zone ” deneme.com.tr” ve file ” deneme.com.tr” yazılı kısımda alan adının deneme.com.tr olduğunu ve alan ile ilgili kayıtların tutulduğu dosyanın /var/named/deneme.com.tr olduğunu bildirir. zone “1.168.192.IN-ADDR.ARPA” kısmında bu ifade aranılan adresin IP adresi ile ulasmayi sağlar dikkat edileceği gibi tersten yazılmıştır. Siz buraya kendi IP nizi yazmalısınız mesela 160.75.2.1 gibi IP numaraya sahipseniz son noktadan sonrası kısım dahil edilmez.
” 2.75.160.IN-ADDR.ARPA “{
şeklinde yazmanız gerekmektedir bu kayıtlar ise “/var/named/192.168.1 ” dosyasında bulunmaktadır.
Şimdi bu dosyaların içeriğine bakalım:
/var/named/deneme.com.tr dosyası
@ IN SOA ay.deneme.com.tr. root.ay.deneme.com.tr. (
1999110401 ; serial
3600 ; refresh
900 ; retry
1209600 ; expire
43200 ; default_ttl
)
@ IN MX 5 ay.deneme.com.tr.
@ IN MX 10 beyaz.deneme.com.tr.
@ IN NS ay.deneme.com.tr.
ay IN A 192.168.1.1
beyaz IN A 192.168.1.2
istanbul IN CNAME beyaz
serhat N A 192.168.1.3
hidiv IN A 192.168.1.4
www IN CNAME ay
ftp IN CNAME beyaz
irc IN CNAME ay
ay IN TXT ” TÜRKİYE LİNUX KULLANICILARI ”
“@” notasyonu alan adına işaret etmektedir .Benim makinada bu değer @=deneme.com.tr demektir.
DIKKAT!! isimlerin sonundaki “.” yi kesinlikle unutmayın!!! “.” ismin bittiğini belirtir. Eğer nokta koymazsanız!! makina adına ikinci kez alan adı ekleyecektir. hidiv.deneme.com.tr.deneme.com.tr gibi bir hata almanız kaçınılmazdır. SOA (Start Of Authority)=Yetkili sunucu demektir. yani sistemin kayıtlarının tutulduğu makinadır burada ana makinamız (Server) “ay” dır “root.ay.deneme.com.tr” yetkili kişinin mail adresidir. Bunu
root@ay.deneme.com.tr diye değiştirebilirsiniz.
A (Address)=Makinanın internet adresi demektır
beyaz IN A 192.168.1.2
beyaz isimli makinanin IP sinin 192.168.1.2 oldugunu ifade eder.
MX (Mail Exchanger)= Gelen postaların hangi makinaya geleceğini bildirir. MX den sonraki sayı ,postayı ilk alacak makinanın önceliği belirler. En küçük olan sayının önceliği daha fazladır. Bizim sistemde gelen postalar ilk basta ay.deneme.com.tr (MX =5) adresindeki makinaya alınacak. Eğer o makina çalışır durumda değilse beyaz.deneme.com.tr (MX=10) adresindeki makinaya iletilecektir.
CNAME (Canoncial Name)=Aynı bilgisayara birkaç farklı isim vermek icin kullanılır. Yukarıda oldugu gibi “www.deneme.com.tr” adresine bağlanan kişi aslında ay.deneme.com.tr adresine bağlanıyor. Eğer bu “www” kısaltması olmasaydı , sizin web sayfanıza bağlanmak isteyen herkesin sizin ana sunucunun ismini veya IP nizi bilmesi gerekti :-))
TXT = ifadesi ile sizin bulunduğunuz alan hakkında bilgi verir.
Siz komut satırında
nslookup -query=any deneme.com.tr. yazdığınızda görebilirsiniz.
Yukarıda;
istanbul CNAME beyaz
kısmında beyaz makinasınında beyaz makinası aynı zamanda İstanbul ismine sahiptir. Böylece İstanbul ismiyle beyaz adlı makinaya ulaşılabilir. HINFO (Host INFormation) =bilgisayar hakkında bilgi verir,iki kısımdır. İlk kısımda donanım özelliği ikinci kısımda işletim sisteminin özelliğini bildirir.
1999110401 ; serial : (seri numarası)
3600 ; refresh : (Kayıtların yenilenme süresi)
900 ; retry : İkincil sunucu ana sunucuya ulasamassa ne kadar süre sonra
tekrar baglantı kurmaya calısacağı zamanı bildirir. (Saniye olarak)
1209600 ; expire : ikinci sunucu birinci sunucuya bağlantı sağlayamadığı
zaman kendi bilgilerini ne zamana kadar bekletecegini belirtir.
43200 ; default_ttl :Cache alınan bilginin ne zamana kadar cache tutulacağını belirtir.
“deneme.com.tr” dosyasıyla işimiz bitti sayılır.
Şimdide /var/named/192.168.1 dosyasını inceleyim
@ IN SOA ay.deneme.com.tr. root.ay.deneme.com.tr. (
1999110401 ; serial
3600 ; refresh
900 ; retry
1209600 ; expire
43200 ; default_ttl
)
@ IN NS ay.deneme.com.tr.
1 IN PTR ay.inux.org.tr.
2 IN PTR beyaz.deneme.com.tr.
3 IN PTR serhat.deneme.com.tr.
4 IN PTR hidiv. deneme.com.tr.
NS (Name Server) ad sunucusunun adını belirtir.
PTR (PoinTeR) makinaların isimlerine isaret eder.
4 PTR hidiv.deneme.com.tr.
4 192.1687.1.4 dun kisaltmasıdır. Burada 192.168.1.4 nolu IP
hidiv.deneme.com.tr.tr adresine isaret etmektedir.
ve son dosya olarak ,
/var/named/named.local dosyasını aşagıdaki gibi
@ IN SOA localhost. root.localhost. (
1997022700 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expire
86400 ; default_ttl
)
@ IN NS ay.deneme.com.tr.
1 IN PTR localhost.
olarak değistirdik.