Je eigen naamdienst (DNS) opzetten met ISPConfig

Internet werkt met IP nummers en om van een domeinnaam naar zijn IP nummer adres te gaan wordt het Domain Name System DNS gebruikt. Je kunt je eigen naamdienst opzetten of, bijvoorbeeld, de naamdienst van je hosting provider gebruiken. In beide gevallen stel je een mapping in van Fully Qualified Domain Name naar een IP nummer. Bijvoorbeeld, FQDN mail.howtoforge.com heeft adres 78.46.214.220.

Deze handleiding gebruikt domeinnaam xyzzy.tld. Hostnaam is een naam die aan een host gegeven wordt, bijvoorbeeld foobar. De combinatie van hostnaam en domeinnaam geeft Fully Qualified Domain Name FQDN, bijvoorbeeld, foobar.xyzzy.tld.

Als het domein buiten je eigen organisatie gebruikt gaat worden, moet het geregistreerd worden. De registrar vraagt om twee nameservers. Tenminste sommige registrars staan eerst registratie toe en naamservers kunnen later gegeven worden, misschien wel tot een maand later. Maar de registrar dreigt je domeinnaam in te trekken als hij geen twee werkende nameservers krijgt.

Als je je eigen nameservers wilt draaien, heb je twee nameserver hosts nodig. Heb je maar één host, dan kun je die instellen voor het runnen van websites, e-mails, database enz. en naamservice, maar dan moet de tweede naamserver op de een of andere manier geregeld worden.

Als je alleen binnen je eigen organisatie naamdienst verleent, hoef je het domein niet te registreren en kun je slechts één naamserver hebben.

Het ISPConfig deel van deze handleiding gaat ervan uit dat een multiserver opstelling geïnstalleerd is, met één host met alles behalve naamservice, en twee hosts voor naamservice. Drie hosts in totaal dus. De hostnamen zijn web, ns1, en ns2. Je kunt slechts twee hosts gebruiken als web ook naamservice draait en de andere hosts ook naamserver is.

Naamservice heeft records, verschillende soorten. Stel A-records in op het IP nummer van je hosts. Als IPv6 gebruikt wordt, is het AAAA-record. Als je drie hosts hebt, stel dan drie A-records in. Zet twee NS-records bij de hostnamen van de nameserver.

Verzamel de benodigde informatie als volgt:

host of domeinIP adresGebruikt voor
xyzzy.tld192.168.260.71webpagina adres
web192.168.250.71webserver
ns1192.168.250.73naamserver
ns2192.168.258.75naamserver

1.1 Gebruik van ISPConfig 3.x

Installeer de drie hosts en ISPConfig erop met een multiserver opstelling. Ik gebruikte Debian GNU/Linux 9.5 en ISPConfig 3.1.12 bij het testen van deze handleiding.

Als je van plan bent meerdere domeinen te hebben, is het eenvoudiger om DNS Templates in te stellen. Zie de ISPConfig handleiding hoofdstuk 4.8.1.3 Sjablonen. Hier wordt maar één domein toegevoegd, dus sjablonen worden niet gebruikt.

Ga naar het tabblad DNS en druk op “Voeg handmatig nieuwe DNS zone toe”. Deze zone is het configuratiebestand voor je domein, je kunt het beschouwen als min of meer hetzelfde als het domein dat je wilt gebruiken.

De schermafdrukken laten zien hoe je het DNS zone formulier invult. Als je deze zone instelt voor een klant, vul dan de klant in in het formulier. Je kunt het leeg laten als je deze zone voor jezelf instelt of geen klanten in ISPConfig wilt aanmaken.

DNS Zone formulier in ISPConfig

Sla op en ga naar het tabblad Records.

DNS Records

In het tabblad Records voeg je records toe door op de groene knop voor het gewenste record te drukken. Bijvoorbeeld, om A record te krijgen druk je op de groene knop met A. Vergeet niet om bij het schrijven van FQDN hostnamen het punt teken “.” aan het eind van de naam toe te voegen. Sommige velden in de ISPConfig DNS formulieren hebben het nodig om een correct werkende naamdienst invoer te maken. Het is gemakkelijker om het altijd te schrijven dan te onthouden waar het niet nodig is.

Je kunt meer records toevoegen als je wilt.

Het rode bolletje met een getal bovenaan het ISPConfig Paneel venster geeft aan dat het opslaan op schijf bezig is. Het getal geeft aan hoeveel records er nog geschreven moeten worden. Wacht twee minuten of tot de rode bal verdwijnt voordat je gaat testen, anders test je misschien de oude setups.

Als je meer naamservers nodig hebt, of misschien had je maar één host waar je ISPConfig installeerde, dan kun je hosts toevoegen aan de ISPConfig opstelling. Voor hosts die alleen de naamservice draaien, is zelfs een kleine host voldoende. Als je Linux en ISPConfig op de host kunt installeren en hij heeft een statisch IP adres kun je hem als naamserver gebruiken. Je kunt hem in je kantoor of thuis draaien, maar het statische IP adres kan moeilijk te krijgen of duur zijn. Hosting providers hebben kleine en goedkope aanbiedingen, en je kunt er dat statische IP adres krijgen. Je kunt een ISPConfig multiserver opstelling maken, waarbij de ene host ergens staat en de andere host ergens anders.

Als je in de war bent, lees dan de ISPConfig handleiding.

1.2 Providers naamservice gebruiken

Sla dit over als je ISPConfig al gebruikt hebt om naamservice in te stellen.

Als je hosts op een hosting provider staan, bieden ze waarschijnlijk DNS service aan voor hun hosting klanten. Of je kunt een DNS dienstverlener vinden.

Over het gebruik van die diensten is het moeilijk precies advies te geven. Waarschijnlijk heeft elke provider een ander systeem. Maar bij allemaal moet je de gegevens invoeren die je in de tabel aan het begin verzamelde.

Lees het vorige hoofdstuk en pas je aan het invulformulier van je provider aan.

De hosting provider of DNS provider beheert waarschijnlijk een set nameservers, en alle DNS klanten gebruiken die. De naam van de naamservers is waarschijnlijk ns1.yourprovider.com, ns2.yourprovider.com. Het kan zijn dat de provider glue records aanbiedt, zodat je naamservers in plaats daarvan verschijnen met de naam ns1.xyzzy.tld, ns2.xyzzy.tld. Bestudeer de instructies van je provider of glue records beschikbaar zijn en hoe ze te gebruiken.

1.3 Testen

Vergeet niet te controleren of de naamservice nu goed werkt. Log in op ns1 of ns2 host en begin te testen. Dit voorbeeld draait op Debian GNU/Linux 9.5 Stretch, mijn gok is dat Ubuntu ongeveer hetzelfde is. Andere besturingssystemen kunnen anders zijn. Als je test op windows, heeft dat geen host commando, gebruik in plaats daarvan nslookup.

[email protected]:~# host web.xyzzy.tld 192.168.250.73
Using domain server:
Name: 192.168.250.73
Address: 192.168.250.73#53
Aliases: 

web.xyzzy.tld has address 192.168.250.71
[email protected]:~#

De bovenstaande test toont dat de gebruikte naamserver 192.168.250.73 is en de naam web.xyzzy.tld resolueert naar IP nummer 192.168.250.71, dat is wat we in dit geval willen. Op deze manier testen is nuttig omdat

  • host commando test de naamservice, als je hostnaam pingt kan het eerst in /etc/hosts bestand opzoeken en zo de naamservice helemaal niet testen.
  • Het IP nummer in host commando na FQDN is het adres van de naamservers waar de query naartoe gestuurd wordt. Zo zijn we er zeker van dat we de naamserver testen die we net instelden.
  • Het IP nummer wordt gebruikt voor de naamserver in plaats van de hostnaam, want als de naamservice niet werkt kan de naam misschien niet oplossen op het bedoelde IP nummer, dus kun je beter direct het IP adres gebruiken.

