- Inleiding
- Vereisten
- Voorbeeld Hosts
- ons doel
- installeer BIND op DNS-Servers
- primaire DNS-Server configureren
- Bind configureren
- configureer lokaal bestand
- create Forward Zone File
- Reverse Zone File(s) aanmaken
- controleer BIND configuratie syntaxis
- Start BIND
- secundaire DNS-Server configureren
- configureer DNS-Clients
- CentOS Clients
- Ubuntu Clients
- Testclients
- Forward Lookup
- Reverse Lookup
- het onderhouden van DNS-Records
- Host toevoegen aan DNS
- de Primaire Naamserver opgegeven met
- Secundaire Nameserver
- configureer nieuwe Host om uw DNS
- Host uit DNS verwijderen
- conclusie
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 y
in 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:
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:
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”:
voeg aan het einde van het bestand de volgende regel toe:
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):
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):
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/zones
zijn:
- 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:
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:
; 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:
sla het db.nyc3.example.com
bestand op en sluit het af.
ons laatste voorbeeld Forward zone bestand ziet er als volgt uit:
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:
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:
; 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:
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:
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:
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:
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”:
...options {... allow-query { trusted; }; # allows queries from "trusted" clients...
voeg aan het einde van het bestand de volgende regel toe:
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:
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):
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):
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.