DNS kurulumu ve yapılandırması (BIND9)

DNS kurulumu ve yapılandırması (BIND9)

24 Temmuz 2008

İçindekiler

1 DNSNedir?

  1. 1.1  NedenDNS’eihtiya ̧cduyuyoruz? ………………….. 2
  2. 1.2  DNSNasılMilyonlarcaAlanAdıBilgisiniTutar? . . . . . . . . . . . . . . 2
  3. 1.3  DNSHiyerar ̧sisi…………………………… 2
  4. 1.4  DNSSistemiBile ̧senleri ………………………. 3
  5. 1.5  B ̈olgeDosyaları…………………………… 3
  6. 1.6  TersB ̈olgeDosyaları ………………………… 3
  7. 1.7  DNSSorguları……………………………. 4 1.7.1 O ̈zyinelemeliSorgular ……………………. 4 1.7.2 O ̈zyinelemeliOlmayanSorgular ……………….. 5
  8. 1.8  BirincilveI ̇kincilDNSsunucuları ………………….. 5

2 BIND 6

  1. 2.1  BINDkurulumu…………………………… 6
  2. 2.2  DNS Sorguları i ̧cin Yerelde ̧calı ̧san BIND’ı Kullanmak . . . . . . . . . . . . 7
  3. 2.3  namedservisi ……………………………. 7
  4. 2.4  magmalinux.com Alan Adı i ̧cin DNS Sunucusu Yapılandırması . . . . . . . 7
    1. 2.4.1  named.confdosyası……………………… 7
    2. 2.4.2  B ̈olgedosyası ………………………… 8
    3. 2.4.3  magmalinux.comAlanAdınıTestEtmek . . . . . . . . . . . . . . . 11
    4. 2.4.4  TersB ̈olgeDosyası ……………………… 12
    5. 2.4.5  I ̇kincilDNSSunucusuYapılandırması. . . . . . . . . . . . . . . . . 14

Sunucusunu I ̇kinci Bir Alan Adı I ̇ ̧cin Yapılandırmak . . . . . . . . . . 14

  1. 2.5  DNS
  2. 2.6  AltAlanAdınıVekaletVerme……………………. 16
  3. 2.7  /etc/bind/named.conf.options ………………….. 19
  4. 2.8  /etc/bind/named.conf ………………………. 20
  5. 2.9  view………………………………… 21

1

1 DNS Nedir?

Alan adı sistemi (DNS – Domain Name System), alan adlarının (www.magmalinux.com gibi) internet u ̈zerinde da ̆gıtık, hiyerar ̧sik bir du ̈zende durdu ̆gu bir sistemdir. I ̇nternetin telefon rehberi gibi du ̈ ̧su ̈nu ̈lebilir. Alan adı sistemi i ̧cerisinde isimlere kar ̧sılık telefon numarası yerine, internetteki sunucuların IP adresleri kayıtlıdır.

1.1 Neden DNS’e ihtiya ̧c duyuyoruz?

DNS, bir alan adının IP adresini bulmayı ya da bir IP adresinin alan adını bulmayı sa ̆glar. DNS’in olmadı ̆gı bir du ̈nya da ya ̧sıyor olsaydık Google’a eri ̧sirken www.google.com yazmak yerine 64.233.167.99 gibi bir IP adresi yazıyor olurduk (I ̇nternet’e ba ̆glı her bilgisayarın bir IP adresi oldu ̆gunu hatırlayın). Her ziyaret edece ̆gimiz web sayfası i ̧cin ba ̧ska bir IP adresi ezberledi ̆gimizi hayal edin. Bu hayal sizi yeterince korkuttuysa, DNS’in bulundu ̆gu du ̈nyamıza geri d ̈onebilirsiniz. DNS’in oldu ̆gu bir du ̈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 kul- lanıcının aynı anda yaptıg ̆ı sorguya nasıl yanıt veriliyor? Tu ̈m bunlar olurken, milyonlarca DNS kaydı nasıl gu ̈ncelleniyor? E ̆ger DNS’in ilk gu ̈nlerindeki gibi tu ̈m alan adı bilgileri tek bir merkezde tutuluyor olsaydı, yukarıdaki sorular bizim i ̧cin ger ̧cek bir kabus olurdu. Neyse ki, DNS sisteminin da ̆gıtık dizin yapısı sayesinde, hiyerar ̧sik yapıda birle ̧sen her DNS sunucusunda, bir alan adının sadece belli bir kısmıyla ilgili bilgi tutulur.

1.3 DNS Hiyerar ̧sisi

DNS hiyerar ̧sisinin en tepesinde k ̈ok alan adı sunucuları (root nameservers) vardır. S ̧u an sayıları 13 olan k ̈ok sunucuları, her DNS sorgusunun ba ̧sladıg ̆ı yerdir.

K ̈ok sunucuları sadece kendisinden bir alt seviyedeki .com, .net, .org, .tr gibi u ̈st du ̈zey alan adları (Top-Level Domains – TLD) sunucularının IP adreslerini bilir.

O ̈rne ̆ginwww.magmalinux.comgibibiradresisorgularken,sorguladı ̆gımızDNSsunucu- sunun bu alan adı hakkında hi ̧cbir bilgisi yok ise, sorguladı ̆gımız DNS sunucusu k ̈ok sunucu- larına bu alan adını sorar. K ̈ok sunucuları sadece kendinden bir alt seviyedeki TLD sunucu- larının adreslerini bildi ̆ginden, .com adreslerinin bilgilerini tutan TLD sunucusunun IP ad- resini verir. DNS sunucusu d ̈onen bu cevap u ̈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ı ̆gımız DNS sunucusuna g ̈onderir. Sorguladı ̆gımız DNS sunu- cusu son olarak ns0.magmalinux.com DNS sunucusuna www.magmalinux.com adını sorar.

2

E ̆ger ns0.magmalinux.com DNS sunucusu www.magmalinux.com adını tanımlamı ̧ssa, ilgili adın IP adresi ̈once sorguladı ̆gımız DNS sunucusuna, bu sunucu tarafından da bize g ̈onde- rilir. G ̈oru ̈ldu ̈ ̆gu ̈ gibi, DNS sunucuları aynı zamanda hakkında bilgi sahibi olmadı ̆gı alan adlarını ̈og ̆renmek i ̧cin ̧co ̈zu ̈cu ̈ (resolver – DNS istemcisi) i ̧slevini de g ̈oru ̈r.

1.4 DNS Sistemi Bile ̧senleri

DNS sistemi;

  • alan adı bilgilerini da ̆gıtık dizine a ̧can ve alan adı sorgularına cevap veren bir name- server (ad sunucusu DNS sunucusu)
  • da ̆gıtık dizine a ̧cılacak alan adı bilgileri
  • gerekti ̆ginde DNS sorguları yapacak bir ̧c ̈ozu ̈cu ̈ (resolver) uygulama ya da ku ̈tu ̈phane olmak u ̈zere u ̈ ̧c bile ̧senden olu ̧smalıdır.

1.5 B ̈olge Dosyaları