Controleer ook andere hostnamen die je op soortgelijke wijze instelde.

  • Als het geretourneerde IP adres fout is, ga het dan corrigeren
  • Als niet gevonden, controleer dan de spelling
  • Als niet gevonden, controleer de punt aan het eind van FQDN in ISPConfig waar je de namen schreef
  • Als “connection timed out, no servers could be reached”: de naamserver draait niet of de netwerkverbinding is verbroken. Controleer het netwerk met bijvoorbeeld het pingen van IP nummers. Controleer of de host draait. Controleer of de naamservice draait, op Debian en Ubuntu met
    systemctl status bind9.service

    .

  • Als al het bovenstaande niet lukt om een werkende naamservice te krijgen, ga dan naar hoofdstuk Tools.

Controleer de zone info, vooral de naamservers, zoals dit:

[email protected]:~# dig @192.168.250.73 xyzzy.tld

; <<>> DiG 9.10.3-P4-Debian <<>> @192.168.250.73 xyzzy.tld
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64352
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;xyzzy.tld.			IN	A

;; ANSWER SECTION:
xyzzy.tld.		3600	IN	A	192.168.250.71

;; AUTHORITY SECTION:
xyzzy.tld.		3600	IN	NS	ns1.xyzzy.tld.
xyzzy.tld.		3600	IN	NS	ns2.xyzzy.tld.

;; ADDITIONAL SECTION:
ns1.xyzzy.tld.		3600	IN	A	192.168.250.73
ns2.xyzzy.tld.		3600	IN	A	192.168.250.75

;; Query time: 0 msec
;; SERVER: 192.168.250.73#53(192.168.250.73)
;; WHEN: Fri Aug 10 15:41:53 EEST 2018
;; MSG SIZE  rcvd: 122

[email protected]:~#

Dig haalt de naamserver waarnaar het de query stuurt uit de @-parameter. Zet daar het IP nummer van de naamserver.

Als dig de NS records correct toont en de juiste IP nummers voor naamservers in A records, dan ziet het er goed uit.

Doe nu de bovenstaande test met de andere naamserver, je hoeft niet in te loggen op ns2 voer gewoon de commando’s opnieuw uit maar gebruik het IP nummer van de andere server. Dit is om zeker te zijn dat ook de andere naamserver werkt zoals het hoort.

Je kunt verder testen door je werkstation in te stellen om deze nieuwe ingestelde nameservers te gebruiken. Je moet de DNS servers op je werkstation veranderen , zoek op hoe je dat voor je besturingssysteem doet in de handleiding of van het Internet. In Linux kun je het bestand /etc/resolv.conf bewerken. In Windows staat het in Netwerkinstellingen (dezelfde plaats waar je het verkrijgen van IP adres automatisch instelt).

1.4 Omgekeerde naam dienst

Sla dit over als je omgekeerde naamsdienst (de PTR records) niet nodig hebt.

Reverse name service lost de naam op wanneer een IP adres gegeven wordt. Het is de omgekeerde werking van de gewone naamservice.

Als je naamdienst intern in je organisatie opzet, kun je omgekeerde naamdienst in dezelfde naamservers opzetten. Als je ISPConfig gebruikt, maak dan eerst de omgekeerde zone aan en maak dan PTR-records in die zone voor elk IP nummer dat je hebt.

Als de omgekeerde naamdienst vanaf het openbare Internet moet werken, dan kun je je eigen naamserver niet gebruiken omdat die hoogstwaarschijnlijk geen gezaghebbende naamserver is voor de IP omgekeerde zone. Als dat wel zo is, moet je dat weten. Neem contact op met je service provider of het bedrijf dat je je IP nummers gaf, en vraag hen omgekeerde naamservice op te zetten. Vertel ze welke PTR records je nodig hebt, of zoek uit hoe je de web gebruikersinterface kunt gebruiken die het hostingbedrijf waarschijnlijk biedt voor het gebruik van omgekeerde naamservice.

Om omgekeerde naamdienst met ISPConfig in te stellen, maak je de DNS Zone voor de omgekeerde dienst, die een naam moet krijgen met de eerste drie octetten van het IP nummer in omgekeerde volgorde met aan het eind toegevoegd “.in-addr.arpa”. In dit geval zijn de IP nummers van subnet 192.168.250/24, dus krijgt de omgekeerde zone de naam 250.168.192.in-addr.arpa. Vergeet niet om ook NS records aan de reverse zone toe te voegen.

