Linux Unix

BIND DNS View Uygulaması

Bu yazımızda Bind dns sunucu üzerinde view yapısını inceliyor olacağız.  Bu nedir dediğinizi duyar gibiyim. Bind üzerindeki view yapısı sayesinde dns sunucunuz isim sorgulama sırasında farklı networklere veya hostlara göre farklı ip adreslerini cevap olarak döndürebilir.

 

Bunun bize nasıl bir faydası olabilir diye düşünüyorsanız hemen bir örnekle açıklamaya çalışayım.

Çok şubeli bir intranet yapınız olduğunu varsayalım ve bu intranet yapısında uygulama sunucunuz veya web sunucunuz bölgelere göre farklı ip adreslerinde hizmet versin istiyorsunuz.  Bu sayede izmir bölgesindeki clientler www.cozumpark.com adresine gitmek istediğinde bind dns sunucunuz izmir bölgesi için ayırdığımız web sunucunun ip adresini, istanbul bölgesindeki clientler www.cozumpark.com adresine gitmek istediğinde ise istanbul bölgesi için ayırdığınız web sunucunun ip adresini verecektir. Bu işi load balancer gibi cihazlar ile de yapabiliyoruz fakat bu yöntem ile maliyetsiz ve daha basit bir yapılandırma ile statik olarak gerçekleştirebiliriz.

 

Veya Active Directory yapınızda kullanıcı profillerinizi clientler yerine nas cihazınızda tutmak istiyorsunuz. Şehirlerarası bağlantılar yavaş olacağı için her bölge için kendi lokalindeki nas cihazını gösterebilirsiniz. Dns tarafında fileserver tanımı her bölge için kendi lokayonundaki nas cihazını gösterecektir böylece.

 

Bu kadar ön bilgiden sonra işin yapılandırma kısmına geçelim:

Test ortamımda Suse Linux kullanıyorum. Dns sunucu kurulumunu yast içerisinden basit bir şekilde yapabilirsiniz veya rpm paketlerini bulup manuel olarak da kurulum yapabilirsiniz. Debian tabanlı sistemlerde apt-get install named , Redhat tabanlı sistemlerde ise yum install named komutları ile

Dns sunucu kurulumunu yapabiliriz.

 

Kurulum sonrasında Linux sunucu üzerinde firewall servisinin kapalı olmasına veya sunucuma gelen isteklerde 53 portunun (tcp ve udp ) açık olmasına dikkat ediyorum. Aksi halde dns sunucuma erişimde ve isim çözümleme sırasında sorunlar yaşanabilir.

 

Bind dns sunucunun yapılandırma dosyası bir çok Linux dağıtımı üzerinde olduğu gibi susede de  üzerinde /etc/named.conf şeklindedir.  Bu yapılandırma dosyası içerisinde cozumpark.local isminde bölge oluşturuyorum.

 

zone “cozumpark.local” in {

        allow-transfer { any; };

        file “master/cozumpark.local”;

        type master;

};

 

Kayıt dosyaları ise /var/lib/named/master/cozumpark.local dosyası içerisinde yer alıyor.

$TTL 2d

@               IN SOA          suse.   root.suse. (

                                2015102000      ; serial

                                3h                       ; refresh

                                1h                       ; retry

                                1w                      ; expiry

                                1d )                    ; minimum

 

cozumpark.local.        IN NS           suse.cozumpark.local.

suse                               IN A            10.100.5.250

clip_image002

 

Bu dns sunucuyu kullanan bir client isim çözümlemek istediğinde hangi lokasyondan gelirse gelsin

suse.cozumpark.local için 10.100.5.250 adresini görüyor.

clip_image004

clip_image006

 

Şimdi lokasyonlarım için bind dns sunucu üzerinde acl (access list – erişim yetkisi) tanımlarını yapmam gerekiyor.

 

clip_image008

 

İstanbul lokasyonumu 10.100.17.0 /24 networku , izmir lokasyonumu da 10.100.19/24 networku olarak tanımlıyorum. Bu tanımlardan sonra dns sunucumun bu lokasyonlardan gelecek istekler için farklı ip adresleri döndürmesini sağlamam gerekiyor.

 

view “izmir” {

    match-clients { izmir; };

    zone “cozumpark.local” {

        type master;

        file “/var/lib/named/master/izmir.cozumpark.local”;

        allow-transfer { slaves; };

    };

};

view “istanbul” {

    match-clients { istanbul; };

    zone “cozumpark.local” {

        type master;

        file “/var/lib/named/master/istanbul.cozumpark.local”;

        allow-transfer { slaves; };

    };

};

 

Bu konfigürasyon sonrasında “/var/lib/named/master altında izmir ve İstanbul için ayrı bölge dosyalarımı oluşturmam gerekiyor.

 

 

 

 

İzmir için :

suse:/var/lib/named/master # cat izmir.cozumpark.local

$TTL 2d

@               IN SOA          suse.   root.suse. (

                                2015102000      ; serial

                                3h              ; refresh

                                1h              ; retry

                                1w              ; expiry

                                1d )            ; minimum

 

cozumpark.local.        IN NS           suse.cozumpark.local.

suse            IN A            10.100.5.250

www             IN A            10.0.0.35

 

İstanbul için:

suse:/var/lib/named/master # cat istanbul.cozumpark.local

$TTL 2d

@               IN SOA          suse.   root.suse. (

                                2015102000      ; serial

                                3h              ; refresh

                                1h              ; retry

                                1w              ; expiry

                                1d )            ; minimum

 

cozumpark.local.        IN NS           suse.cozumpark.local.

suse            IN A            10.100.5.250

www             IN A            10.0.0.34

 

bölge dosyalarımı da oluşturduktan sonra konfigürasyonu okuması için bind dns servisini

yetkili kullanıcı ile service named restart komutu ile yeniden başlatıyorum.

 

İzmir bölgesindeki bir client tarafından      ( 10.100.19.0/24 ) ve

İstanbul bölgesindeki bir client tarafından (10.100.17.0/24) testlerimizi yapıp

yaptığımız konfigürasyonun doğru bir şekilde çalışıp çalışmadığını test ediyorum.

 

İzmir bölgesindeki client :

 

 

clip_image010

 

Bu sorgu için konfigürasyon dosyasında ayarladığımız gibi 10.0.0.35 ip adresini döndürüyor.

 

İstanbul bölgesindeki client:

 

clip_image012

 

Bu sorgu için konfigürasyon dosyasında ayarladığımız gibi 10.0.0.34 ip adresini döndürüyor.

 

Böylece farklı şubelerimdeki clientler aynı isim sorgusu için farklı sunuculara erişebiliyorlar.

 

Faydalı olması dileği ile.

İlgili Makaleler

Bir Yorum

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu