Zoeken op website

Master-Slave DNS-server instellen met behulp van "Bind"-tools in RHEL/CentOS 6.5


Domain Name Server (DNS) gebruikt voor het omzetten van namen naar hosts. Master DNS-servers (Primaire server) zijn de oorspronkelijke zonegegevenshandlers en Slave DNS-server (Secundaire server) zijn slechts back-upservers die worden gebruikt om dezelfde zone-informatie te kopiëren van de masterservers. Master Server zal de namen voor elke hosts die we in de zonedatabase hebben gedefinieerd, omzetten en het UDP-protocol gebruiken, omdat UDP-protocollen nooit het bevestigingsproces gebruiken terwijl TCP bevestiging gebruikt. DNS-servers gebruiken ook UDP-protocollen om het queryverzoek zo snel mogelijk op te lossen.

Hoe DNS werkt?

Het begrijpen van DNS kan voor nieuwkomers een beetje verwarrend zijn. Hier is een korte uitleg over hoe de DNS werkt.

Laten we zeggen: als we toegang moeten krijgen tot een website, wat gaan we dan doen? Typ gewoon www.google.com in de browser en druk op Enter. Hmm, dat is alles wat we weten, maar het feit is hoe pijnlijk DNS er doorheen gaat terwijl het voor ons vraagt. Terwijl we www.google.com typen, zoekt het systeem naar www.google.com. Telkens wanneer we een domeinnaam typen, staat er een . (punt) aan het einde van www.google.com die aangeeft dat we in de hoofdserver van de naamruimte moeten zoeken.

Wereldwijd zijn er 13 rootservers beschikbaar om de vraag op te lossen. In eerste instantie, terwijl we op enter drukken als www.google.com, zal onze browser een verzoek doorgeven aan onze lokale solver, die toegang heeft tot informatie over onze master- en slave-DNS-server. Als ze geen informatie hebben over een dergelijke gevraagde zoekopdracht, zullen ze het verzoek doorgeven aan het topniveaudomein (TLD). Als TLD zegt dat ik het verzoek niet ken, kan het zijn dat de gezaghebbende server jouw naam kent verzoek wordt doorgestuurd naar gezaghebbende servers, hier is alleen www.google.com gedefinieerd als adres 72.36.15.56.

In de tussentijd zal de gezaghebbende server het antwoord geven op TLD en TLD zal doorgeven aan de rootserver en root zal de informatie aan de browser verstrekken, vandaar dat de browser het DNS-verzoek in de cache zal opslaan voor toekomstig gebruik. Dit lange proces zal dus binnen milliseconden worden opgelost. Als ze het verzoek niet kennen, zullen ze antwoorden als NXDOMAIN. Dat betekent dat er geen enkel record is gevonden in de Zone-database. Ik hoop dat je hierdoor begrijpt hoe de DNS werkt.

Lees ook: DNS-cacheserver instellen in Ubuntu

Mijn testomgeving

Voor dit artikel gebruik ik 3 machines, 2 voor serverconfiguratie (master en slave) en 1 voor 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
Vereiste pakketten
bind, bind-utils, bind-chroot
Configuratiebestanden gebruikt
config file	:	/etc/named.conf
script file	:	/etc/init.d/named
Poort en gebruikte protocollen
53, UDP

Stel de Master DNS-server in

Controleer eerst het IP-adres, de hostnaam en de distributieversie van de Master DNS-server voordat u verdergaat met de installatie.

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

Zodra u bevestigt dat de bovenstaande instellingen correct zijn, is het tijd om verder te gaan en de vereiste pakketten te installeren.

sudo yum install bind* -y

Bind installeren en configureren

Na het installeren van de vereiste pakketten, definieert u nu zonebestanden in het hoofdconfiguratiebestand ‘named.conf’.

sudo vim /etc/named.conf

Hieronder vindt u mijn named.conf bestandsinvoer. Wijzig het configuratiebestand naar wens.

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

