Sobes.tech
Junior

Come funziona il DNS?

sobes.tech AI

Risposta dell'AI

Il DNS, o Sistema dei Nomi di Dominio, è un database distribuito che converte i nomi di dominio leggibili dall’uomo (ad esempio, google.com) in indirizzi IP (ad esempio, 172.217.16.14), comprensibili dai computer.

Il processo di conversione (risoluzione) di un nome di dominio in un indirizzo IP coinvolge diversi passaggi di interazione tra vari componenti:

  1. Richiesta dell’utente: L’utente inserisce un nome di dominio nel browser.
  2. Resolver DNS: Il sistema operativo o l’applicazione invia una richiesta a un resolver DNS locale (spesso fornito dal provider di Internet o presente sul router/computer locale).
  3. Cache del resolver: Il resolver verifica prima la sua cache locale. Se trova l’indirizzo IP, lo restituisce al client. Questo accelera il processo.
  4. Server DNS radice (Root): Se non c’è registrazione in cache, il resolver invia una richiesta a uno dei 13 server DNS radice (indicato dal punto .). Questi server sanno dove trovare i server TLD (Top-Level Domain).
  5. Server DNS TLD (Top-Level Domain): Il server radice indirizza il resolver al server TLD responsabile del dominio di primo livello (ad esempio, .com, .org, .ru).
  6. Server DNS autoritativi: Il server TLD indirizza il resolver al server DNS autoritativo per il dominio specifico (ad esempio, google.com). Questo server memorizza i record DNS per quel dominio.
  7. Risposta del server autoritativo: Il server autoritativo trova il record corrispondente (ad esempio, record A per IPv4 o AAAA per IPv6) e restituisce l’indirizzo IP al resolver.
  8. Caching del resolver: Il resolver riceve l’indirizzo IP, lo memorizza in cache per un certo periodo (TTL - Time To Live) e lo restituisce al client.
  9. Connessione del client: Il client utilizza l’indirizzo IP ricevuto per stabilire una connessione con il server web.

I server DNS memorizzano diversi tipi di record:

  • A: Converte un nome di dominio in un indirizzo IPv4.
  • AAAA: Converte un nome di dominio in un indirizzo IPv6.
  • CNAME: Crea un alias per un altro nome di dominio.
  • MX: Determina i server di posta responsabili del dominio.
  • NS: Indica i server DNS autoritativi per il dominio.
  • PTR: Converte un indirizzo IP in un nome di dominio (utilizzato nelle query DNS inverse).
# Esempio di query DNS con dig
dig google.com A
; <<>> DiG 9.16.1-Ubuntu <<>> google.com A
;; opzioni globali: +cmd
;; Risposta:
;; ->>HEADER<<- opcode: QUERY, stato: NOERROR, id: 42650
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTORITÀ: 0, ADDITIONAL: 1

;; SEZIONE PSEUDO-OPZIONALE:
; EDNS: versione: 0, flags:; udp: 65494
;; SEZIONE DOMANDA:
;google.com.                    IN      A

;; SEZIONE RISPOSTA:
google.com.             300     IN      A       172.217.16.142

;; Tempo di query: 42 ms
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; QUANDO: mar ott 26 10:00:00 UTC 2023
;; DIMENSIONE DEL MESSAGGIO RICEVUTO: 55

Questo approccio distribuito e gerarchico rende il DNS un sistema scalabile e resistente ai guasti.