Postavite Master-Slave DNS poslužitelj koristeći "Bind" alate u RHEL/CentOS 6.5


Domain Name Server (DNS) koji se koristi za rješavanje imena za bilo koje računalo. Glavni DNS poslužitelji (Primarni poslužitelj) izvorni su rukovatelji podacima zone, a Slave DNS poslužitelj (Sekundarni poslužitelj) samo su rezervni poslužitelji koji se koriste za kopiranje istih informacija o zoni iz glavni poslužitelji. Glavni poslužitelj će razriješiti imena za svaki host koji smo definirali u zonskoj bazi podataka i koristiti UDP protokol, jer UDP protokoli nikada ne koriste proces potvrde dok tcp koristi potvrdu. DNS poslužitelji također koriste UDP protokole za rješavanje upita što je prije moguće.

Kako DNS radi?

Razumijevanje DNS-a moglo bi biti malo zbunjujuće za početnike. Evo kratkog objašnjenja o tome kako DNS radi.

Recimo, ako trebamo pristupiti bilo kojoj web stranici, što ćemo učiniti? Samo upišite www.google.com u preglednik i pritisnite enter. Hmm, to je sve što znamo, ali činjenica je koliko muka DNS prolazi kroz to dok postavlja upite za nas. Dok upisujemo www.google.com sustav će tražiti www.google.com. Kad god upišemo neki naziv domene, postoji . (točka) na kraju www.google.com koja kaže da treba pretražiti korijenski poslužitelj imenskog prostora.

Globalno postoji 13 korijenskih poslužitelja dostupnih za rješavanje upita. Prvo, dok pritisnemo enter kao www.google.com, naš će preglednik proslijediti zahtjev našem lokalnom razrješavaču, koji ima unos o informacijama o našem glavnom i podređenom DNS poslužitelju. Ako nemaju informacije o takvom traženom upitu, proslijedit će zahtjev domeni najviše razine (TLD), ako TLD kaže da ne znam zahtjev, možda autoritativni poslužitelj zna vaš zahtjev, proslijedit će autoritativnim poslužiteljima, ovdje je samo www.google.com definirana kao adresa 72.36.15.56.

U međuvremenu će autoritativni poslužitelj dati odgovor TLD-u i TLD će proslijediti korijenskom poslužitelju, a root će dati informacije pregledniku, stoga će preglednik predmemorirati DNS zahtjev za buduću upotrebu. Stoga će se ovi dugi procesi riješiti u milisekundama. Ako ne znaju zahtjev, odgovorit će kao NXDOMAIN. To znači da u bazi podataka Zone nema zapisa. Nadamo se da će vam ovo pomoći da shvatite kako DNS radi.

Pročitajte također: Postavite DNS poslužitelj predmemorije u Ubuntuu

Moje okruženje za testiranje