B ̈olge dosyaları bir alan adını ya da bir alt alan adını a ̧cıklayan kayıtlar i ̧cerir. B ̈olge dosyalarının i ̧cerdi ̆gi kayıtlara ̧so ̈yle bir bakacak olursak:

  • B ̈olgenin ba ̧sladı ̆gı adres ve bu b ̈olgeye ait genel ̈ozellikler (bir SOA kaydı)
  • Her bilgisayar adı (hostname) i ̧cin bir A kaydı (IPv6 i ̧cin AAAA kaydı)
  • E-posta sunucusunun bulundu ̆gu bilgisayar i ̧cin MX, Ad sunucusu i ̧cin NS kaydı
  • Herhangi bir alt alan adı (subdomain) ba ̧ska bir alan adı sunucusu tarafından y ̈one- tilmesi i ̧cin vekalet verilecekse, bu alt alan adı i ̧cin NS kaydı
  • Herhangi bir alt alan adının vekalet verilmesi durumunda, alan adı sunucularının bu alt alan adına eri ̧sebilmesi i ̧cin gereken A ya da AAAA kaydı A kaydı, MX kaydı gibi kelimeleri anlamadıysanız, okumaya devam edin. Yazının iler- leyen kısımlarında bunlara ayrıntılı olarak de ̆ginilecektir.

1.6 Ters B ̈olge Dosyaları

Ters B ̈olge Dosyaları IP adresine kar ̧sılık gelen alan adı ara ̧stırılırken kullanılan dosyalardır. Ters b ̈olge dosyaları i ̧cinde IP adresine kar ̧sılık alan adı bulunan PTR kayıtları vardır. Genel kullanım alanlarından bir tanesi, spam e-postaları engellemek amacıyla g ̈ondere- nin IP adresi tersine sorgulanarak, g ̈onderen e-posta adresinin alan adı kısmıyla uyu ̧sup uyu ̧smadıg ̆ına bakılmasıdır.

3

1.7 DNS Sorguları

DNS sunucusunun en temel g ̈orevi “www.google.com’un IP adresi nedir?” gibi sorulara yanıt vermektir. Genellikle DNS sunucusuna sorulan soruların bu ̈yu ̈k bir kısmı, hakkında hi ̧cbir bilgi sahibi olmadı ̆gı alan adlarıyla ilgilidir. DNS sunucusu yazılımları bu tip sorulara da yanıt verirler. B ̈oyle bir sorgu cevaplandırılırken a ̧sag ̆ıdaki y ̈ontemlerden biri kullanılır:

• O ̈zyinelemeli Sorgu (Recursive Query): Sorulan sorunun yanıtı tam g ̈onderilir. Yani soru “www.google.com un IP adresi” ise d ̈onecek cevap www.google.com un IP adresi olur. Her DNS sunucusu bu tip sorgulamayı kabul etmeyebilir.

• O ̈zyinelemeli Olmayan Sorgu (Non-Recursive Query – Iterative Query): Soru “www.google.com un IP adresi” ise, soruyu soran istemci, www.google.com adresini bilebilecek ba ̧ska bir DNS sunucusuna y ̈onlendirilir (K ̈ok DNS sunucusu, com TLD sunucusu ya da google.com sunucusu). Her DNS sunucusu bu tip sorguları kabul etmelidir.

1.7.1 O ̈zyinelemeli Sorgular

O ̈zyinelemeli sorgu, ̧co ̈zu ̈cu ̈nu ̈n (resolver – DNS istemcisi) sorgunun tam yanıtını istedi ̆gi sorgulardır. DNS sunucusu sorgunun tam yanıtına ula ̧sana kadar ara ̧stırmaya devam eder. O ̈zyinelemeli sorguları destekleyen ama “google.com” i ̧cin yetkili olmayan bir DNS sunu- cusunun, “www.google.com” alan adının IP adresini ara ̧stırırken ge ̧ctig ̆i adımlara bakalım:

  1. C ̧ ̈ozu ̈cu ̈, DNS sunucusuna “www.google.com’un IP adresi ne?” diye sorar.
  2. DNS sunucusu yerel tablosuna ( ̈on belle ̆gine) bakar. E ̆ger burada bulamazsa,
  3. DNS sunucusu, k ̈ok sunucularından bir tanesine “www.google.com” IP adresini ̈o ̆grenmek i ̧cin istekte bulunur.
  4. K ̈ok sunucusu, DNS sunucusuna .com adresleri i ̧cin bir TLD sunucusu adresi d ̈oner.
  5. DNS sunucusu, com TLD sunucusuna “www.google.com” IP adresini ̈o ̆grenmek i ̧cin istekte bulunur.
  6. TLD sunucusu, DNS sunucusuna “google.com” alan adı i ̧cin yetkili DNS sunucusu adresini d ̈oner.
  7. DNS sunucusu, “google.com” DNS sunucusuna “www.google.com” IP adresini sorar.
  8. “google.com” DNS sunucusundan d ̈onen cevap, ilk ba ̧sta sorguyu ba ̧slatan ̧co ̈zu ̈cu ̈ye g ̈onderilir.

4

1.7.2 O ̈zyinelemeli Olmayan Sorgular

O ̈zyinelemeli olmayan sorgu, DNS sunucusunun sorguya kısmen yanıt verdig ̆i sorgudur. DNS sunucusu, ̧co ̈zu ̈cu ̈ye “www.google.com” alan adı i ̧cin IP adresini d ̈onmek yerine, bu alan adının IP adresini bilebilecek ba ̧ska bir sunucunun IP adresini d ̈oner. Tu ̈m DNS sunu- cular bu ̧ce ̧sit sorguları desteklemelidir. O ̈zyinelemeli olmayan sorguları destekleyen fakat “google.com” i ̧cin yetkili olmayan bir DNS sunucusuna, “www.google.com” alan adının IP adresi soruldu ̆gunda ger ̧cekle ̧secek adımları inceleyelim:

  1. C ̧ ̈ozu ̈cu ̈, DNS sunucusuna “www.google.com’un IP adresi ne?” diye sorar.
  2. DNS sunucusu yerel tablosuna ( ̈on belle ̆gine) bakar. E ̆ger burada bulamazsa,
  3. DNS sunucusu, ̧c ̈ozu ̈cu ̈ye k ̈ok sunucularından bir tanesinin adresini d ̈oner.
  4. C ̧ ̈ozu ̈cu ̈, k ̈ok sunucusuna “www.google.com” IP adresini ̈og ̆renmek i ̧cin istekte bulu- nur.
  5. K ̈ok sunucusu, ̧co ̈zu ̈cu ̈ye .com adresleri i ̧cin bir TLD sunucusu d ̈oner.
  6. C ̧ ̈ozu ̈cu ̈, com TLD sunucusuna “www.google.com” IP adresini ̈og ̆renmek i ̧cin istekte bulunur.
  7. TLD sunucusu, ̧co ̈zu ̈cu ̈ye “google.com” alan adı i ̧cin yetkili DNS sunucusu adresini d ̈oner.
  8. C ̧ ̈ozu ̈cu ̈, “google.com” DNS sunucusuna “www.google.com” IP adresini sorar.
  9. “google.com” dan ̧co ̈zu ̈cu ̈ye d ̈onen cevapla sorgu sonlanmı ̧s olur.

Windows ve ̧cog ̆u Unix’lerde DNS ̧c ̈ozu ̈cu ̈ler olabildi ̆gince ku ̈c ̧u ̈k tasarlanmı ̧s ̧co ̈zu ̈cu ̈ler- dir (stub resolvers). Yani ̈ozyinelemeli olmayan sorguları takip edebilecek yetenekleri yok- tur. Dolayısıyla ki ̧sisel bilgisayarınız i ̧cin DNS sunucusu belirliyorsanız, ̈ozyinelemeli sor- guları destekleyen bir sunucu belirtmelisiniz.

1.8 Birincil ve I ̇kincil DNS sunucuları

