Kennisbank › Dns › dns: DNS
dns starter 28 September 2026

dns: DNS

DNS, of Domain Name System, is een fundamenteel onderdeel van de werking van het internet zoals we dat vandaag kennen. Het zorgt ervoor dat mensen en

DNS, of Domain Name System, is een fundamenteel onderdeel van de werking van het internet zoals we dat vandaag kennen. Het zorgt ervoor dat mensen en applicaties niet hoeven te onthouden welk IP-adres bij een bepaalde website hoort, maar in plaats daarvan een leesbare naam kunnen gebruiken, zoals pixzo.nl of google.com. Achter de schermen vertaalt DNS deze namen naar de bijbehorende numerieke IP-adressen — IPv4 of IPv6 — die nodig zijn om verbinding te maken met een server op het netwerk. Zonder DNS zou het gebruik van het internet onhandig en foutgevoelig zijn, omdat iedereen IP-adressen zou moeten onthouden.

DNS functioneert als een gedistribueerd database-systeem. In tegenstelling tot een centraal archief is er geen enkele master-server die alle domeinnamen en IP-adressen bevat. In plaats daarvan is het systeem hiërarchisch opgebouwd en verdeeld over talloze nameservers wereldwijd. Deze structuur zorgt voor schaalbaarheid, betrouwbaarheid en snelheid. Wanneer een gebruiker een website opvraagt, wordt de domeinnaam doorgegeven aan een reeks DNS-servers die samen werken om het juiste IP-adres op te zoeken. Dit proces begint meestal bij de root-servers, daarna de top-level domain (TLD) servers (zoals .com of .nl), en vervolgens de autoritatieve nameserver voor het specifieke domein.

Een belangrijk onderdeel van DNS is de stub resolver. Dit is de software op een lokaal apparaat — zoals een laptop, smartphone of server — die verantwoordelijk is voor het initiëren van DNS-verzoeken. De stub resolver stuurt een query naar een recursieve resolver, vaak aangeboden door een internetprovider of een publieke DNS-dienst zoals Google DNS (8.8.8.8) of Cloudflare (1.1.1.1). Deze recursieve resolver voert vervolgens het volledige opzoekproces uit, waarbij hij de nodige communicatie met de verschillende nameservers onderhoudt, en geeft uiteindelijk het gevonden IP-adres terug aan de stub resolver.

In Linux-systemen wordt de DNS-functionaliteit vaak beheerd door systemd-resolved, een systeemservice die deel uitmaakt van het systemd-ecosysteem. Volgens de handleiding is systemd-resolved.service een netwerknaamresolutiebeheerder die lokale applicaties van naamresolutie voorziet. Het implementeert een cachen- en validerende DNS/DNSSEC-stub resolver, wat betekent dat het niet alleen DNS-antwoorden opslaat om snelheid te verhogen, maar ook in staat is om DNSSEC (DNS Security Extensions) te controleren voor authenticiteit en integriteit van de antwoorden. Daarnaast ondersteunt systemd-resolved ook LLMNR (Link-Local Multicast Name Resolution) en MulticastDNS, protocollen die nuttig zijn in lokale netwerken waar geen traditionele DNS-server beschikbaar is.

Toepassingen op het systeem kunnen naamresolutieverzoeken indienen via verschillende interfaces, waaronder een D-Bus API, een /etc/resolv.conf-compatibele interface, en een lokale stub-lijstener op 127.0.0.53. Deze flexibiliteit zorgt ervoor dat zowel moderne systemd-gebaseerde systemen als oudere applicaties die klassieke resolutiemethoden gebruiken, correct kunnen werken. systemd-resolved houdt ook bij welke DNS-servers beschikbaar zijn op basis van de actieve netwerkinterfaces, en past automatisch de configuratie aan wanneer er netwerken worden toegevoegd of verwijderd — bijvoorbeeld bij het verbinden met een nieuw WiFi-netwerk.

Naast de technische infrastructuur van DNS, zijn er ook methoden om de prestaties te verbeteren. Een daarvan is dns-prefetch, een HTML-attribuutwaarde die gebruikt kan worden in een ``-element. Volgens de documentatie op MDN is `rel="dns-prefetch"` een hint aan de browser dat de gebruiker waarschijnlijk resources zal nodig hebben van een externe bron, en dat de browser daarom proactief DNS-resolutie voor dat domein kan uitvoeren. Dit vermindert de latentie wanneer de gebruiker daadwerkelijk naar die externe site navigeert, omdat de DNS-opzoeking al is afgerond. Hoewel dit geen garantie biedt op snellere laadtijden, kan het de gebruikerservaring aanzienlijk verbeteren, vooral op pagina’s met veel externe afhankelijkheden zoals advertenties, social media widgets of analytics-scripts.

DNS is echter niet alleen een kwestie van snelheid en gebruiksgemak. Het speelt ook een cruciale rol in de veiligheid van netwerken. Een van de grootste kwetsbaarheden is DNS-spoofing of DNS-cache poisoning, waarbij een aanvaller valse DNS-antwoorden injecteert in een resolver, waardoor gebruikers worden omgeleid naar kwaadaardige websites. Om dit tegen te gaan, is DNSSEC ontwikkeld — een uitbreiding op DNS die digitale handtekeningen gebruikt om de authenticiteit van DNS-antwoorden te verifiëren. systemd-resolved biedt hier expliciet ondersteuning voor, zoals vermeld in de handleiding, wat betekent dat het niet alleen de antwoorden kan ophalen, maar ook kan controleren of ze daadwerkelijk afkomstig zijn van de juiste autoritatieve bron.

Daarnaast speelt DNS een rol in de configuratie en beveiliging van beveiligde verbindingen via TLS/SSL. Voordat een HTTPS-verbinding kan worden opgezet, moet de domeinnaam van het certificaat overeenkomen met de naam die in het certificaat is opgenomen. Daarbij kunnen DNS-records zoals CAA (Certification Authority Authorization) worden gebruikt om aan te geven welke certificaatautoriteiten gemachtigd zijn om certificaten uit te geven voor een domein. Ook zijn er DNS-based verificatiemethoden zoals DNS-01 challenges in ACME-protocollen (gebruikt door bijvoorbeeld Let’s Encrypt), waarbij een tijdelijke DNS-record wordt geplaatst om te bewijzen dat je controle hebt over een domein.

Ook bij SSH, een veelgebruikte methode voor veilige externe toegang tot servers, speelt DNS een ondersteunende rol. Hoewel SSH direct op IP-adressen kan werken, is het gebruikelijk om hostnamen te gebruiken. Tools zoals ssh-keyscan kunnen worden ingezet om de publieke SSH-sleutels van servers op te halen op basis van hun hostnaam. Het werkt door een lijst van hosts te doorlopen en de bijbehorende SSH-hostsleutels te verzamelen, vaak via DNS-resolutie van de hostnaam naar een IP-adres. Dit is handig bij het opbouwen van een `ssh_known_hosts`-bestand, wat helpt bij het voorkomen van man-in-the-middle-aanvallen tijdens de eerste verbinding.

Het vertrouwen in DNS is dus essentieel. Als DNS wordt gemanipuleerd, kunnen gebruikers worden omgeleid naar nepwebsites zonder dat ze het merken. Daarom is het belangrijk dat DNS-configuraties correct zijn ingesteld, dat DNSSEC waar mogelijk wordt ingeschakeld, en dat systemen zoals systemd-resolved correct worden geconfigureerd. In complexe omgevingen, zoals containers of virtuele machines, moet ook worden nagedacht over hoe DNS wordt doorgeschakeld en of er interne DNS-oplossingen nodig zijn, zoals CoreDNS in Kubernetes.

Kortom, DNS is een onzichtbaar maar onmisbaar onderdeel van het moderne internet. Het verbindt mensvriendelijke namen met machines, versnelt toegang via caching en prefetching, en draagt bij aan veiligheid via DNSSEC en geïntegreerde validatie. In Linux-systemen wordt dit vaak gecentraliseerd beheerd door systemd-resolved, dat niet alleen DNS afhandelt, maar ook LLMNR en MulticastDNS ondersteunt voor flexibiliteit in lokale netwerken. Tegelijkertijd bieden webontwikkelaars tools zoals `rel="dns-prefetch"` om de gebruikerservaring te verbeteren. DNS is dus niet zomaar een technisch detail — het is de brug tussen mensen en machines op het internet.

← Terug naar kennisbank
← Terug naar kennisbank