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.
- 53 klausymosi prievadas – jis naudojamas DNS klausytis turimose sąsajose.
- Pagrindinis DNS – apibrėžkite pagrindinį DNS IP adresą, kad galėtumėte klausytis užklausos.
- Slave DNS – apibrėžkite savo pavaldinį DNS, kuris naudojamas sinchronizuoti mūsų zonos informaciją, kad būtų galima išspręsti pagrindinius kompiuterius.
- rekursija ne – jei nustatyta į taip, rekursinės užklausos pavers serverį DDOS ataka.
- Zonos pavadinimas – čia apibrėžkite savo zonos pavadinimą, apibrėžtą kaip tecminlocal.com.
- tipas pagrindinis – kadangi ši sistema buvo sukonfigūruota pagrindiniam serveriui, būsimam pagalbiniam serveriui jis bus pavaldus.
- tecmintlocal.fwd.zone – šiame faile yra šios zonos pagrindinio kompiuterio informacija.
- 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:
- Antraštė – čia nurodoma viskas, ko klausėme ir koks buvo rezultatas.
- Būsena – būsena NĖRA KLAIDOS, tai reiškia, kuri mūsų atsiųsta užklausa buvo sėkminga be KLAIDOS.
- Klausimas – užklausa, kurią pateikėme mes, čia mano užklausa buvo masterdns.tecmintlocal.com.
- Atsakymas – užklausos užklausa išspręsta, jei yra informacijos.
- Institucija – vardų serverių atsakymas domenui ir zonai.
- Papildoma – papildoma informacija apie vardų serverius, pvz., pagrindinio kompiuterio pavadinimas ir IP adresas.
- 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ą.