Master-gul DNS serwerini RHEL/CentOS 6.5-de Baglamak gurallaryny ulanyp guruň


Domen ady serweri (DNS) islendik öý eýelerine at çözmek üçin ulanylýar. Master DNS serwerleri (başlangyç serwer) asyl zona maglumat işleýjileri we gul DNS serweri (Ikinji serwer) diňe bir zona maglumatyny baş serwerlerden göçürmek üçin ulanylýan ätiýaçlyk serwerlerdir. Master Server, zona maglumatlar bazasynda kesgitlän her bir öý eýesiniň atlaryny çözer we UDP protokolyny ulanar, sebäbi UDP protokollary hiç haçan ykrar etme amalyny ulanmaýar, tcp tassyklamany ulanýar. DNS serwerleri, talap haýyşyny has ir çözmek üçin UDP protokollaryny hem ulanýarlar.

DNS-e düşünmek täze doglan çagalar üçin az bulaşyk bolup biler. Ine, DNS-iň işleýşi barada gysgaça düşündiriş.

Aýdaly, haýsydyr bir web sahypasyna girmek zerur bolsa näme ederis? Diňe brauzerde www.google.com ýazyň we enter-e basyň. Hmm, biziň bilýänlerimiziň hemmesi, ýöne hakykat, DNS-iň bizden soraýarka, nähili agyry başdan geçirýändigi. Www.google.com ýazanymyzda ulgam www.google.com gözlär. Haçan-da bir domen adyny ýazanymyzda, a. (nokat) at giňişliginiň kök serwerini gözlemegi aýdýan www.google.com-nyň soňundaky.

Bütin dünýäde soragy çözmek üçin 13 kök serwer bar. Ilki bilen, www.google.com diýip girenimizde, brauzerimiz ussady we gul DNS serwer maglumaty barada ýazgy bolan ýerli çözüjimize haýyş iberer. Şeýle soralýan talap barada maglumaty ýok bolsa, haýyşy Iň ýokary derejeli domene (TLD) geçirerler, eger TLD haýyşy bilmeýändigimi aýtsa, islegiňizi bilýän abraýly serwer bolup biler, bu abraýly adama ugradylar serwerler, bu ýerde diňe www.google.com 72.36.15.56 salgy hökmünde kesgitlenildi.

Şol bir wagtyň özünde abraýly serwer TLD-e jogap berer we TLD kök serwerine geçer we kök brauzere maglumat berer, şonuň üçin brauzer geljekde ulanmak üçin DNS haýyşyny keşde saklar. Şeýlelik bilen bu uzyn proses diňe millisekuntda çözüler. Islegini bilmeseler, NXDOMAIN diýip jogap bererler. Diýmek, Zona maglumatlar bazasynda hiç hili ýazgy ýok. Bu size DNS-iň işleýşine düşünmäge kömek eder diýip umyt edýärin.

Şeýle hem okaň : Ubuntu-da DNS Keş serwerini guruň

Bu makala üçin 3 maşyn, 2 serwer gurmak üçin (ussat we gul) we 1 müşderi üçin ulanýaryn.

---------------------------------------------------
Master DNS Server
---------------------------------------------------

IP Address	:	192.168.0.200
Host-name	:	masterdns.tecmintlocal.com
OS		:	Centos 6.5 Final
---------------------------------------------------
Slave DNS Server
---------------------------------------------------

IP Address	:	192.168.0.201
Host-name	:	slavedns.tecmintlocal.com
OS		:	Centos 6.5 Final
---------------------------------------------------
Client Machine to use DNS
---------------------------------------------------

IP Address	:	192.168.0.210
Host-name	:	node1.tecmintlocal.com
OS		:	Centos 6.5 Final
bind, bind-utils, bind-chroot
config file	:	/etc/named.conf
script file	:	/etc/init.d/named
53, UDP

Master DNS serwerini guruň

Ilki bilen, gurmak üçin öňe gitmezden ozal, Master DNS Serweriniň IP adresini, Hostname we Distribution wersiýasyny barlaň.

$ sudo ifconfig | grep inet
$ hostname
$ cat /etc/redhat-release

Bir gezek, ýokardaky sazlamalaryň dogrudygyny, zerur paketleri gurmak üçin öňe gitmegiň wagtydygyny tassyklaýarsyňyz.

$ sudo yum install bind* -y

Gerekli paketleri guranyňyzdan soň, “konfigurasiýa” faýlynda baş konfigurasiýada zona faýllaryny kesgitläň.

$ sudo vim /etc/named.conf

