Junior
Hoe werkt DNS?
sobes.tech AI
Antwoord van AI
DNS, of het Domain Name System, is een gedistribueerde database die door mensen leesbare domeinnamen (bijvoorbeeld google.com) omzet in IP-adressen (bijvoorbeeld 172.217.16.14), die computers begrijpen.
Het proces van het omzetten (oplossen) van een domeinnaam naar een IP-adres omvat verschillende stappen van interactie tussen verschillende componenten:
- Gebruikersverzoek: De gebruiker voert een domeinnaam in de browser in.
- DNS-resolver: Het besturingssysteem of de applicatie stuurt een verzoek naar een lokale DNS-resolver (vaak geleverd door de internetprovider of op de router/lokale computer).
- Resolver-cache: De resolver controleert eerst zijn lokale cache. Als het IP-adres wordt gevonden, wordt het teruggegeven aan de client. Dit versnelt het proces.
- Root DNS-servers: Als er geen record in de cache is, stuurt de resolver een verzoek naar een van de 13 root DNS-servers (aangeduid met een punt
.). Deze servers weten waar de TLD-servers (Top-Level Domain) te vinden zijn. - TLD DNS-servers: De root-server leidt de resolver naar de TLD-server die verantwoordelijk is voor het top-level domein (bijvoorbeeld
.com,.org,.ru). - Autoritatieve DNS-servers: De TLD-server leidt de resolver naar de autoritatieve DNS-server voor het specifieke domein (bijvoorbeeld
google.com). Deze server bewaart de DNS-records voor dat domein. - Antwoord van de autoritatieve server: De autoritatieve server vindt het bijbehorende record (bijvoorbeeld een A-record voor IPv4 of AAAA-record voor IPv6) en geeft het IP-adres terug aan de resolver.
- Resolver-caching: De resolver ontvangt het IP-adres, cachet het voor een bepaalde tijd (TTL - Time To Live) en geeft het door aan de client.
- Client-verbinding: De client gebruikt het ontvangen IP-adres om een verbinding te maken met de webserver.
DNS-servers slaan verschillende typen records op:
- A: Zet een domeinnaam om in een IPv4-adres.
- AAAA: Zet een domeinnaam om in een IPv6-adres.
- CNAME: Maakt een alias voor een andere domeinnaam.
- MX: Bepaalt de mailservers die verantwoordelijk zijn voor het domein.
- NS: Geeft de autoritatieve DNS-servers voor het domein aan.
- PTR: Zet een IP-adres om in een domeinnaam (gebruikt in omgekeerde DNS-queries).
# Voorbeeld van een DNS-query met dig
dig google.com A
; <<>> DiG 9.16.1-Ubuntu <<>> google.com A
;; globale opties: +cmd
;; Antwoord:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42650
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; PSEUDO-SECTIE:
; EDNS: versie: 0, flags:; udp: 65494
;; VRAAGSECTIE:
;google.com. IN A
;; ANTWOORDSECTIE:
google.com. 300 IN A 172.217.16.142
;; Query-tijd: 42 ms
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WANNEER: di okt 26 10:00:00 UTC 2023
;; MSG GROOTTE ontvangen: 55
Deze gedistribueerde en hiërarchische aanpak maakt DNS schaalbaar en fouttolerant.