Setup Master-Slave DNS Server Mat Bind Tools an RHEL/CentOS 6.5
Domain Name Server (DNS) benotzt fir den Numm ze léisen fir all Hosten. Master DNS Server (Primärer Server) sinn déi ursprénglech Zonendatenhändler a Sklaven DNS Server (Sekundär Server) si just e Backup Server dee benotzt gëtt fir déiselwecht Zoninformatioun vun de Master Serveren ze kopéieren. Master Server wäert d'Nimm fir all Hosten opléisen, déi mir an der Zone-Datebank definéiert hunn an den UDP-Protokoll benotzen, well UDP-Protokoller ni den Unerkennungsprozess benotzen, während tcp d'Unerkennung benotzt. DNS Server benotzen och UDP Protokoller fir d'Ufro Ufro am fréisten ze léisen.
DNS verstoen ka wéineg konfus sinn fir Newbies. Hei ass eng kuerz Erklärung wéi den DNS funktionnéiert.
Loosst eis soen, wa mir Zougang zu enger Websäit brauchen, wat maache mir? Gitt einfach www.google.com am Browser a dréckt Enter. Hmm dat ass alles wat mir wëssen, awer de Fakt ass, wéi Péng DNS duerch et geet, wärend Dir fir eis ufroen. Wärend mir www.google.com tippen, sicht de System no www.google.com. Wa mir en Domain Numm aginn, gëtt et e . (Punkt) um Enn vun der www.google.com déi soen fir de Rootserver vum Nummraum ze sichen.
Globalt ginn et 13 Root-Server verfügbar fir d'Ufro ze léisen. Am Ufank, wärend mir op Enter als www.google.com drécken, wäert eise Browser eng Ufro un eise lokale Resolver weiderginn, deen Entrée iwwer eise Master a Sklave DNS Server Info huet. Wann se keng Informatioun iwwer sou ugefrote Ufro hunn, wäerte se d'Ufro un den Top Level Domain (TLD) weiderginn, wann TLD soen datt ech d'Ufro net kennen, kann den autoritäre Server Är Ufro kennen, et wäert op autoritär weiderginn Serveren, hei nëmmen www.google.com war als Adress definéiert 72.36.15.56.
An der Tëschenzäit gëtt den autoritäre Server d'Äntwert op TLD an TLD gëtt op de Root-Server passéiert an d'Root gëtt d'Info un de Browser, dofir wäert de Browser d'DNS-Ufro fir zukünfteg Benotzung cache. Sou wäert dëse laange Prozess just mat a Millisekonnen opléisen. Wa se d'Ufro net wëssen, äntweren se als NXDOMAIN. Dat heescht, et gëtt kee Rekord an der Zone Datebank fonnt. Hoffen dëst mécht Iech ze verstoen wéi den DNS funktionnéiert.
Liest och: DNS Cache Server op Ubuntu opsetzen
Fir dësen Artikel benotzen ech 3 Maschinnen, 2 fir Server Setup (Master a Sklave) an 1 fir Client.
--------------------------------------------------- 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
Setup Master DNS Server
Als éischt, z'iwwerpréiwen d'IP Adress, Hostnumm an Verdeelungsversioun vum Master DNS Server, ier Dir weiderfuere fir de Setup.
$ sudo ifconfig | grep inet $ hostname $ cat /etc/redhat-release
Eemol bestätegt Dir datt déi uewe genannte Astellunge richteg sinn, et ass Zäit fir no vir ze goen fir erfuerderlech Packagen z'installéieren.
$ sudo yum install bind* -y
Nodeems Dir erfuerderlech Packagen installéiert hutt, definéiert elo Zonedateien an der Masterkonfiguratioun 'named.conf' Datei.
$ sudo vim /etc/named.conf
Gitt ënnendrënner ass meng named.conf Dateientrée, ännert d'Konfiguratiounsdatei no Ärem Besoin.
// // 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";
Folgend sinn d'Erklärung vun all Konfiguratioun déi mir an der uewen Datei benotzt hunn.
- Nolauschteren-an Hafen 53 - Dëst gëtt benotzt fir den DNS an verfügbaren Interfaces ze lauschteren.
- Master DNS - Definéiert Är Master DNS IP Adress fir d'Ufro ze lauschteren.
- Sklave DNS - Definéiert Äre Sklave DNS, dee benotzt gëtt fir eis Zoneinformatioun ze synchroniséieren fir d'Host vum Master ze léisen.
- Rekursioun nee - Wann et op Jo gesat ass, wäerte rekursiv Ufroen de Server an DDOS Attack maachen.
- Zonenumm - Definéiert Ären Zonennumm hei definéiert als tecminlocal.com.
- Typ Master – Well dëse System fir e Master-Server konfiguréiert gouf, fir de kommende Sklave-Server wäert dëst Sklave sinn.
- tecmintlocal.fwd.zone - Dëse Fichier huet d'Hostinformatioun fir dës Zone.
- allow-update none - Wann keen wäert astellen. et wäert net dynamesch DNS (DDNS) benotzen.
Als éischt loosse mer d'Forward Look-up Zonentrée definéieren. Hei musse mir d'Zonedateien erstellen am Numm vun deem wat mir an der named.conf Datei definéiert hunn wéi hei ënnen.
tecmintlocal.fwd.zone tecmintlocal.rev.zone
Mir benotze Probe Konfiguratiounsdateien fir Forward Zone Dateien ze kreéieren, dofir musse mir d'Probe Konfiguratiounsdateien kopéieren.
$ sudo cp /var/named/named.localhost /var/named/tecmintlocal.fwd.zone $ sudo cp /var/named/named.loopback /var/named/tecmintlocal.rev.zone
Eemol hutt Dir Konfiguratiounsdateien kopéiert, ännert elo dës Zonendateien mam vim Editor.
$ sudo vim /var/named/tecmintlocal.fwd.zone
Ier Dir eis Hostinformatioun an der Forward Zone Datei definéiert, kuckt als éischt d'Probe Zone Datei.
Dëst ass meng Forward Zonekonfiguratioun, fügen d'Entrée hei ënnen un a maacht Ännerungen no Ärem Bedierfnes.
$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
Späichert a stoppt d'Datei mat wq!. Nodeems Dir de Forward Lookup geännert hutt, gesäit et aus wéi ënnen, Benotzt TAB fir en anstänneg Format an der Zonedatei ze kréien.
Elo, erstellt ëmgedréint Lookup-Datei, mir hu schonn eng Kopie vun der Loop-Back-Datei am Numm vun tecmintlocal.rev.zone gemaach. Also, benotze mir dës Datei fir eise Reverse Look-up ze konfiguréieren.
$ sudo vim /var/named/tecmintlocal.rev.zone
Ier Dir eis Hostinformatioun an der ëmgedréint Zonedatei definéiert, huelt e séiere Bléck op d'Probe-Reverse Lookup-Datei wéi hei ënnendrënner.
Dëst ass meng ëmgedréint Zonekonfiguratioun, fügen d'Entrée hei ënnen un a maacht Ännerungen wéi Äre Besoin.
$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.
Späichert a stoppt d'Datei mat wq!. Nodeems Dir de Reverse Lookup geännert hutt, gesäit et aus wéi ënnen, Benotzt TAB fir en anstänneg Format an der Zonedatei ze kréien.
Kontrolléiert d'Gruppbesëtzer vu Forward Look-up & Reverse Look-up Dateien, ier Dir op Konfiguratiounsfehler kontrolléiert.
$ sudo ls -l /var/named/
Hei kënne mir gesinn datt souwuel d'Dateien am Root Benotzer Besëtz sinn, well Dateien déi mir eng Kopie maachen aus Proufdateien sinn ënner /var/named/ verfügbar. Ännert d'Grupp op den Numm op béide Fichier mat de folgende Kommandoen.
$ sudo chgrp named /var/named/tecmintlocal.fwd.zone $ sudo chgrp named /var/named/tecmintlocal.rev.zone
Nodeems Dir d'korrekt Eegentum op d'Dateien gesat hutt, verifizéiert se nach eng Kéier.
$ sudo ls -l /var/named/
Elo, kontrolléiert d'Fehler an Zonedateien, ier Dir den DNS-Service starten. Préift éischt d'named.conf Datei, kontrolléiert dann aner Zonedateien.
$ 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
Par défaut war iptables lafen an eisen DNS Server ass limitéiert op localhost, wann de Client den Numm vun eisem DNS Server wëll léisen, da musse mir d'Inbound Ufro erlaben, dofir musse mir iptables Inbound Regel fir den Hafen 53 addéieren.
$ sudo iptables -I INPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
Elo, z'iwwerpréiwen datt d'Regele richteg an der INPUT Kette bäigefüügt goufen.
$ sudo iptables -L INPUT
Als nächst, späichert d'Regelen a fänkt d'Firewall nei.
$ sudo service iptables save $ sudo service iptables restart
Start de genannte Service a maacht et persistent.
$ sudo service named start $ sudo chkconfig named on $ sudo chkconfig --list named
Endlech, test déi konfiguréiert Master DNS Zone Dateien (Forward a Reverse), mat 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
Cool! mir hunn e Master DNS konfiguréiert, elo musse mir e Slave DNS Server opbauen. Loosst eis virgoen fir e Sklave-Server opzestellen, Dëst wäert net vill Zäit daueren als Master-Setup.
Setup Slave DNS Server
An der Sklave Maschinn musse mir och déiselwecht Bind Packagen installéieren wéi am Master gewisen, also loosst eis se mat dem folgenden Kommando installéieren.
$ sudo yum install bind* -y
Öffnen an änneren 'named.conf' Datei fir eis Zone Datebank a Port lauschteren.
$ sudo vim /etc/named.conf
Maacht Ännerunge wéi gewisen, wéi pro Är Ufuerderungen.
// // 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";
Start den DNS Service mat.
$ sudo service named start
Nodeems mir de Bindeservice nei gestart hunn, musse mir d'Zoneinformatioun net individuell definéieren, well eisen Erlaabnes-Transfer d'Zoneinformatioun vum Masterserver replizéiert wéi am Bild hei ënnendrënner.
$ sudo ls -l /var/named/slaves
Vergewëssert Iech d'Zoneinformatioun mat Katzekommando.
$ sudo cat /var/named/slaves/tecmintlocal.fwd.zone $ sudo cat /var/named/slaves/tecmintlocal.rev.zone
Als nächst, öffnen den DNS Port 53 op iptables fir eng Inbound Verbindung z'erméiglechen.
$ sudo iptables -I INPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
Späichert d'iptables Reegelen a restart den iptables Service.
$ sudo service iptables save $ sudo service iptables restart
Maacht de Service persistent beim Systemboot.
$ sudo chkconfig iptables on
Check whether persistent set for run-levels .
$ sudo chkconfig --list iptables
Dat ass et!. Elo Zäit fir eis Client Maschinnen ze konfiguréieren an den Hostnumm ze kontrolléieren.
Client Maschinn konfiguréieren
Op Client Säit musse mir de Primär (192.168.0.200) a Secondary DNS (192.168.0.201) Entrée an de Netz Astellungen zouzeschreiwen fir e Hostnumm ze kréien. Fir ze maachen, lafen de Setup Kommando fir all dës Entréen ze definéieren wéi am Bild gewisen.
$ setup
Soss, ännert d'Datei '/etc/reslov.conf' a füügt déi folgend Entréen derbäi.
$ vim /etc/resolv.conf
search tecmintlocal.com nameserver 192.168.0.200 nameserver 192.168.0.201
Elo, kontrolléiert d'IP, den Hostnumm an den Nummserver Look-up.
$ ifconfig | grep inet $ hostname $ nslookup tecmintlocal.com
Elo, kontrolléiert d'Forward & Reverse DNS Look-up benotzt.
$ dig masterdns.tecmintlocal.com $ dig -x 192.168.0.200
D'Graf Output verstoen:
- Header - Dëst seet alles wat mir gefrot hunn a wéi d'Resultat war.
- Status - De Status war KEE FEIL, dat heescht, wéi eng Ufro-Ufro, déi vun eis geschéckt gouf, ouni FEELER erfollegräich war.
- Fro - D'Query déi vun eis gemaach gouf, hei war meng Ufro masterdns.tecmintlocal.com.
- Äntwert - D'Ufro Ufro ass geléist wann et verfügbar Informatioun ass.
- Autoritéit - D'Äntwert vum Nummserver fir d'Domain an d'Zone.
- Zousätzlech - Zousätzlech Informatioun iwwer Nummserver wéi Hostnumm an IP Adress.
- Ufrozäit - Wéi laang et gedauert huet fir d'Nimm vun den uewe genannte Serveren ze léisen.
Endlech kuckt no eisem Node a maacht e 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
Endlech, Setup fäerdeg, hei hu mir souwuel de Primär (Master) wéi och de Sklave (Seconday) DNS Server erfollegräich konfiguréiert, hoffen, datt jiddereen ouni Problem konfiguréiert huet, fillt Iech gratis e Kommentar ze loossen wann Dir e Problem beim Setup konfrontéiert.