Nustatykite pagrindinį-slavejį DNS serverį naudodami „Bind“ įrankius RHEL/CentOS 6.5


Domeno vardų serveris (DNS), naudojamas vardams nustatyti bet kuriuose prieglobosiuose. Pagrindiniai DNS serveriai (Pagrindinis serveris) yra pradinės zonos duomenų tvarkyklės, o pagalbinis DNS serveris (Antrinis serveris) yra tik atsarginiai serveriai, naudojami kopijuoti tos pačios zonos informaciją iš pagrindiniai serveriai. Pagrindinis serveris išspręs kiekvieno pagrindinio kompiuterio pavadinimus, kuriuos apibrėžėme zonos duomenų bazėje, ir naudos UDP protokolą, nes UDP protokolai niekada nenaudoja patvirtinimo proceso, o tcp naudoja patvirtinimą. DNS serveriai taip pat naudoja UDP protokolus, kad kuo anksčiau išspręstų užklausą.

Kaip veikia DNS?

Supratimas apie DNS naujokams gali būti šiek tiek painus. Čia yra trumpas paaiškinimas, kaip veikia DNS.

Tarkime, ką darysime, jei mums reikės pasiekti bet kurią svetainę? Tiesiog naršyklėje įveskite www.google.com ir paspauskite Enter. Hmm, tai viskas, ką mes žinome, bet faktas yra tas, kaip kenčia DNS, kai užklausa už mus. Kol įvesime www.google.com, sistema ieškos www.google.com. Kai įvedame kokį nors domeno pavadinimą, www.google.com pabaigoje yra . (taškas), kuris nurodo ieškoti šakniniame vardų erdvės serveryje.

Visame pasaulyje yra 13 šakninių serverių, kurie gali išspręsti užklausą. Iš pradžių, kol spustelėjome Enter kaip www.google.com, mūsų naršyklė perduos užklausą mūsų vietiniam sprendimui, kuriame yra įrašas apie mūsų pagrindinio ir pavaldinio DNS serverio informaciją. Jei jie neturi informacijos apie tokią užklausą, jie perduos užklausą aukščiausio lygio domenui (TLD), jei ALD pasakys, kad aš nežinau užklausos, gali būti autoritetingas serveris, žinantis jūsų užklausą, ji persiųs į patikimus serverius, čia tik www.google.com buvo apibrėžtas kaip adresas 72.36.15.56.

Tuo tarpu autoritetingas serveris pateiks atsakymą į ALD, o TLD persiųs šakniniam serveriui, o root pateiks informaciją naršyklei, todėl naršyklė saugos DNS užklausą talpykloje, kad būtų galima naudoti ateityje. Taigi šis ilgas procesas tiesiog išsispręs per milisekundes. Jei jie nežino užklausos, jie atsakys kaip NXDOMAIN. Tai reiškia, kad Zone duomenų bazėje nėra jokių įrašų. Tikimės, kad tai padės suprasti, kaip veikia DNS.

Taip pat skaitykite: Ubuntu nustatykite DNS talpyklos serverį

Mano testavimo aplinka

Šiam straipsniui naudoju 3 įrenginius, 2 serverio sąrankai (pagrindinis ir vergas) ir 1 klientui.

---------------------------------------------------
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
Reikalavimo paketai
bind, bind-utils, bind-chroot
Naudojami konfigūracijos failai
config file	:	/etc/named.conf
script file	:	/etc/init.d/named
Naudoti prievadai ir protokolai
53, UDP

Nustatykite pagrindinį DNS serverį

Pirmiausia, prieš pradėdami sąranką, patikrinkite pagrindinio DNS serverio IP adresą, pagrindinio kompiuterio pavadinimą ir paskirstymo versiją.

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

Kai patvirtinsite, kad pirmiau nurodyti nustatymai yra teisingi, laikas pradėti diegti reikiamus paketus.

sudo yum install bind* -y

„Bind“ diegimas ir konfigūravimas

Įdiegę reikiamus paketus, dabar apibrėžkite zonos failus pagrindinės konfigūracijos faile „named.conf“.

sudo vim /etc/named.conf

Žemiau pateiktas mano named.conf failo įrašas, pakeiskite konfigūracijos failą pagal savo poreikius.

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

