I-setup ang Master-Slave DNS Server Gamit ang Bind Tools sa RHEL/CentOS 6.5


Domain Name Server (DNS) gigamit alang sa pagsulbad sa ngalan sa bisan unsang mga host. Ang Master DNS servers (Primary Server) mao ang orihinal nga zone data handler ug Slave DNS server (Secondary Server) kay usa lang ka backup servers nga gigamit sa pagkopya sa samang impormasyon sa zone gikan sa master servers. Ang Master Server mosulbad sa mga ngalan sa matag host nga among gihubit sa database sa zone ug mogamit sa UDP protocol, tungod kay ang mga protocol sa UDP wala gayud mogamit sa proseso sa pag-ila samtang ang tcp naggamit sa acknowledgement. Gigamit usab sa mga DNS server ang mga protocol sa UDP aron masulbad ang hangyo sa pangutana sa labing sayo.

Ang pagsabut sa DNS mahimo’g gamay nga makalibog alang sa mga bag-ohan. Ania ang usa ka mubo nga katin-awan kung giunsa ang pagtrabaho sa DNS.

Ingnon ta, kung kinahanglan naton nga ma-access ang bisan unsang website unsa ang atong buhaton? I-type lang ang www.google.com sa browser ug pindota ang enter. Hmm mao ra kana ang nahibal-an namon, apan ang tinuod mao, kung giunsa kini pag-agi sa DNS, samtang nagpangutana alang kanamo. Samtang nag-type kami sa www.google.com ang sistema mangita sa www.google.com. Sa matag higayon nga kita mag-type sa pipila ka domain name, adunay usa ka . (tuldok) sa katapusan sa www.google.com nga nag-ingon nga pangitaon ang root server sa namespace.

Sa tibuuk kalibutan adunay 13 nga mga root server nga magamit aron masulbad ang pangutana. Sa una, samtang naigo namo ang enter isip www.google.com ang among browser magpasa ug hangyo sa among lokal nga solver, nga adunay entry mahitungod sa among master ug slave DNS server info. Kung wala silay impormasyon bahin sa ingon nga gihangyo nga pangutana ilang ipasa ang hangyo sa Top Level domain (TLD), kung ang TLD moingon nga wala ako kahibalo sa hangyo, mahimo nga ang awtoritatibo nga server nahibal-an ang imong hangyo, kini ipasa sa awtoritatibo mga server, dinhi lamang ang www.google.com gihubit nga adres 72.36.15.56.

Sa ato pa, ang awtoritatibo nga server maghatag sa tubag sa TLD ug ang TLD ipasa sa root server ug ang gamut maghatag sa impormasyon sa browser, busa i-cache sa browser ang DNS request para magamit sa umaabot. Busa kining taas nga proseso masulbad ra sa milliseconds. Kung wala nila nahibal-an ang hangyo sila motubag ingon NXDOMAIN. Kana nagpasabut, wala’y bisan unsang rekord nga nakit-an sa database sa Zone. Paglaum nga kini makahimo kanimo nga masabtan kung giunsa ang paglihok sa DNS.

Basaha Usab: I-set up ang DNS Cache Server sa Ubuntu

Alang sa kini nga artikulo, naggamit ako 3 nga mga makina, 2 alang sa pag-setup sa server (agalon ug ulipon) ug 1 alang sa kliyente.

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

I-setup ang Master DNS Server

Una, pamatud-i ang IP address, Hostname ug Distribution nga bersyon sa Master DNS Server, sa dili pa mopadayon sa setup.

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

Kas-a, imong gikumpirma nga ang mga setting sa ibabaw husto, panahon na sa pagpadayon sa pag-instalar sa gikinahanglan nga mga pakete.

$ sudo yum install bind* -y

Human sa pag-instalar sa gikinahanglan nga mga pakete, karon ipasabot ang mga zone files sa master configuration nga 'named.conf' file.

$ sudo vim /etc/named.conf

Gihatag sa ubos mao ang akong name.conf file entry, usba ang configuration file sumala sa imong panginahanglan.

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

