DNS-server Linux instellen: BIND9 & systemd-resolved (2026)

DNS server reageert niet

Geupdate op:

DNS

Een DNS server op Linux instellen doe je in 2026 standaard met BIND9 (voor eigen zones) of via systemd-resolved (voor lokale caching). Om je eigen domeinnamen naar IP-adressen te vertalen, installeer je BIND9 via sudo apt install bind9 bind9utils. Vervolgens configureer je de zone-bestanden in /etc/bind/ en open je TCP/UDP poort 53 in je firewall.

Wat is een DNS server op Linux?

Een DNS-server (Domain Name System) is het telefoonboek van het internet. Het vertaalt leesbare domeinnamen zoals voorbeeld.nl naar machineleesbare IP-adressen zoals 192.168.1.100 of 2a00:1450::1. Wanneer je een eigen Linux-server beheert, bijvoorbeeld met de in april 2026 uitgebrachte Ubuntu 26.04 LTS (Resolute Raccoon) of Debian 13 (Trixie), heb je volledige controle over dit proces.

Een dns server linux kan twee hoofdtaken hebben:

  • Authoritative server: Beheert de officiële DNS-records (A, AAAA, MX, TXT) voor een specifiek domein.
  • Caching/Recursive resolver: Slaat eerdere DNS-aanvragen tijdelijk op om het netwerkverkeer te versnellen voor lokale clients.

Door zelf de controle te nemen, ben je niet afhankelijk van de standaard DNS-servers van je ISP. Dit verbetert de privacy, verlaagt de latency bij interne netwerkverzoeken en stelt je in staat om interne domeinnamen (zoals server1.lokaal) te gebruiken binnen je bedrijfsnetwerk.

Populaire DNS-software voor Linux in 2026

Er zijn verschillende softwarepakketten beschikbaar om een DNS-server op Linux te draaien. De keuze hangt af van je doel: wil je een zwaargewicht server voor miljoenen verzoeken, of een simpele adblocker?

Software Primaire functie Ideaal voor Actuele versie (2026)
BIND9 Authoritative & Recursive Enterprise netwerken, webhosting BIND 9.20.x / 9.21.x
PowerDNS Authoritative Database-gedreven DNS-beheer PowerDNS 4.9+
CoreDNS Service discovery Kubernetes, cloud-native apps CoreDNS 1.11+
systemd-resolved Lokale stub resolver Desktop en standaard server OS systemd v257+
Pi-hole / Unbound Caching & Adblocking Thuisnetwerken, privacy Unbound 1.20+

In deze gids focussen we op BIND9, de absolute industriestandaard, onderhouden door het Internet Systems Consortium (ISC). Voor lokale server-resolutie kijken we naar systemd-resolved, dat tegenwoordig diep in Linux is ingebakken.

DNS server Linux instellen met BIND9 (Stappenplan)

Het opzetten van een authoritative DNS-server op Linux vereist terminal-toegang en root-rechten. We gebruiken in dit voorbeeld Ubuntu 26.04 LTS of Debian 13.

Stap 1: BIND9 installeren

Update eerst je pakketlijsten en installeer de benodigde BIND9-pakketten. Het pakket bind9utils bevat handige tools zoals named-checkconf om je configuratie op fouten te controleren.

sudo apt update
sudo apt install bind9 bind9utils bind9-doc dnsutils

Controleer of de service draait:

sudo systemctl status bind9

Stap 2: BIND9 configureren (named.conf.options)

De hoofdconfiguratie van BIND9 bevindt zich in /etc/bind/named.conf.options. Hier stel je in wie de server mag benaderen en waar verzoeken naartoe moeten die de server zelf niet kent (forwarders).

Open het bestand met je favoriete editor (bijvoorbeeld Nano):

sudo nano /etc/bind/named.conf.options

Voeg een ACL (Access Control List) toe bovenin het bestand om alleen je vertrouwde netwerk toe te staan, en stel betrouwbare forwarders in (bijvoorbeeld Cloudflare of Google):

