Sobes.tech
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:

  1. Gebruikersverzoek: De gebruiker voert een domeinnaam in de browser in.
  2. 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).
  3. 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.
  4. 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.
  5. 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).
  6. 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.
  7. 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.
  8. 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.
  9. 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.