DNS sunucumuzun (birincil DNS sunucusu) arızalanması ya da herhangi bir sebeple ̧calı ̧smaması durumunda, a ̆gımızın hayati noktası olan DNS sorgularını ge ̧cici bir su ̈re yanıtlaması i ̧cin ba ̧ska bir sunucuyu (ikincil DNS sunucusu) yedekte tutmalıyız.

5

2 BIND

BIND (Berkeley Internet Name Domain), en me ̧shur ve en ̧cok kullanılan alan adı sunucusudur. Biz de bu belge boyunca, alan adlarımızı y ̈onetmek i ̧cin BIND yazılımını kullanaca ̆gız.

BIND yazılımı u ̈ ̧c bile ̧sen olarak gelir. Birincisi alan adı sorgularına cevap veren na- med servisi, ikincisi named servisinin bilmedi ̆gi alan adlarının IP adreslerini bulmak i ̧cin ̧co ̈zu ̈cu ̈ (resolver), u ̈ ̧cu ̈ncu ̈su ̈ bile ̧seni ise DNS y ̈onetimini kolayla ̧stıran dig gibi ̧ce ̧sitli ara ̧clardır.

2.1 BIND kurulumu

BIND i ̧cin a ̧sag ̆ıdaki paketlere ihtiyacımız var: • bind9: named servisini sa ̆glayan paket.

• dnsutils: dig, nslookup, host… gibi ara ̧cları sa ̆glayan paket.
Debian tu ̈revi Linux da ̆gıtımı kullanıyorsanız, grafiksel arayu ̈zde Synaptic aracını kul-

lanarak kurabilece ̆giniz gibi, kabukta

# aptitude install bind9 dnsutils

komutuyla da BIND ve ara ̧clarını kurabilirsiniz.

Debian tu ̈revi Linux da ̆gıtımlarında BIND kurulduktan hemen sonra otomatik olarak ̧calı ̧stırılır. Daha sonradan elle ̧calı ̧stırmak isterseniz:

# /etc/init.d/bind9 start

komutunu ̧calı ̧stırın. BIND’ın ̧calı ̧sıp ̧calı ̧smadıg ̆ını test etmek i ̧cin “rndc status” komu- tunu kullanın:

# rndc status

number of zones: 14
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running

Yukarıdaki gibi “server is up and running” yanıtı alıyorsanız. Her ̧sey yolunda demektir. 6

2.2 DNS Sorguları i ̧cin Yerelde ̧calı ̧san BIND’ı Kullanmak

I ̇nternet tarayıcısı, e-posta okuyucusu gibi uygulamalar internete eri ̧sirken /etc/resolv.conf dosyasında yazılı DNS sunucularını kullanır. BIND DNS sunu- cusunu kurdu ̆gumuz bilgisayarın internete eri ̧sirirken kurmu ̧s oldu ̆gumuz DNS sunucusunu kullanmasını istiyorsak, /etc/resolv.conf dosyasında yerel IP adresimiz 127.0.0.1’i DNS sunucumuz olarak g ̈ostermeliyiz (Bu dosyanın i ̧cinin bo ̧s olması ya da silinmesi durumunda, internete eri ̧sirken yine yerel DNS sunucusu kullanılacaktır. Bu dosyayı de ̆gi ̧stirmek yerine silmeyi de tercih edebilirsiniz. Ayrıntılı bilgi i ̧cin “man resolv.conf”). O ̈rnek bir resolv.conf dosyası:

nameserver 127.0.0.1 2.3 named servisi

Alan adları sistemi i ̧cerisinde, bizim alan adlarımızla ilgili bilgiyi sunan servistir. Bir DNS sorgusu geldi ̆ginde bu sorguyu kar ̧sılar. Bir named sunucusu birden fazla alan adı i ̧cin hiz- met verebilir (O ̈rne ̆gin, magmalinux.com, magmalinux.net ve cerenbilgisayar.com.tr gibi). Bu alan adlarından bazıları i ̧cin birincil DNS sunucusu bazıları i ̧cin ikincil DNS sunucusu olabilir.

2.4 magmalinux.com Alan Adı i ̧cin DNS Sunucusu Yapılandırması Bu b ̈olu ̈mde magmalinux.com alan adı i ̧cin DNS ayarları yapılacaktır. I ̇lk olarak na-

med.conf.local dosyamızda magmalinux.com b ̈olgesini tanımlamalıyız.

2.4.1 named.conf dosyası

Alan adlarımızla ilgili temel bilgilerin bulundu ̆gu dosyadır. Bu dosya i ̧cerisinde her alan adımıza kar ̧sılık bir b ̈olge tanımlamalıyız. Tanımladıg ̆ımız bu b ̈olge i ̧cerisinde named serv- isinin bu b ̈olge i ̧cin nasıl ̧calı ̧saca ̆gı ile ilgili birtakım ayarları ve b ̈olge dosyası yolunu (zone files) belirtmeliyiz. B ̈olge dosyası, belirli bir alan adı ile ilgili ( ̈orne ̆gin magmalinux.com) ayrıntılıbilginingirildi ̆gidosyadır(O ̈rne ̆ginwww.magmalinux.com,mail.magmalinux.com gibi alt alan adlarının IP adresleri, Mail Exchanger ve Nameserver kayıtları).

Debian tabanlı sistemlerde named.conf dosyası i ̧cerig ̆i /etc/bind/named.conf.options, /etc/bind/named.conf ve /etc/bind/named.conf.local olmak u ̈zere u ̈ ̧c ayrı dosyaya payla ̧stırılmı ̧stır. Du ̈zen a ̧cısından kendi b ̈olge tanımlarımızı /etc/bind/named.conf.local dosyası i ̧cerisinde yapmalıyız. magmalinux.com b ̈olgesi alan adı tanımlamaları i ̧cin /etc/bind/named.conf.local dosyasını herhangi bir edit ̈or ile a ̧cıyoruz ve dosyaya a ̧sag ̆ıdaki b ̈olge bilgilerini ekliyoruz:

zone "magmalinux.com" {
        type master;

};

file "magmalinux.com";

7

type master satırı, bu DNS sunucusunun magmalinux.com b ̈olgesi i ̧cin birincil DNS sunucusu oldu ̆gunu belirtir. file “magmalinux.com” satırı ise, magmalinux.com b ̈olgesi i ̧cin b ̈olge dosyasının adını belirtir (Mutlak ya da g ̈oreceli yol belirtilebilir. G ̈oreceli yol belirtildi ̆ginde, varsayılan dizin olarak named.conf.options dosyasında belirtilen dizin se ̧cilir (Debian tu ̈revi sistemlerde varsayılan dizin /var/cache/bind/ dır)).

E ̆ger birden fazla alan adına aynı DNS sunucusu u ̈zerinden hizmet veriyorsak na- med.conf.local dosyası i ̧cerisinde bu alan adı i ̧cin de b ̈olge tanımlayıp, bu tanımladı ̆gımız b ̈olgenin, b ̈olge dosyasını yazmalıyız.

2.4.2 B ̈olge dosyası

magmalinux.com alan adı ile ilgili bilginin bu ̈yu ̈k bir kısmının bulundu ̆gu dosyadır (belli bir ada kar ̧sılık gelen IP adresi, nameserver, mail exchange kayıtları, ikincil DNS sunu- cusunun birincil DNS sunucusundan DNS bilgilerini transfer etmesiyle ilgili ayarlar … gibi). named.conf.local de belirtti ̆giniz b ̈olge dosyalarını sıfırdan yazmanız gerekir. mag- malinux.com b ̈olgesi i ̧cin b ̈olge dosyamız /var/cache/bind/ dizini altında magmalinux.com isminde ve a ̧sag ̆ıdaki bi ̧cimde olmalıdır:

