Domain Name Service (DNS)

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 en 5.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

vervang192.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 geen CNAME record aanmaken die naar een andere CNAME 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 een A record, niet naar een CNAME. 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.

Geef een reactie

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

Spring naar toolbar