Hieronder volgt de uitleg van elke configuratie die we in het bovenstaande bestand hebben gebruikt.

  1. luisterpoort 53 – Deze wordt gebruikt om de DNS in beschikbare interfaces te laten luisteren.
  2. Master DNS – Definieer uw Master DNS IP-adres om naar de vraag te luisteren.
  3. Slave DNS – Definieer uw Slave DNS, die wordt gebruikt om onze zone-informatie te synchroniseren om de hosts van Master om te zetten.
  4. recursie nee – Als dit is ingesteld op ja, zorgen recursieve zoekopdrachten ervoor dat de server een DDOS-aanval uitvoert.
  5. Zonenaam – Geef hier uw zonenaam op, gedefinieerd als tecminlocal.com.
  6. type master – Omdat dit systeem is geconfigureerd voor een masterserver, zal dit voor de toekomstige slave-server de slave zijn.
  7. tecmintlocal.fwd.zone – Dit bestand bevat de hostinformatie voor deze zone.
  8. allow-update none – Als er geen wordt ingesteld. het gebruikt geen dynamische DNS (DDNS).

Masterzone-bestanden maken

Laten we eerst de toegang tot de forward look-up-zone definiëren. Hier moeten we de zonebestanden maken in de naam van wat we hebben gedefinieerd in het bestand named.conf, zoals hieronder.

tecmintlocal.fwd.zone
tecmintlocal.rev.zone

We gebruiken voorbeeldconfiguratiebestanden voor het maken van forward zone-bestanden, hiervoor moeten we de voorbeeldconfiguratiebestanden kopiëren.

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

U heeft eerst configuratiebestanden gekopieerd. Bewerk nu deze zonebestanden met de vim-editor.

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

Voordat u onze hostinformatie in het forward zonebestand definieert, moet u eerst snel naar het voorbeeldzonebestand kijken.

Dit is mijn forward zone-configuratie, voeg het onderstaande item toe en breng wijzigingen aan volgens uw behoefte.

$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

Sla het bestand op en sluit het af met wq!. Na het bewerken van de forward look-up ziet het er als volgt uit: Gebruik TAB om een fatsoenlijk formaat in het zonebestand te krijgen.

Maak nu een reverse lookup-bestand aan. We hebben al een kopie gemaakt van het loop-back-bestand in de naam tecmintlocal.rev.zone. We gebruiken dit bestand dus om onze reverse look-up te configureren.

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

Voordat u onze hostinformatie in het reverse zone-bestand definieert, kunt u snel een voorbeeld van een reverse lookup-bestand bekijken, zoals hieronder weergegeven.

Dit is mijn omgekeerde zoneconfiguratie, voeg het onderstaande item toe en breng indien nodig wijzigingen aan.

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

Sla het bestand op en sluit het af met wq!. Na het bewerken van de reverse look-up ziet het er als volgt uit: Gebruik TAB om een fatsoenlijk formaat in het zonebestand te krijgen.

Controleer het groepseigendom van voorwaartse en omgekeerde opzoekbestanden, voordat u controleert op eventuele fouten in de configuratie.

sudo ls -l /var/named/

Hier kunnen we zien dat beide bestanden eigendom zijn van root gebruikers, omdat bestanden waarvan we een kopie maken van voorbeeldbestanden beschikbaar zijn onder /var/named/. Wijzig de naam van de groep in beide bestanden met behulp van de volgende opdrachten.

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

Nadat u het juiste eigendom van de bestanden heeft ingesteld, verifieert u ze opnieuw.

sudo ls -l /var/named/

Controleer nu op fouten in zonebestanden voordat u de DNS-service start. Controleer eerst het bestand named.conf en controleer vervolgens de andere zonebestanden.

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

Standaard was iptables actief en onze DNS-server is beperkt tot localhost. Als de client de naam van onze DNS-server wil omzetten, moeten we het inkomende verzoek toestaan, daarvoor moeten we de iptables-inkomende regel toevoegen voor poort 53.

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

Controleer nu of de regels correct zijn toegevoegd in de INPUT-keten.

sudo iptables -L INPUT

Sla vervolgens de regels op en start de firewall opnieuw.

sudo service iptables save
sudo service iptables restart

Start de benoemde service en maak deze persistent.

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

Test ten slotte de geconfigureerde Master DNS-zonebestanden (vooruit en achteruit) met behulp van de tools dig en nslookup.

dig masterdns.tecmintlocal.com		[Forward Zone]

dig -x 192.168.0.200

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

Koel! we hebben een Master DNS geconfigureerd, nu moeten we een Slave DNS-server instellen. Laten we verder gaan met het instellen van een slaveserver. Dit zal niet veel tijd kosten als masterinstallatie.

Slave DNS-server instellen

In Slave-machine moeten we ook dezelfde bindpakketten installeren als weergegeven in Master, dus laten we ze installeren met de volgende opdracht.

sudo yum install bind* -y

Open en bewerk het bestand ‘named.conf’ voor onze zonedatabase en luister naar de poort.

sudo vim /etc/named.conf

Breng wijzigingen aan zoals weergegeven, volgens uw vereisten.

//
// 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 de DNS-service met.

sudo service named start

Nadat we de bindservice opnieuw hebben opgestart, hoeven we de zone-informatie niet afzonderlijk te definiëren, omdat onze allow-transfer de zone-informatie van de hoofdserver zal repliceren, zoals weergegeven in de onderstaande afbeelding.

sudo ls -l /var/named/slaves

Controleer de zone-informatie met behulp van het cat-commando.

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

Open vervolgens DNS-poort 53 op iptables om inkomende verbindingen toe te staan.

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

Sla de iptables-regels op en start de iptables-service opnieuw.

sudo service iptables save
sudo service iptables restart

Maak de service persistent bij het opstarten van het systeem.

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

Dat is het!. Nu is het tijd om onze clientmachines te configureren en de hostnaam te controleren.

Configureer de clientmachine

Aan de clientzijde moeten we de primaire (192.168.0.200) en secundaire DNS-vermelding (192.168.0.201) in de netwerkinstellingen toewijzen om een hostnaam toe te wijzen. Om dit te doen, voert u het setup-commando uit om al deze items te definiëren, zoals weergegeven in de afbeelding.

setup

Bewerk anders het bestand ‘/etc/reslov.conf’ en voeg de volgende vermeldingen toe.

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

Controleer nu het IP-adres, de hostnaam en de naamserver.

ifconfig | grep inet
hostname
nslookup tecmintlocal.com

Controleer nu de voorwaartse en achterwaartse DNS-look-up met behulp van.

dig masterdns.tecmintlocal.com
dig -x 192.168.0.200

De opgraving begrijpen Uitvoer:

  1. Header – Hierin staat alles wat we hebben gevraagd en hoe het resultaat was.
  2. Status – De status was GEEN FOUT, dat betekent dat het door ons verzonden queryverzoek succesvol was zonder enige FOUT.
  3. Vraag – De vraag die door ons is gesteld, hier was mijn vraag masterdns.tecmintlocal.com.
  4. Antwoord – Het queryverzoek is opgelost als er informatie beschikbaar is.
  5. Autoriteit – Het antwoord van de naamservers voor het domein en de zone.
  6. Aanvullend – Aanvullende informatie over naamservers zoals hostnaam en IP-adres.
  7. Querytijd – Hoe lang het duurde voor het omzetten van de namen van de bovenstaande servers.

Controleer ten slotte ons knooppunt en maak een 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

Eindelijk is de installatie voltooid. Hier hebben we zowel de primaire (Master) als de Slave (Seconday) DNS-server met succes geconfigureerd. Ik hoop dat iedereen de installatie zonder enig probleem heeft uitgevoerd. Laat gerust een reactie achter als u problemen ondervindt tijdens de installatie.