$TTL 1d

@ IN SOA ns0.magmalinux.com. root.magmalinux.com. (
        2008063005 ;serial

)

7h ;refresh
3h ;retry
1w ;expiry
86400 ;minimum TTL
@ IN NS ns0.magmalinux.com.
@ IN NS ns1.magmalinux.com.
@ IN MX 10 mail.magmalinux.com.
magmalinux.com. IN      A
www             IN      A
  1. ns0  IN A
  2. ns1  IN A
mail            IN      A
ftp             IN      A
posta           IN      CNAME
smtp            IN      CNAME

Bu dosyayı satır satır inceleyelim:

78.188.112.56
78.188.112.56
78.188.112.56
78.188.112.60
78.188.112.56
78.188.112.56
mail

mail

I ̇lk satır “$TTL 1d” Time to Live de ̆geridir. Bu b ̈olge i ̧cin yapılan sorgunun istemcinin ̈on belle ̆ginde ne kadar su ̈re i ̧cin tutaca ̆gını belirler (1 gu ̈n ideal bir se ̧cim).

8

I ̇kinci satır bir SOA (Start of Authority) kaydıdır. Satır ba ̧sındaki @ i ̧sareti alan adı (b ̈olge adı) i ̧cin bir kısayoldur. “magmalinux.com.” yazmak yerine @ i ̧sareti tercih edilebilir.

SOA kaydındaki @ i ̧saretinden sonra gelen kısım, bu SOA kaydının IN (internet) sınıfı kaydı oldu ̆gunu belirtir. IN dı ̧sında ba ̧ska sınıflar olsa da bu belgede bunlara de ̆ginilmeyecektir.

SOA kaydındaki IN belirtecinden sonra gelen kısım, bunun ne tip bir kayıt oldu ̆gunu belirtir (SOA kaydı). Bir SOA kaydı b ̈olge i ̧cin global se ̧cenekleri belirler ve her b ̈olge i ̧cin yalnızca bir SOA kaydı bulunabilir.

SOA kaydının sonraki su ̈tununda, magmalinux.com alan adı i ̧cin yetkili DNS sunucusu adresi belirtildi. Bu adresin sonundaki “.” noktaya dikkat. Bu alan adının sonundaki nokta, alan adının tam olarak yazıldı ̆gını belirtir. B ̈oylece DNS sunucumuz bu alan adı sonuna, tekrardan alan adı eklemeyecektir. Bundan sonraki buna benzer bir kayıt olan “root.magmalinux.com.” kaydının ilk nokta karakteri @ ile de ̆gi ̧serek alan adından sorumlu ki ̧sinin e-posta adresini belirtir. SOA kaydındaki parantez i ̧ci de ̆gerleri inceleyelim:

I ̇lk de ̆ger (serial) bizim seri numaramızı belirler. I ̇kincil DNS sunucusu bu de ̆geri kontrol ederek, Birincil DNS sunucusunda de ̆gi ̧siklik olup olmadı ̆gını anlar. Buna g ̈ore Birincil DNS sunucusundaki b ̈olge bilgilerini transfer edip etmeyeceg ̆ine karar verir. Bu de ̆ger, b ̈olge dosyasında her de ̆gi ̧siklik yaptıg ̆ımızda bizim tarafımızdan de ̆gi ̧stirilmesi gerekir. Seri numarası verilirken genel yakla ̧sım, YYYYAAGG ̧seklindeki tarihi ve gu ̈n i ̧cerisinde olası birden fazla de ̆gi ̧siklik i ̧cin bu tarihin sonuna eklenmi ̧s iki basamaklı sayıyı birle ̧stirmek ̧seklindedir. Bu ̧sekilde, bir sonraki tarihin her zaman bir ̈oncekinden daha bu ̈yu ̈k olması sa ̆glanmı ̧stır. Seri numarası satırının sonundaki ; karakteri satır sonu karakteri de ̆gil, yo- rum ba ̧slangıcı karakteridir. Bu karakteri kullanarak satırla ilgili a ̧cıklamalar yapabilirsiniz.

Refresh de ̆geri, I ̇kincil DNS sunucusunun de ̆gi ̧siklikler i ̧cin Birincil DNS sunucusunu ne kadar sıklıkla kontrol edece ̆gini belirler. Bizim ̈orneg ̆imizdeki de ̆ger 7 saattir (7h). ’h’ gibi bir son ek verilmeden yazılan de ̆gerler, saniye cinsinden kabul edilecektir (Kullanabi- lece ̆giniz di ̆ger son ekler, dakika i ̧cin ’m’, gu ̈n i ̧cin ’d’, hafta i ̧cin ’w’).

Retry de ̆geri, I ̇kincil DNS sunucusu, Birincil DNS sunucusuna herhangi bir sebeple ba ̆glanamadıg ̆ı durumda, bir sonraki denemenin ne zaman olaca ̆gını belirler. Bizim ̈orneg ̆imizde bu de ̆ger 3 saat.

Expiry de ̆geri, I ̇kincil DNS sunucusunun Birincil DNS sunucusuna ula ̧samadı ̆gı durumlarda, kendisindeki bilgilerin ne kadar su ̈re i ̧cin ge ̧cerli olaca ̆gını belirler. Bizim ̈orneg ̆imizde bu de ̆ger 1 hafta. 1 hafta sonunda, I ̇kincil DNS sunucusu bu b ̈olge ilgili sorgu geldi ̆ginde, sorguyu yanıtlamayacaktır.

Minimum TTL, de ̆geri daha ̈onceden a ̧cıklanan $TTL de ̆geriyle benzer anlamı vardır. Fakat minimum TTL de ̆geri, hata veren sorguların ̈on bellekte ne kadar tutulaca ̆gını belirler.

9

SOA kayıtlarından sonraki iki kayıt NS (Name Server – Ad Sunucusu) kaydıdır. NS kayıtları genel bir alı ̧skanlıktan ̈otu ̈ru ̈ SOA kayıtlarından hemen sonra tanımlansalarda b ̈oyle bir zorunluluk yoktur.

MX (Mail eXchanger) kayıtları, magmalinux.com a gelen e-postaları hangi sunucuya g ̈onderileceg ̆ini belirler. O ̈rnek kayıttaki 10 de ̆geri, birden fazla MX kaydı belirtildi ̆ginde, hangi MX kaydının ̈oncelikli oldu ̆gunu belirler (Du ̈ ̧su ̈k de ̆gerler daha ̈onceliklidir. Birden fazla MX kaydına aynı ̈oncelik verilerek yu ̈k dengeleme yapılabilir).

A (Address) kayıtları, bilgisayar ya da alan adlarına kar ̧sılık gelen IP adreslerinin belirtildi ̆gi kayıtlardır. NS ve MX kayıtlarında bilgisayar adları belirtilmesine kar ̧sın, bunların IP adresleri belirtilmemi ̧stir. Alan adının IP adresi ara ̧stırması sonucunun tamamlanabilmesi i ̧cin A kayıtlarına ihtiya ̧c vardır. Bu yu ̈zden b ̈olge dosyamızdaki en ̈onemli kayıt tipidir diyebiliriz.

A kayıtlarına ̧so ̈yle bir bakacak olursak:

magmalinux.com. IN      A
www             IN      A
  1. ns0  IN A
  2. ns1  IN A