Toliau pateikiamas kiekvienos konfigūracijos, kurią naudojome aukščiau esančiame faile, paaiškinimas.

  1. 53 klausymosi prievadas – jis naudojamas DNS klausytis turimose sąsajose.
  2. Pagrindinis DNS – apibrėžkite pagrindinį DNS IP adresą, kad galėtumėte klausytis užklausos.
  3. Slave DNS – apibrėžkite savo pavaldinį DNS, kuris naudojamas sinchronizuoti mūsų zonos informaciją, kad būtų galima išspręsti pagrindinius kompiuterius.
  4. rekursija ne – jei nustatyta į taip, rekursinės užklausos pavers serverį DDOS ataka.
  5. Zonos pavadinimas – čia apibrėžkite savo zonos pavadinimą, apibrėžtą kaip tecminlocal.com.
  6. tipas pagrindinis – kadangi ši sistema buvo sukonfigūruota pagrindiniam serveriui, būsimam pagalbiniam serveriui jis bus pavaldus.
  7. tecmintlocal.fwd.zone – šiame faile yra šios zonos pagrindinio kompiuterio informacija.
  8. neleisti atnaujinti – jei nebus, bus nustatyta. jis nenaudos dinaminio DNS (DDNS).

Pagrindinės zonos failų kūrimas

Iš pradžių apibrėžkime į priekį peržiūros zonos įvedimą. Čia turime sukurti zonos failus pavadinimu, kurį apibrėžėme named.conf faile, kaip nurodyta toliau.

tecmintlocal.fwd.zone
tecmintlocal.rev.zone

Kurdami pirminės zonos failus naudojame pavyzdinius konfigūracijos failus, tam turime nukopijuoti pavyzdinius konfigūracijos failus.

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

Kai nukopijavote konfigūracijos failus, dabar redaguokite šiuos zonų failus naudodami vim redaktorių.

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

Prieš apibrėždami pagrindinio kompiuterio informaciją persiuntimo zonos faile, pirmiausia greitai peržiūrėkite pavyzdinį zonos failą.

Tai yra mano išankstinės zonos konfigūracija, pridėkite žemiau esantį įrašą ir atlikite pakeitimus pagal savo poreikius.

$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

Išsaugokite ir uždarykite failą naudodami wq!. Redagavus peržvalgą, atrodo taip, kaip toliau. Naudokite TAB, kad gautumėte tinkamą zonos failo formatą.

Dabar sukurkite atvirkštinės paieškos failą, mes jau padarėme atgalinio grįžimo failo kopiją tecmintlocal.rev.zone pavadinimu. Taigi, šį failą naudojame atvirkštinei paieškai konfigūruoti.

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

Prieš apibrėždami pagrindinio kompiuterio informaciją atvirkštinės zonos faile, greitai peržiūrėkite atvirkštinės paieškos failo pavyzdį, kaip parodyta toliau.

Tai yra mano atvirkštinės zonos konfigūracija, pridėkite žemiau esantį įrašą ir atlikite pakeitimus pagal poreikį.

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

Išsaugokite ir uždarykite failą naudodami wq!. Redagavus atvirkštinę peržiūrą, atrodo taip, kaip toliau. Naudokite TAB, kad gautumėte tinkamą zonos failo formatą.

Prieš tikrindami, ar nėra konfigūracijos klaidų, patikrinkite pirminės ir atvirkštinės paieškos failų grupės nuosavybės teisę.

sudo ls -l /var/named/

Čia matome, kad abu failai priklauso šakniniams naudotojams, nes failai, kurių kopijas darome iš pavyzdinių failų, pasiekiami adresu /var/named/. Pakeiskite grupę į pavadintą abiejuose failuose naudodami šias komandas.

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

Nustatę teisingą failų nuosavybės teisę, patvirtinkite juos dar kartą.

sudo ls -l /var/named/

Dabar patikrinkite, ar zonos failuose nėra klaidų, prieš paleisdami DNS paslaugą. Pirmiausia patikrinkite failą named.conf, tada patikrinkite kitus zonos failus.

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

Pagal numatytuosius nustatymus iptables veikė ir mūsų DNS serveris yra apribotas localhost, jei klientas nori nustatyti pavadinimą iš mūsų DNS serverio, tada turime leisti įeinančią užklausą, tam turime pridėti iptables įeinančią taisyklę prie 53 prievado.

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

