Che cos'è il DNS? | Come funziona il DNS

Il DNS è ciò che consente agli utenti di connettersi a siti Web utilizzando nomi di dominio anziché indirizzi IP. Scopri come funziona il DNS.

Share facebook icon linkedin icon twitter icon email icon

DNS

Obiettivi di apprendimento

Dopo aver letto questo articolo sarai in grado di:

  • Definire il DNS
  • Comprendere come funziona il DNS
  • Distinguere tra ricerche DNS ricorsive e iterative
  • Separare i nameserver autoritativi dai resolver DNS ricorsivi
  • Esplorare come funziona la memorizzazione nella cache DNS

Che cos'è il DNS?

Il Domain Name System (DNS) è la rubrica di Internet. Gli esseri umani accedono alle informazioni online tramite nomi di dominio, come nytimes.com o espn.com. I browser Web interagiscono tramite indirizzi IP (Internet Protocol). Il DNS traduce i nomi di dominio in indirizzi IP in modo che i browser possano caricare le risorse Internet.

Ogni dispositivo collegato a Internet ha un indirizzo IP univoco utilizzato da altre macchine per trovare il dispositivo. I server DNS eliminano la necessità per gli esseri umani di memorizzare gli indirizzi IP come 192.168.1.1 (in IPv4) o i più recenti indirizzi IP alfanumerici più complessi come 2400:cb00:2048:1::c629:d7a2 (in IPv6).

DNS

Come funziona il DNS?

Il processo di risoluzione DNS prevede la conversione di un hostname (come www.example.com) in un indirizzo IP compatibile con il computer (come 192.168.1.1). Si assegna un indirizzo IP a ciascun dispositivo su Internet e tale indirizzo è necessario per trovare il dispositivo Internet appropriato, ad esempio: per trovare una determinata casa si utilizza un indirizzo stradale. Quando un utente desidera caricare una pagina Web, deve verificarsi una traduzione tra ciò che un utente digita nel proprio browser Web (esempio.com) e l'indirizzo riconoscibile dalla macchina necessario per individuare la pagina Web esempio.com.

Per comprendere il processo alla base della risoluzione DNS, è importante conoscere i diversi componenti hardware tra cui deve passare una query DNS. Per il browser Web, la ricerca DNS avviene "dietro le quinte" e non richiede alcuna interazione dal computer dell'utente a parte la richiesta iniziale.

Esistono 4 server DNS coinvolti nel caricamento di una pagina Web:

  • DNS recursor: il recursor può essere pensato come un bibliotecario a cui viene chiesto di andare a trovare un libro particolare in un qualche punto di una biblioteca. Il DNS recursor è un server progettato per ricevere query dai computer client attraverso applicazioni come i browser Web. In genere, il recursor è responsabile dell'esecuzione di richieste aggiuntive al fine di soddisfare la query DNS del cliente.
  • Root nameserver: il root server è il primo passo nella traduzione (risoluzione) in indirizzi IP di hostname leggibili dall'uomo. Può essere pensato come un indice di una biblioteca che punta a diversi scaffali di libri; in genere serve come riferimento ad altre posizioni più specifiche.
  • TLD nameserver: il server di dominio di primo livello (TLD) può essere considerato come uno specifico scaffale di libri in una libreria. Questo nameserver è il passo successivo nella ricerca di un indirizzo IP specifico e ospita l'ultima porzione di un hostname (in esempio.com, il server TLD è "com").
  • Nameserver autoritativo: questo nameserver finale può essere pensato come un dizionario su uno scaffale di libri, in cui si può tradurre un nome specifico nella sua definizione. Il nameserver autoritativo è l'ultima fermata nella query del nameserver. Se il nameserver autoritativo ha accesso al registro richiesto, restituirà l'indirizzo IP per il hostname richiesto al DNS recursor (il bibliotecario) che ha effettuato la richiesta iniziale.

Qual è la differenza tra un server DNS autoritativo e un resolver DNS ricorsivo?

Entrambi i concetti si riferiscono a dei server (gruppi di server) che sono parte integrante dell'infrastruttura DNS, ma ognuno svolge un ruolo diverso e risiede in posizioni diverse all'interno della pipeline di una query DNS. Un modo per capire la differenza è che il resolver ricorsivo è all'inizio della query DNS e il nameserver autoritativo è alla fine.

Resolver DNS ricorsivo

Il resolver ricorsivo è il computer che risponde a una richiesta ricorsiva da un client e impiega del tempo per rintracciare il record DNS. Lo fa effettuando una serie di richieste fino a quando non raggiunge il nameserver DNS autoritativo per il record richiesto (nel caso non venga trovato alcun record, scade o visualizza un errore). Fortunatamente, per rintracciare i record necessari per rispondere a un client, i resolver DNS ricorsivi non devono fare sempre richieste multiple; la memorizzazione nella cache è un processo di persistenza dei dati che consente di cortocircuitare le richieste necessarie fornendo il record di risorse richiesto in precedenza nella ricerca DNS.