mail            IN      A
ftp             IN      A
78.188.112.56
78.188.112.56
78.188.112.56
78.188.112.60
78.188.112.56
78.188.112.56

magmalinux.com. adında sondaki ’.’ karakterine dikkat. Bu alan adının tam yazılmı ̧s oldu ̆gunu belirtir. Sonunda nokta olmayan kayıtlar bilgisayar adı kabul edilip, sonuna alan adıbilgisieklenir.O ̈rne ̆gin,bu ̈ornektekiwww,www.magmalinux.com.ileaynıdır.

O ̈rnek A kayıtlarından g ̈oru ̈ldu ̈ ̆gu ̈ gibi de ̆gi ̧sik bilgisayar adları tek bir IP adresine e ̧sle ̧stirileceg ̆i gibi, tek bir bilgisayar adı birden fazla IP adresi ile de e ̧sle ̧stirilebilir. Bu sayede yu ̈k dengelemesi yapabilirsiniz.

CNAME (Canonical NAME) kayıtları, A kayıtları i ̧cin birer takma addır (alias). O ̈rne ̆gin:

posta           IN      CNAME   mail
smtp            IN      CNAME   mail

posta.magmalinux.com ile mail.magmalinux.com aynı bilgisayarı g ̈ostermektedir.

CNAME kayıtları ile ilgili dikkat etmeniz gerekenler; Bir CNAME kayıdı ba ̧ska bir CNAME kaydına i ̧saret edebildi ̆gi halde, CNAME’in performansa k ̈otu ̈ etkisinden dolayı, CNAME kayıtları genelde A kayıtlarına i ̧saret eder. Ayrıca MX ve NS kayıtlarında bir CNAME ismi ̧calı ̧sabilse de, bu izin verilmi ̧s bir ̧sey de ̆gildir. Bu yu ̈zden belirtti ̆giniz bilgisayar adının bir A kaydı bulunmak zorundadır.

10

CNAME kullanımının faydalı olaca ̆gı yer, birden fazla A kaydının aynı IP adresine i ̧saret etti ̆gi durumlar olabilir. Aynı IP adresi i ̧cin farklı farklı A kayıtları tutmak yerine, bir tane A kaydı ve bu A kaydını g ̈osteren CNAME kullanırsanız, daha sonradan IP adresiniz de ̆gi ̧stig ̆inde birden de ̆gi ̧stirmeniz gereken tek bir kayıt olur.

Bu ayarları yaptıktan sonra BIND’ı yeniden ba ̧slatalım:

# /etc/init.d/bind9 restart

Bundan sonra yapacag ̆ınız de ̆gi ̧sikler i ̧cin; e ̆ger yaptı ̆gınız de ̆gi ̧sikler sadece b ̈olge dos- yaları i ̧cerisinde ise, BIND’ı yeniden ba ̧slatmanız gerekmiyor. De ̆gi ̧sikliklerin etkin olması i ̧cinrndcreloadbolgeismikomutunu ̧calı ̧stırabilirsiniz.O ̈rne ̆gin:

# rndc reload magmalinux.com
2.4.3 magmalinux.com Alan Adını Test Etmek

Yaptıg ̆ımız bu de ̆gi ̧sikliklerden sonra dnsutils paketi ile gelen dig aracı ile magmalinux.com alana adını test edelim. dig ile bu alan adını sorgulayalım:

# dig @127.0.0.1 magmalinux.com
; <<>> DiG 9.3.4-P1.1 <<>> magmalinux.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38281
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;magmalinux.com.
;; ANSWER SECTION:
magmalinux.com.
;; AUTHORITY SECTION:
magmalinux.com.
magmalinux.com.
;; ADDITIONAL SECTION:
ns0.magmalinux.com.
ns1.magmalinux.com.

86400 IN

86400   IN
86400   IN
86400   IN
86400   IN

IN A

A       78.188.112.56
NS      ns0.magmalinux.com.
NS      ns1.magmalinux.com.
A       78.188.112.56
A       78.188.112.60
;; Query time: 5 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Jul 21 13:06:33 2008
;; MSG SIZE  rcvd: 116

11

O ̈rnekteg ̈oru ̈ldu ̈ ̆gu ̈u ̈zere,magmalinux.comi ̧cinIPadreslerimiz,adsunucularımızayar- ladı ̆gımız gibi. dig uygulamasına verdig ̆imiz @127.0.0.1 parametresi sorgulanacak DNS sunucusunun IP adresini belirtir. E ̆ger bu parametre belirtilmemi ̧s ise, /etc/resolv.conf dosyasında belirtilen DNS sunucuları kullanılır.

2.4.4 Ters B ̈olge Dosyası

S ̧u ana kadar inceledi ̆gimiz DNS sisteminde sadece alan adlarına g ̈ore olu ̧sturulmu ̧s bir a ̆ga ̧c g ̈ordu ̈k. Bahsetti ̆gimiz bu a ̆ga ̧c u ̈zerinde IP adreslerinin hiyerar ̧sik bir yapısı olmadı ̆gı i ̧cin, IP adresinin alan adı kar ̧sılı ̆gını bulmak istedi ̆gimiz zaman, DNS a ̆gacınının bu ̈tu ̈n u ̧clarını tek tek gezip IP adresini aramak gerekir (ki bu imkansızdır). Bu yu ̈zden, gu ̈nu ̈mu ̈zdeki DNS sisteminde, .arpa TLD (u ̈st du ̈zey alan adı) altında olu ̧sturulmu ̧s IP adreslerin hiyerar ̧sik yapısı vardır.

Alan adı sa ̆gdan sola do ̆gru genel adresten (com), ̈ozele giderken (magmalinux.com), IP adresinde durum tam tersidir. Bu yu ̈zden IP adreslerini DNS sistemi i ̧cerisinde ifade ederken ters yazarız ( ̈orneg ̆in 78.188.112.56 yerine 56.112.188.78 ̧seklinde yazarız. Bu bize DNS sistemi i ̧cerisinde bir IP adresini ararken, alan adı i ̧cin kullandı ̆gımız y ̈ontemin aynısını kullanmamızı sa ̆glar). Bu yu ̈zden b ̈oyle bir a ̆gac ̧ta IP adresinin alan adı kar ̧sılı ̆gını bulmak, alan adının IP adresi kar ̧sılı ̆gını bulmaktan farksızdır. Sadece .arpa adında ̈ozel bir TLD miz ve bu TLD nin altında, IP adresleri i ̧cin “in-addr” isminde ikinci seviye alan adımız (Second-Level Domain) var. Buna g ̈ore 78.188.112.56 IP adresinin DNS sistemi i ̧cerisindeki kar ̧sılıg ̆ı 56.112.188.78.in-addr.arpa olur.

Ters b ̈olge dosyamızı olu ̧sturmadan ̈once ters b ̈olgemizi, named.conf dosyasında belir- telim. Yine bunun i ̧cin named.conf yerine kendi du ̈zenlemelerimiz i ̧cin olu ̧sturulmu ̧s na- med.conf.local dosyasını a ̧cıp a ̧sag ̆ıdaki ̧sekilde de ̆gi ̧stirelim:

zone "magmalinux.com" {
        type master;
        file "magmalinux.com";

};

// magmalinux.com icin, ters bolge tanimi
zone "112.188.78.in-addr.arpa" {
        type master;
        file "magmalinux.com.rev";

};

