Podešavanje Master-Slave DNS servera koristeći "Bind" alate u RHEL/CentOS 6.5


Domain Name Server (DNS) koji se koristi za razrješavanje imena na bilo koji host. Glavni DNS serveri (Primarni server) su originalni rukovaoci zonskim podacima, a Slave DNS server (Sekundarni server) su samo rezervni serveri koji se koriste za kopiranje istih informacija o zoni sa glavni serveri. Glavni server će razriješiti imena za sve hostove koje smo definirali u bazi podataka zone i koristiti UDP protokol, jer UDP protokoli nikada ne koriste proces potvrde dok tcp koristi potvrdu. DNS serveri također koriste UDP protokole za rješavanje zahtjeva upita što je prije moguće.

Kako DNS radi?

Razumijevanje DNS-a može biti malo zbunjujuće za početnike. Evo kratkog objašnjenja kako DNS radi.

Recimo, ako trebamo pristupiti bilo kojoj web stranici, šta ćemo učiniti? Samo ukucajte www.google.com u pretraživač i pritisnite enter. Hmm, to je sve što znamo, ali činjenica je koliko boli DNS prolazi kroz to, dok pita za nas. Dok kucamo www.google.com sistem će tražiti www.google.com. Kad god upišemo ime domene, postoji . (tačka) na kraju www.google.com koja kaže da se traži root server imenskog prostora.

Globalno postoji 13 root servera dostupnih za rješavanje upita. Prvo, dok pritisnemo enter kao www.google.com, naš pretraživač će proslijediti zahtjev našem lokalnom rezoluču, koji ima unos informacija o našem glavnom i slave DNS serveru. Ako nemaju informacije o takvom traženom upitu, proslijedit će zahtjev domeni najvišeg nivoa (TLD), ako TLD kaže da ne poznajem zahtjev, možda autoritativni server zna vaš zahtjev će proslijediti autoritativnim serverima, ovdje je samo www.google.com definirana kao adresa 72.36.15.56.

U međuvremenu će autoritativni server dati odgovor na TLD i TLD će proći na root server, a root će pružiti informacije pretraživaču, stoga će pretraživač keširati DNS zahtjev za buduću upotrebu. Stoga će se ovi dugi procesi riješiti samo za milisekunde. Ako ne znaju zahtjev, odgovorit će kao NXDOMAIN. To znači da u bazi podataka Zone ne postoji nijedan zapis. Nadamo se da će vam ovo pomoći da shvatite kako DNS funkcioniše.

Pročitajte također: Postavite DNS Cache server u Ubuntu

Moje okruženje za testiranje

Za ovaj članak koristim 3 mašine, 2 za podešavanje servera (master i slave) i 1 za klijenta.

---------------------------------------------------
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
Paketi zahtjeva
bind, bind-utils, bind-chroot
Korišteni konfiguracijski fajlovi
config file	:	/etc/named.conf
script file	:	/etc/init.d/named
Korišteni portovi i protokoli
53, UDP

Podešavanje glavnog DNS servera

Prvo, provjerite IP adresu, ime hosta i distribucijsku verziju glavnog DNS servera prije nego što krenete naprijed za podešavanje.

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

Kada potvrdite da su gornje postavke ispravne, vrijeme je da krenete naprijed i instalirate potrebne pakete.

sudo yum install bind* -y

Instalacija i konfiguracija Bind-a

Nakon instaliranja potrebnih paketa, sada definirajte datoteke zona u datoteci glavne konfiguracije „named.conf“.

sudo vim /etc/named.conf

U nastavku je dat moj unos u datoteku named.conf, promijenite konfiguracijski fajl prema vašim potrebama.

//
// 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";

Slijedi objašnjenje svake konfiguracije koju smo koristili u gornjoj datoteci.

  1. priključak za slušanje 53 – Koristi se za DNS za slušanje dostupnih interfejsa.
  2. Glavni DNS – Definišite svoju glavnu DNS IP adresu za slušanje upita.
  3. Slave DNS – Definirajte svoj Slave DNS, koji se koristi za sinhronizaciju informacija o našoj zoni za rješavanje hostova sa glavnog.
  4. rekurzija ne – Ako je postavljeno na da, rekurzivni upiti će dovesti server u DDOS napad.
  5. Naziv zone – Definirajte naziv vaše zone ovdje definiran kao tecminlocal.com.
  6. tip master – Kako je ovaj sistem konfigurisan za glavni server, za nadolazeći slave server to će biti slave.
  7. tecmintlocal.fwd.zone – Ova datoteka sadrži informacije o hostu za ovu zonu.
  8. ne dozvoli ažuriranje – Ako ništa neće biti postavljeno. neće koristiti dinamički DNS (DDNS).

Kreiranje datoteka master zone

Najprije definiramo ulaz u zonu za gledanje naprijed. Ovdje trebamo kreirati datoteke zona u ime onoga što smo definirali u datoteci named.conf kao ispod.

tecmintlocal.fwd.zone
tecmintlocal.rev.zone

Koristimo uzorke konfiguracijskih datoteka za kreiranje datoteka naprijed zone, za ovo moramo kopirati uzorke konfiguracijskih datoteka.

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

Nakon što ste kopirali konfiguracijske datoteke, sada uredite ove datoteke zona koristeći vim editor.

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

Prije definiranja naših informacija o hostu u naprijed zone datoteci, prvo pogledajte uzorak datoteke zone.

Ovo je moja konfiguracija prednje zone, dodajte donji unos i izvršite promjene prema vašim potrebama.

$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

Sačuvajte i zatvorite fajl koristeći wq!. Nakon uređivanja pregleda prema naprijed, izgleda kao ispod: Koristite TAB da biste dobili pristojan format u datoteci zone.

