Nastavite strežnik DNS Master-Slave z orodji "Bind" v RHEL/CentOS 6.5


DNS (Domain Name Server), ki se uporablja za razreševanje imen na vseh gostiteljih. Glavni strežniki DNS (primarni strežnik) so izvirni upravljavci podatkov o območjih, podrejeni strežnik DNS (sekundarni strežnik) pa so samo varnostni strežniki, ki se uporabljajo za kopiranje informacij istega območja iz glavnih strežnikov. Glavni strežnik bo razrešil imena vseh gostiteljev, ki smo jih opredelili v zbirki podatkov o conah, in uporabil protokol UDP, ker protokoli UDP nikoli ne uporabljajo potrditvenega postopka, medtem ko tcp uporablja potrditev. DNS strežniki uporabljajo protokole UDP tudi za reševanje zahteve za poizvedbo čim prej.

Razumevanje DNS je za začetnike morda malo zmedeno. Tu je kratka razlaga, kako deluje DNS.

Recimo, če bomo morali dostopati do katerega koli spletnega mesta, kaj bomo storili? V brskalnik preprosto vnesite www.google.com in pritisnite Enter. Hmm, to je vse, kar vemo, toda dejstvo je, kako bolečina DNS prehaja skozi to, medtem ko nas prosi. Medtem ko tipkamo www.google.com, bo sistem iskal www.google.com. Kadarkoli vtipkamo neko ime domene, se pojavi. (pika) na koncu www.google.com, kjer piše, da poiščite korenski strežnik imenskega prostora.

Na splošno je za reševanje poizvedbe na voljo 13 korenskih strežnikov. Medtem ko najprej pritisnemo Enter kot www.google.com, bo naš brskalnik posredoval zahtevo lokalnemu reševalcu, ki ima vnos o informacijah o našem glavnem in pomožnem strežniku DNS. Če nimajo informacij o takšni zahtevani poizvedbi, bodo zahtevo poslali domeni najvišje ravni (TLD). Če TLD reče, da zahteve ne poznam, je morda avtoritativni strežnik poznal vašo zahtevo, jo bo poslal naprej strežnikov, tukaj je bil kot naslov 72.36.15.56 definiran samo www.google.com.

V tem času bo avtoritativni strežnik odgovoril na TLD in TLD bo prešel na korenski strežnik, root pa bo brskalniku zagotovil informacije, zato bo brskalnik zahteval DNS v predpomnilnik za prihodnjo uporabo. Tako se bo ta dolg postopek rešil v milisekundah. Če zahteve ne poznajo, bodo odgovorili kot NXDOMAIN. To pomeni, da v bazi podatkov Zone ni nobenega zapisa. Upam, da boste zaradi tega razumeli, kako deluje DNS.

Preberite tudi : Nastavite strežnik predpomnilnika DNS v Ubuntuju

V tem članku uporabljam 3 stroje, 2 za nastavitev strežnika (glavni in pomožni) in 1 za odjemalca.

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

Nastavite glavni strežnik DNS

Najprej preverite naslov IP, ime gostitelja in različico distribucije glavnega strežnika DNS, preden se premaknete naprej za nastavitev.

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

Ko enkrat potrdite, da so zgornje nastavitve pravilne, je čas, da se premaknete naprej, da namestite potrebne pakete.

$ sudo yum install bind* -y

Po namestitvi zahtevanih paketov zdaj definirajte conske datoteke v glavni datoteki z imenom named.conf.

$ sudo vim /etc/named.conf

Spodaj je moj vnos datoteke named.conf, spremenite konfiguracijsko datoteko po svojih potrebah.

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

Sledi razlaga vsake konfiguracije, ki smo jo uporabili v zgornji datoteki.

  1. prisluškovalna vrata 53 - Ta se uporablja za poslušanje DNS v razpoložljivih vmesnikih.
  2. Glavni DNS - Določite svoj glavni naslov DNS IP, da poslušate poizvedbo.
  3. Podrejeni DNS - Določite svoj podrejeni DNS, ki se uporablja za sinhronizacijo informacij o našem območju za razreševanje gostiteljev iz Master-a.
  4. rekurzija ne - če je nastavljena na da, bodo rekurzivne poizvedbe strežnik pretvorile v napad DDOS.
  5. Ime cone - Tu določite svoje ime cone, opredeljeno kot tecminlocal.com.
  6. glavni tip - Ker je bil ta sistem konfiguriran za glavni strežnik, bo za prihajajoči podrejeni strežnik podrejen.
  7. tecmintlocal.fwd.zone - v tej datoteki so podatki o gostitelju za to območje.
  8. dovoli-posodobi nobeno - če nobeno ne bo nastavljeno. ne bo uporabljal dinamičnega DNS (DDNS).

Najprej določimo vnos območja za iskanje naprej. Tu moramo ustvariti conske datoteke v imenu tistega, kar smo definirali v datoteki named.conf , kot je prikazano spodaj.

tecmintlocal.fwd.zone
tecmintlocal.rev.zone

Za ustvarjanje datotek za naprej območje uporabljamo vzorčne konfiguracijske datoteke, zato moramo kopirati vzorčne konfiguracijske datoteke.

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

Ko ste enkrat kopirali konfiguracijske datoteke, jih zdaj uredite z urejevalnikom vim.

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

Preden definirate podatke o gostitelju v datoteki z območjem naprej, si najprej na hitro oglejte vzorčno datoteko območja.

To je moja konfiguracija območja naprej, dodajte spodnji vnos in izvedite spremembe glede na vaše potrebe.

$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