DNS query diagram

Server DNS autoritativo

In parole povere, un server DNS autoritativo è un server che effettivamente detiene ed è responsabile dei record di risorse DNS. Questo è il server nella parte inferiore della catena di ricerca DNS che risponderà con il record di risorse richiesto, consentendo in definitiva al browser Web che effettua la richiesta di raggiungere l'indirizzo IP necessario per accedere a un sito Web o ad altre risorse Web. Un nameserver autoritativo può soddisfare le query dai propri dati senza la necessità di eseguire una query da un'altra fonte, in quanto è la fonte finale di verità per alcuni record DNS.

DNS query diagram

Vale la pena ricordare che nei casi in cui la query è per un sottodominio come foo.example.com o blog.cloudflare.com, verrà aggiunto alla sequenza un ulteriore nameserver dopo il nameserver autoritativo, che è responsabile della memorizzazione del record CNAME del sottodominio.

DNS query diagram

C'è una differenza fondamentale tra molti servizi DNS e quello fornito da Cloudflare. Diversi resolver DNS ricorsivi come Google DNS, OpenDNS e provider come Comcast mantengono tutti installazioni di data center di resolver DNS ricorsivi. Questi resolver consentono query facili e veloci attraverso cluster ottimizzati di sistemi informatici ottimizzati DNS, ma sono fondamentalmente diversi dai nameserver ospitati da Cloudflare.

Cloudflare mantiene i nameserver a livello di infrastruttura che sono parte integrante del funzionamento di Internet. Un esempio chiave è la rete f-root server di cui Cloudflare è parzialmente responsabile per l'hosting. F-root è uno dei componenti dell'infrastruttura dei nameserver DNS a livello root responsabile di miliardi di richieste Internet al giorno. La nostra rete Anycast ci mette in una posizione unica nella gestione di grandi volumi di traffico DNS senza interruzione del servizio.

Quali sono i passaggi in una ricerca DNS?

Per la maggior parte delle situazioni, DNS si occupa della traduzione di un nome di dominio nell'indirizzo IP appropriato. Per sapere come funziona questo processo, il seguire il percorso di una ricerca DNS mentre viaggia da un browser Web, attraverso il processo di ricerca DNS e viceversa può essere d’aiuto. Diamo un'occhiata ai passaggi.

Nota: Spesso le informazioni di ricerca DNS vengono memorizzate nella cache localmente all'interno del computer di query o in remoto nell'infrastruttura DNS. Di solito in una ricerca DNS sono presenti 8 passaggi. Quando nella cache si memorizzano le informazioni DNS, il processo di ricerca DNS ignora i passaggi, rendendole più veloci. L'esempio seguente descrive tutti gli 8 passaggi quando non viene memorizzato alcun elemento nella cache.

Gli 8 passaggi in una ricerca DNS:

  1. Un utente digita "esempio.com" in un browser Web e la query si sposta in Internet e viene ricevuta da un resolver DNS ricorsivo.
  2. Il resolver quindi interroga un root nameserver (.).
  3. Il root server risponde quindi al resolver con l'indirizzo di un server DNS TLD (Top Level Domain) (come .com o .net), che memorizza le informazioni per i suoi domini. Durante la ricerca di example.com, la nostra richiesta è rivolta al TLD .com.
  4. Il resolver quindi invia una richiesta al TLD .com.
  5. Il server TLD risponde quindi con l'indirizzo IP del nameserver del dominio, example.com.
  6. Infine, il risolutore ricorsivo invia una query al nameserver del dominio.
  7. L'indirizzo IP per example.com viene quindi restituito al resolver dal nameserver.
  8. Il resolver DNS risponde quindi al browser Web con l'indirizzo IP del dominio richiesto inizialmente.

  9. Dopo che gli 8 passaggi della ricerca DNS hanno restituito l'indirizzo IP per example.com, il browser è in grado di effettuare la richiesta per la pagina Web:

  10. Il browser invia una richiesta HTTP all'indirizzo IP.
  11. Il server su quell'IP restituisce la pagina Web da renderizzare nel browser (passaggio 10).
DNS query diagram

Che cos'è un resolver DNS?

Il resolver DNS è la prima tappa della ricerca DNS ed è responsabile della gestione del client che ha effettuato la richiesta iniziale. Il resolver avvia la sequenza di query che alla fine porta alla conversione di un URL nell'indirizzo IP necessario.

Nota: Una tipica ricerca DNS senza cache includerà query sia ricorsive che iterative.