Ang mosunod mao ang katin-awan sa matag configuration nga among gigamit sa ibabaw nga file.

  1. listen-on port 53 – Kini gigamit alang sa DNS sa pagpaminaw sa anaa nga mga interface.
  2. Master DNS – Ipasabot, ang imong Master DNS IP address aron maminaw sa pangutana.
  3. Slave DNS – Ipasabot ang imong Slave DNS, nga gigamit sa pag-sync sa among impormasyon sa sona aron masulbad ang mga host gikan sa Master.
  4. recursion no – Kung itakda kini sa oo, ang recursive nga mga pangutana maghimo sa server sa DDOS attack.
  5. Ngalan sa Zone – Ipasabot ang imong ngalan sa Zone dinhi nga gipasabot nga tecminlocal.com.
  6. type master – Ingon nga kini nga sistema gi-configure para sa master server, para sa umaabot nga slave server kini mahimong ulipon.
  7. tecmintlocal.fwd.zone – Kini nga payl adunay impormasyon sa host para niini nga sona.
  8. allow-update none – Kung walay itakda. dili kini mogamit sa Dynamic DNS (DDNS).

Sa una atong ipasabot ang forward look-up zone entry. Dinhi kinahanglan natong mugnaon ang zone files sa ngalan sa unsay atong gipasabot sa named.conf file sama sa ubos.

tecmintlocal.fwd.zone
tecmintlocal.rev.zone

Gigamit namon ang mga sampol nga mga file sa pag-configure alang sa paghimo sa mga file sa unahan nga zone, alang niini kinahanglan namon nga kopyahon ang mga sampol nga mga file sa pag-configure.

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

Kas-a, gikopya nimo ang mga file sa pag-configure, karon i-edit kini nga mga file sa zone gamit ang vim editor.

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

Sa dili pa ipasabot ang among impormasyon sa host sa forward zone file, tan-awa una dayon ang sample zone file.

Kini ang akong forward zone configuration, idugang ang ubos nga entry ug paghimo og mga kausaban sumala sa imong panginahanglan.

$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-save ug ihunong ang file gamit ang wq!. Human sa pag-edit sa forward look-up, murag sa ubos, Gamita ang TAB para makakuha ug desenteng format sa zone file.

Karon, paghimo og reverse lookup file, nakahimo na kami og kopya sa loop-back file sa ngalan sa tecmintlocal.rev.zone. Busa, gigamit namo kini nga file aron i-configure ang among reverse look-up.

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

Sa dili pa ipasabot ang among impormasyon sa host sa reverse zone file, tan-awa dayon ang sample reverse lookup file sama sa gipakita sa ubos.

Kini ang akong reverse zone configuration, idugang ang ubos nga entry ug paghimo og mga pagbag-o sumala sa imong panginahanglan.

$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-save ug ihunong ang file gamit ang wq!. Human sa pag-edit sa reverse look-up, kini sama sa ubos, Gamita ang TAB aron makakuha og desente nga format sa zone file.

Susiha ang pagpanag-iya sa grupo sa forward look-up & reverse look-up files, sa dili pa susihon ang bisan unsang mga sayop sa configuration.

$ sudo ls -l /var/named/

Dinhi atong makita ang duha ka mga file anaa sa mga root user nga gipanag-iya, tungod kay ang mga file nga atong gihimo nga kopya gikan sa sample files anaa ubos sa /var/named/. Usba ang grupo nga ginganlan sa duha ka mga file gamit ang mosunod nga mga sugo.

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

Human mabutang ang husto nga pagpanag-iya sa mga file, pamatud-i kini pag-usab.

$ sudo ls -l /var/named/

Karon, susiha ang mga sayup sa mga file sa zone, sa dili pa magsugod ang serbisyo sa DNS. Susiha una ang name.conf file, dayon susiha ang ubang zone files.

$ 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

Pinaagi sa default ang mga iptables nagdagan ug ang among DNS server gipugngan sa localhost, kung gusto sa kliyente nga sulbaron ang ngalan gikan sa among DNS Server, nan kinahanglan namon nga tugutan ang pagsulod nga hangyo, aron kinahanglan namon nga idugang ang iptables inbound nga lagda alang sa pantalan 53.

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

Karon, pamatud-i nga ang mga lagda gidugang sa husto sa INPUT chain.

$ sudo iptables -L INPUT

Sunod, i-save ang mga lagda ug i-restart ang firewall.

$ sudo service iptables save
$ sudo service iptables restart

Sugdi ang ginganlan nga serbisyo ug himoa kini nga makanunayon.

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

Sa kataposan, sulayi ang gi-configure nga Master DNS zone files (forward and reverse), gamit ang dig & nslookup tools.

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

Bugnaw! na-configure na namo ang Master DNS, karon kinahanglan namong i-setup ang Slave DNS Server. Magpadayon kita sa pag-setup sa usa ka slave server, Dili kini magkinahanglan daghang oras ingon master setup.

I-setup ang Slave DNS Server

Sa Slave machine, kinahanglan usab naton nga i-install ang parehas nga mga pakete sa pagbugkos sama sa gipakita sa Agalon, busa i-install kini gamit ang pagsunod sa mando.

$ sudo yum install bind* -y

Ablihi ug i-edit ang 'named.conf' nga file para sa among database sa zone ug paminaw sa pantalan.

$ sudo vim /etc/named.conf

Paghimo mga pagbag-o sama sa gipakita, sumala sa imong mga kinahanglanon.

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

Pagsugod sa serbisyo sa DNS gamit ang.

$ sudo service named start

Human sa pagsugod pag-usab sa serbisyo sa pagbugkos, dili na namo kinahanglan nga ipasabot ang impormasyon sa sona sa tagsa-tagsa, tungod kay ang among pagtugot-pagbalhin magsundog sa impormasyon sa sona gikan sa master server sama sa gipakita sa hulagway sa ubos.

$ sudo ls -l /var/named/slaves

I-verify, ang impormasyon sa zone gamit ang command sa cat.

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

Sunod, ablihi ang DNS port 53 sa mga iptables aron tugutan ang pagsulod sa koneksyon.

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

I-save ang mga lagda sa iptables ug i-restart ang serbisyo sa iptables.

$ sudo service iptables save
$ sudo service iptables restart

Himua nga makanunayon ang serbisyo sa pag-boot sa system.

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

Mao na!. Karon oras na aron ma-configure ang mga makina sa among kliyente ug susihon ang hostname.

I-configure ang Client Machine

Sa bahin sa kliyente kinahanglan natong i-assign ang Primary (192.168.0.200) ug Secondary DNS (192.168.0.201) entry sa network settings aron makakuha og hostname. Aron mahimo, pagdagan ang setup command aron ipasabut ang tanan niini nga mga entry sama sa gipakita sa litrato.

$ setup

Kung dili, i-edit ang '/etc/reslov.conf' file ug idugang ang mosunod nga mga entri.

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

Karon, susiha ang ip, hostname ug name server look-up.

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

Karon, susiha ang forward & Reverse DNS look-up gamit.

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

Pagsabot sa dig Output:

  1. Header – Kini nag-ingon sa tanan kung unsa ang among gipangutana ug kung unsa ang resulta.
  2. Status – Ang status kay NO ERROR, kana nagpasabot nga ang pangutana nga hangyo nga gipadala namo nagmalampuson nga walay ERROR.
  3. Pangutana – Ang Pangutana nga among gihimo, dinhi ang akong pangutana kay masterdns.tecmintlocal.com.
  4. Tubag – Nasulbad ang hangyo sa Pangutana kung adunay magamit nga impormasyon.
  5. Awtoridad – Ang tubag sa name servers para sa domain ug zone.
  6. Dugang – Dugang nga impormasyon mahitungod sa name-servers sama sa host-name ug IP address.
  7. Panahon sa pagpangutana – Unsa kadugay ang paghusay sa mga ngalan gikan sa mga server sa ibabaw.

Sa katapusan susiha ang among node ug paghimo og 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

Sa katapusan, nahuman ang pag-setup, dinhi na-configure namon ang duha nga Primary (Master) ug Slave (Seconday) DNS server nga malampuson, nanghinaut nga ang tanan naka-setup-ed nga wala’y bisan unsang isyu, mobati nga gawasnon nga ihulog ang usa ka komento kung nag-atubang ka sa bisan unsang isyu samtang nag-setup.