Za ovaj članak koristim 3 računala, 2 za postavljanje poslužitelja (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štene konfiguracijske datoteke
config file	:	/etc/named.conf
script file	:	/etc/init.d/named
Korišteni port i protokoli
53, UDP

Postavite glavni DNS poslužitelj

Prvo provjerite IP adresu, ime glavnog računala i distribucijsku verziju glavnog DNS poslužitelja prije nego što krenete dalje s postavljanjem.

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

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

sudo yum install bind* -y

Instaliranje i konfiguriranje Binda

Nakon instaliranja potrebnih paketa, sada definirajte datoteke zona u glavnoj konfiguracijskoj datoteci 'named.conf'.

sudo vim /etc/named.conf

Ispod je moj unos datoteke named.conf, promijenite konfiguracijsku datoteku prema svojim 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 sučelja.
  2. Glavni DNS – Definirajte svoju IP adresu glavnog DNS-a za slušanje upita.
  3. Slave DNS – Definirajte svoj Slave DNS, koji se koristi za sinkronizaciju naših informacija o zoni za rješavanje hostova iz Master-a.
  4. rekurzija ne – Ako je postavljeno na da, rekurzivni upiti će navesti poslužitelj u DDOS napad.
  5. Naziv zone – Ovdje definirajte naziv svoje zone definiran kao tecminlocal.com.
  6. upišite glavni – Budući da je ovaj sustav konfiguriran za glavni poslužitelj, za nadolazeći podređeni poslužitelj to će biti podređeni.
  7. tecmintlocal.fwd.zone – Ova datoteka sadrži informacije o hostu za ovu zonu.
  8. allow-update none – Ako se ništa ne postavi. neće koristiti dinamički DNS (DDNS).

Stvaranje datoteka glavne zone

Najprije definirajmo unos zone pretraživanja unaprijed. Ovdje trebamo kreirati zonske datoteke u nazivu onoga što smo definirali u datoteci named.conf kao što je prikazano u nastavku.

tecmintlocal.fwd.zone
tecmintlocal.rev.zone

Koristimo ogledne konfiguracijske datoteke za stvaranje datoteka naprijed zone, za ovo moramo kopirati ogledne konfiguracijske datoteke.

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 pomoću uređivača vim.

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

Prije definiranja informacija o našem hostu u datoteci zone za prosljeđivanje, prvo brzo pogledajte oglednu datoteku zone.

Ovo je konfiguracija moje prednje zone, dodajte donji unos i napravite promjene prema svojim 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

Spremite i zatvorite datoteku koristeći wq!. Nakon uređivanja pregleda naprijed, izgleda kao ispod, koristite TAB da dobijete pristojan format u datoteci zone.

Sada stvorite datoteku obrnutog pretraživanja, već smo napravili kopiju datoteke povratne petlje u nazivu tecmintlocal.rev.zone. Dakle, koristimo ovu datoteku za konfiguraciju našeg obrnutog pretraživanja.

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

Prije definiranja informacija o našem hostu u datoteci obrnute zone, brzo pogledajte oglednu datoteku obrnutog pretraživanja kao što je prikazano u nastavku.

Ovo je moja konfiguracija obrnute zone, dodajte donji unos i napravite promjene prema svojim 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.

Spremite i zatvorite datoteku koristeći wq!. Nakon uređivanja obrnutog pregleda, izgleda kao ispod, koristite TAB da biste dobili pristojan format u datoteci zone.

Prije provjere bilo kakvih pogrešaka u konfiguraciji, provjerite grupno vlasništvo nad datotekama pretraživanja naprijed i nazad.

sudo ls -l /var/named/

Ovdje možemo vidjeti da su obje datoteke u vlasništvu root korisnika, jer su datoteke koje kopiramo iz oglednih datoteka dostupne pod /var/named/. Promijenite grupu u named na obje datoteke pomoću sljedećih naredbi.

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

Nakon što postavite ispravno vlasništvo nad datotekama, ponovno ih potvrdite.

sudo ls -l /var/named/

Sada prije pokretanja DNS usluge provjerite pogreške u datotekama zone. Prvo provjerite datoteku named.conf, zatim provjerite ostale datoteke zone.

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

Prema zadanim postavkama iptables je bio pokrenut i naš DNS poslužitelj je ograničen na lokalni host, ako klijent želi razriješiti ime s našeg DNS poslužitelja, tada moramo dopustiti ulazni zahtjev, za to moramo dodati iptables ulazno pravilo za port 53.

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

Sada provjerite jesu li pravila ispravno dodana u lanac INPUT.

sudo iptables -L INPUT

Zatim spremite pravila i ponovno pokrenite vatrozid.

sudo service iptables save
sudo service iptables restart

Pokrenite imenovani servis i učinite ga postojanim.

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

Na kraju, testirajte konfigurirane glavne datoteke 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! konfigurirali smo Master DNS, sada moramo postaviti Slave DNS poslužitelj. Krenimo naprijed s postavljanjem podređenog poslužitelja. Ovo neće oduzeti puno vremena kao glavno postavljanje.

Postavite Slave DNS poslužitelj

U Slave stroju, također moramo instalirati iste pakete vezanja kao što je prikazano u Masteru, pa ih instalirajmo pomoću sljedeće naredbe.

sudo yum install bind* -y

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

sudo vim /etc/named.conf

Napravite promjene 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 pomoću.

sudo service named start

Nakon ponovnog pokretanja usluge povezivanja, ne moramo pojedinačno definirati informacije o zoni, budući da će naš dozvoli prijenos replicirati informacije o zoni s glavnog poslužitelja kao što je prikazano na slici ispod.

sudo ls -l /var/named/slaves

Provjerite informacije o zoni pomoću naredbe cat.

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

Zatim otvorite DNS priključak 53 na iptables kako biste omogućili ulaznu vezu.

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

Spremite iptables pravila i ponovno pokrenite uslugu iptables.

sudo service iptables save
sudo service iptables restart

Neka usluga bude postojana pri pokretanju sustava.

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 strojeve i provjerimo naziv hosta.

Konfigurirajte klijentski stroj

Na strani klijenta trebamo dodijeliti primarni (192.168.0.200) i sekundarni DNS (192.168.0.201) unos u mrežnim postavkama kako bismo dodijelili naziv hosta. Da biste to učinili, pokrenite naredbu za postavljanje kako 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, naziv hosta i traženje poslužitelja naziva.

ifconfig | grep inet
hostname
nslookup tecmintlocal.com

Sada provjerite DNS pretraživanje naprijed i nazad koristeći.

dig masterdns.tecmintlocal.com
dig -x 192.168.0.200

Razumijevanje rezultata iskopavanja:

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

Na kraju provjerite naš čvor i izvršite 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 dovršeno, ovdje smo uspješno konfigurirali i primarni (glavni) i podređeni (drugi) DNS poslužitelj, nadamo se da su svi postavili bez problema, slobodno ostavite komentar ako naiđete na bilo kakav problem tijekom postavljanja.