Il Domain Name System (DNS) è una parte importante di internet che trasforma i nomi di dominio leggibili dall'uomo in indirizzi IP leggibili dalle macchine. Questo articolo spiega le parti del DNS, inclusi i suoi componenti, i tipi di query e il processo di ricerca. Parleremo anche della cache DNS e di come rende più veloce il processo di risoluzione DNS.
Punti chiave
- Il DNS funziona come l'"elenco telefonico" di internet, traducendo i nomi di dominio leggibili dall'uomo in indirizzi IP leggibili dalle macchine
- Il processo di risoluzione DNS coinvolge il resolver DNS, il nameserver root, il nameserver TLD e il nameserver autoritativo che lavorano insieme per risolvere un nome di dominio
- Il recursor DNS, il nameserver root, il nameserver TLD e il nameserver autoritativo sono i componenti chiave del sistema DNS
- Le query ricorsive, iterative e non ricorsive sono i principali tipi di query DNS, ognuna con uno scopo specifico nel processo di risoluzione
- La cache DNS migliora le prestazioni, riduce l'uso della larghezza di banda e diminuisce il carico sui server upstream memorizzando i record DNS richiesti più frequentemente vicino al client
Cos'è il DNS?
Il DNS, o Domain Name System, è il sistema di denominazione di internet che funziona come l'"elenco telefonico" di internet. Il suo scopo è tradurre i nomi di dominio leggibili dall'uomo, come esempio.com, in indirizzi IP leggibili dalle macchine, come 192.168.1.1. Questa traduzione ti permette di usare nomi di dominio facili da ricordare invece di dover memorizzare indirizzi IP numerici quando accedi a siti web o altre risorse online.
Il DNS svolge un ruolo nel funzionamento di internet fornendo un modo per i dispositivi di comunicare tra loro usando nomi di dominio anziché indirizzi IP. Senza il DNS, dovresti ricordare l'indirizzo IP di ogni sito web che vuoi visitare, rendendo la navigazione in internet più difficile e meno user-friendly.
Come funziona il DNS
Il processo di risoluzione DNS comporta la conversione di un hostname (come www.esempio.com) in un indirizzo IP (come 192.168.1.1). Quando inserisci un nome di dominio nel tuo browser web, viene avviata una query DNS per tradurre il nome di dominio nel suo indirizzo IP.
Questa query coinvolge più server DNS che lavorano insieme per risolvere il nome di dominio:
Resolver DNS: Il resolver DNS è la prima tappa per la tua query DNS. Funziona come un bibliotecario che riceve una richiesta ed è responsabile di trovare l'indirizzo IP corretto per il dominio richiesto.
Nameserver root: Se il resolver DNS non ha l'indirizzo IP nella cache, invia una query al nameserver root. Il server root funziona come punto di riferimento, indirizzando la query al nameserver del Top Level Domain (TLD) corretto.
Nameserver TLD: Il nameserver del Top Level Domain gestisce l'ultima parte di un nome di dominio, come
.como.org. Fornisce l'indirizzo IP del nameserver autoritativo del dominio.Nameserver autoritativo: Il nameserver autoritativo è l'ultima tappa nella query DNS. Contiene il record dell'indirizzo IP effettivo per il dominio richiesto e invia queste informazioni al resolver DNS.
Una volta che il resolver DNS riceve l'indirizzo IP dal nameserver autoritativo, invia queste informazioni a te, permettendo al tuo browser web di connettersi al server corretto e caricare il sito web richiesto.
Ecco un riepilogo del processo di risoluzione DNS:
| Passaggio | Server | Descrizione |
|---|---|---|
| 1 | Resolver DNS | Riceve la tua query DNS ed è responsabile di trovare l'indirizzo IP |
| 2 | Nameserver root | Funziona come punto di riferimento, indirizzando la query al nameserver TLD corretto |
| 3 | Nameserver TLD | Gestisce l'ultima parte del nome di dominio e fornisce il nameserver autoritativo |
| 4 | Nameserver autoritativo | Contiene il record dell'indirizzo IP effettivo per il dominio richiesto |
Esempi reali del processo di risoluzione DNS:
Quando digiti "amazon.com" nel tuo browser web:
- Il resolver DNS riceve la query e controlla la sua cache per l'indirizzo IP.
- Se non viene trovato, il resolver invia una query al nameserver root.
- Il nameserver root indirizza la query al nameserver TLD
.com. - Il nameserver TLD
.comfornisce l'indirizzo IP del nameserver autoritativo di Amazon. - Il nameserver autoritativo invia l'indirizzo IP di
amazon.comal resolver DNS. - Il resolver DNS memorizza nella cache l'indirizzo IP e lo invia al tuo browser web.
Quando configuri un nuovo sito web, il nome di dominio (ad esempio,
ilmionuovositoweb.com) deve essere registrato presso un registrar di domini e i record DNS devono essere configurati per puntare al server che ospita il sito web. Questo assicura che quando digiti "ilmionuovositoweb.com" nel tuo browser, il processo di risoluzione DNS possa tradurre il nome di dominio nell'indirizzo IP corretto, permettendoti di accedere al sito web.
Componenti del DNS
Il Domain Name System (DNS) è una parte dell'infrastruttura internet che traduce i nomi di dominio in indirizzi IP. Diversi componenti lavorano insieme per fare questo, inclusi il recursor DNS, il nameserver root, il nameserver TLD e il nameserver autoritativo.
Recursor DNS
Il recursor DNS, chiamato anche resolver ricorsivo, è la prima tappa nel processo di query DNS. Riceve query dai dispositivi client come computer o telefoni e funziona come un bibliotecario, trovando le informazioni richieste per rispondere alla query del client.
Esempio: Quando digiti www.esempio.com nel tuo browser web, il tuo sistema operativo invia una query al recursor DNS per trovare l'indirizzo IP corrispondente.
| Funzione | Descrizione |
|---|---|
| Riceve le query | Il recursor riceve query dai dispositivi client, come computer o dispositivi mobili |
| Controlla la cache locale | Il recursor controlla prima la sua cache DNS locale per l'indirizzo IP richiesto |
| Effettua richieste aggiuntive | Se l'indirizzo IP non è nella cache, il recursor effettua richieste aggiuntive ad altri server DNS |
Nameserver root
Il nameserver root è il primo passaggio nella risoluzione dei nomi di dominio in indirizzi IP quando il recursor non ha le informazioni necessarie nella sua cache. Funziona come punto di riferimento per il sistema DNS, indirizzando le query al nameserver del Top Level Domain (TLD) corretto.
Esempio: Se il recursor non ha l'indirizzo IP per www.esempio.com nella sua cache, contatterà uno dei 13 nameserver root per trovare il nameserver TLD corretto per il dominio .com.
| Funzione | Descrizione |
|---|---|
| Funziona come punto di riferimento | Il nameserver root serve come punto di partenza per il processo di query DNS |
| Indirizza le query | Indirizza le query al nameserver TLD corretto in base all'estensione del dominio |
Nameserver TLD
Il nameserver del Top Level Domain (TLD) gestisce le query per estensioni di dominio specifiche, come .com, .net o .org. Ospita l'ultima parte di un nome di dominio e aiuta a restringere la ricerca dell'indirizzo IP.
Esempio: Quando il recursor contatta il nameserver TLD per .com, riceve l'indirizzo IP del nameserver autoritativo per esempio.com.
| Funzione | Descrizione |
|---|---|
| Gestisce estensioni di dominio specifiche | Il nameserver TLD gestisce le query per estensioni di dominio specifiche |
| Fornisce l'IP del nameserver autoritativo | Restituisce l'indirizzo IP del nameserver autoritativo del dominio al recursor |
Tipi di query DNS
Query ricorsiva
In una query DNS ricorsiva, il client DNS (come un browser web) richiede a un server DNS (di solito un resolver DNS ricorsivo) di rispondere con il record DNS richiesto o con un messaggio di errore se il resolver non riesce a trovare il record. Il resolver ricorsivo effettua quindi richieste aggiuntive per trovare l'indirizzo IP del nome di dominio.
Esempio: Quando inserisci www.esempio.com nel tuo browser, il tuo computer invia una query ricorsiva al resolver DNS del tuo ISP. Il resolver invia quindi una query al nameserver root, al nameserver TLD e al nameserver autoritativo per ottenere l'indirizzo IP per www.esempio.com. Una volta che il resolver ha l'indirizzo IP, lo restituisce al tuo computer.
| Aspetto | Descrizione |
|---|---|
| Requisito del client | Il client DNS richiede una risposta con il record richiesto o un errore |
| Coinvolgimento del server DNS | Tipicamente coinvolge un resolver DNS ricorsivo |
| Richieste aggiuntive | Il resolver ricorsivo effettua richieste aggiuntive per trovare l'indirizzo IP |
Scenario reale: Quando visiti un sito web come https://www.google.com, il tuo browser web invia una query DNS ricorsiva al tuo resolver DNS configurato (solitamente fornito dal tuo ISP o da un servizio DNS pubblico come Google DNS o Cloudflare DNS). Il resolver trova quindi l'indirizzo IP per www.google.com effettuando richieste aggiuntive ai nameserver root, TLD e autoritativi. Una volta che il resolver ottiene l'indirizzo IP, lo restituisce al tuo browser, permettendogli di connettersi con il server di Google.
Query iterativa
In una query DNS iterativa, il client DNS permette a un server DNS di restituire la migliore risposta che può. Se il server DNS interrogato non ha una corrispondenza per il nome della query, restituisce un riferimento a un server DNS autoritativo per un livello inferiore del namespace del dominio. Il client DNS interroga quindi l'indirizzo di riferimento, ripetendo questo processo fino a quando si verifica un errore o un timeout.
Esempio: Se un client DNS invia una query iterativa per www.esempio.com a un server DNS che non è autoritativo per esempio.com, il server potrebbe rispondere con l'indirizzo IP del nameserver autoritativo per esempio.com. Il client interrogherebbe quindi quel nameserver per ottenere l'indirizzo IP per www.esempio.com.
| Aspetto | Descrizione |
|---|---|
| Flessibilità del client | Il client DNS permette a un server DNS di restituire la sua migliore risposta |
| Processo di riferimento | Se non viene trovata alcuna corrispondenza, il server DNS restituisce un riferimento a un altro server |
| Catena di query | Il client DNS segue la catena di riferimenti fino a quando si verifica un errore o un timeout |
Scenario reale: Le query iterative sono spesso usate dai server DNS per comunicare tra loro. Ad esempio, quando un resolver ricorsivo riceve una query per www.esempio.com, inizia inviando una query iterativa a uno dei nameserver root. Il nameserver root risponde quindi con un riferimento al nameserver TLD per .com. Il resolver ricorsivo invia quindi una query iterativa al nameserver TLD .com, che risponde con un riferimento al nameserver autoritativo per esempio.com. Infine, il resolver ricorsivo invia una query iterativa al nameserver autoritativo, che restituisce l'indirizzo IP per www.esempio.com.
Query non ricorsiva
Una query non ricorsiva si verifica quando un server DNS ha già la risposta a una query DNS nella sua cache o nei file di zona. Questo può accadere quando il server DNS è autoritativo per il dominio richiesto o quando il record esiste nella cache del server da una query precedente.
Esempio: Se un resolver DNS ricorsivo ha l'indirizzo IP per www.esempio.com nella sua cache a causa di una query precedente, può rispondere a una query non ricorsiva da un client immediatamente senza effettuare richieste aggiuntive ad altri server DNS.
| Aspetto | Descrizione |
|---|---|
| Capacità del server | Il server DNS ha accesso al record richiesto |
| Server autoritativo | Il server può essere autoritativo per il dominio richiesto |
| Utilizzo della cache | Il record richiesto potrebbe esistere nella cache del server da una query precedente |
Scenario reale: Le query non ricorsive sono comunemente usate quando un server DNS è autoritativo per un dominio o quando ha il record richiesto nella sua cache. Ad esempio, se un nameserver autoritativo per esempio.com riceve una query per www.esempio.com, può rispondere con l'indirizzo IP direttamente senza effettuare richieste aggiuntive. Allo stesso modo, se un resolver ricorsivo ha recentemente risolto www.esempio.com e ha l'indirizzo IP nella sua cache, può rispondere alle query successive per lo stesso dominio con le informazioni memorizzate nella cache fino a quando il TTL (Time to Live) non scade.
Cache DNS
La cache DNS è una tecnica usata per memorizzare temporaneamente i risultati delle query DNS in una posizione più vicina al client richiedente. Lo scopo principale della cache DNS è migliorare le prestazioni del processo di risoluzione DNS e ridurre il carico sui server DNS upstream.
Come funziona la cache DNS
L'obiettivo principale della cache DNS è memorizzare i record DNS richiesti spesso più vicino al client, riducendo la necessità per il client di interrogare server DNS remoti. Questo ha diversi vantaggi:
Prestazioni migliori: Memorizzando nella cache i record DNS, il tempo necessario per risolvere un nome di dominio in un indirizzo IP è molto ridotto. Questo porta a tempi di caricamento più rapidi per i siti web e altre risorse di rete.
Minore uso della larghezza di banda: Quando i record DNS sono memorizzati nella cache localmente, il client non ha bisogno di inviare query attraverso la rete a server DNS remoti, riducendo l'uso complessivo della larghezza di banda.
Minore carico sui server upstream: La cache DNS aiuta a distribuire il carico delle query DNS su più livelli di cache, riducendo il peso sui nameserver autoritativi e altri server DNS upstream.
Esempi reali dei vantaggi della cache DNS:
- Quando visiti un sito web frequentemente visitato come Facebook o YouTube, il tuo browser e sistema operativo memorizzano nella cache i record DNS per quei domini. Questo permette un accesso più rapido a quei siti nelle visite successive, poiché il processo di risoluzione DNS è abbreviato.
- Gli ISP e le grandi organizzazioni spesso usano resolver DNS con cache per ridurre il carico sulla loro infrastruttura di rete e migliorare l'esperienza di navigazione per i loro utenti.
Tipi di cache DNS
La cache DNS può verificarsi a vari livelli, dal lato client ai resolver intermedi. Ecco i principali tipi di cache DNS:
| Tipo | Descrizione |
|---|---|
| Cache DNS del browser | I browser web moderni hanno cache DNS integrate. Quando un utente inserisce un URL, il browser controlla prima la sua cache locale per il record DNS corrispondente prima di inviare una query al resolver DNS del sistema operativo. Se il record viene trovato nella cache del browser, il browser può usare immediatamente l'indirizzo IP senza aspettare una risposta da un server DNS esterno. |
| Cache DNS a livello di sistema operativo (OS) | I sistemi operativi mantengono una cache DNS locale attraverso un componente chiamato stub resolver o client DNS. Quando un'applicazione richiede una risoluzione DNS, lo stub resolver controlla prima la sua cache per il record richiesto. Se il record non viene trovato, lo stub resolver invia una query ricorsiva al server DNS impostato, tipicamente fornito dall'ISP o da un servizio DNS di terze parti. Lo stub resolver memorizza nella cache la risposta dal server DNS esterno, rendendola disponibile per query future. |
| Cache DNS del resolver | La cache avviene anche a livello di resolver DNS, tipicamente gestito dagli ISP o fornitori DNS di terze parti come Google DNS o Cloudflare DNS. Quando un resolver ricorsivo riceve una query da un client, controlla prima la sua cache locale per il record DNS richiesto. Se il record non viene trovato, il resolver avvia il processo di risoluzione DNS ricorsiva, partendo dai nameserver root e scendendo fino ai nameserver autoritativi. Una volta che il resolver ottiene l'indirizzo IP per il dominio richiesto, memorizza nella cache il record e restituisce il risultato al client. Se il resolver ha i record del nameserver (NS) per il dominio richiesto memorizzati nella cache, può saltare alcuni passaggi nel processo di risoluzione DNS e interrogare direttamente i nameserver autoritativi, migliorando ulteriormente la velocità di risoluzione. |
Scenario reale della cache DNS in azione
Ecco un esempio passo dopo passo di come funziona la cache DNS in uno scenario reale:
- Un utente digita
www.esempio.comnel suo browser web. - Il browser controlla la sua cache DNS locale per l'indirizzo IP associato a
www.esempio.com. Se trovato, il browser usa l'indirizzo IP memorizzato nella cache per connettersi al server. - Se non trovato nella cache del browser, il browser invia una query allo stub resolver del sistema operativo.
- Lo stub resolver controlla la sua cache DNS per il record richiesto. Se trovato, restituisce l'indirizzo IP al browser.
- Se non trovato nella cache dello stub resolver, la query viene inoltrata al resolver ricorsivo impostato (ad esempio, il server DNS dell'ISP).
- Il resolver ricorsivo controlla la sua cache per il record richiesto. Se trovato, restituisce l'indirizzo IP allo stub resolver, che lo inoltra quindi al browser.
- Se non trovato nella cache del resolver ricorsivo, il resolver avvia il processo di risoluzione DNS ricorsiva, memorizzando nella cache il risultato una volta ottenuto e restituendo l'indirizzo IP allo stub resolver e, infine, al browser.
Processo di ricerca DNS
Il processo di ricerca DNS traduce un nome di dominio in un indirizzo IP. Ecco gli 8 passaggi in una tipica ricerca DNS:
L'utente inserisce un nome di dominio: Quando digiti un nome di dominio come
www.esempio.comnel tuo browser web, il browser invia una query a un resolver DNS ricorsivo per trovare l'indirizzo IP.Esempio: Vuoi visitare
www.wikipedia.orge digiti il nome di dominio nella barra degli indirizzi del tuo browser.La query viene inviata al resolver DNS ricorsivo: Il resolver DNS ricorsivo, spesso dal tuo fornitore di servizi Internet o da un servizio DNS pubblico come Google DNS, riceve la query dal tuo browser.
Esempio: Il tuo browser invia una query al resolver DNS ricorsivo del tuo ISP, chiedendo l'indirizzo IP di
www.wikipedia.org.Il resolver interroga il nameserver root: Se il resolver ricorsivo non ha l'indirizzo IP per
www.esempio.comnella sua cache, interroga un nameserver root. Il nameserver root risponde con l'indirizzo del server DNS del Top-Level Domain (TLD) per il dominio.com.Esempio: Il resolver ricorsivo dell'ISP non ha l'indirizzo IP per
www.wikipedia.orgnella sua cache DNS, quindi interroga un nameserver root. Il nameserver root risponde con l'indirizzo del server TLD.org.Il resolver interroga il server TLD: Il resolver ricorsivo interroga quindi il server TLD
.com, chiedendo l'indirizzo IP diwww.esempio.com.Esempio: Il resolver ricorsivo interroga il server TLD
.orgper l'indirizzo IP diwww.wikipedia.org.Il server TLD risponde con l'IP del nameserver: Il server TLD
.comrisponde con l'indirizzo IP del nameserver autoritativo per il dominioesempio.com.Esempio: Il server TLD
.orgrisponde con l'indirizzo IP del nameserver autoritativo perwikipedia.org.Il resolver interroga il nameserver del dominio: Il resolver ricorsivo interroga il nameserver
esempio.comper l'indirizzo IP diwww.esempio.com.Esempio: Il resolver ricorsivo interroga il nameserver
wikipedia.orgper l'indirizzo IP diwww.wikipedia.org.Il nameserver restituisce l'indirizzo IP: Il nameserver
esempio.comcerca l'indirizzo IP perwww.esempio.comnei suoi record DNS e lo restituisce al resolver ricorsivo.Esempio: Il nameserver
wikipedia.orgtrova l'indirizzo IP perwww.wikipedia.orge lo invia al resolver ricorsivo.Il resolver invia l'indirizzo IP al browser: Il resolver ricorsivo memorizza nella cache l'indirizzo IP per
www.esempio.come lo invia al tuo browser web.Esempio: Il resolver ricorsivo memorizza nella cache l'indirizzo IP per
www.wikipedia.orge lo restituisce al tuo browser.
Ecco un diagramma del processo di ricerca DNS in 8 passaggi:
Dopo la ricerca DNS
Dopo il processo di ricerca DNS e quando il browser ha l'indirizzo IP, avvengono altri due passaggi:
Il browser effettua una richiesta HTTP: Il browser invia una richiesta HTTP all'indirizzo IP ottenuto dalla ricerca DNS.
Esempio: Il browser invia una richiesta HTTP all'indirizzo IP per
www.wikipedia.orgper caricare la pagina web.Il server invia la pagina web: Il server all'indirizzo IP riceve la richiesta HTTP e restituisce la pagina web, che il browser visualizza per te.
Esempio: Il server che ospita
www.wikipedia.orgriceve la richiesta HTTP e invia la homepage di Wikipedia, che il tuo browser visualizza.





