Hääl-DNS-serveri seadistamine RHEL/CentOS 6.5 tööriistade "Sidumine" abil


Domeeninimeserver (DNS), mida kasutatakse mis tahes hosti nimede lahendamiseks. Peamised DNS-serverid (esmane server) on algsed tsooniandmete käitlejad ja Slave DNS-server (teisene server) on vaid varundusserverid, mida kasutatakse sama tsooni teabe kopeerimiseks põhiserveritest. Master Server lahendab kõigi tsoonide andmebaasis määratletud hostide nimed ja kasutab UDP-protokolli, kuna UDP-protokollid ei kasuta kunagi kinnitusprotsessi, samas kui tcp kasutab kinnitust. DNS-serverid kasutavad UDP-protokolle ka kõige varem päringupäringu lahendamiseks.

DNS-i mõistmine võib algajatele vähe segadust tekitada. Siin on lühike selgitus selle kohta, kuidas DNS töötab.

Oletame, et kui me peame mingile veebisaidile juurde pääsema, siis mida me teeme? Sisestage lihtsalt brauserisse www.google.com ja vajutage sisestusklahvi. Hmm, see on kõik, mida me teame, kuid tegelikult on see, kui valus DNS selle läbi käib, meie jaoks päringuid tehes. Samal ajal kui kirjutame www.google.com, otsib süsteem veebisaiti www.google.com. Alati, kui sisestame mõne domeeninime, on olemas. (punkt) saidi www.google.com lõpus, mis ütlevad, et otsige nimeruumi juur serverist.

Üldiselt on päringu lahendamiseks saadaval 13 juurserverit. Esialgu, kui me vajutame sisestusklahvi www.google.com, edastab meie brauser taotluse kohalikule resolverile, kus on kirje meie põhi- ja alam-DNS-serveri teabe kohta. Kui neil pole sellise taotletud päringu kohta teavet, edastavad nad päringu tipptaseme domeenile (TLD). Kui TLD ütleb, et ma ei tea päringut, võib autoriteetne server teie taotlust teada saada, edastab see autoriteetsele serverile serverid, määrati siin aadressiks 72.36.15.56 ainult www.google.com.

Seni annab autoriteetne server vastuse tippdomeenile ja tippdomeen edastatakse juurserverile ning juur annab teabe brauserile, seega brauser vahemällu DNS-i päringu edaspidiseks kasutamiseks. Seega saab see pikk protsess millisekundites lihtsalt lahendatud. Kui nad ei tea päringut, vastavad nad kui NXDOMAIN. See tähendab, et tsooni andmebaasist pole ühtegi kirjet. Loodetavasti aitab see teil mõista, kuidas DNS töötab.

Loe ka : seadistage Ubuntu DNS-i vahemäluserver

Selle artikli jaoks kasutan kolme masinat, 2 serveri seadistamiseks (põhi- ja alam) ja ühte kliendi jaoks.

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

Häälestage peamine DNS-server

Enne seadistamiseks edasi liikumist kontrollige esmalt peamise DNS-serveri IP-aadressi, hostinime ja levitamise versiooni.

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

Kui olete kinnitanud, et ülaltoodud seaded on õiged, on aeg vajalike pakettide installimiseks edasi liikuda.

$ sudo yum install bind* -y

Pärast vajalike pakettide installimist määrake tsoonifailid nüüd põhikonfiguratsioonis ‘named.conf’.

$ sudo vim /etc/named.conf

Allpool on minu fail nimega.conf, muutke konfiguratsioonifaili vastavalt oma vajadustele.

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

Järgnevalt kirjeldatakse kõiki ülaltoodud failis kasutatud konfiguratsioone.

  1. kuulamisport 53 - seda kasutatakse DNS-is olemasolevate liideste kuulamiseks.
  2. Master DNS - määrake päringu kuulamiseks oma peamine DNS-i IP-aadress.
  3. Alam-DNS - määrake oma alam-DNS, mida kasutatakse meie tsooniteabe sünkroonimiseks, et hosti hostist lahutada.
  4. rekursioon ei - kui selle väärtuseks on seatud jah, siis rekursiivsed päringud muudavad serveri DDOS-rünnakuks.
  5. Tsooni nimi - määrake siin oma tsooni nimi, mis on määratletud kui tecminlocal.com.
  6. type master - kuna see süsteem oli konfigureeritud põhiserveri jaoks, on see eelseisva orjaserveri jaoks ori.
  7. tecmintlocal.fwd.zone - sellel failil on selle tsooni hosti teave.
  8. allow-update none - kui ühtegi ei määrata. see ei kasuta dünaamilist DNS-i (DDNS).

Algul määragem edasiotsingu tsooni sisestus. Siin peame looma tsoonifailid selle nimel, mille oleme defineerinud failis named.conf nagu allpool.

tecmintlocal.fwd.zone
tecmintlocal.rev.zone

Edaspidi kasutatavate tsoonifailide loomiseks kasutame näidiskonfiguratsioonifaile, selleks tuleb kopeerida näidiskonfiguratsioonifailid.

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

Kui olete konfiguratsioonifailid kopeerinud, muutke neid tsoonifaile nüüd vimiredaktori abil.

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

Enne meie hosti teabe määratlemist edasitsooni failis vaadake kõigepealt tsooniproovi.

See on minu edasitsooni konfiguratsioon, lisage allolev kirje ja tehke muudatused vastavalt teie vajadustele.

$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

