Sanidi Seva ya DNS ya Master-Slave Kwa Kutumia Zana za Bind katika RHEL/CentOS 6.5


Seva ya Jina la Kikoa (DNS) inayotumika kusuluhisha jina kwa seva pangishi yoyote. Seva Kuu za DNS (Seva ya Msingi) ni vidhibiti vya data vya eneo asili na seva ya Slave DNS (Seva ya Sekondari) ni seva chelezo tu zinazotumika kunakili taarifa za eneo zile zile kutoka kwa seva kuu. Seva Kuu itasuluhisha majina kwa kila seva pangishi tuliyofafanua katika hifadhidata ya eneo na kutumia itifaki ya UDP, kwa sababu itifaki za UDP hazitumii mchakato wa kukiri ilhali tcp hutumia uthibitishaji. Seva za DNS pia hutumia itifaki za UDP kutatua ombi la hoja mapema zaidi.

Kuelewa DNS kunaweza kuwa na utata kidogo kwa wanaoanza. Hapa kuna maelezo mafupi juu ya jinsi DNS inavyofanya kazi.

Hebu tuseme, ikiwa tunahitaji kufikia tovuti yoyote tutafanya nini? Charaza tu www.google.com kwenye kivinjari na ubofye Ingiza. Hmm hiyo ndiyo tu tunayojua, lakini ukweli ni kwamba, jinsi maumivu ya DNS hupitia, huku ikituuliza. Wakati tunaandika www.google.com mfumo utatafuta www.google.com. Wakati wowote tunapoandika jina la kikoa, kuna . (dot) mwishoni mwa www.google.com inayosema kutafuta seva ya msingi ya nafasi ya majina.

Ulimwenguni kuna seva 13 za mizizi zinazopatikana ili kutatua swali. Mara ya kwanza, tunapogonga kuingia kama www.google.com kivinjari chetu kitapitisha ombi kwa kisuluhishi chetu cha ndani, ambacho kina ingizo kuhusu maelezo ya seva kuu na mtumwa wa DNS. Ikiwa hawana maelezo kuhusu hoja kama hiyo iliyoombwa, watatuma ombi hilo kwa kikoa cha Kiwango cha Juu (TLD), TLD ikisema sijui ombi hilo, huenda seva iliyoidhinishwa inajua ombi lako, itatumwa kwa mamlaka. seva, hapa ni www.google.com pekee iliyofafanuliwa kama anwani 72.36.15.56.

Kwa wakati huu seva iliyoidhinishwa itatoa jibu kwa TLD na TLD itapita kwa seva ya mizizi na mizizi itatoa maelezo kwa kivinjari, kwa hivyo kivinjari kitahifadhi ombi la DNS kwa matumizi ya baadaye. Kwa hivyo mchakato huu mrefu utasuluhisha tu kwa milisekunde. Ikiwa hawajui ombi hilo watalijibu kama NXDOMAIN. Hiyo ina maana, hakuna rekodi yoyote-iliyopatikana katika hifadhidata ya Eneo. Natumai hii inakufanya uelewe jinsi DNS inavyofanya kazi.

Soma Pia: Sanidi Seva ya Akiba ya DNS katika Ubuntu

Kwa nakala hii, ninatumia mashine 3, 2 kwa usanidi wa seva (bwana na mtumwa) na 1 kwa mteja.

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

Sanidi Seva ya DNS Mkuu

Kwanza, thibitisha anwani ya IP, Jina la Mpangishi na toleo la Usambazaji la Seva Kuu ya DNS, kabla ya kusonga mbele kwa ajili ya kusanidi.

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

Mara moja, unathibitisha kuwa mipangilio iliyo hapo juu ni sahihi, ni wakati wake wa kusonga mbele ili kusakinisha vifurushi vinavyohitajika.

$ sudo yum install bind* -y

Baada ya kusakinisha vifurushi vinavyohitajika, sasa fafanua faili za eneo katika faili kuu ya usanidi ya 'named.conf'.

$ sudo vim /etc/named.conf

Inayopewa hapa chini ni ingizo langu la faili linaloitwa.conf, badilisha faili ya usanidi kulingana na hitaji lako.

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

Yafuatayo ni maelezo ya kila usanidi tuliotumia kwenye faili hapo juu.

  1. kusikiliza-kwenye mlango 53 - Hii inatumika kwa DNS kusikiliza katika violesura vinavyopatikana.
  2. DNS Kuu - Bainisha, anwani yako ya IP ya DNS Kuu ili kusikiliza hoja.
  3. DNS ya Watumwa - Bainisha DNS yako ya Mtumwa, ambayo inatumika kusawazisha maelezo ya eneo letu ili kutatua wapangishi kutoka kwa Mwalimu.
  4. hapana ya kujirudia - Iwapo itawekwa kuwa ndiyo, maswali yanayojirudia yatafanya seva kuwa mashambulizi ya DDOS.
  5. Jina la Eneo - Bainisha jina la Eneo lako hapa likifafanuliwa kama tecminlocal.com.
  6. aina ya bwana - Kwa vile mfumo huu ulisanidiwa kwa seva kuu, kwa seva inayokuja ya watumwa hii itakuwa mtumwa.
  7. tecmintlocal.fwd.zone - Faili hii ina maelezo ya seva pangishi ya eneo hili.
  8. hairuhusu kusasisha - Ikiwa hakuna itaweka. haitatumia Dynamic DNS (DDNS).

Kwanza hebu tufafanue ingizo la eneo la kuangalia mbele. Hapa tunahitaji kuunda faili za eneo kwa jina la kile tumefafanua katika faili ya named.conf kama ilivyo hapo chini.

tecmintlocal.fwd.zone
tecmintlocal.rev.zone

Tunatumia sampuli za faili za usanidi kuunda faili za eneo la mbele, kwa hili tunapaswa kunakili sampuli za faili za usanidi.

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

Mara moja, umenakili faili za usanidi, sasa hariri faili za maeneo haya kwa kutumia vim kihariri.

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

Kabla ya kufafanua maelezo yetu ya mwenyeji katika faili ya eneo la mbele, kwanza angalia kwa haraka sampuli ya faili ya eneo.

Huu ni usanidi wangu wa eneo la mbele, ongeza ingizo hapa chini na ufanye mabadiliko kulingana na hitaji lako.

$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

Hifadhi na uache faili ukitumia wq!. Baada ya kuhariri utaftaji wa mbele, inaonekana kama hapa chini, Tumia TAB kupata umbizo la heshima katika faili ya eneo.

Sasa, unda faili ya kuangalia nyuma, tayari tumetengeneza nakala ya faili ya kitanzi kwa jina la tecmintlocal.rev.zone. Kwa hivyo, tunatumia faili hii kusanidi ukaguzi wetu wa kinyume.

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

Kabla ya kufafanua maelezo ya mwenyeji wetu katika faili ya eneo la kinyume, angalia kwa haraka sampuli ya faili ya kuangalia kinyume kama inavyoonyeshwa hapa chini.

Huu ni usanidi wangu wa eneo la nyuma, ongeza ingizo hapa chini na ufanye mabadiliko kama hitaji lako.

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

Hifadhi na uache faili ukitumia wq!. Baada ya kuhariri utazamaji wa nyuma, inaonekana kama hapa chini, Tumia TAB kupata umbizo la heshima katika faili ya eneo.

Angalia umiliki wa kikundi wa kuangalia mbele na kubadilisha faili za kuangalia, kabla ya kuangalia hitilafu zozote katika usanidi.

$ sudo ls -l /var/named/

Hapa tunaweza kuona faili zote mbili ziko katika umiliki wa watumiaji wa mizizi, kwa sababu faili ambazo tunafanya nakala kutoka kwa faili za sampuli zinapatikana chini ya /var/named/. Badilisha kikundi kiwe na jina kwenye faili zote mbili kwa kutumia amri zifuatazo.

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

Baada ya kuweka umiliki sahihi kwenye faili, zithibitishe tena.

$ sudo ls -l /var/named/

Sasa, angalia makosa katika faili za eneo, kabla ya kuanza huduma ya DNS. Kwanza angalia faili yenye jina.conf, kisha uangalie faili zingine za eneo.

$ 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

Kwa chaguo-msingi iptables zilikuwa zikifanya kazi na seva yetu ya DNS inatumika kwa localhost tu, ikiwa mteja anataka kutatua jina kutoka kwa Seva yetu ya DNS, basi inabidi turuhusu ombi la ndani, kwa hilo tunahitaji kuongeza sheria ya kuingiza iptables kwa mlango wa 53.

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

Sasa, thibitisha kuwa sheria zimeongezwa kwa usahihi katika msururu wa INPUT.

$ sudo iptables -L INPUT

Ifuatayo, hifadhi sheria na uanze upya firewall.

$ sudo service iptables save
$ sudo service iptables restart

Anzisha huduma iliyopewa jina na uifanye iendelee.

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

Hatimaye, jaribu faili za eneo la Master DNS zilizosanidiwa (mbele na nyuma), kwa kutumia dig & nslookup zana.

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

Baridi! tumesanidi DNS Kuu, sasa tunahitaji kusanidi Seva ya DNS ya Mtumwa. Wacha tusonge mbele ili kusanidi seva ya mtumwa, Hii haitachukua muda mwingi kama usanidi mkuu.

Sanidi Seva ya DNS ya Mtumwa

Katika mashine ya Slave, pia tunahitaji kusakinisha vifurushi sawa na inavyoonyeshwa katika Master, kwa hivyo wacha tuvisakinishe kwa kutumia amri ifuatayo.

$ sudo yum install bind* -y

Fungua na uhariri faili ya 'named.conf' kwa hifadhidata yetu ya eneo na usikilize mlangoni.

$ sudo vim /etc/named.conf

Fanya mabadiliko kama inavyoonyeshwa, kulingana na mahitaji yako.

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

Anzisha huduma ya DNS kwa kutumia.

$ sudo service named start

Baada ya kuanzisha upya huduma ya kuunganisha, si lazima tufafanue maelezo ya eneo kibinafsi, kwani uhamishaji wetu wa kuruhusu utaiga maelezo ya eneo kutoka kwa seva kuu kama inavyoonyeshwa kwenye picha hapa chini.

$ sudo ls -l /var/named/slaves

Thibitisha, habari ya eneo kwa kutumia amri ya paka.

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

Kisha, fungua mlango wa DNS 53 kwenye iptables ili kuruhusu muunganisho wa ndani.

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

Hifadhi sheria za iptables na uanze tena huduma ya iptables.

$ sudo service iptables save
$ sudo service iptables restart

Fanya huduma iendelee kwenye buti ya mfumo.

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

Ni hayo!. Sasa ni wakati wa kusanidi mashine za mteja wetu na kuangalia jina la mwenyeji.

Sanidi Mashine ya Wateja

Katika upande wa mteja tunahitaji kukabidhi ingizo la Msingi (192.168.0.200) na DNS ya Sekondari (192.168.0.201) katika mipangilio ya mtandao ili kukabidhi jina la mpangishaji. Ili kufanya, endesha amri ya usanidi ili kufafanua maingizo haya yote kama inavyoonekana kwenye picha.

$ setup

Vinginevyo, hariri faili ya '/etc/reslov.conf' na uongeze maingizo yafuatayo.

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

Sasa, thibitisha utafutaji wa ip, jina la mwenyeji na seva ya jina.

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

Sasa, angalia utazamaji wa mbele na Ubadilishe DNS ukitumia.

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

Kuelewa Pato la kuchimba:

  1. Kichwa - Hii inasema kila kitu ambacho tumeuliza na jinsi matokeo yalikuwa.
  2. Hali – Hali HAKUNA HITILAFU, hiyo inamaanisha ni ombi gani la hoja tulilotuma lilifanikiwa bila HITILAFU yoyote.
  3. Swali – Hoja ambayo tuliifanya, hapa swali langu lilikuwa masterdns.tecmintlocal.com.
  4. Jibu - Ombi la Hoja lilitatuliwa ikiwa kuna habari inayopatikana.
  5. Mamlaka - Majibu ya seva za jina kwa kikoa na eneo.
  6. Ziada - Taarifa za ziada kuhusu seva-jina kama vile jina la mwenyeji na anwani ya IP.
  7. Muda wa hoja - Ilichukua muda gani kutatua majina kutoka kwa seva zilizo hapo juu.

Hatimaye angalia nodi yetu na ufanye 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

Hatimaye, usanidi umekamilika, hapa tumesanidi seva ya DNS ya Msingi (Mwalimu) na Slave (Sekunde) ya DNS kwa mafanikio, natumai kila mtu ameweka mipangilio bila tatizo lolote, jisikie huru kudondosha maoni ikiwa utakumbana na tatizo lolote wakati wa kusanidi.