Reverse zone

Maak in die reverse zone PTR records aan zoals hier:

PTR Records

Testen gaat gemakkelijk met het host commando, zoals zo:

[email protected]:~# host 192.168.250.71 192.168.250.73
Using domain server:
Name: 192.168.250.73
Address: 192.168.250.73#53
Aliases: 

71.250.168.192.in-addr.arpa domain name pointer web.xyzzy.tld.

Het is mogelijk om veel PTR records voor hetzelfde IP nummer aan te maken. Dan geeft de reverse query ze allemaal terug. Dit wil je misschien niet, dus doe het niet tenzij je weet wat je doet.

Als je een mailserver opzet, bijvoorbeeld mail.xyzzy.tld, moet je het PTR record instellen omdat de meeste mailservers controleren of het zendende IP nummer resolveert naar de hostnaam die de mailserver gebruikt.

1.5 Gereedschap

Als je vermoedt dat de naamservice niet gestart is, controleer dan met

systemctl status bind9.service

Als het toont “Active: active (running) …” dan werkt de naamservice. Trek je niets aan van eventuele “network unreachable resolving … AAAA” -regels, als je die krijgt betekent het dat je geen IPv6 netwerk beschikbaar hebt.

Als de naamservice draait maar testen met host commando geeft geen antwoorden, dan kan het zijn dat het zonebestand defect is. Gebruik named-checkzone als bind de zone niet accepteert. Het defecte zonebestand staat (Op Debian GNU/Linux) in het bestand /etc/bind/pri<naam van zone>.err, dat is .err toegevoegd aan het eind van de bestandsnaam. Controleer als volgt:

[email protected]:~# named-checkzone  250.168.192.in-addr.arpa /etc/bind/pri.250.168.192.in-addr.arpa.err
zone 250.168.192.in-addr.arpa/IN: has no NS records
zone 250.168.192.in-addr.arpa/IN: not loaded due to errors.
[email protected]:~#

Herstel de fouten, in ISPConfig als je het met ISPConfig Panel instelde.

Er kunnen fouten in het logbestand staan, stop en start de naamservice en kijk wat er in het bestand /var/log/syslog staat. Bijvoorbeeld met

grep named /var/log/syslog

Er zijn websites die je instelling van de naamservice controleren, je kunt ze met Internet zoekmachines vinden. Ik ken zonecheck.org, mxtoolbox.com, zonemaster.net.

1.6 Hulp krijgen

Als je op het forum om hulp vraagt, maakt het verbergen van de domeinnaam het helpen moeilijk. Als je onthult wat het domein is, is het gemakkelijk de opstelling te controleren en advies te geven als er iets mis is. Als je de domeinnaam niet publiekelijk kunt onthullen en het gebruik van deze Tutorial en documentatie van het Interwebs niet helpt, zoek dan iemand die je kunt vertrouwen met je domeinnaam en die naamservice kent, vraag die persoon dan om hulp met je domein.

1.7 Een domein registreren

Als je naamservice voor je zone OK werkt, kun je het registreren, of als het al eerder geregistreerd was kun je nu naamservers aan de registratie toevoegen en is het domein beschikbaar op het Internet, na 4 – 48 uur terwijl de informatie van de naamservice de wereld rond reist.

Als je xyzzy.tld registreert en het naamserver ns1.xyzzy.tld heeft, geef je IP nummers voor naamservers in plaats van hostnamen. Als je alleen de hostnaam ns1.xyzzy.tld geeft, hoe is de naamserver dan te vinden? De enige plaats waar het IP nummer beschikbaar is, is op ns1.xyzzy.tld, maar hoe krijg je er toegang toe zonder het IP nummer te kennen? Een andere manier om dit dilemma op te lossen is het gebruik van glue records (zie eerder), dan kun je namen gebruiken in plaats van IP nummers voor je naamservers.

Als je een ander domein plugh.tld registreert, kun je nameservers als hostnamen ns1.xyzzy.tld en ns2.xyzzy.tld geven, omdat het xyzzy.tld domein al goed geregistreerd is en de nameservers bekend zijn.