Questo sito utilizza cookie per raccogliere dati statistici.
Privacy Policy
# DNS (Domain Name System)
Il **Domain Name System (DNS)** è uno dei componenti fondamentali di Internet, responsabile di tradurre i nomi di dominio leggibili dagli esseri umani (come `www.google.com`) in indirizzi IP numerici (come `142.250.74.14`). Gli indirizzi IP, che possono essere IPv4 o IPv6, identificano in modo univoco ogni dispositivo o servizio su Internet, permettendo ai computer di comunicare tra loro.
### Cosa sono gli indirizzi IP?
Un indirizzo IP è una sequenza di numeri che identifica un dispositivo connesso a una rete. Esistono due versioni principali:
- **IPv4:** Composto da 4 blocchi di numeri separati da punti (es. `192.168.1.1`).
- **IPv6:** Introdotto per risolvere la scarsità di indirizzi IPv4, utilizza una rappresentazione più lunga (es. `2001:0db8:85a3:0000:0000:8a2e:0370:7334`).
Mentre i computer comunicano utilizzando indirizzi IP, gli esseri umani trovano difficile ricordare lunghe sequenze di numeri. È qui che entra in gioco il DNS, che agisce come una sorta di "rubrica telefonica" per Internet.
---
## Cosa sono i domini?

Un **dominio** è un nome univoco che identifica un sito web o un servizio su Internet. Ad esempio, `www.google.com` è un dominio come anche `professore.samuelelonghin.it` è un dominio. La struttura dei domini è gerarchica e suddivisa in livelli:
1. **Top-Level Domain (TLD):** È il livello più alto, situato alla destra dell’ultimo punto.
- **TLD generici (gTLD):** Come `.com`, `.org`, `.net`, aperti a chiunque.
- **TLD nazionali (ccTLD):** Come `.it` (Italia), `.fr` (Francia), legati a paesi specifici.
2. **Second-Level Domain (SLD):** Si trova immediatamente a sinistra del TLD. Ad esempio, in `google.com`, "google" è il SLD.
3. **Subdomain:** Una parte opzionale che precede il dominio di secondo livello, usata per organizzare sezioni di un sito. Ad esempio, in `mail.google.com`, "mail" è un sottodominio.
---
## Come funziona l’architettura del DNS?

Il DNS è organizzato in un’architettura gerarchica per distribuire il carico e garantire affidabilità. Questa struttura include diversi tipi di server:
### 1. Server radice (Root DNS Servers)
Sono il punto di partenza per tutte le query DNS. I server radice non conoscono direttamente l’indirizzo IP del dominio richiesto, ma indirizzano la query verso i server TLD appropriati. Esistono 13 set di server radice distribuiti in tutto il mondo.
---
### 2. Server TLD (Top-Level Domain)
Gestiscono i domini di primo livello come `.com`, `.org`, o i ccTLD come `.it`. Quando un server radice riceve una query per un dominio come `www.google.com`, indirizza la richiesta al server TLD `.com`.
---
### 3. Server autoritativi
Sono responsabili delle informazioni specifiche di un dominio. Quando un server TLD riceve una query (richiesta di risoluzione), la inoltra al server autoritativo del dominio richiesto. Questo server conosce l’indirizzo IP associato al nome di dominio e fornisce la risposta.
---
### 4. Resolver DNS
Il resolver DNS è il "mediatore" che si occupa di gestire la query DNS per conto del client (ad esempio, un browser). È solitamente fornito dall’ISP (Internet Service Provider). Il resolver:
1. Controlla la sua cache (una memoria temporanea che conserva le risposte recenti per velocizzare le future richieste) per vedere se ha già risolto il dominio richiesto.
2. Se non trova una risposta nella cache, invia la query ai server radice, ai TLD e infine ai server autoritativi, seguendo l’architettura gerarchica.
---
## Come avviene la risoluzione DNS?

Il processo di risoluzione DNS si divide in diversi passaggi:
1. **Query al resolver DNS:** Quando digiti `www.google.com`, il tuo computer invia una richiesta al resolver DNS per trovare l’indirizzo IP associato.
2. **Controllo della cache:** Il resolver verifica se l’indirizzo è già memorizzato nella sua cache. Se sì, risponde immediatamente al client.
3. **Richiesta ai server radice:** Se l’indirizzo non è nella cache, il resolver interroga uno dei server radice.
4. **Richiesta al server TLD:** Il server radice indirizza il resolver al server TLD corrispondente (es. `.com` per `www.google.com`).
5. **Richiesta al server autoritativo:** Il server TLD reindirizza la query al server autoritativo del dominio.
6. **Risposta al resolver:** Il server autoritativo fornisce l’indirizzo IP associato al dominio.
7. **Connessione al server:** Il resolver risponde al client con l’indirizzo IP, permettendogli di connettersi al server richiesto.
---
## Esempio pratico di risoluzione DNS
Immaginiamo di digitare `www.google.com` nel browser:
1. Il resolver DNS verifica se `www.google.com` è nella sua cache.
2. Non trovandolo, chiede ai server radice dove trovare `.com`.
3. Il server radice risponde con l’indirizzo del server TLD `.com`.
4. Il resolver chiede al server TLD dove trovare `google.com`.
5. Il server TLD risponde con l’indirizzo del server autoritativo di Google.
6. Il resolver interroga il server autoritativo, che restituisce l’indirizzo IP di `www.google.com`.
7. Il browser utilizza l’indirizzo IP per stabilire una connessione e caricare il sito.
---
## Come testare le risoluzioni DNS
Ci sono diversi strumenti e metodi per verificare il funzionamento del DNS:
1. **nslookup**
- Usa il comando `nslookup` per eseguire una query DNS da terminale.
- **Esempio:** `nslookup www.google.com` restituisce l’indirizzo IP di Google.
2. **dig**
- Un comando più avanzato rispetto a `nslookup`, fornisce informazioni dettagliate sulla risoluzione DNS.
- **Esempio:** `dig www.google.com` mostra i passaggi della query DNS.
3. **Cache DNS**
- Controlla la cache DNS locale per vedere quali domini sono stati risolti di recente.
- **Esempio (Windows):** `ipconfig /displaydns` mostra i record DNS memorizzati.
4. **Modifica del resolver**
- Puoi cambiare il resolver DNS sul tuo dispositivo per testare diversi servizi (es. Google DNS `8.8.8.8` o Cloudflare DNS `1.1.1.1`).
---
## Conclusione
Il DNS è un pilastro di Internet, rendendo possibile la navigazione semplice e intuitiva. Grazie alla sua architettura gerarchica e ai meccanismi di caching, garantisce risposte rapide ed efficienti a miliardi di query ogni giorno. Conoscere il DNS ci permette non solo di comprendere meglio il funzionamento di Internet, ma anche di diagnosticare e risolvere problemi di rete in modo più efficace.
## Curiosità
Un aspetto interessante del funzionamento del DNS è il ruolo del resolver. Poiché il resolver DNS riceve tutte le nostre richieste di risoluzione dei domini, esso ha una visione completa dei siti web che visitiamo. In altre parole, il resolver sa esattamente quali domini stiamo cercando di raggiungere. Questo può avere implicazioni per la privacy, poiché il fornitore del servizio di risoluzione DNS (spesso il nostro ISP(Internet Service Provider)) potrebbe teoricamente tracciare la nostra attività online. Per questo motivo, alcuni utenti scelgono di utilizzare resolver DNS alternativi, come quelli offerti da Google (`8.8.8.8`) o Cloudflare (`1.1.1.1`), che promettono politiche di privacy più rigorose.