Een DNS-rootserver is een DNS server die authoritative is voor de root, in-addr.arpa, arpa en root-servers.net zone. Het meest bekende gebruik van rootservers is het doorverwijzen naar de juiste nameserver voor een bepaald TLD.
Als een computer een IP-adres probeert te zoeken bij een naam, vraagt deze indirect in principe eerst een van de rootservers. Deze weten voor elk TLD wat de juiste nameservers zijn en geven een verwijzing hiernaar terug als antwoord. Vervolgens wordt de vraag aan deze servers gesteld, die weer verder kunnen doorverwijzen, etc.
De rootservers hebben elk een letter ter identificatie. Deze lopen van A t/m M.
Beschikbaarheid
De rootservers zijn dus essentieel voor het opzoeken van elke naam op internet. Om de beschikbaarheid zo veel mogelijk te garanderen zijn er 13 verschillende adressen voor de rootservers, die allemaal zijn gebaseerd op Anycast om de beschikbaarheid nog verder te vergroten. In wezen zijn er dan ook meer dan 1580 verschillende servers, verdeeld over de wereld.
Dit betekent, bijvoorbeeld, dat de K-Root server, die beheerd wordt door RIPE NCC, in werkelijkheid op 110 (peildatum 14-02-2023) locaties rond de wereld staat. En op elke locatie draait dan weer een cluster met de DNS-server. K-Root maakt gebruik van de NSD Name Server Daemon[1]
Een aantal van deze installaties zijn globaal (beschikbaar voor iedereen) en een aantal lokaal (alleen toegankelijk vanuit bepaalde landen/netwerken). Al deze DNS servers hebben hetzelfde IP adres: 193.0.14.129 en voor IPv6: 2001:7fd::1 en maken onderdeel uit van AS25152[2]
Hoewel IP adressen in principe uniek horen te zijn (uitgezonderd de privé-adresreeksen) hoeft dit voor anycasting dus niet. Via het BGP-4 krijgen internetproviders verschillende routes aangeboden naar het IP-netwerk waarop de K-Root server te vinden is, en de router van de ISP zal vervolgens de optimale/snelste route selecteren. Een gebruiker in Nederland zal normaliter contact maken met de K-Root in Amsterdam terwijl een gebruiker in Japan contact maakt met de K-Root in Tokyo.
Locaties
Een veel gehoorde bewering is dat (vrijwel) alle rootservers zich in de VS bevinden. Met elke anycast node meegeteld waren er begin oktober 2006 over de hele wereld 119 rootservers. Hiervan stonden er 41 in de VS of Canada, 35 in Europa en 43 in andere delen van de wereld.[3] In maart 2021 was dit reeds opgelopen tot 1378 servers, wereldwijd.
Als men kijkt naar de beheerders van de rootservers, is wel een groot deel hiervan afkomstig uit de VS.
Caching
In de praktijk verandert het grootste deel van deze zone relatief zelden (maar met DNSSEC tegenwoordig wel vaker dan voordat de root zone hiervan voorzien was) en wordt er dus gebruikgemaakt van caching. Noodzakelijke requests aan de rootservers zijn dan ook zeldzaam. Als gevolg van slecht geconfigureerde systemen moeten de rootservers toch een gigantisch aantal query's verwerken. Het is moeilijk een nauwkeurige schatting te maken van het aantal overbodige (bogus) query's, maar men houdt in de regel zo'n 75% tot 98% aan.[4]
Andere zones
Naast de root zone met verwijzingen naar nameservers voor elk TLD zijn de rootservers ook de DNS-servers voor arpa, in-addr.arpa en root-servers.net.
In root-servers.net bevinden zich de adressen van de verschillende rootservers. Het adres van de K-rootserver is bijvoorbeeld te vinden als k.root-servers.net.
De in-addr.arpa zone wordt gebruikt voor het opzoeken van de naam bij een IPv4 adres.
Om bijvoorbeeld de naam behorend bij 1.2.3.4 op te zoeken, zoekt men voor het PTR record van 4.3.2.1.in-addr.arpa.
De arpa zone bevat verwijzingen naar de juiste nameservers voor onder andere de ip6.arpa en bovengenoemde in-addr.arpa zone. Voor in-addr.arpa wordt weer verwezen naar de rootservers, voor ip6.arpa naar enkele andere nameservers. Deze laatste zone wordt gebruikt voor het zoeken van een naam bij een IPv6 adres.
Beperking tot 13 adressen
De beperking van 13 adressen komt voort uit de maximale grootte van een UDP DNS pakket: 512 bytes.[5]
Grotere pakketten zijn mogelijk met TCP, maar dat kost veel resources en is daarom lastig haalbaar. Een andere mogelijkheid is EDNS0[6], maar dat was aanvankelijk lang niet overal geïmplementeerd.[7]
Lijst van rootservers
Hieronder een tabel met de belangrijkste gegevens van de verschillende Root-servers. Belangrijkste bron is de hoofdpagina van root-servers.org[2].
De meeste rootservers gebruiken BIND als DNS server-software. K-Root en L-Root gebruiken NSD, welke speciaal ontwikkeld zijn als authoritive DNS-server.