Aşakda berlen meniň adym.conf faýl ýazgysy, konfigurasiýa faýlyny islegiňize görä üýtgediň.

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
        listen-on port 53 { 127.0.0.1; 192.168.0.200; }; # Here we need to add our Master DNS Server IP.
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { localhost; 192.168.0.0/24; }; # subnet range where my hosts are allowed to query our DNS.
        allow-transfer     { localhost; 192.168.0.201; };  # Here we need to our Slave DNS server IP.
        recursion no;

        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};

## Define our forward & reverse Zone file here for tecmintlocal.com.


zone"tecmintlocal.com" IN {
type master;
file "tecmintlocal.fwd.zone";
allow-update { none; };
};

zone"0.168.192.in-addr.arpa" IN {
type master;
file "tecmintlocal.rev.zone";
allow-update { none; };
};

#####
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

Aşakdaky faýlda ulanan her konfigurasiýamyzyň düşündirişi.

  1. diňlemek porty 53 - Bu DNS üçin elýeterli interfeýslerde diňlemek üçin ulanylýar.
  2. Master DNS - Talaby diňlemek üçin Master DNS IP adresiňizi kesgitläň.
  3. Gul DNS - Master-den ýer eýelerini çözmek üçin zona maglumatlarymyzy sinhronlamak üçin ulanylýan gul DNS-ni kesgitläň.
  4. gaýtalanma ýok - Hawa diýlen bolsa, gaýtalanýan talaplar serweri DDOS hüjümine öwürer.
  5. Zonanyň ady - Tecminlocal.com diýip kesgitlenen zona adyňyzy kesgitläň.
  6. tipli ussat - Bu ulgam baş serwer üçin düzülenligi sebäpli, ýakyn wagtda geçiriljek gul serweri üçin bu gul bolar.
  7. tecmintlocal.fwd.zone - Bu faýlda bu zona üçin esasy maglumatlar bar.
  8. hiç kimiň täzelenmegine rugsat beriň - Hiç biri düzülmese. dinamiki DNS (DDNS) ulanmaz.

Ilki bilen gözleg zolagynyň girişini kesgitläliň. Bu ýerde aşakdaky ýaly named.conf faýlynda kesgitlän zadymyzyň ady bilen zona faýllaryny döretmeli.

tecmintlocal.fwd.zone
tecmintlocal.rev.zone

Öňe zona faýllaryny döretmek üçin nusga konfigurasiýa faýllaryny ulanýarys, munuň üçin nusga konfigurasiýa faýllaryny göçürmeli.

$ sudo cp /var/named/named.localhost /var/named/tecmintlocal.fwd.zone
$ sudo cp /var/named/named.loopback /var/named/tecmintlocal.rev.zone

Bir gezek konfigurasiýa faýllaryny göçürdiňiz, indi vim redaktoryny ulanyp bu zona faýllaryny redaktirläň.

$ sudo vim /var/named/tecmintlocal.fwd.zone

Öňdäki zona faýlynda ýer eýesi maglumatymyzy kesgitlemezden ozal, zona faýlyna gysga göz aýlaň.

Bu meniň öňe sürülýän zona konfigurasiýam, aşakdaky ýazgyny goşuň we islegiňize görä üýtgeşmeler giriziň.

$TTL 86400
@       IN SOA  masterdns.tecmintlocal.com.     root.tecmintlocal.com. (
                                  2014090401    ; serial
                                        3600    ; refresh
                                        1800    ; retry
                                      604800    ; expire
                                       86400 )  ; minimum

; Name server's

@       IN      NS      masterdns.tecmintlocal.com.
@       IN      NS      slavedns.tecmintlocal.com.

; Name server hostname to IP resolve.

@       IN      A       192.168.0.200
@       IN      A       192.168.0.201

; Hosts in this Domain

@       IN      A       192.168.0.210
@       IN      A       192.168.0.220
masterdns       IN      A       192.168.0.200
slavedns        IN      A       192.168.0.201
node1           IN      A       192.168.0.210
rhel1           IN      A       192.168.0.220

Wq! Faýly ýazdyryň we taşlaň. Öňe serediş redaktirlenenden soň, aşakdaky ýaly görünýär, zona faýlynda oňat format almak üçin TAB ulanyň.

Indi ters gözleg faýly dörediň, eýýäm tecmintlocal.rev.zone adyndan aýlawly faýlyň nusgasyny taýýarladyk. Şeýlelik bilen, bu faýly ters gözlegimizi düzmek üçin ulanýarys.

$ sudo vim /var/named/tecmintlocal.rev.zone