acl "vertrouwd" {
 127.0.0.0/8;
 192.168.1.0/24;
};

options {
 directory "/var/cache/bind";

 recursion yes;
 allow-query { vertrouwd; };

 forwarders {
 1.1.1.1;
 8.8.8.8;
 };
 forward only;

 dnssec-validation auto;
 listen-on-v6 { any; };
};

Sla het bestand op en controleer de syntax:

sudo named-checkconf

Als deze opdracht geen output geeft, is de syntax correct.

Stap 3: Een lokale zone toevoegen

Wil je een eigen domein hosten, zoals bedrijfsnetwerk.lan? Dan moet je een zone definiëren. Open /etc/bind/named.conf.local:

sudo nano /etc/bind/named.conf.local

Voeg de volgende zone-declaratie toe:

zone "bedrijfsnetwerk.lan" {
 type master;
 file "/etc/bind/zones/db.bedrijfsnetwerk.lan";
};

Stap 4: Het zone-bestand aanmaken

Maak de map voor de zones aan en kopieer het standaard lokale template:

sudo mkdir /etc/bind/zones
sudo cp /etc/bind/db.local /etc/bind/zones/db.bedrijfsnetwerk.lan
sudo nano /etc/bind/zones/db.bedrijfsnetwerk.lan

Pas de records aan zodat ze naar de juiste [INTERNAL:dns-server-instellen] IP-adressen wijzen. Een typisch zone-bestand ziet er in 2026 zo uit:

$TTL 604800
@ IN SOA ns1.bedrijfsnetwerk.lan. admin.bedrijfsnetwerk.lan. (
 2026050601; Serial
 604800; Refresh
 86400; Retry
 2419200; Expire
 604800 ); Negative Cache TTL
;
@ IN NS ns1.bedrijfsnetwerk.lan.
@ IN A 192.168.1.10
ns1 IN A 192.168.1.10
router IN A 192.168.1.1
server IN A 192.168.1.50
www IN CNAME server

Controleer het zone-bestand met:

sudo named-checkzone bedrijfsnetwerk.lan /etc/bind/zones/db.bedrijfsnetwerk.lan

Stap 5: BIND9 herstarten en firewall openen

Herstart de service om alle wijzigingen toe te passen:

sudo systemctl restart bind9

Vergeet niet om [INTERNAL:dns-poort-53] open te zetten in de UFW firewall, anders worden aanvragen geblokkeerd:

sudo ufw allow 53/tcp
sudo ufw allow 53/udp
sudo ufw reload

Lokale DNS beheren met systemd-resolved

Op moderne Linux-distributies (zoals Ubuntu 24.04, 26.04 en Debian 12/13) regelt systemd-resolved de lokale DNS-resolutie voor het besturingssysteem zelf. Het fungeert als een lokale stub-resolver op 127.0.0.53.

Soms veroorzaakt dit conflicten als je zelf BIND9 of Pi-hole op dezelfde machine installeert, omdat poort 53 dan al bezet is. In dat geval moet je systemd-resolved vertellen om poort 53 vrij te geven, of je configureert het om specifiek naar jouw nieuwe BIND9 server te luisteren.

systemd-resolved configureren

De globale instellingen van systemd-resolved pas je aan in /etc/systemd/resolved.conf. Open dit bestand:

sudo nano /etc/systemd/resolved.conf

Om externe DNS-servers in te stellen (bijvoorbeeld als je geen BIND9 draait), pas je de DNS= en FallbackDNS= regels aan:

[Resolve]
DNS=1.1.1.1 8.8.8.8
FallbackDNS=9.9.9.9
DNSSEC=allow-downgrade
DNSOverTLS=opportunistic
Cache=yes

Sla op en herstart de service:

sudo systemctl restart systemd-resolved

Controleer de huidige status en welke DNS-servers daadwerkelijk gebruikt worden met:

resolvectl status

Problemen oplossen: DNS server Linux reageert niet

Werkt je opstelling niet zoals verwacht? Een “DNS-server reageert niet” foutmelding op Linux is meestal te herleiden naar firewall-blokkades, syntax-fouten in configuratiebestanden, of conflicterende services op poort 53.