Dabar patikrinkite, ar taisyklės tinkamai įtrauktos į INPUT grandinę.

sudo iptables -L INPUT

Tada išsaugokite taisykles ir iš naujo paleiskite ugniasienę.

sudo service iptables save
sudo service iptables restart

Paleiskite pavadintą paslaugą ir padarykite ją nuolatine.

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

Galiausiai išbandykite sukonfigūruotus pagrindinės DNS zonos failus (pirmyn ir atgal), naudodami įrankius dig ir nslookup.

dig masterdns.tecmintlocal.com		[Forward Zone]

dig -x 192.168.0.200

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

Saunus! sukonfigūravome Pagrindinį DNS, dabar turime nustatyti Pagrindinį DNS serverį. Pereikime prie vergo serverio sąrankos. Tai neužims daug laiko kaip pagrindinė sąranka.

Nustatykite vergo DNS serverį

„Slave“ mašinoje taip pat turime įdiegti tuos pačius įrišimo paketus, kaip parodyta „Master“, todėl įdiegkime juos naudodami šią komandą.

sudo yum install bind* -y

Atidarykite ir redaguokite failą named.conf, skirtą mūsų zonos duomenų bazei ir prievado klausymui.

sudo vim /etc/named.conf

Atlikite pakeitimus, kaip parodyta, pagal savo poreikius.

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

Paleiskite DNS paslaugą naudodami.

sudo service named start

Iš naujo paleidę susiejimo paslaugą, mes neturime atskirai apibrėžti zonos informacijos, nes mūsų leisti perkėlimas atkartos zonos informaciją iš pagrindinio serverio, kaip parodyta paveikslėlyje toliau.

sudo ls -l /var/named/slaves

Patikrinkite zonos informaciją naudodami cat komandą.

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

Tada atidarykite DNS prievadą 53 „iptables“, kad galėtumėte prisijungti.

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

Išsaugokite iptables taisykles ir iš naujo paleiskite iptables paslaugą.

sudo service iptables save
sudo service iptables restart

Padarykite paslaugą nuolatinę paleidžiant sistemą.

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

Viskas!. Dabar laikas sukonfigūruoti mūsų klientų įrenginius ir patikrinti pagrindinio kompiuterio pavadinimą.

Konfigūruoti kliento įrenginį

Kliento pusėje turime priskirti pagrindinio (192.168.0.200) ir antrinio DNS (192.168.0.201) įrašą tinklo nustatymuose, kad galėtume priskirti prieglobos pavadinimą. Norėdami tai padaryti, paleiskite sąrankos komandą, kad apibrėžtumėte visus šiuos įrašus, kaip parodyta paveikslėlyje.

setup

Kitu atveju redaguokite failą /etc/reslov.conf ir pridėkite toliau nurodytus įrašus.

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

Dabar patikrinkite IP, pagrindinio kompiuterio pavadinimo ir vardų serverio paiešką.

ifconfig | grep inet
hostname
nslookup tecmintlocal.com

Dabar patikrinkite pirminę ir atvirkštinę DNS paiešką.

dig masterdns.tecmintlocal.com
dig -x 192.168.0.200

Kasimo išvesties supratimas:

  1. Antraštė – čia nurodoma viskas, ko klausėme ir koks buvo rezultatas.
  2. Būsena – būsena NĖRA KLAIDOS, tai reiškia, kuri mūsų atsiųsta užklausa buvo sėkminga be KLAIDOS.
  3. Klausimas – užklausa, kurią pateikėme mes, čia mano užklausa buvo masterdns.tecmintlocal.com.
  4. Atsakymas – užklausos užklausa išspręsta, jei yra informacijos.
  5. Institucija – vardų serverių atsakymas domenui ir zonai.
  6. Papildoma – papildoma informacija apie vardų serverius, pvz., pagrindinio kompiuterio pavadinimas ir IP adresas.
  7. Užklausos laikas – kiek užtruko pavadinimų iš pirmiau minėtų serverių sprendimas.

Galiausiai patikrinkite mūsų mazgą ir atlikite 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

Galiausiai, sąranka baigta, čia sėkmingai sukonfigūravome pirminį (pagrindinį) ir pavaldinį (antrąjį) DNS serverį, tikimės, kad visi jį nustatė be jokių problemų. Jei nustatydami susidursite su kokia nors problema, galite palikti komentarą.