Datoteko shranite in zapustite s pomočjo wq !. Po urejanju iskanja naprej je videti, kot spodaj, Uporabite TAB, da dobite dostojno obliko v datoteki območja.

Zdaj, ustvarite datoteko povratnega iskanja, že smo naredili kopijo datoteke z povratno zanko v imenu tecmintlocal.rev.zone. Torej to datoteko uporabljamo za konfiguracijo povratnega iskanja.

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

Preden definirate podatke o gostitelju v datoteki z obratnim območjem, si na hitro oglejte vzorec datoteke za povratno iskanje, kot je prikazano spodaj.

To je moja konfiguracija povratne cone, dodajte spodnji vnos in spremenite po potrebi.

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

Datoteko shranite in zapustite s pomočjo wq !. Po urejanju povratnega iskanja je videti spodaj, uporabite TAB, da dobite dostojno obliko v datoteki območja.

Preden preverite morebitne napake v konfiguraciji, preverite lastništvo skupine datotek za iskanje naprej in nazaj.

$ sudo ls -l /var/named/

Tu lahko vidimo, da sta obe datoteki v lasti korenskih uporabnikov, ker so datoteke, ki jih naredimo kot kopijo iz vzorčnih datotek, na voljo pod/var/named /. Z naslednjimi ukazi spremenite skupino v imenovano v obeh datotekah.

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

Ko pravilno nastavite lastništvo datotek, jih znova preverite.

$ sudo ls -l /var/named/

Zdaj pred zagonom storitve DNS preverite, ali so v datotekah z območjem napake. Najprej preverite datoteko named.conf, nato pa druge datoteke z območji.

$ 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

Privzeto se je izvajala iptables in naš strežnik DNS je omejen na localhost. Če odjemalec želi razrešiti ime z našega strežnika DNS, moramo dovoliti vhodno zahtevo, za to pa moramo dodati vhodno pravilo iptables za vrata 53.

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

Zdaj preverite, ali so bila pravila pravilno dodana v verigo INPUT.

$ sudo iptables -L INPUT

Nato shranite pravila in znova zaženite požarni zid.

$ sudo service iptables save
$ sudo service iptables restart

Zaženite imenovano storitev in jo naredite trajno.

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

Na koncu preizkusite konfigurirane datoteke z glavnimi območji DNS (naprej in nazaj) z orodji 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

Kul! konfigurirali smo glavni DNS, zdaj moramo nastaviti podrejeni strežnik DNS. Pojdimo naprej k nastavitvi podrejenega strežnika. To ne bo trajalo veliko časa kot glavna nastavitev.

Nastavite podrejeni strežnik DNS

Tudi v Slave machine moramo namestiti iste pakete za povezovanje, kot je prikazano v Master, zato jih namestite z naslednjim ukazom.

$ sudo yum install bind* -y

Odprite in uredite datoteko z imenom named.conf za našo zbirko podatkov o območjih in poslušanje vrat.

$ sudo vim /etc/named.conf

Izvedite spremembe, kot je prikazano, v skladu z vašimi zahtevami.

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

Zaženite storitev DNS z uporabo.

$ sudo service named start

Po ponovnem zagonu storitve vezanja nam ni treba posebej določiti informacij o območju, saj bo naš dovoljeni prenos ponovil informacije o območju z glavnega strežnika, kot je prikazano na spodnji sliki.

$ sudo ls -l /var/named/slaves

Informacije o območju preverite z ukazom cat.

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

Nato odprite vrata DNS 53 na iptables, da omogočite vhodno povezavo.

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

Shranite pravila iptables in znova zaženite storitev iptables.

$ sudo service iptables save
$ sudo service iptables restart

Storitev naj bo obstojna pri zagonu sistema.

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

To je to! Zdaj je čas za konfiguracijo naših odjemalskih strojev in preverjanje imena gostitelja.

Konfigurirajte odjemalski stroj

Na odjemalski strani moramo v omrežnih nastavitvah dodeliti primarni (192.168.0.200) in sekundarni DNS (192.168.0.201), da dobimo ime gostitelja. Za to zaženite ukaz za nastavitev, da definirate vse te vnose, kot je prikazano na sliki.

$ setup

V nasprotnem primeru uredite datoteko ‘/etc/reslov.conf’ in dodajte naslednje vnose.

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

Zdaj preverite iskanje strežnika ip, gostitelja in imenskega strežnika.

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

Zdaj s pomočjo preverite iskanje DNS naprej in nazaj.

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

Razumevanje izhoda kopanja:

  1. Glava - pove vse, kar smo vprašali in kakšen je bil rezultat.
  2. Stanje - Stanje NI BILA NAPAKA, kar pomeni, da je bila naša zahteva za poizvedbo uspešna brez NAPAK.
  3. Vprašanje - Poizvedba, ki smo jo postavili mi, tukaj je bila moja poizvedba masterdns.tecmintlocal.com.
  4. Odgovor - zahteva za poizvedbo se reši, če so na voljo informacije.
  5. Pooblastilo - odziv imenskih strežnikov za domeno in območje.
  6. Dodatne - dodatne informacije o imenskih strežnikih, kot sta ime gostitelja in naslov IP.
  7. Čas poizvedbe - Koliko časa je trajalo za razrešitev imen iz zgornjih strežnikov.

Končno preverite naše vozlišče in naredite 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

Končno je namestitev končana, tukaj smo uspešno konfigurirali strežnik DNS za primarni (glavni) in podrejeni (sekundarni), upamo, da so vsi nastavili brez kakršnih koli težav, če med namestitvijo naletite na kakršno koli težavo.