1. Controleer of poort 53 bezet is

Als BIND9 weigert te starten, controleer dan of systemd-resolved poort 53 bezet houdt:

sudo ss -tulpn | grep:53

Als systemd-resolve in de lijst staat, pas dan /etc/systemd/resolved.conf aan en zet DNSStubListener=no. Pas daarna de symlink van resolv.conf aan:

sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
sudo systemctl restart systemd-resolved

2. Lees de BIND9 logs

Linux logt alles. Als BIND9 faalt, vertellen de logs je exact in welk bestand en op welke regel de fout zit:

sudo journalctl -u bind9 -f

3. Test resolutie met Dig

Gebruik het commando dig om te testen of je server correct antwoordt. Vraag het A-record van je zojuist aangemaakte zone op vanaf een andere machine in het netwerk:

dig @192.168.1.10 server.bedrijfsnetwerk.lan

Je zou in de output een NOERROR status moeten zien, samen met het IP-adres 192.168.1.50 in de ANSWER sectie.

Beveiliging: DNSSEC en Rate Limiting

Een open DNS-server op het internet is gevaarlijk. Het kan misbruikt worden voor DNS Amplification DDoS-aanvallen. Zorg er altijd voor dat recursion is uitgeschakeld voor externe IP-adressen (zoals we in Stap 2 met de ACL hebben gedaan).

Daarnaast is [INTERNAL:wat-is-dnssec] (DNS Security Extensions) cruciaal in 2026. DNSSEC voegt cryptografische handtekeningen toe aan DNS-records, zodat clients zeker weten dat het antwoord niet is gemanipuleerd door een man-in-the-middle.

In BIND 9.20+ staat DNSSEC-validatie standaard op auto. Wil je je eigen zone signeren? Dan gebruik je de dnssec-signzone tool, al maken moderne beheerpanelen dit tegenwoordig veel eenvoudiger via geautomatiseerde key-roll-overs.

Veelgestelde vragen

Hoe flush ik de DNS-cache op Linux?

In moderne Linux-distributies (2026) die systemd-resolved gebruiken, flush je de DNS-cache met het commando sudo resolvectl flush-caches. Om te controleren of de cache succesvol is geleegd, typ je resolvectl statistics en kijk je naar de cache-grootte.

Wat is het verschil tussen BIND9 en systemd-resolved?

BIND9 is een volwaardige DNS-serversoftware waarmee je eigen domeinzones kunt hosten en netwerkbrede verzoeken kunt afhandelen. systemd-resolved is slechts een lokale ‘stub resolver’; het handelt DNS-verzoeken van het besturingssysteem zelf af en stuurt ze door naar een echte DNS-server (zoals BIND9, je router of Google DNS).

Welke poort gebruikt een DNS server op Linux?

DNS-verkeer verloopt wereldwijd over poort 53. Dit geldt voor zowel TCP als UDP. Traditioneel werden korte DNS-queries via UDP afgehandeld, maar door de komst van DNSSEC (wat grotere pakketgroottes oplevert) is TCP poort 53 in 2026 net zo belangrijk geworden. Zorg dat beide openstaan in je firewall.

Hoe wijzig ik mijn DNS-server tijdelijk via de terminal?

Je kunt het bestand /etc/resolv.conf direct bewerken en de regel nameserver 1.1.1.1 toevoegen. Let op: als je systemd-resolved of NetworkManager gebruikt, wordt dit bestand bij een reboot of netwerk-herstart automatisch overschreven. Voor permanente wijzigingen gebruik je de configuratie van je netwerkbeheerder.

Waarom start BIND9 niet op Ubuntu 26.04?

De meest voorkomende oorzaak is een syntaxfout in named.conf.options of named.conf.local. Gebruik het commando sudo named-checkconf om de fout te lokaliseren. Een andere veelvoorkomende reden is dat poort 53 al bezet is door systemd-resolved of dnsmasq.

Plaats een reactie