Domain Name Service (DNS) is een Internet service die IP-adressen en FQDN (fully qualified domain names) aan elkaar koppelt. Op deze manier verlicht DNS de noodzaak om IP-adressen te onthouden. Computers waarop DNS wordt uitgevoerd, worden nameservers genoemd. Ubuntu wordt geleverd met BIND (Berkley Internet Naming Daemon), het meest voorkomende programma dat wordt gebruikt voor het onderhouden van een nameserver op Linux.,
voer het volgende commando in om dns te installeren:
sudo apt install bind9
een zeer nuttig pakket voor het testen en oplossen van DNS-problemen is het dnsutils
pakket. Heel vaak zullen deze tools al geïnstalleerd zijn, maar om dnsutils
te controleren en/of te installeren, voer het volgende in:
sudo apt install dnsutils
configuratie
Er zijn veel manieren om BIND9 in te stellen. Enkele van de meest voorkomende configuraties zijn een caching nameserver, primaire server, en secundaire server.,
-
wanneer geconfigureerd als een caching nameserver zal BIND9 het antwoord op naamqueries vinden en het antwoord onthouden wanneer het domein opnieuw wordt opgevraagd.
-
als primaire server leest BIND9 de gegevens voor een zone uit een bestand op zijn host en is het gezaghebbend voor die zone.
-
als een secundaire server, krijgt BIND9 de zonegegevens van een andere nameserver die gezaghebbend is voor de zone.
overzicht
de DNS-configuratiebestanden worden opgeslagen in de map /etc/bind
., Het primaire configuratiebestand is /etc/bind/named.conf
, die in de lay-out van het pakket alleen deze bestanden bevat.
de root nameservers werden beschreven in het bestand /etc/bind/db.root
. Dit wordt nu geleverd door het /usr/share/dns/root.hints
bestand geleverd met het dns-root-data
pakket, en wordt verwezen in het named.conf.default-zones
configuratiebestand hierboven.
Het is mogelijk om dezelfde server in te stellen als een caching name server, primair, en secundair: het hangt allemaal af van de zones die het bedient., Een server kan het begin van autoriteit (SOA) zijn voor een zone, terwijl de secundaire service voor een andere zone wordt verleend. Al die tijd het leveren van caching diensten voor hosts op het lokale LAN.
caching Nameserver
De Standaard configuratie werkt als een caching server. Verwijder eenvoudig commentaar en bewerk /etc/bind/named.conf.options
om de IP-adressen van de DNS-servers van uw ISP in te stellen:
forwarders { 1.2.3.4; 5.6.7.8;};
Note
vervang
1.2.3.4
en5.6.7.8
met de IP-adressen van de werkelijke nameservers.,
om de nieuwe configuratie in te schakelen, herstart u de DNS-server. Vanaf een terminalprompt:
sudo systemctl restart bind9.service
zie dig voor informatie over het testen van een caching DNS-server.
primaire Server
in deze sectie wordt BIND9 geconfigureerd als de primaire server voor het domein example.com
. Vervang gewoon example.com
door uw FQDN (Fully Qualified Domain Name).,
Forward Zone Bestand
toevoegen van een DNS-zone te BIND9, draaien BIND9 in een Primaire server, eerste edit /etc/bind/named.conf.local
:
zone "example.com" { type master; file "/etc/bind/db.example.com";};
Opmerking
Als bind ontvangt automatische updates om het bestand op als met DDNS, gebruik dan
/var/lib/bind/db.example.com
plaats/etc/bind/db.example.com
zowel hier als in het copy-commando ‘ s hieronder.,
Gebruik nu een bestaand zonebestand als sjabloon om /etc/bind/db.example.com
bestand:
sudo cp /etc/bind/db.local /etc/bind/db.example.com
Bewerk het nieuwe zonebestand /etc/bind/db.example.com
en verander localhost.
naar de FQDN van uw server, met de extra .
aan het einde., Verander 127.0.0.1
naar het IP-adres van de naamserver en root.localhost
naar een geldig e-mailadres, maar met een .
in plaats van het gebruikelijke @
symbool, waarbij de .
aan het einde. Wijzig de opmerking om aan te geven voor welk domein dit bestand is.
Maak een A-record aan voor het basisdomein, example.com
. Maak ook een record aan voor ns.example.com
, De name server in dit voorbeeld:
u moet het serienummer verhogen elke keer dat u wijzigingen aanbrengt in het zonebestand., Als u meerdere wijzigingen aanbrengt voordat u BIND9 herstart, verhoog de seriële eenmaal.
nu kunt u DNS-records toevoegen aan de onderkant van het zonebestand. Zie Common Record Types voor details.,
Opmerking
Veel beheerders graag gebruik van de laatste datum bewerkt als het serienummer van een zone, zoals 2020012100 die yyyymmddss (waar de ss is het Serienummer)
Nadat u wijzigingen hebt aangebracht in de zone bestand BIND9 moet opnieuw gestart worden om de wijzigingen door te voeren:
sudo systemctl restart bind9.service
Reverse Zone Bestand
Nu dat de zone is ingesteld en het omzetten van namen naar IP-Adressen, een Reverse zone moet worden toegevoegd kunnen worden door DNS aan het oplossen van een adres aan een naam.,
Bewerk /etc/bind/named.conf.local
en voeg het volgende toe:
zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/db.192";};
Note
vervang
1.168.192
met de eerste drie octetten van welk netwerk u ook gebruikt. Noem ook het zonebestand/etc/bind/db.192
correct. Het moet overeenkomen met het eerste octet van je netwerk.,
Maak nu de /etc/bind/db.192
bestand:
sudo cp /etc/bind/db.127 /etc/bind/db.192
volgende bewerking /etc/bind/db.192
dezelfde opties wijzigen als /etc/bind/db.example.com
:
het serienummer in de omgekeerde zone moet ook bij elke wijziging worden verhoogd. Voor elke A-record die u configureert in /etc/bind/db.example.com
, dat wil zeggen voor een ander adres, MOET u een PTR-record aanmaken in /etc/bind/db.192
.,
na het aanmaken van het omgekeerde zonebestand start BIND9:
sudo systemctl restart bind9.service
secundaire Server
nadat een primaire Server is geconfigureerd, wordt een secundaire Server ten zeerste aanbevolen om de beschikbaarheid van het domein te behouden als de primaire server niet beschikbaar is.
eerst moet op de primaire server de zoneoverdracht worden toegestaan., Voeg de optie allow-transfer
toe aan de voorbeelddefinities Forward en Reverse zone in /etc/bind/named.conf.local
:
Note
vervang
192.168.1.11
met het IP-adres van uw secundaire naamserver.
herstart BIND9 op de primaire server:
sudo systemctl restart bind9.service
installeer vervolgens op de secundaire server het bind9-pakket op dezelfde manier als op de primaire server., Bewerk vervolgens de/etc/bind/named.conf.local
en voeg de volgende declaraties toe voor de voorwaartse en omgekeerde zones:
Note
vervang
192.168.1.10
met het IP-adres van uw primaire nameserver.,
herstart BIND9 op de secundaire server:
sudo systemctl restart bind9.service
In /var/log/syslog
u zou iets dergelijks moeten zien (sommige regels zijn gesplitst om in het formaat van dit document te passen):
note
note: een zone wordt alleen overgedragen als het serienummer op de primaire groter is dan dat op de secundaire., Als u wilt dat uw primaire DNS andere secundaire DNS-Servers op de hoogte stelt van zonewijzigingen, kunt u
also-notify { ipaddress; };
toevoegen aan/etc/bind/named.conf.local
zoals weergegeven in het voorbeeld hieronder:
Note
de standaardmap voor niet-gezaghebbende zonebestanden is
/var/cache/bind/
. Deze map is ook geconfigureerd in AppArmor om de benoemde daemon toe te staan er naar te schrijven. Zie beveiliging – AppArmor voor meer informatie over AppArmor.,
probleemoplossing
Deze sectie behandelt de diagnose van problemen met DNS-en BIND9-configuraties.
Testing
resolv.conf
de eerste stap in het testen van BIND9 is het toevoegen van het IP-adres van de naamserver aan een hosts-resolver. De primaire nameserver moet worden geconfigureerd, evenals een andere host om dingen te controleren. Raadpleeg DNS-clientconfiguratie voor meer informatie over het toevoegen van naamserveradressen aan uw netwerkclients., Uiteindelijk moet uw nameserver
regel in /etc/resolv.conf
wijzen naar 127.0.0.53
en MOET u een search
parameter voor uw domein hebben. Iets als dit:
nameserver 127.0.0.53search example.com
om te controleren welke DNS-server uw lokale resolver gebruikt, voer je uit:
systemd-resolve --status
opmerking
U moet ook het IP-adres van de secundaire nameserver toevoegen aan uw clientconfiguratie in het geval de primaire wordt niet meer beschikbaar.,
dig
Als u het dnsutils-pakket hebt geïnstalleerd, kunt u uw installatie testen met het hulpprogramma DNS lookup dig:
-
na het installeren van BIND9 gebruik dig tegen de loopback-interface om er zeker van te zijn dat het luistert op poort 53.,ik>
Als u hebt geconfigureerd BIND9 als een Caching nameserver “graven” een buiten het domein om te controleren of de query time:
dig ubuntu.com
Opmerking de query naar het einde van het commando:
;; Query time: 49 msec
Na een tweede graven moet er verbetering zijn:
;; Query time: 1 msec
ping
Nu om aan te tonen hoe applicaties maken gebruik van DNS om het oplossen van een host-naam gebruik het hulp programma ping stuurt een ICMP echo request:
ping example.com
Deze tests als de nameserver kunt u de naam ns.example.com
om een IP-Adres., De uitvoer van het commando zou moeten lijken op:
named-checkzone
een goede manier om uw zonebestanden te testen is door gebruik te maken van het hulpprogramma named-checkzone
dat geïnstalleerd is met het pakket bind9
. Met dit hulpprogramma kunt u ervoor zorgen dat de configuratie correct is voordat u BIND9 herstart en de wijzigingen live aanbrengt.,
-
Voor het testen van onze voorbeeld zone voor Forward lookup-bestand voert u de volgende opdracht prompt:
named-checkzone example.com /etc/bind/db.example.com
Als alles correct is geconfigureerd, ziet u de uitvoer op het volgende lijkt:
zone example.com/IN: loaded serial 6OK
-
Ook voor het testen van de Reverse zone-bestand voert u de volgende:
named-checkzone 1.168.192.in-addr.arpa /etc/bind/db.192
De output is vergelijkbaar met:
zone 1.168.192.in-addr.arpa/IN: loaded serial 3OK
Opmerking
Het Serienummer van uw zone file zal waarschijnlijk anders zijn.,
snelle tijdelijke query logging
met het hulpprogramma rndc
kunt u snel query logging in-en uitschakelen, zonder de service opnieuw op te starten of het configuratiebestand te wijzigen.
om query-logging aan te zetten, voer je uit:
sudo rndc querylog on
hetzelfde, om het uit te zetten, voer je uit:
sudo rndc querylog off
de logs worden naar syslog gestuurd en worden weergegeven in /var/log/syslog
standaard:
note
de hoeveelheid Logs gegenereerd door het inschakelen van
querylog
kan enorm zijn!,
Logging
BIND9 heeft een breed scala aan logging configuratie opties beschikbaar, maar de twee belangrijkste zijn kanaal en categorie, die configureren waar logs gaan, en welke informatie wordt gelogd, respectievelijk.
als er geen logboekopties zijn geconfigureerd, is de standaardconfiguratie:
logging { category default { default_syslog; default_debug; }; category unmatched { null; };};
laten we in plaats daarvan BIND9 configureren om debugberichten met betrekking tot DNS-query ‘ s naar een apart bestand te sturen.
We moeten een kanaal instellen om aan te geven naar welk bestand de berichten moeten worden verzonden, en een categorie., In dit voorbeeld logt de categorie Alle query ‘ s. Bewerk /etc/bind/named.conf.local
en voeg het volgende toe:
logging { channel query.log { file "/var/log/named/query.log"; severity debug 3; }; category queries { query.log; };};
Note
de debug optie kan worden ingesteld van 1 tot 3. Als een niveau niet is opgegeven, is Niveau 1 de standaard.,
-
Sinds de named daemon draait als het binden gebruiker het
/var/log/named
map moet worden gemaakt en de eigenaar gewijzigd:sudo mkdir /var/log/namedsudo chown bind:bind /var/log/named
-
herstart Nu je BIND9 de wijzigingen door te voeren:
sudo systemctl restart bind9.service
U ziet nu het bestand /var/log/named/query.log
vullen met informatie opvragen. Dit is een eenvoudig voorbeeld van de BIND9 logging opties. Voor de dekking van geavanceerde opties zie meer informatie.,
Common Record Types
Deze sectie behandelt enkele van de meest voorkomende DNS record types.
-
A
record: dit record koppelt een IP-adres aan een hostnaam.www IN A 192.168.1.12
-
CNAME
record: wordt gebruikt om een alias aan te maken voor een bestaande a-record. U kunt geenCNAME
record aanmaken die naar een andereCNAME
record wijst.web IN CNAME www
-
MX
record: wordt gebruikt om te bepalen waar e-mail moet worden verzonden., Moet wijzen naar eenA
record, niet naar eenCNAME
.@ IN MX 1 mail.example.com.mail IN A 192.168.1.13
-
NS
record: wordt gebruikt om te definiëren welke servers kopieën van een zone dienen. Het moet verwijzen naar eenA
record, niet naar eenCNAME
. Hier worden primaire en secundaire servers gedefinieerd.@ IN NS ns.example.com.@ IN NS ns2.example.com.ns IN A 192.168.1.10ns2 IN A 192.168.1.11
meer informatie
-
Upstream BIND9 documentatie
-
Bind9.net heeft links naar een grote collectie van DNS en BIND9 bronnen.,
-
DNS en BIND is een populair Boek nu in de vijfde editie. Er is nu ook een DNS en BIND op IPv6 boek.
-
een geweldige plek om BIND9 hulp te vragen, en betrokken te raken bij de Ubuntu Server gemeenschap, is het #ubuntu-server IRC kanaal op freenode.
laatst bijgewerkt 10 maanden geleden. Help dit document te verbeteren in het forum.