Yeni ekledi ̆gimiz b ̈olge adına dikkat edin. Ters b ̈olge dosyamızda IP adresinin son basama ̆gına kar ̧sılık gelen alan adlarını yazaca ̆gımız i ̧cin, b ̈olge adına IP adresinin son kısmı olan 56’yı yazmadık.

named.conf.local dosyasındaki bu de ̆gi ̧siklikten sonra /var/cache/bind/ dizini altında “magmalinux.com.rev” dosyasını a ̧sa ̆gıdaki ̧sekilde olu ̧sturmalıyız:

12

$TTL 1d

@ IN SOA ns0.magmalinux.com. root.magmalinux.com. (
        2008071610 ;serial

)

   7h ;refresh
   3h ;retry
   1w ;expiry
86400 ;minimum TTL
@ IN NS ns0.magmalinux.com.
@ IN NS ns1.magmalinux.com.
56      IN      PTR     mail.magmalinux.com.
60      IN      PTR     ns1.magmalinux.com.

G ̈ordu ̈ ̆gu ̈nu ̈z u ̈zere, ters b ̈olge dosyaları PTR kayıtlarına kadar normal b ̈olge dosya- larıyla aynı i ̧cerig ̆e sahip. PTR kayıtlarının tek g ̈orevi ise IP adresinin son basama ̆gına kar ̧sılık gelen alan adlarını belirtmektir. Bir de girdi ̆gimiz alan adlarının tam belirtilmi ̧s alan adları oldu ̆guna dikkat edin (magmalinux.com b ̈olge dosyasındaki ns1, mail gibi bilgi- sayar isimleri yerine, ns1.magmalinux.com. tam isim ̧seklinde giriyoruz ve bir kez daha alan adlarının sonundaki noktalara dikkat. E ̆ger noktasız bi ̧cimde girersek, bunlar bilgisayar adları zannedilip sonuna magmalinux.com eklenmek yerine b ̈olge ismi olan 112.188.78.in- addr.arpa eklenecek. Ayrıntılı bilgi i ̧cin http://en.wikipedia.org/wiki/FQDN).

Dikkat etmeniz gereken bir ba ̧ska ̧sey; b ̈olge dosyalarında, bir IP adresine birden fazla isim verebildig ̆iniz halde, ters b ̈olge dosyalarında bir IP adresini yalnızca bir kere tanımlayabilirsiniz. Yani ters b ̈olge dosyanızda 56 IN PTR mail.magmalinux.com. ve 56 IN PTR magmalinux.com. ̧seklinde iki kayıt olamaz. Bu durumda ikisinden birini se ̧cmeniz gerekir ki, e-posta g ̈onderip alma sırasında spamlere kar ̧sı korunma sebebiyle ters b ̈olge sorgulaması yapıldıg ̆ı i ̧cin, mail.magmalinux.com. adresini se ̧cmeniz daha uygun olur.

Ters b ̈olge ayarlarımızı test etmek amacıyla dig aracı ile IP adresine kar ̧sılık alan adını bulmak i ̧cin:

# dig -x 78.188.112.56

komutunu kullanabilirsiniz.

13

2.4.5 I ̇kincilDNSSunucusuYapılandırması

I ̇lk olarak I ̇kincil DNS sunucumuza BIND kuralım. Ardından yapmamız gereken tek ̧sey /etc/bind/named.conf.local dosyasını a ̧cıp b ̈olgemizi tanımlamak ve b ̈olge transferi yapılacak Birincil DNS Sunucuların IP adreslerini belirtmek:

zone "magmalinux.com" {
        type slave;
        file "magmalinux.com.slave";
        masters { 78.188.112.56; };

};

type slave satırı, DNS sunucusunun bu b ̈olge i ̧cin ikincil DNS sunucusu oldu ̆gunu belirtir. masters parametresi ise b ̈olge transferi yapılacak birincil DNS sunucularını belirler.

S ̧imdi I ̇kincil sunucumuzdaki BIND’ı yeniden ba ̧slatalım:

# /etc/init.d/bind9 restart

Tu ̈m yapmamız gereken bu kadar. magmalinux.com.slave b ̈olge dosyasını yazmadı ̆gımıza dikkat edin. Bu b ̈olge dosyası Birincil DNS sunucusundan transfer edilece ̆gi i ̧cin elle olu ̧sturmadık. DNS sunucunuzu yeniden ba ̧slattıktan sonra /var/cache/bind dizinindeki magmalinux.com.slave dosyasının olu ̧sturulup olu ̧sturulmadı ̆gını kontrol edebilirsiniz.

E ̆ger I ̇kincil DNS sunucusu dı ̧sındaki sunucuların Birincil DNS sunucusundan b ̈olge transferi yapmasını engellemek istiyorsanız, Birincil DNS sunucunuzun named.conf.local dosyasının magmalinux.com b ̈olge ayarlarını a ̧sa ̆gıdaki gibi yapmanız gerekiyor:

zone "magmalinux.com" {
        type master;
        file "magmalinux.com";
        allow-transfer { 78.188.112.60; };

};

allow-transfer parametresi, bu b ̈olgenin transferini yapabilecek IP adreslerini tanımlar. Belirtilmedi ̆gi taktirde DNS sunucusu herkesin b ̈olge transferi yapmasına izin verir. allow- transfer parametresini named.conf.options dosyasında bu ̈tu ̈n b ̈olgeleri etkileyecek ̧sekilde de ayarlayabilirsiniz.

2.5 DNSSunucusunuI ̇kinciBirAlanAdıI ̇ ̧cinYapılandırmak

I ̇kinci ekleyece ̆gimiz alan adımız diyelim ki magmalinux.net olsun. Bu alan adına hizmet vermek i ̧cin ̈oncelikle named.conf.local dosyası i ̧cerisinde b ̈olge tanımlaması yapmalıyız:

zone "magmalinux.net" {
        type master;

};

file "magmalinux.net";

14

S ̧imdi ise b ̈olge tanımında belirtti ̆gimiz magmalinux.net b ̈olge dosyasını /var/cache/bind/ dizini altında olu ̧sturalım. magmalinux.net b ̈olgesi i ̧cin ̈ornek bir b ̈olge dosyası ̧su ̧sekilde olabilir:

$TTL 1d

@ IN SOA ns0.magmalinux.net. root.magmalinux.net. (
        2008063000 ;serial

)

)

7h ;refresh
3h ;retry
1w ;expiry
86400 ;minimum TTL
@ IN NS ns0.magmalinux.net.
@ IN NS ns1.magmalinux.net.
@ IN MX 10 mail.magmalinux.net.
magmalinux.net. IN      A
www             IN      A
  1. ns0  IN A
  2. ns1  IN A

mail IN A

78.188.112.65
78.188.112.65
78.188.112.56
78.188.112.60
78.188.112.65

Ters b ̈olge kaydı i ̧cin named.conf.local dosyasında bir de ̆gi ̧sikli ̆ge gerek yok. 112.188.78.in-addr.arpa b ̈olgesini zaten olu ̧sturdug ̆umuz i ̧cin, yapmamız gereken tek ̧sey, /var/cache/bind/magmalinux.com.rev dosyasına magmalinux.net i ̧cin ilgili ters kayıtları girmek. Yukarıdaki magmalinux.net b ̈olge dosyasına g ̈ore, magmalinux.com.rev dosyamız ̧su ̧sekilde olmalıdır:

$TTL 1d

@ IN SOA ns0.magmalinux.com. root.magmalinux.com. (
        2008071610 ;serial
   7h ;refresh
   3h ;retry
   1w ;expiry
86400 ;minimum TTL
@ IN NS ns0.magmalinux.com.
@ IN NS ns1.magmalinux.com.
56      IN
60      IN
65      IN
PTR     mail.magmalinux.com.
PTR     ns1.magmalinux.com.
PTR     mail.magmalinux.net.

15

2.6 Alt Alan Adını Vekalet Verme

Diyelim ki debian.org alan adını y ̈onetiyorsunuz ve tr.debian.org, en.debian.org gibi alt alan adlarının y ̈onetimini ilgili u ̈lkedeki ba ̧ska bir DNS sunucusuna devretmek istiyor- sunuz (ilgili alt alan adlarının sistem y ̈oneticileri bu alt alan altında ba ̧ska alan a ̧cmak (ftp.tr.debian.org gibi) ya da yu ̈k dengeleme yapmak isteyebilirler (ftp.tr.debian.org i ̧cin birden fazla IP adresi tanımlamak gibi)). I ̇lk ̈orneg ̆imizden beri magmalinux.com alan adı ile ̧calı ̧stı ̆gımızdan, bu senaryodaki debian.org alan adını magmalinux.com ile de ̆gi ̧stirip yolumuza devam edelim.

O ̈ncelikle /var/cache/bind/magmalinux.com dosyamızı a ̧cıp ilgili alt domain tanımlarımızı yapalım:

$TTL 1d

@ IN SOA ns0.magmalinux.com. root.magmalinux.com. (
        2008063005 ;serial

)

7h ;refresh
3h ;retry
1w ;expiry
86400 ;minimum TTL
@ IN NS ns0.magmalinux.com.
@ IN NS ns1.magmalinux.com.
@ IN MX 10 mail.magmalinux.com.
magmalinux.com. IN
www             IN
  1. ns0  IN
  2. ns1  IN
mail            IN
ftp             IN
posta           IN
smtp            IN
A
A
A
A
A
A
CNAME
CNAME
78.188.112.56
78.188.112.56
78.188.112.56
78.188.112.60
78.188.112.56
78.188.112.56
mail

mail

ns0.tr.magmalinux.com.
ns0.magmalinux.com.
80.250.41.61
ns0.en.magmalinux.com.
ns0.magmalinux.com.
128.100.241.213
; alt alan adi tanimlari
tr.magmalinux.com. IN   NS
tr.magmalinux.com. IN   NS
ns0.tr.magmalinux.com. IN A
en.magmalinux.com. IN   NS
en.magmalinux.com. IN   NS
ns0.en.magmalinux.com. IN A

16

“tr” alt alan adı ve “en” alan adları i ̧cin bu alt alanlarının DNS sunucularını tanımladık (ikincil DNS sunucusu olarak magmalinux.com’un birincil DNS sunucusunu belirledik). “tr” ve “en” alt alan adlarının DNS sunucularının da IP adresini girmek zorundayız. C ̧u ̈nku ̈ tr.magmalinux.com alan adının IP adresi istendi ̆gi zaman cevap olarak ns0.tr.magmalinux.com d ̈onecek, ki bu alan adının IP sini bulabilmek i ̧cin ̈once tr.magmalinux.com sunucusuna eri ̧silmesi gerekir. Sonu ̧c olarak, sonsuz bir d ̈ongu ̈ye girilmi ̧s olur. Bu yu ̈zden tr alan adı i ̧cin belirtilen DNS sunucusunun IP adresi girilmesi gerekir (Bu tip kayıtlara “glue record” denir).

Bu dosyada tekrar eden tr.magmalinux.com. ve en.magmalinux.com. yazımları sizi ra- hatsız ediyorsa $ORIGIN talimatını kullanarak @ i ̧saretinin de ̆gerini de ̆gi ̧stirebilirsiniz. S ̧ ̈oyle ki:

// ... bolge dosyasinin bas kismi
; alt alan adi tanimlari
$ORIGIN tr.magmalinux.com.

@IN @IN

ns0          IN
$ORIGIN en.magmalinux.com.

@IN @IN

ns0 IN

NS      ns0.en.magmalinux.com.
NS      ns0.magmalinux.com.
A     128.100.241.213
NS      ns0.tr.magmalinux.com.
NS      ns0.magmalinux.com.
A     80.250.41.61

Gelecekte eklenecek bir ̧cok alt alan adını vekalet verme durumu i ̧cin, bu tanımlar du ̈zen a ̧cısından bir ba ̧ska dosya i ̧cerisinde yapılıp, magmalinux.com b ̈olge dos- yası i ̧cerisine $INCLUDE talimatını kullanarak eklenebilir. O ̈rne ̆gin bu tanımları /var/cache/bind/magmalinux.com.sub dosyası i ̧cerisinde yapalım:

$ORIGIN tr.magmalinux.com.

@IN @IN

ns0          IN
$ORIGIN en.magmalinux.com.
NS      ns0.tr.magmalinux.com.
NS      ns0.magmalinux.com.
A     80.250.41.61

17

  • @  IN NS
  • @  IN NS

ns0 IN A

  ns0.en.magmalinux.com.
  ns0.magmalinux.com.
128.100.241.213

Sonrasında bu magmalinux.com.sub dosyasını magmalinux.com b ̈olge dosyası i ̧cerisine dahil edelim. magmalinux.com b ̈olge dosyamız son haliyle ̧su ̧sekilde olacaktır:

$TTL 1d

@ IN SOA ns0.magmalinux.com. root.magmalinux.com. (
        2008063005 ;serial
        7h ;refresh
        3h ;retry
        1w ;expiry
        86400 ;minimum TTL

)

@ IN NS ns0.magmalinux.com.
@ IN NS ns1.magmalinux.com.
@ IN MX 10 mail.magmalinux.com.
magmalinux.com. IN
www             IN
  1. ns0  IN
  2. ns1  IN
mail            IN
ftp             IN
posta           IN
smtp            IN
A       78.188.112.56
A       78.188.112.56
A       78.188.112.56
A       78.188.112.60
A       78.188.112.56
A       78.188.112.56
CNAME   mail
                        CNAME   mail
$INCLUDE magmalinux.com.sub

magmalinux.com DNS sunucusunda yaptı ̆gımız bu de ̆gi ̧sikliklerden sonra, “tr” alt alan adı DNS sunucusu named.conf.local dosyasında “tr.magmalinux.com” b ̈olgesini tanımlayıp, b ̈olge dosyasını olu ̧sturmalıyız (Aynı i ̧slemi “en” alt alan adı DNS sunucusu i ̧cin de yap- malıyız). En son magmalinux.com.sub dosyasında belirtti ̆gimiz bu alt alan adlarının ikincil DNS sunucusu olan magmalinux.com DNS sunucusunun named.conf.local dosyasında ik- incil b ̈olge tanımlarını yapmalıyız. Bu i ̧slemlerin nasıl yapılaca ̆gı belge de anlatıldı ̆gı i ̧cin, bu de ̆gi ̧siklikleri yapmak size bırakıldı.

18

2.7 /etc/bind/named.conf.options

named.conf.options dosyası, named servisinin nasıl ̧calı ̧sacag ̆ı ile ilgili se ̧cenekleri belirler (named servisinin process id’sinin tutuldu ̆gu dosyanın yolu, b ̈olge dosyalarının tutuldu ̆gu dizin gibi)

O ̈rnek bir named.conf.options dosyası:

options {
        directory "/var/cache/bind";
        // query-source address * port 53;
        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
        version none;
        allow-transfer { none; };
        allow-query { any; };
        allow-recursion { any; };
        recursion yes;
        querylog yes;

};
directory: Bu satırdan sonra belirtilecek tu ̈m g ̈oreceli yollar i ̧cin, ba ̧slangı ̧c yolu.

query-source: DNS sunusucusundan dı ̧sarıya yapılacak sorgular i ̧cin kullanılacak IP adresi ve port numarası.

listen-on-v6: BIND’ın IPv6 sorguları dinlemesini sa ̆glar. Bu se ̧cenek tanımlanmamı ̧ssa, BIND hi ̧cbir IPv6 trafi ̆gini dinlemeyecektir.

version: BIND’ın su ̈ru ̈mu ̈nu ̈ ̈og ̆renmek isteyen sorgulara ne cevap verileceg ̆ini bel- irler (”none” de ̆geri bu sorgulara cevap verilmeyeceg ̆ini belirtir. Bu se ̧ceneg ̆e k ̈otu ̈ niyetli ki ̧sileri yanıltmak i ̧cin ba ̧ska bir su ̈ru ̈m numarası da yazabilirsiniz).

allow-query: Alan adı sunucunuza kimlerin sorgu yapabileceg ̆ini belirler. Inter- net’e a ̧cılan bir alan adı sunucusu ise herkesin sizin alan adı sunucunuza eri ̧sebilmesini isteyeceg ̆inizden bu parametre any olmalı ya da hi ̧c tanımlamalısınız (varsayılan de ̆ger any).

allow-transfer: Kimlerin, bu alan adı sunucusundaki tu ̈m b ̈olge bilgilerini transfer edebilece ̆gini belirler. I ̇kincil DNS sunucunuz varsa, bu se ̧cene ̆ge ikincil DNS sunucunuzun IP adresini belirtmelisiniz. (Varsayılan de ̆ger any, yani herkes b ̈olge bilgilerini transfer edebilir).

19

allow-recursion: Kimlerin ̈ozyinelemeli sorgu yapabilece ̆gini belirler (varsayılan de ̆ger any).
recursion: DNS sunucusunun ̈ozyinelemeli sorguları destekleyip desteklemeyece ̆gini belirler. E ̆ger sorgulanan alan adı ̈on bellekte varsa bu de ̆gi ̧skene bakılmaksızın sorguya cevap verilir.

querylog: DNS sunucusu testleri sırasında yapılan sorguların loglarının tutulup tutulma- yacag ̆ını belirler. Loglar /var/log/syslog a yazılır.

Bu dosyada de ̆gi ̧siklik yaptıktan sonra BIND’ı yeniden ba ̧slatmalısınız:

# /etc/init.d/bind9 restart 2.8 /etc/bind/named.conf

En genel b ̈olge tanımlarının bulundu ̆gu dosyadır. E ̆ger b ̈olge tanımlaması yapılacaksa (De- bian tu ̈revi sistemlerde) named.conf yerine named.conf.local tercih edilmelidir. BIND, na- med.conf dosyasını okurken, named.conf.options ve named.conf.local dosyasının i ̧cerig ̆ini named.conf dosyasına dahil eder (a ̧sag ̆ıda named.conf dosyasında, bu i ̧si yapan satırlar g ̈oru ̈lu ̈yor).

include "/etc/bind/named.conf.options";
// ...
include "/etc/bind/named.conf.local";

O ̈rnek bir /etc/bind/named.conf dosyası i ̧cerig ̆i:

include "/etc/bind/named.conf.options";
zone "." {
        type hint;
        file "/etc/bind/db.root";

};

zone "localhost" {
        type master;
        file "/etc/bind/db.local";

};

zone "127.in-addr.arpa" {
        type master;
        file "/etc/bind/db.127";
include "/etc/bind/named.conf.local";

named.conf dosyamızdaki ilk b ̈olge tanımımız k ̈ok sunucuları i ̧cin. DNS sunucu- muza, kendi sunucumuzda tanımlı olmayan bir b ̈olge (alan adı) soruldu ̆gunda, sorguyu

};

20

yanıtlayabilmesi i ̧cin bu b ̈olgeyi belirtmek zorundayız (“.” b ̈olgesi; named.conf dosyasında bulunmayan herhangi bir b ̈olge i ̧cin anlamına gelir).

named.conf dosyamızdaki ikinci b ̈olgemizin adı localhost. Hemen ardından localhost i ̧cin ters b ̈olge tanımı bulunuyor.

DNS sunucumuzun do ̆gru ̧sekilde ̧calı ̧sabilmesi i ̧cin named.conf dosyasındaki bu 3 b ̈olge gereklidir.

2.9 view

Belirli IP adresleri i ̧cin ya da belirli IP adresi aralı ̆gı i ̧cin DNS sunucunuzun davranı ̧sını ̈ozelle ̧stirmek istiyorsanız ilgili IP adresleri i ̧cin view tanımlamalısınız. Diyelim ki, yerel a ̆gımızdan DNS sunucumuza ba ̆glanan IP adreslerinin ̈ozyinelemeli sorgu yapmalarına izin verirken, dı ̧sardaki IP adreslerinin sadece tanımladı ̆gımız b ̈olgeler i ̧cin sorgu yapmalarına izin vermek istiyoruz. Bunu ger ̧cekle ̧stirmek i ̧cin named.conf.local dosyamıza view’ler ekle- yelim (named.conf dosyası i ̧cerisinde de view tanımlayabilirdik, fakat Debian tu ̈revi Linux da ̆gıtımlarında de ̆gi ̧sikli ̆gin named.conf.local de yapılması istenir):

view "yerelag" {
        match-clients { 10.1.0.0/24; 127.0.0.0/31; };
        recursion yes;
        allow-recursion { any; };

};

view "yabanci" {
        match-clients { any; };
        recursion no;
        allow-recursion { none; };

};

“yerelag” view’i icerisindeki match-clients parametresi, bu view’in hangi IP adres- leri (ya da IP aralıkları) i ̧cin tanımlandı ̆gını belirtir. Bizim ̈orne ̆gimizde yerelag view’ı 10.1.0.0/24 ve 127.0.0.0/31 IP aralı ̆gı i ̧cin tanımlanmı ̧s (10.1.0.0/24 IP aralı ̆gı 10.1.0.0- 255 aralı ̆gını, 127.0.0.0/31 ise 127.0.0.0-1 aralı ̆gını kapsar. Ayrıntılı bilgi i ̧cin http:// en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). Bu aralık dı ̧sındaki her- kes “yabanci” view’indedir.

view’ler i ̧cerisinde b ̈olge’de tanımlayabilir ya da aynı b ̈olgeleri farklı viewler i ̧cinde farklı davranacak ̧sekildetanımlayabilirsiniz.O ̈rne ̆ginaynıb ̈olgei ̧cinfarklıb ̈olgedosyasıkulla- nabilirsiniz:

view "yerelag" {
        match-clients { 10.1.0.0/24; 127.0.0.0/31; };
        recursion yes;
        allow-recursion { any; };
        zone "magmalinux.com" {
                type master;

21

}; };

}; };

Kaynaklar

file "magmalinux.com.yerelag";
view "yabanci" {
        match-clients { any; };
        recursion no;
        allow-recursion { none; };
        zone "magmalinux.com" {
                type master;
file "magmalinux.com.yabanci";

[1] http://www.zytrax.com/books/dns/
[2] http://en.wikipedia.org/
[3] Tom Adelstein & Bill Lubanovic, Linux Sistem Y ̈onetimi, A ̧cık Akademi, 1. Basım [4] http://www.ilkertemir.com/document/dns.html

22

Yorum yapın