Salvestage ja sulgege fail wq! Abil. Pärast eelvaate redigeerimist näeb see välja nagu allpool. Kasutage TAB-i, et saada tsoonifailis korralik vorming.

Looge nüüd pöördotsingufail, oleme juba teinud loop-back faili koopia tecmintlocal.rev.zone nimega. Niisiis, me kasutame seda faili meie pöördotsingu konfigureerimiseks.

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

Enne meie hosti teabe määratlemist pöördvööndi failis vaadake allpool näidatud pöördotsingu näidisfaili.

See on minu vastupidise tsooni konfiguratsioon, lisage järgmine kirje ja tehke muudatused vastavalt teie vajadustele.

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

Salvestage ja sulgege fail wq! Abil. Pärast pöördotsingu redigeerimist näeb see välja nagu allpool. Tsoonifailis korraliku vormingu saamiseks kasutage tabeldusklahvi.

Enne konfiguratsioonis esinevate vigade kontrollimist kontrollige tulevase otsingu ja pöördotsingu failide grupi omandiõigust.

$ sudo ls -l /var/named/

Siin näeme, et mõlemad failid on juurkasutajate omandis, sest failid, mille me proovifailidest koopia teeme, on saadaval kataloogis/var/named /. Mõlemal failil muutke rühm nimeks, kasutades järgmisi käske.

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

Pärast failide õige omandiõiguse määramist kontrollige neid uuesti.

$ sudo ls -l /var/named/

Enne DNS-teenuse käivitamist kontrollige tsoonifailide vigu. Kõigepealt kontrollige faili named.conf ja seejärel teisi tsoonifaile.

$ 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

Vaikimisi töötasid iptables ja meie DNS-server on piiratud localhostiga. Kui klient soovib nime lahendada meie DNS-serverist, peame lubama sissetuleva päringu, selleks peame lisama pordile 53 iptables sissetuleva reegli.

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

Nüüd kontrollige, kas reeglid on sisendahelas INPUT õigesti lisatud.

$ sudo iptables -L INPUT

Järgmisena salvestage reeglid ja taaskäivitage tulemüür.

$ sudo service iptables save
$ sudo service iptables restart

Käivitage nimetatud teenus ja muutke see püsivaks.

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

Lõpuks testige seadistatud Master DNS-i tsoonifaile (edasi ja tagasi), kasutades dig & nslookup tööriistu.

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

Lahe! oleme konfigureerinud peamise DNS-i, nüüd peame seadistama Slave DNS-serveri. Liigume edasi orjaserveri seadistamiseks. See ei võta põhihäälestuseks palju aega.

Seadistage alluv DNS-server

Slave masinas peame installima ka samad sidumispaketid, nagu on näidatud Masteris, nii et installime need järgmise käsu abil.

$ sudo yum install bind* -y

Avage ja muutke faili nimega.conf meie tsooni andmebaasi ja pordikuulamise jaoks.

$ sudo vim /etc/named.conf

Tehke muudatused vastavalt oma vajadustele.

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

Käivitage DNS-teenus.

$ sudo service named start

Pärast sidumisteenuse taaskäivitamist ei pea me tsooniteavet eraldi määratlema, kuna meie luba edastamine kopeerib tsooniteavet põhiserverist, nagu on näidatud alloleval pildil.

$ sudo ls -l /var/named/slaves

Kontrollige tsooni teavet kassi käsu abil.

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

Järgmisena avage sissetuleva ühenduse lubamiseks iptablesi DNS-port 53.

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

Salvestage iptables reeglid ja taaskäivitage iptables teenus.

$ sudo service iptables save
$ sudo service iptables restart

Muutke teenus süsteemi käivitamisel püsivaks.

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

See on kõik !. Nüüd on aeg konfigureerida meie kliendimasinad ja kontrollida hosti nime.

Konfigureerige kliendimasin

Kliendipoolel peame hostinime määramiseks võrgu seadetes määrama kirjed Primary (192.168.0.200) ja Secondary DNS (192.168.0.201). Selleks käivitage häälestuskäsk, et määratleda kõik need kirjed, nagu pildil näidatud.

$ setup

Muul viisil muutke faili /etc/reslov.conf ja lisage järgmised kirjed.

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

Nüüd kontrollige ip, hostinime ja nimeserveri otsingut.

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

Nüüd kontrollige DNS-i otsimist ja tagurdamist, kasutades.

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

Kaevamise väljundi alahindamine:

  1. Päis - see ütleb kõik, mida oleme küsinud ja kuidas tulemus oli.
  2. Olek - olek oli EI VIGA, see tähendab, et meie saadetud päringutaotlus õnnestus ilma VIGADeta.
  3. Küsimus - meie tehtud päring, siin oli minu päring masterdns.tecmintlocal.com.
  4. Vastus - päringu taotlus lahendati, kui teavet on saada.
  5. Asutus - domeeniserveri ja tsooni nimeserverite vastus.
  6. Lisateave - lisateave nimeserverite kohta, nagu hosti nimi ja IP-aadress.
  7. Päringu aeg - kui kaua kulus ülaltoodud serverite nimede lahendamiseks.

Lõpuks kontrollige meie sõlme ja tehke 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

Lõpuks, seadistamine on lõpule jõudnud, siin oleme konfigureerinud nii esmase (põhi) kui ka alluva (teise päeva) DNS-serveri, loodan, et kõik on ilma probleemideta seadistanud, loobuge julgelt kommentaarist, kui seadistamise ajal tekib probleeme.