Hoe BIND te configureren als een particuliere netwerk DNS-Server op CentOS 7

Inleiding

een belangrijk onderdeel van het beheren van server configuratie en infrastructuur omvat het onderhouden van een eenvoudige manier om netwerkinterfaces en IP-adressen op naam op te zoeken, door het opzetten van een goed Domain Name System (DNS). Het gebruik van FQDN ‘ s (fully qualified domain names) in plaats van IP-adressen om netwerkadressen op te geven, vergemakkelijkt de configuratie van services en toepassingen en verhoogt de onderhoudbaarheid van configuratiebestanden. Het opzetten van uw eigen DNS voor uw private netwerk is een geweldige manier om het beheer van uw servers te verbeteren.

in deze tutorial zullen we gaan over het opzetten van een interne DNS-server, met behulp van de BIND name server software (BIND9) op CentOS 7, die kan worden gebruikt door uw Virtual Private Servers (VPS) om private host namen en private IP-adressen op te lossen. Dit biedt een centrale manier om uw interne hostnamen en privé IP-adressen te beheren, wat onmisbaar is wanneer uw omgeving zich uitbreidt naar meer dan een paar hosts.

De Ubuntu – versie van deze tutorial is hier te vinden.

Vereisten

Voor het voltooien van deze zelfstudie hebt u het volgende nodig:

  • Sommige servers die worden uitgevoerd in hetzelfde datacenter en hebben een eigen netwerk ingeschakeld
  • Een nieuwe VPS te dienen als de Primaire DNS-server, ns1
  • Optioneel: Een nieuwe VPS om te dienen als een Secundaire DNS-server ns2
  • Root toegang tot alle bovengenoemde (stap 1-4 hier)

Als u niet bekend bent met de DNS-concepten, is het aanbevolen dat u ten minste de eerste drie delen van de Inleiding tot het Beheren van DNS.

Voorbeeld Hosts

bijvoorbeeld doeleinden, zullen we aannemen dat u het volgende:

  • We hebben twee bestaande VPS genoemd “host1” en “host2”
  • Zowel VPS bestaan in de nyc3 datacenter
  • Zowel VPS hebben een eigen netwerk ingeschakeld zijn (en op de 10.128.0.0/16 subnet)
  • Zowel VPS of andere manier in verband met onze web-applicatie, die draait op “example.com”

Met deze aannames, besluiten we dat het zinvol is om een naam schema dat gebruikt “nyc3.example.com” om te verwijzen naar onze eigen subnet of zone. Daarom host1 eigen Volledig Gekwalificeerde Domeinnaam (FQDN) zal worden “host1.nyc3.example.com”. Raadpleeg de volgende tabel de relevante details:

Host Rol Eigen FQDN-naam Privé-IP-Adres
host1 Generic Host 1 host1.nyc3.example.com 10.128.100.101
host2 Generic Host 2 host2.nyc3.example.com 10.128.200.102

Opmerking: uw bestaande instellingen zullen anders zijn, maar de voorbeeldnamen en IP-adressen zullen worden gebruikt om aan te tonen hoe u een DNS-server kunt configureren om een functionerende interne DNS te leveren. Je moet in staat zijn om deze setup eenvoudig aan te passen aan je eigen omgeving door de hostnamen en privé IP-adressen te vervangen door je eigen. Het is niet nodig om de naam van de regio van het datacenter te gebruiken in uw naamgevingsschema, maar we gebruiken het hier om aan te geven dat deze hosts behoren tot het private netwerk van een bepaald datacenter. Als u gebruik maakt van meerdere datacenters, kunt u het opzetten van een interne DNS binnen elk respectieve datacenter.

ons doel

aan het einde van deze handleiding hebben we een primaire DNS-server, ns1, en optioneel een secundaire DNS-server, ns2, die als back-up zal dienen.

Hier is een tabel met voorbeelden van namen en IP-adressen:

Host Rol Eigen FQDN-naam Privé-IP-Adres
ns1 Primaire DNS-Server ns1.nyc3.example.com 10.128.10.11
ns2 secundaire DNS-Server ns2.nyc3.example.com 10.128.20.12