Ters zona faýlynda ýer eýesi maglumatymyzy kesgitlemezden ozal, aşakda görkezilişi ýaly ters gözleg faýlyna çalt göz aýlaň.

Bu meniň ters zona konfigurasiýam, aşakdaky ýazgyny goşuň we islegiňize görä üýtgeşmeler giriziň.

$TTL 86400
@       IN SOA  masterdns.tecmintlocal.com. root.tecmintlocal.com. (
                                2014090402      ; serial
                                      3600      ; refresh
                                      1800      ; retry
                                    604800      ; expire
                                     86400 )    ; minimum

; Name server's

@       IN      NS      masterdns.tecmintlocal.com.
@       IN      NS      slavedns.tecmintlocal.com.
@       IN      PTR     tecmintlocal.com.

; Name server hostname to IP resolve.

masterdns       IN      A       192.168.0.200
slavedns        IN      A       192.168.0.201

;Hosts in Domain 

node1           IN      A       192.168.0.210
rhel            IN      A       192.168.0.220
200             IN      PTR     masterdns.tecmintlocal.com.
201             IN      PTR     slavedns.tecmintlocal.com.
210             IN      PTR     node1.tecmintlocal.com.
220             IN      PTR     rhel1.tecmintlocal.com.

Wq! Faýly ýazdyryň we taşlaň. Ters görnüşi redaktirlänsoň, aşakdaky ýaly görünýär, zona faýlynda laýyk format almak üçin TAB ulanyň.

Konfigurasiýadaky ýalňyşlyklary barlamazdan ozal, gözlemek we tersine gözlemek faýllarynyň toparyň eýeçiligini barlaň.

$ sudo ls -l /var/named/

Bu ýerde faýllaryň ikisiniň hem kök ulanyjylaryň eýeçiligindedigini görüp bileris, sebäbi nusga faýllaryndan göçürýän faýllarymyz/var/named/astynda elýeterlidir. Topary aşakdaky buýruklary ulanyp, iki faýlda atlandyryň.

$ sudo chgrp named /var/named/tecmintlocal.fwd.zone
$ sudo chgrp named /var/named/tecmintlocal.rev.zone

Faýllara dogry eýeçilik belläniňizden soň, täzeden barlaň.

$ sudo ls -l /var/named/

Indi, DNS hyzmatyny başlamazdan ozal zona faýllaryndaky ýalňyşlyklary barlaň. Ilki bilen atlandyrylan.conf faýlyny barlaň, soňra beýleki zona faýllaryny barlaň.

$ sudo named-checkconf /etc/named.conf
$ sudo named-checkzone masterdns.tecminlocal.com /var/named/tecmintlocal.fwd.zone
$ sudo named-checkzone masterdns.tecminlocal.com /var/named/tecmintlocal.rev.zone

Düzgüne görä iptables işleýärdi we DNS serwerimiz ýerlihost bilen çäklendirilýär, eger müşderi DNS Serwerimizden adyny çözmek islese, giriş haýyşyna rugsat bermelidiris, munuň üçin 53-nji port üçin iptables giriş düzgünini goşmalydyrys.

$ sudo iptables -I INPUT -p udp --dport 53 -m state --state NEW -j ACCEPT

Indi, düzgünleriň INPUT zynjyrynda dogry goşulandygyny barlaň.

$ sudo iptables -L INPUT

Ondan soň düzgünleri ýatda saklaň we diwar diwaryny täzeden açyň.

$ sudo service iptables save
$ sudo service iptables restart

Ady berlen hyzmaty başlaň we dowamly ediň.

$ sudo service named start
$ sudo chkconfig named on
$ sudo chkconfig --list named

Ahyrynda, dig & nslookup gurallaryny ulanyp, düzülen Master DNS zona faýllaryny (öňe we tersine) synap görüň.

$ dig masterdns.tecmintlocal.com		[Forward Zone]
$ dig -x 192.168.0.200
$ nslookup tecmintlocal.com
$ nslookup masterdns.tecmintlocal.com
$ nslookup slavedns.tecmintlocal.com

Salkyn! ussat DNS düzdük, indi gul DNS serwerini gurmaly. Gul serwerini gurmak üçin öňe gideliň, bu ussat gurnama ýaly köp wagt almaz.

Gul DNS serwerini guruň

Gul maşynynda, Master-de görkezilişi ýaly birmeňzeş paketleri gurmalydyrys, geliň, aşakdaky buýrugy ulanyp guralyň.

$ sudo yum install bind* -y

Zona maglumatlar bazamyz we port diňlemek üçin “named.conf” faýlyny açyň we redaktirläň.

$ sudo vim /etc/named.conf

Talaplaryňyza görä üýtgeşmeler giriziň.

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
        listen-on port 53 { 127.0.0.1; 192.168.0.201}; # Our Slave DNS server IP
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { localhost; 192.168.0.0/24; };
        recursion no;

        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};

## Define our slave forward and reverse zone, Zone files are replicated from master.

zone"tecmintlocal.com" IN {
type slave;
file "slaves/tecmintlocal.fwd.zone";
masters { 192.168.0.200; };
};

zone"0.168.192.in-addr.arpa" IN {
type slave;
file "slaves/tecmintlocal.rev.zone";
masters { 192.168.0.200; };
};

#####
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

DNS hyzmatyny ulanyp başlaň.

$ sudo service named start

Baglaýjy hyzmaty täzeden açanymyzdan soň, zona maglumatyny aýratyn kesgitlemeli däldiris, sebäbi rugsat berişimiz aşakdaky suratda görkezilişi ýaly zona maglumatyny baş serwerden göçürer.

$ sudo ls -l /var/named/slaves

Pişik buýrugyny ulanyp zona maglumatyny barlaň.

$ sudo cat /var/named/slaves/tecmintlocal.fwd.zone
$ sudo cat /var/named/slaves/tecmintlocal.rev.zone

Ondan soň, girmäge birikmek üçin iptables-de DNS port 53-i açyň.

$ sudo iptables -I INPUT -p udp --dport 53 -m state --state NEW -j ACCEPT

“Iptables” düzgünlerini ýazdyryň we “iptables” hyzmatyny täzeden açyň.

$ sudo service iptables save
$ sudo service iptables restart

Ulgamy ýüklemekde hyzmaty dowam etdiriň.

$ sudo chkconfig iptables on
Check whether persistent set for run-levels .
$ sudo chkconfig --list iptables

Bu! Müşderi maşynlarymyzy sazlamagyň we host adyny barlamagyň wagty.

Müşderi maşynyny sazlaň

Müşderi tarapynda, host adyny bellemek üçin başlangyç (192.168.0.200) we Ikinji DNS (192.168.0.201) ýazgylaryny bellemeli. Munuň üçin, suratda görkezilişi ýaly bu ýazgylaryň hemmesini kesgitlemek üçin gurnama buýrugyny işlediň.

$ setup

.Ogsam, /etc/reslov.conf faýlyny redaktirläň we aşakdaky ýazgylary goşuň.

$ vim /etc/resolv.conf
search tecmintlocal.com
nameserver 192.168.0.200
nameserver 192.168.0.201

Indi ip, host ady we serwer gözlegini barlaň.

$ ifconfig | grep inet
$ hostname
$ nslookup tecmintlocal.com

Indi, öňe we tersine DNS gözlegini ulanyp barlaň.

$ dig masterdns.tecmintlocal.com
$ dig -x 192.168.0.200

Gazuwyň aşagy:

  1. sözbaşy - Bu, biziň soran zatlarymyzyň we netijäniň nähili bolandygyny aýdýar.
  2. Status - usagdaý NOAL .YŞLYK däldi, bu biziň iberen talap haýyşymyzyň hiç hili RALRYŞLYK bolmazdan üstünlikli bolandygyny aňladýar.
  3. Sorag - Biziň beren soragymyz, bu ýerde meniň soragym masterdns.tecmintlocal.com.
  4. Jogap - Maglumat bar bolsa, Talap haýyşy çözüldi.
  5. Häkimiýet - Domen we zona üçin at serwerleriniň jogaby.
  6. Goşmaça - host-name we IP adresi ýaly at serwerleri barada goşmaça maglumat.
  7. Talap wagty - aboveokardaky serwerlerden atlary çözmek üçin näçe wagt gerek boldy.

Ahyrynda düwünimizi barlaň we ping ediň.

$ dig node1.tecmintlocal.com
$ ping masterdns.tecmintlocal.com -c 2
$ ping slavedns.tecmintlocal.com -c 2
$ ping 192.168.0.200 -c 2
$ ping 192.168.0.201 -c 2

Ahyrynda, gurnama işleri tamamlandy, bu ýerde başlangyç (Master) we Slave (Seconday) DNS serwerini üstünlikli düzdük, her kim hiç hili kynçylyksyz gurnady diýip umyt edýäris, gurnanyňyzda haýsydyr bir mesele bilen ýüzbe-ýüz bolsaňyz, teswir ýazyp bilersiňiz.