Sada, kreirajte datoteku obrnutog pregleda, već smo napravili kopiju loop-back datoteke pod imenom tecmintlocal.rev.zone. Dakle, koristimo ovu datoteku da konfiguriramo naše obrnuto traženje.

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

Prije definiranja naših informacija o hostu u datoteci obrnute zone, brzo pogledajte uzorak datoteke obrnutih pregleda kao što je prikazano ispod.

Ovo je moja konfiguracija obrnute zone, dodajte donji unos i izvršite promjene prema vašim potrebama.

$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.

Sačuvajte i zatvorite fajl koristeći wq!. Nakon uređivanja obrnutog pregleda, to izgleda kao ispod, Koristite TAB da dobijete pristojan format u datoteci zone.

Provjerite vlasništvo grupe nad datotekama za traženje unaprijed i obrnuto prije nego provjerite ima li grešaka u konfiguraciji.

sudo ls -l /var/named/

Ovdje možemo vidjeti da su obje datoteke u vlasništvu root korisnika, jer su fajlovi koje kopiramo iz primjera fajlova dostupni pod /var/named/. Promenite grupu u imenovanu na oba fajla koristeći sledeće komande.

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

Nakon postavljanja ispravnog vlasništva nad fajlovima, ponovo ih provjerite.

sudo ls -l /var/named/

Sada provjerite ima li grešaka u datotekama zona prije pokretanja DNS usluge. Prvo provjerite datoteku named.conf, a zatim provjerite ostale datoteke zona.

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

Podrazumevano je pokrenut iptables i naš DNS server je ograničen na localhost, ako klijent želi da razreši ime sa našeg DNS servera, onda moramo da dozvolimo ulazni zahtev, za to moramo da dodamo iptables ulazno pravilo za port 53.

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

Sada provjerite da li su pravila ispravno dodana u lanac INPUT.

sudo iptables -L INPUT

Zatim sačuvajte pravila i ponovo pokrenite zaštitni zid.

sudo service iptables save
sudo service iptables restart

Pokrenite imenovanu uslugu i učinite je postojanom.

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

Na kraju, testirajte konfigurirane datoteke glavne DNS zone (naprijed i unazad), koristeći alate dig & nslookup.

dig masterdns.tecmintlocal.com		[Forward Zone]

dig -x 192.168.0.200

nslookup tecmintlocal.com
nslookup masterdns.tecmintlocal.com
nslookup slavedns.tecmintlocal.com

Cool! konfigurisali smo Master DNS, sada trebamo postaviti Slave DNS server. Idemo naprijed na postavljanje slave servera, ovo neće potrajati puno vremena kao glavno podešavanje.

Postavite Slave DNS server

U Slave mašini, takođe moramo da instaliramo iste pakete za povezivanje kao što je prikazano u Master, pa hajde da ih instaliramo pomoću sledeće naredbe.

sudo yum install bind* -y

Otvorite i uredite datoteku 'named.conf' za našu bazu podataka zone i slušanje portova.

sudo vim /etc/named.conf

Napravite izmjene kao što je prikazano, prema vašim zahtjevima.

//
// 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";

Pokrenite DNS uslugu koristeći.

sudo service named start

Nakon ponovnog pokretanja usluge vezivanja, ne moramo pojedinačno definirati informacije o zoni, jer će naš dopusti-prijenos replicirati informacije o zoni sa glavnog servera kao što je prikazano na slici ispod.

sudo ls -l /var/named/slaves

Provjerite, informacije o zoni koristeći cat komandu.

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

Zatim otvorite DNS port 53 na iptables da omogućite ulaznu vezu.

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

Sačuvajte iptables pravila i ponovo pokrenite uslugu iptables.

sudo service iptables save
sudo service iptables restart

Učinite uslugu postojanom pri pokretanju sistema.

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

To je to!. Sada je vrijeme da konfiguriramo naše klijentske mašine i provjerimo ime hosta.

Konfigurirajte klijentsku mašinu

Na strani klijenta moramo dodijeliti primarni (192.168.0.200) i sekundarni DNS (192.168.0.201) unos u mrežnim postavkama da bismo dobili ime hosta. Da biste to uradili, pokrenite naredbu za podešavanje da biste definirali sve ove unose kao što je prikazano na slici.

setup

Inače, uredite datoteku „/etc/reslov.conf“ i dodajte sljedeće unose.

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

Sada provjerite ip, ime hosta i traženje servera imena.

ifconfig | grep inet
hostname
nslookup tecmintlocal.com

Sada, provjerite naprijed i nazad DNS traženje koristeći.

dig masterdns.tecmintlocal.com
dig -x 192.168.0.200

Razumijevanje dig Outputa:

  1. Header – Ovo govori sve što smo tražili i kakav je bio rezultat.
  2. Status – Status je bio NEMA GREŠKE, što znači da je zahtjev za upitom koji smo poslali bio uspješan bez ikakve GREŠKE.
  3. Pitanje – Upit koji smo mi napravili, ovdje je moj upit bio masterdns.tecmintlocal.com.
  4. Odgovor – Zahtjev za upit je riješen ako postoje dostupne informacije.
  5. Autoritet – Odgovor servera imena za domenu i zonu.
  6. Dodatno – Dodatne informacije u vezi sa serverima imena kao što su ime hosta i IP adresa.
  7. Vrijeme upita – Koliko je vremena trebalo za rješavanje imena sa gore navedenih servera.

Konačno provjerite naš čvor i napravite ping.

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

Konačno, postavljanje je završeno, ovdje smo uspješno konfigurirali i primarni (glavni) i podređeni (drugi) DNS server, nadamo se da su se svi podesili bez ikakvih problema, slobodno ostavite komentar ako se suočite sa bilo kakvim problemom tokom postavljanja.