laten we beginnen met het installeren van onze primaire DNS-server, ns1.

installeer BIND op DNS-Servers

opmerking: tekst die in het rood is gemarkeerd is belangrijk! Het zal vaak worden gebruikt om iets aan te duiden dat moet worden vervangen door je eigen instellingen of dat het moet worden gewijzigd of toegevoegd aan een configuratiebestand. Bijvoorbeeld, als je iets als host1 ziet.nyc3.bijvoorbeeld.com, vervang het door de FQDN van uw eigen server. Op dezelfde manier, als je host1_private_IP ziet, vervang het door het privé IP adres van je eigen server.

op beide DNS-servers, ns1 en ns2, installeer BIND met yum:

  • sudo yum install bind bind-utils

bevestig de prompt door yin te voeren.

nu BIND is geïnstalleerd, laten we de primaire DNS-server configureren.

primaire DNS-Server configureren

BIND ’s configuratie bestaat uit meerdere bestanden, die zijn opgenomen uit het hoofdconfiguratiebestand, named.conf. Deze bestandsnamen beginnen met “named” omdat dat de naam is van het proces dat BIND uitvoert. We beginnen met het configureren van het optiebestand.

Bind configureren

BIND ‘ s proces staat bekend als named. Als zodanig, veel van de bestanden verwijzen naar” named “in plaats van”BIND”.

op ns1, open het named.conf bestand voor het bewerken:

  • sudo vi /etc/named.conf

boven het bestaande options blok, maak een nieuw ACL-blok aan met de naam”trusted”. Dit is waar we de lijst met clients definiëren waarvan we recursieve DNS-query ‘ s zullen toestaan (d.w.z. uw servers die zich in hetzelfde datacenter bevinden als ns1). Met behulp van ons voorbeeld private IP-adressen, zullen we ns1, ns2, host1 en host2 toevoegen aan onze lijst met vertrouwde clients:

/etc/named.conf-1 van 4
acl "trusted" { 10.128.10.11; # ns1 - can be set to localhost 10.128.20.12; # ns2 10.128.100.101; # host1 10.128.200.102; # host2};

nu we onze lijst met vertrouwde DNS-clients hebben, willen we het options blok bewerken. Voeg het privé-IP-adres van ns1 toe aan de listen-on port 53 richtlijn, en commentaar de listen-on-v6 regel:

/etc/named.conf-2 van 4
options { listen-on port 53 { 127.0.0.1; 10.128.10.11; };# listen-on-v6 port 53 { ::1; };...

onder deze items, verander de allow-transfer richtlijn van “none” naar ns2 ‘ s private IP-adres. Verander ook allow-query directive van” localhost “naar”trusted”:

/etc/named.conf-3 van 4

voeg aan het einde van het bestand de volgende regel toe:

/etc/named.conf-4 van 4
include "/etc/named/named.conf.local";

nu opslaan en afsluiten named.conf. De bovenstaande configuratie geeft aan dat alleen uw eigen servers (de “vertrouwde”) in staat zijn om uw DNS-server te bevragen.

vervolgens zullen we het lokale bestand configureren om onze DNS-zones op te geven.

configureer lokaal bestand

Op ns1, open het named.conf.local bestand om te bewerken:

  • sudo vi /etc/named/named.conf.local

het bestand moet leeg zijn. Hier zullen we onze voorwaartse en omgekeerde zones specificeren.

voeg de voorwaartse zone toe met de volgende regels (vervang de zonenaam door uw eigen naam):

/etc/named/named.conf.local-1 van 2
zone "nyc3.example.com" { type master; file "/etc/named/zones/db.nyc3.example.com"; # zone file path};

aangenomen dat ons privé-subnet 10.128.0 is.0/16, voeg de omgekeerde zone met de volgende regels (merk op dat onze omgekeerde zone naam begint met “128.10” wat de octet omkering van “10.128”is):

/etc/named/named.conf.local-2 of 2
zone "128.10.in-addr.arpa" { type master; file "/etc/named/zones/db.10.128"; # 10.128.0.0/16 subnet };

als uw servers meerdere privé-subnetten bestrijken, maar zich in hetzelfde datacenter bevinden, moet u een extra zone-en zonebestand opgeven voor elk afzonderlijk subnet. Als u klaar bent met het toevoegen van al uw gewenste zones, sla dan het named.conf.local bestand op en sluit het af.

nu onze zones zijn opgegeven in BIND, moeten we de corresponderende zonebestanden vooruit en achteruit maken.

create Forward Zone File

Het Forward zone bestand is waar we DNS records definiëren voor forward DNS lookups. Dat wil zeggen, wanneer de DNS een naam query ontvangt, “host1.nyc3.example.com” bijvoorbeeld, het zal kijken in de forward zone bestand om host1 het bijbehorende private IP-adres op te lossen.

laten we de map maken waar onze zonebestanden zich zullen bevinden. Volgens onze naam.conf.lokale configuratie, die locatie moet /etc/named/zoneszijn:

  • sudo chmod 755 /etc/named
  • sudo mkdir /etc/named/zones

laten we nu ons Forward zone bestand bewerken:

  • sudo vi /etc/named/zones/db.nyc3.example.com

eerst wilt u het SOA record toevoegen. Vervang de gemarkeerde ns1 FQDN door uw eigen FQDN en vervang vervolgens de tweede “nyc3.example.com” met je eigen domein. Elke keer dat u een zonebestand bewerkt, moet u de seriële waarde verhogen voordat u het named proces herstart–we zullen het verhogen naar “3”. Het zou er ongeveer zo uit moeten zien:

/etc/named/zones/db.nyc3.bijvoorbeeld.com-1 van 3

voeg daarna je nameserver records toe met de volgende regels (vervang de namen door je eigen). Merk op dat de tweede kolom specificeert dat dit “NS” records zijn:

/etc/named/zones/db.nyc3.example.com — 2 van 3
; name servers - NS records IN NS ns1.nyc3.example.com. IN NS ns2.nyc3.example.com.

voeg vervolgens de A records toe voor uw hosts die in deze zone thuishoren. Dit geldt ook voor elke server waarvan we de naam willen eindigen met “.nyc3.example.com ” (vervang de namen en privé IP-adressen). Met behulp van onze voorbeeldnamen en privé IP-adressen, zullen we een records voor ns1, ns2, host1 en host2 toevoegen zoals dit:

/ etc / named / zones/db.nyc3.example.com — 3 of 3

sla het db.nyc3.example.com bestand op en sluit het af.

ons laatste voorbeeld Forward zone bestand ziet er als volgt uit:

/etc/named/zones/db.nyc3.example.com — complete

laten we nu naar het reverse zone bestand(en) gaan.

Reverse Zone File(s) aanmaken

Reverse zone file zijn waar we DNS PTR records definiëren voor reverse DNS lookups. Dat wil zeggen, wanneer de DNS ontvangt een query op IP-adres, “10.128.100.101” bijvoorbeeld, het zal kijken in de reverse zone bestand( en) om de bijbehorende FQDN op te lossen, “host1.nyc3.example.com ” in dit geval.

op ns1, voor elke omgekeerde zone gespecificeerd in het named.conf.local bestand, Maak een omgekeerde zone bestand.

Bewerk Het reverse zone-bestand dat overeenkomt met de reverse zone(s) gedefinieerd in named.conf.local:

  • sudo vi /etc/named/zones/db.10.128

op dezelfde manier als het forward zone-bestand, vervang de gemarkeerde NS1 FQDN door uw eigen FQDN en vervang vervolgens de tweede “nyc3.example.com” met je eigen domein. Elke keer dat u een zonebestand bewerkt, moet u de seriële waarde verhogen voordat u het named proces herstart–we zullen het verhogen naar “3”. Het zou er ongeveer zo uit moeten zien:

/etc/named/zones/db.10.128-1 van 3

voeg daarna je nameserver records toe met de volgende regels (vervang de namen door je eigen). Merk op dat de tweede kolom specificeert dat dit “NS” records zijn:

/etc/named/zones/db.10.128 – 2 of 3
; name servers - NS records IN NS ns1.nyc3.example.com. IN NS ns2.nyc3.example.com.

voeg vervolgens PTR records toe voor al uw servers waarvan de IP-adressen zich bevinden in het subnet van het zonebestand dat u bewerkt. In ons voorbeeld, Dit omvat al onze hosts omdat ze allemaal op het 10.128.0.0/16 subnet. Merk op dat de eerste kolom bestaat uit de laatste twee octetten van uw servers’ private IP-adressen in omgekeerde volgorde. Vervang namen en privé-IP-adressen om overeen te komen met uw servers:

/etc/named/zones/db.10.128 – 3 van 3

sla het Reverse zone-bestand op en sluit het af (Herhaal deze sectie als u meer reverse zone-bestanden wilt toevoegen).

ons laatste voorbeeld reverse zone bestand ziet er als volgt uit:

/etc/named/zones / db.10.128-complete

controleer BIND configuratie syntaxis

voer het volgende commando uit om de syntaxis van de named.conf* bestanden te controleren:

  • sudo named-checkconf

als uw benoemde configuratie bestanden geen syntaxisfouten hebben, keert u terug naar uw shell prompt en ziet u geen foutmeldingen. Als er problemen zijn met uw configuratiebestanden, controleer dan de foutmelding en de sectie primaire DNS-Server configureren, probeer dan named-checkconf opnieuw.

het named-checkzone commando kan worden gebruikt om de juistheid van uw zonebestanden te controleren. Het eerste argument specificeert een zonenaam, en het tweede argument specificeert het corresponderende zonebestand, die beide zijn gedefinieerd in named.conf.local.

bijvoorbeeld, om de “nyc3.example.com” forward zone configuratie, voer de volgende opdracht uit (wijzig de namen om uw forward zone en bestand overeen te komen):

  • sudo named-checkzone nyc3.example.com /etc/named/zones/db.nyc3.example.com

en om de “128.10.in-addr.arpa” reverse zone configuration, voer het volgende commando uit (wijzig de nummers zodat deze overeenkomen met uw reverse zone en bestand):

  • sudo named-checkzone 128.10.in-addr.arpa /etc/named/zones/db.10.128

wanneer al uw configuratie-en zonebestanden geen fouten bevatten, moet u klaar zijn om de BIND-service opnieuw te starten.

Start BIND

Start BIND:

  • sudo systemctl start named

nu wilt u het inschakelen, dus het zal starten bij het opstarten:

  • sudo systemctl enable named

uw primaire DNS-server is nu ingesteld en klaar om te reageren op DNS-queries. Laten we verder gaan met het maken van de secundaire DNS-server.

secundaire DNS-Server configureren

in de meeste omgevingen is het een goed idee om een secundaire DNS-server in te stellen die zal reageren op verzoeken als de primaire niet beschikbaar is. Gelukkig is de secundaire DNS-server veel gemakkelijker te configureren.

op ns2, bewerk de named.conf bestand:

  • sudo vi /etc/named.conf

Opmerking: Als u deze instructies liever overslaat, kunt u ns1 ‘ s named.conf bestand kopiëren en aanpassen om te luisteren op het privé IP-adres van ns2, en geen overdrachten toestaan.

boven het bestaandeoptions blok, maak een nieuw ACL-blok aan met de naam “trusted”. Hier definiëren we een lijst met clients waarvan we recursieve DNS-query ‘ s toestaan (dat wil zeggen uw servers die zich in hetzelfde datacenter bevinden als ns1). Met behulp van ons voorbeeld private IP-adressen, zullen we ns1, ns2, host1 en host2 toevoegen aan onze lijst met vertrouwde clients:

/etc/named.conf-1 van 4
acl "trusted" { 10.128.10.11; # ns1 - can be set to localhost 10.128.20.12; # ns2 10.128.100.101; # host1 10.128.200.102; # host2};

nu we onze lijst met vertrouwde DNS-clients hebben, willen we het options blok bewerken. Voeg het privé-IP-adres van ns1 toe aan de listen-on port 53 richtlijn, en commentaar de listen-on-v6 regel:

/etc/named.conf-2 of 4
options { listen-on port 53 { 127.0.0.1; 10.128.20.12; };# listen-on-v6 port 53 { ::1; };...

verander allow-query richtlijn van” localhost “naar”trusted”:

/etc/named.conf-3 van 4
...options {... allow-query { trusted; }; # allows queries from "trusted" clients...

voeg aan het einde van het bestand de volgende regel toe:

/etc/named.conf-4 van 4
include "/etc/named/named.conf.local";

nu opslaan en afsluiten named.conf. De bovenstaande configuratie geeft aan dat alleen uw eigen servers (de “vertrouwde”) in staat zijn om uw DNS-server te bevragen.

vervolgens zullen we het lokale bestand configureren om onze DNS-zones op te geven.

opslaan en afsluiten named.conf.

Bewerk nu de named.conf.local bestand:

  • sudo chmod 755 /etc/named
  • sudo vi /etc/named/named.conf.local

slavezones definiëren die overeenkomen met de masterzones op de primaire DNS-server. Merk op dat het type “slave” is, dat het bestand geen pad bevat, en dat er een masters instructie is die ingesteld moet worden op het privé IP van de primaire DNS server. Als u meerdere omgekeerde zones hebt gedefinieerd in de primaire DNS-server, zorg er dan voor dat u ze allemaal hier toevoegt:

/ etc/named / named.conf.local

nu opslaan en afsluiten named.conf.local.

voer het volgende commando uit om de geldigheid van uw configuratiebestanden te controleren:

  • sudo named-checkconf

zodra dit uitcheckt, start BIND:

  • sudo systemctl start named

BIND om te starten tijdens het opstarten:

sudo systemctl enable named

nu hebt u primaire en secundaire DNS-servers voor naam van privé-netwerk en IP-adresresolutie. Nu moet u uw servers configureren om uw privé DNS-servers te gebruiken.

configureer DNS-Clients

voordat al uw servers in de “vertrouwde” ACL uw DNS-servers kunnen opvragen, moet u elk van hen configureren om ns1 en ns2 als nameservers te gebruiken. Dit proces varieert afhankelijk van het besturingssysteem, maar voor de meeste Linux distributies gaat het om het toevoegen van je nameservers aan het /etc/resolv.conf bestand.

CentOS Clients

op CentOS, RedHat, en Fedora Linux VPS, Bewerk eenvoudig het resolv.conf bestand:

  • sudo vi /etc/resolv.conf

voeg vervolgens de volgende regels toe aan de bovenkant van het bestand (vervang uw privédomein, en ns1 en ns2 privé IP-adressen):

/etc/resolv.conf
search nyc3.example.com # your private domainnameserver 10.128.10.11 # ns1 private IP addressnameserver 10.128.20.12 # ns2 private IP address

nu opslaan en afsluiten. Uw client is nu geconfigureerd om uw DNS-servers te gebruiken.

Ubuntu Clients

Op Ubuntu en Debian Linux VPS kunt u het head bestand bewerken, dat is toegevoegd aan resolv.conf bij het opstarten:

  • sudo vi /etc/resolvconf/resolv.conf.d/head

voeg de volgende regels toe aan het bestand (vervang uw privédomein, en ns1 en ns2 privé IP-adressen):

/etc/resolvconf/resolv.conf.d/head
search nyc3.example.com # your private domainnameserver 10.128.10.11 # ns1 private IP addressnameserver 10.128.20.12 # ns2 private IP address

Voer nu resolvconf uit om een nieuwe resolv.conf bestand:

  • sudo resolvconf -u

uw client is nu geconfigureerd om uw DNS-servers te gebruiken.

Testclients

gebruik nslookup—inbegrepen in het pakket” bind-utils ” —om te testen of uw clients uw nameservers kunnen opvragen. Je moet in staat zijn om dit te doen op alle van de clients die u hebt geconfigureerd en zijn in de “vertrouwde” ACL.

Forward Lookup

bijvoorbeeld, we kunnen een forward lookup uitvoeren om het IP-adres van host1.nyc3.example.com door het volgende commando uit te voeren:

  • nslookup host1

Het opvragen van “host1” breidt uit naar “host1.nyc3.example.com vanwege de optie search is ingesteld op uw privé-subdomein, en DNS-queries zullen proberen dat subdomein te bekijken voordat ze elders naar de host zoeken. De output van het commando hierboven zou er als volgt uitzien:

Output:
Server: 10.128.10.11Address: 10.128.10.11#53Name: host1.nyc3.example.comAddress: 10.128.100.101

Reverse Lookup

Om het testen van de reverse lookup, de DNS-server met host1 eigen IP adres:

  • nslookup 10.128.100.101

Je moet het zien output die lijkt op de volgende:

Output:
Server: 10.128.10.11Address: 10.128.10.11#5311.10.128.10.in-addr.arpa name = host1.nyc3.example.com.

Als u alle namen en IP adressen oplossen door naar de juiste waarden, dat betekent dat uw zone bestanden correct zijn geconfigureerd. Als u onverwachte waarden ontvangt, moet u de zonebestanden op uw primaire DNS-server (bijv. db.nyc3.example.com en db.10.128).

Gefeliciteerd! Uw interne DNS servers zijn nu goed ingesteld! Nu zullen we het bijhouden van uw zone records dekken.

het onderhouden van DNS-Records

Nu u een werkende interne DNS hebt, moet u uw DNS-records onderhouden zodat ze uw serveromgeving nauwkeurig weergeven.

Host toevoegen aan DNS

wanneer u een host toevoegt aan uw omgeving (in hetzelfde datacenter), wilt u deze toevoegen aan DNS. Hier is een lijst met stappen die u moet nemen:

de Primaire Naamserver opgegeven met

  • Forward zone bestand: Voeg een ‘ A ‘ – record voor de nieuwe host, verhogen de waarde van “Serial”
  • Reverse zone bestand: Voeg een “POINTER” record voor de nieuwe host, verhogen de waarde van “Serial”
  • Voeg uw nieuwe host is een eigen IP adres aan de “vertrouwde” ACL (named.conf.options)

opnieuw laden te BINDEN:

  • sudo systemctl reload named

Secundaire Nameserver

  • Voeg uw nieuwe host is een eigen IP adres aan de “vertrouwde” ACL (named.conf.options)

Vervolgens opnieuw BINDEN:

  • sudo systemctl reload named

configureer nieuwe Host om uw DNS

  • configureer resolv.conf om uw DNS-servers te gebruiken
  • Test met nslookup

Host uit DNS verwijderen

Als u een host uit uw omgeving verwijdert of gewoon uit DNS wilt halen, verwijdert u alle dingen die zijn toegevoegd toen u de server aan DNS toevoegde (d.w.z. het omgekeerde van de bovenstaande stappen).

conclusie

nu kunt u naar de private netwerkinterfaces van uw servers verwijzen met naam, in plaats van met IP-adres. Dit maakt configuratie van diensten en toepassingen gemakkelijker omdat u niet langer de privé IP-adressen hoeft te onthouden en de bestanden gemakkelijker te lezen en te begrijpen zijn. Ook, nu kunt u uw configuraties te wijzigen om te wijzen op een nieuwe servers op een enkele plaats, uw primaire DNS-server, in plaats van een verscheidenheid van gedistribueerde configuratiebestanden te bewerken, die het onderhoud vergemakkelijkt.

zodra u uw interne DNS hebt ingesteld en uw configuratiebestanden privé FQDNs gebruiken om netwerkverbindingen op te geven, is het van cruciaal belang dat uw DNS-servers goed worden onderhouden. Als ze beide niet meer beschikbaar zijn, zullen uw diensten en applicaties die erop vertrouwen niet meer naar behoren functioneren. Dit is waarom het wordt aanbevolen om uw DNS met ten minste één secundaire server, en om werkende back-ups van alle van hen te behouden.

Related Posts

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *