ID.nl logo
Wat is DNS: Alles over het Domain Name System
© Reshift Digital
Huis

Wat is DNS: Alles over het Domain Name System

Wanneer je surft, tik je doorgaans een webadres op basis van een (sub)domeinnaam in. Daarmee zet je wel een heel systeem in werking, want achterliggend wordt naar de gewenste webserver op basis van het ip-adres gezocht. Er is dus een vertaalslag nodig en daar zorgt het DNS-protocol voor. Wat is DNS?

Wat is DNS?

DNS (Domain Name System) is een client-serversysteem dat via het gelijknamige protocol een ip-adres dat bij een hostnaam hoort (of omgekeerd) opzoekt in een gedistribueerde en dynamische database.

De oorsprong van het internet ligt bij het Amerikaanse DARPAnet (Defense Advanced Research Projects Agency Network). Aanvankelijk was dit netwerk nog voldoende behapbaar om de koppeling tussen ip-adressen en hostnamen in een statisch tekstbestand (host.txt) te vatten en nieuwe adressen handmatig toe te voegen. Het team dat deze lijst onderhield, ontwikkelde trouwens ook het concept van (sub)domeinen en zette een whois-directory op om administratieve gegevens van een host te achterhalen.

De explosieve groei van het internet vanaf de jaren 80 maakte de behoefte aan een geautomatiseerd systeem steeds groter en dit leidde tot het ontstaan van DNS in 1983. De specificaties werden in 1987 vastgelegd in RFC’s 1034 en 1035, de verdienste van computerwetenschapper Paul Mockapetris (https://kwikr.nl/rfc1034 en https://kwikr.nl/rfc1035). RFC’s (Request for Comments) zijn documenten die de protocollen en andere aspecten van het internet beschrijven.

Inmiddels hebben bijkomende RFC’s voor allerlei uitbreidingen van het DNS-protocol gezorgd. Op https://kwikr.nl/dnstl vind je hiervan een overzicht.

Zoekmechanisme

Wat gebeurt er nu wanneer je bijvoorbeeld www.pcmweb.nl in je browser intikt of een e-mail verstuurt naar iets als mailbox@pcmweb.nl?

In eerste instantie vraagt je netwerkapplicatie aan de lokale resolver naar de hostgegevens. Deze software kijkt normaliter eerst in het lokale hosts-bestand (in /etc/hosts of in %systemroot%\System32\etc\hosts). Vindt die niks, dan wordt mogelijk nog een (caching of forwarding) resolver binnen je eventuele bedrijf geraadpleegd. Geen succes? Dan gaat je DNS-verzoek naar een recursive resolver, kortweg recursor, zoals die van je internetprovider of van een DNS-provider als Google of Cloudflare. Kent ook die het antwoord niet, dan verzoekt deze aan de root-nameservers om de DNS-records voor www.pcmweb.nl in hun databases op te zoeken.

De kans is groot dat die als respons geven “ik vind de host niet, maar ik beschik wel over de DNS-gegevens van .nl; je checkt het daarom best even bij de tld-nameservers (topleveldomein) van .nl”. De recursor gaat hierop in en krijgt vervolgens wellicht de suggestie door “check het bij de sld-nameserver (secondleveldomein) van pcmweb.nl”, waarop die vermoedelijk zal reageren met het gezochte antwoord: www.pcmweb.nl A 149.210.193.187. De recursor stuurt dit vervolgens netjes terug naar je webapplicatie.

Merk ook op dat in dit proces alleen de recursor recursief werkt en het geretourneerde antwoord verwerkt en doorstuurt. De andere, gezaghebbende (authoritative) DNS-servers zijn van het iteratieve type en zorgen slechts voor een doorverwijzing. Dit is begrijpelijk, omdat recursie veel te intensief zou zijn voor de overbevraagde nameservers.

©PXimport

Caching

In de praktijk beschikken de resolvers ook over uitgebreide caches. Dat geldt tevens voor je eigen systeem. Zo beschikt niet alleen je besturingssysteem over een eigen DNS-cache – in Windows haal je die op met ipconfig /displaydns en maak je die leeg met ipconfig /flushdns – maar kunnen ook de internetapplicaties zelf een DNS-cache bevatten. In Chrome bijvoorbeeld beheer en leeg je die via chrome://net-internals/#dns en in Firefox via about:networking#dns.

Ook recursors beschikken normaliter over caches, bedoeld om de DNS-nameservers te ontlasten. Hoelang een DNS-record wordt gecachet, hangt af van de TTL-waarde (Time To Live) die in (het SOA-record van) het zogenoemde zonebestand van je DNS-server is ingesteld. In Windows Opdrachtprompt kun je deze waarde opvragen met een opdracht als nslookup -type=soa pcmweb.nl.

Door deze caching zal een wijziging in een DNS-record ook niet meteen overal worden gepropageerd – dat kan wel tot drie dagen duren. Daarom is het vaak een goed idee de TTL-waarde tijdelijk lager in te stellen, voordat je aanpassingen aan je DNS-records doorvoert.

©PXimport

DNS-records

We hebben het al even gehad over zogeheten zonebestanden (zone files) in de nameservers, die zowat alle informatie over een domeinnaam bevatten en in principe uit twee delen bestaan: richtlijnen, zoals het al vermelde $ TTL, en bronrecords (resource records). Deze laatste bevatten DNS-informatie over een specifieke host of internetbron. De IETF (Internet Engineering Task Force) heeft talrijke recordtypes gedefinieerd. We beperken ons hier tot enkele van de meest gebruikte.

Zo bevatten de al eerder vermelde SOA-records (Start Of Authority) administratieve informatie voor de complete zone, waaronder dus de TTL-waarde. A-records linken dan weer een domeinnaam aan IPv4-adressen, terwijl AAAA-records dat voor IPv6-adressen doen. Een CNAME (Canonical Name Record) verwijst naar een andere domeinnaam, wat handig is als je een subdomein hebt dat naar hetzelfde ip-adres als je hoofddomein mag verwijzen. Ook MX-records verwijzen naar een domeinnaam, maar hier is dat de doelserver voor e-mailverkeer.

Veiligheid en privacy

Sinds het ontstaan van DNS in 1983 werd tot voor kort eigenlijk uitsluitend het UDP-transportprotocol gebruikt, kortweg Do53 (DNS-over-UDP op poort 53). Hierbij wordt een DNS-query in leesbare tekst van de client naar de server verstuurd en ook de reply komt in leesbare vorm in zo’n UDP-pakket terug. Erg veilig of privacybewust is dit uiteraard niet, omdat er op dit niveau niet in encryptie of in enig authenticatiemechanisme wordt voorzien en je evenmin garanties krijgt op een succesvolle of niet-gemodificeerde aflevering.

Via een RFC werd daarom naderhand ook TCP (Transmission Control Protocol) als mogelijk transportprotocol toegevoegd en nog later werd het DNSCrypt-protocol ontwikkeld, dat encryptie toeliet aan de downstream-zijde van recursive DNS-resolvers.

Inmiddels werden er ook diverse andere DNS-transportroutes ontwikkeld, waaronder DNS-over-TLS (DoT), DNS-over-HTTPS (DoH), DNS-over-Quic (DoQ), DNS-over-HTTPS/3 (DoH3) en Oblivious DNS-over-HTTPS (ODoH). Bij Apple heet die laatste trouwens Private Relay.

©PXimport

De ontwikkeling van DNS

1983 Ontwikkeling van DNS

1985 Verdere ontwikkeling van DNS-serversoftware BIND

1989 Ook TCP kan worden ingezet voor DNS-query-transport (RFC 1123)

2000 BIND 9 (geheel nieuwe versie)

2011 DNSCrypt-protocol

2016 DoT

2018 DoH

2019 Toevoeging van een ‘geanonimiseerde’ modus aan DNSCrypt

2019 DNS-over-TOR

2021 ODoH

▼ Volgende artikel
Switch 2-editie van Xenoblade Chronicles X uitgebracht
Huis

Switch 2-editie van Xenoblade Chronicles X uitgebracht

Nintendo heeft geheel onverwachts een Switch 2-upgrade voor Xenoblade Chronicles X: Definitive Edition aangekondigd en uitgebracht.

De rpg van Monolith Soft kwam oorspronkelijk uit in 2015 op Wii U, maar vorig jaar werd het spel al overgezet naar de Nintendo Switch in de vorm van een 'Definitive Edition'. Nu is daar dus een Switch 2-editie bijgekomen.

Mensen kunnen deze editie los kopen op Switch 2, of - als ze de Switch-versie al hebben - een upgrade van (naar schatting) 5 euro aanschaffen om te upgraden naar de Switch 2-versie. Op 16 april komt er ook een fysieke versie in de winkels te liggen.

De Switch 2-upgrade laat het spel in 4K en 60 frames per seconde op televisie draaien, en in 1080p en 60 fps in handheldvorm. Verdere wijzigingen zijn er voor zover bekend niet. De Switch-versie was al een upgrade ten opzichte van het origineel, met verbeterde graphics en meer verhaal.

Watch on YouTube

Over Xenoblade Chronicles X

Xenoblade Chronicles X maakt deel uit van de Xenoblade Chronicles-franchise van Monolith Soft, dat tegenwoordig onderdeel uitmaakt van Nintendo. Er zijn drie hoofddelen in de rpg-serie verschenen, en Xenoblade Chronicles X staat daar los van.

De game speelt zich af in het jaar 2054, waarin de aarde is verwoest. Een kleine groep overlevenden is met een ruimteschip ontsnapt en neergestort op de planeet Mira. In een grote, open spelwereld kunnen spelers op verkenning gaan, en gebruikmaken van een Skell - een soort mech die in een voertuig kan transformeren en kan vliegen.

▼ Volgende artikel
''Deze God of War stelt teleur!'' - Power-Up Podcast #5
Huis

''Deze God of War stelt teleur!'' - Power-Up Podcast #5

Met de PlayStation State of Play nog vers in het geheugen, de aanloop naar Resident Evil Requiem, recente releases én gloednieuwe aankondigingen is er weer genoeg te bespreken! Simon en Jacco hebben een hartig woordje over voor God of War: Sons of Sparta, maar ook voor de aangekondigde trilogie-remake. Martin is ondertussen in High on Life 2 gedoken, en de jongens duiken ook nog in hun favoriete interviews ooit. Benieuwd welke dat zijn? Check dan snel de aflevering, baklap!

Watch on YouTube

00:00 Intro
01:05 Simon zijn ‘spannende’ carnaval
04:30 E-sportopleiding
10:25 Denis Dyack-interview
14:10 Layers of Fear 3-aankondiging
17:25 Aanloop naar Resident Evil Requiem
25:50 High on Life 2
29:50 Death Howl
39:20 God of War: Sons of Sparta
53:45 Twijfels over God of War-trilogie-remake
57:10 Favoriete interviews
01:07:25 Gecancelde Ubisoft-games
01:11:00 Outro

Je kan ook de podcast beluisteren hieronder of via deze link!