Sobes.tech
Junior

Cum funcționează DNS?

sobes.tech AI

Răspuns de la AI

DNS sau Sistemul de Nume de Domeniu, este o bază de date distribuită care convertește numele de domeniu lizibile de oameni (de exemplu, google.com) în adrese IP (de exemplu, 172.217.16.14), înțelese de calculatoare.

Procesul de conversie (rezolvare) a unui nume de domeniu în adresă IP implică mai mulți pași de interacțiune între diferiți componenți:

  1. Cererea utilizatorului: Utilizatorul introduce un nume de domeniu în browser.
  2. Resolver DNS: Sistemul de operare sau aplicația trimite o solicitare către un resolver DNS local (adesea furnizat de furnizorul de internet sau situat pe router/computer local).
  3. Cache-ul resolverului: Resolverul verifică mai întâi cache-ul său local. Dacă găsește adresa IP, o returnează clientului. Acest lucru accelerează procesul.
  4. Serverele DNS rădăcină (Root): Dacă nu există în cache, resolverul trimite o solicitare către unul dintre cele 13 servere DNS rădăcină (marcate cu un punct .). Aceste servere știu unde să găsească serverele TLD (Top-Level Domain).
  5. Serverele DNS TLD: Serverul rădăcină direcționează resolverul către serverul TLD responsabil pentru domeniul de nivel superior (de exemplu, .com, .org, .ru).
  6. Serverele DNS autoritative: Serverul TLD direcționează resolverul către serverul DNS autoritativ pentru domeniul specific (de exemplu, google.com). Acest server stochează înregistrările DNS pentru domeniu.
  7. Răspunsul serverului autoritativ: Serverul autoritativ găsește înregistrarea corespunzătoare (de exemplu, înregistrarea A pentru IPv4 sau AAAA pentru IPv6) și o returnează resolverului.
  8. Cache-ul resolverului: Resolverul primește adresa IP, o cachează pentru o anumită perioadă (TTL - Time To Live) și o trimite clientului.
  9. Conexiunea clientului: Clientul utilizează adresa IP primită pentru a stabili o conexiune cu serverul web.

Serverele DNS stochează diferite tipuri de înregistrări:

  • A: Convertește un nume de domeniu în o adresă IPv4.
  • AAAA: Convertește un nume de domeniu în o adresă IPv6.
  • CNAME: Creează un pseudonim pentru alt nume de domeniu.
  • MX: Determină serverele de poștă responsabile pentru domeniu.
  • NS: Indică serverele DNS autoritative pentru domeniu.
  • PTR: Convertește o adresă IP într-un nume de domeniu (folosit în interogările DNS inverse).
# Exemplu de interogare DNS cu dig
dig google.com A
; <<>> DiG 9.16.1-Ubuntu <<>> google.com A
;; opțiuni globale: +cmd
;; Răspuns primit:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42650
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTORITATE: 0, ADDITIONAL: 1

;; SECȚIUNEA PSEUDO-OPȚIONALĂ:
; EDNS: versiune: 0, flags:; udp: 65494
;; SECȚIUNEA ÎNTREBĂRII:
;google.com.                    IN      A

;; SECȚIUNEA RĂSPUNS:
google.com.             300     IN      A       172.217.16.142

;; Timpul de interogare: 42 ms
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; CÂND: mar oct 26 10:00:00 UTC 2023
;; MĂRIMEA MESAJULUI primit: 55

Această abordare distribuită și ierarhică face ca DNS să fie un sistem scalabil și rezistent la defecte.