È importante distinguere tra una query DNS ricorsiva e un resolver DNS ricorsivo. La query si riferisce alla richiesta fatta a un resolver DNS che richiede la risoluzione della query. Un resolver DNS ricorsivo è il computer che accetta una query ricorsiva ed elabora la risposta effettuando le richieste necessarie.

DNS query diagram

Quali sono i tipi di query DNS?

In una tipica ricerca DNS si verificano tre tipi di query. Utilizzando una combinazione di queste query, un processo ottimizzato per la risoluzione DNS può comportare una riduzione della distanza percorsa. In una situazione ideale saranno disponibili i dati dei record memorizzati nella cache, che consentono a un nameserver DNS di restituire una query non ricorsiva.

3 tipi di query DNS:

  1. Query ricorsiva: in una query ricorsiva, un client DNS richiede che un server DNS (in genere un resolver DNS ricorsivo) risponda al client con il record di risorse richiesto o un messaggio di errore se il risolutore non riesce a trovare il record.

  2. Query iterativa: in questa situazione il client DNS consentirà a un server DNS di restituire la migliore risposta possibile. Se il server DNS richiesto non ha una corrispondenza per il nome della query, restituirà un riferimento a un server DNS autoritativo per un livello inferiore del namespace del dominio. Il client DNS quindi eseguirà una query all'indirizzo di riferimento. Questo processo continua con server DNS aggiuntivi lungo la catena di query fino a quando si verifica un errore o un timeout.

  3. Query non ricorsiva: in genere si verifica quando un client resolver DNS invia una query a un server DNS per un record a cui ha accesso perché è autoritativo per il record o perché il record esiste all'interno della sua cache. In genere, un server DNS memorizza nella cache i record DNS per prevenire un ulteriore consumo di larghezza di banda e caricare su server upstream.

Che cos'è la memorizzazione nella cache DNS? Dove si verifica la memorizzazione nella cache DNS?

Lo scopo della memorizzazione nella cache è di archiviare temporaneamente i dati in una posizione che comporta miglioramenti in termini di prestazioni e affidabilità per le richieste di dati. La memorizzazione nella cache DNS comporta l'archiviazione dei dati più vicini al client richiedente, in modo che la query DNS possa essere risolta più velocemente e si possano evitare ulteriori query lungo la catena di ricerca DNS, migliorando in tal modo i tempi di caricamento e riducendo la larghezza di banda/il consumo di CPU. I dati DNS possono essere memorizzati nella cache in una varietà di posizioni, ognuna delle quali memorizzerà i record DNS per un determinato periodo di tempo determinato da un time-to-live (TTL).

Caching DNS del browser

I browser Web moderni sono progettati per impostazione predefinita per memorizzare nella cache i record DNS per un determinato periodo di tempo. Lo scopo qui è ovvio: più la cache DNS si avvicina al browser Web, meno passaggi di elaborazione devono essere eseguiti per controllare la cache ed effettuare le richieste corrette a un indirizzo IP. Quando viene effettuata una richiesta per un record DNS, la cache del browser è la prima posizione controllata per il record richiesto.

In Chrome, puoi vedere lo stato della tua cache DNS andando su chrome://net-internals/#dns.

Memorizzazione nella cache DNS a livello di sistema operativo

Il resolver DNS a livello di sistema operativo è la seconda e ultima fermata locale prima che una query DNS lasci il computer. Il processo all'interno del sistema operativo progettato per gestire questa query è comunemente chiamato "stub resolver" o client DNS. Quando uno stub resolver riceve una richiesta da un'applicazione, controlla prima la propria cache per vedere se ha il record. In caso contrario, invia una query DNS (con un flag ricorsivo impostato) all'esterno della rete locale a un resolver DNS ricorsivo all'interno del fornitore di servizi Internet (ISP).

Quando il resolver ricorsivo all'interno dell'ISP riceve una query DNS, come tutti i passaggi precedenti, verificherà anche se la traduzione richiesta dall’host all’indirizzo IP è già memorizzata nel suo livello di persistenza locale.

Il risolutore ricorsivo ha anche funzionalità aggiuntive a seconda dei tipi di record che ha nella sua cache:

  1. Se il resolver non ha i record A, ma ha i record NS per i nameserver autoritativi, interrogherà direttamente quei nameserver, ignorando diversi passaggi nella query DNS. Questo collegamento impedisce le ricerche dai nameserver root e .com (nella nostra ricerca di example.com) e aiuta a risolvere più rapidamente la query DNS.
  2. Se il resolver non ha i record NS, invierà una query ai server TLD (.com nel nostro caso), saltando il root server.
  3. Nel caso improbabile in cui il resolver non abbia record che puntano ai server TLD, invierà quindi una query ai root server. Questo evento si verifica in genere dopo l'eliminazione di una cache DNS.

Scopri cosa differenzia il DNS Cloudflare dagli altri provider DNS.