Il DNS consente agli utenti di collegarsi ai siti Web utilizzando i nomi di dominio anziché gli indirizzi IP. Scopri come funziona il DNS.
Dopo aver letto questo articolo sarai in grado di:
Argomenti correlati
Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.
Copia link dell'articolo
Il Domain Name System (DNS) è la "guida telefonica" di Internet. Le persone accedono alle informazioni online tramite dei nomi di dominio, come ad esempio nytimes.com o espn.com. I browser Web interagiscono tramite indirizzi Internet Protocol (IP). 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 è dotato di indirizzo IP univoco, che altre macchine usano per trovarlo. 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).
Il processo di risoluzione DNS prevede la conversione di un hostname (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, proprio come per trovare una determinata casa si utilizza un indirizzo stradale. Quando un utente desidera caricare una pagina web, deve avvenire 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 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, la ricerca DNS avviene "dietro le quinte" e non richiede alcuna interazione dal computer dell'utente, a parte la richiesta iniziale.
Entrambi i concetti fanno riferimento a dei server (gruppi di server) che sono parte integrante dell'infrastruttura DNS. Ognuno di essi, tuttavia, 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 si trova all'inizio della query DNS, mentre il nameserver autoritativo si trova alla fine.
Il resolver ricorsivo è il computer che risponde a una richiesta ricorsiva da un client, e che impiega del tempo per rintracciare il record DNS. Lo fa formulando 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 mostra un messaggio di errore). Fortunatamente, per rintracciare i record necessari per rispondere a un client i resolver DNS ricorsivi non devono fare formulare richieste multiple; la memorizzazione nella cache è un processo di persistenza dei dati che permette di abbreviare il percorso delle richieste fornendo il record risorsa richiesto in precedenza nella ricerca DNS.
In termini semplici, un server DNS autoritativo è un server che effettivamente detiene ed è responsabile dei record di risorse DNS. Si tratta del server che si trova nell'ultima parte della catena di ricerca DNS che risponderà con il record richiesto, consentendo in definitiva al browser che effettua la richiesta di raggiungere l'indirizzo IP necessario per accedere a un sito o ad altre risorse web. Un nameserver autoritativo può soddisfare le query dai propri dati senza la necessità di eseguirne una da un'altra fonte, in quanto è source of truth finale per alcuni record DNS.
Vale la pena ricordare che nei casi in cui la query riguarda un sottodominio come foo.example.com o blog.cloudflare.com, dopo il nameserver autoritativo verrà aggiunto alla sequenza un ulteriore nameserver, responsabile della memorizzazione del record CNAME del sottodominio.
Esiste 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 datacenter di resolver DNS ricorsivi. Questi resolver consentono di eseguire query in modo semplice e rapido attraverso cluster ottimizzati di sistemi informatici ottimizzati per 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.
Nella maggior parte dei casi, DNS si preoccupa della traduzione di un nome di dominio nell'indirizzo IP appropriato. Per sapere come funziona questo processo, può essere d'aiuto seguire il percorso di una ricerca DNS, dal momento in cui parte da un browser web, viaggia attraverso il processo di ricerca DNS, e poi effettua il percorso inverso. Andiamo a esaminare i singoli passaggi.
Nota: spesso le informazioni di ricerca DNS vengono memorizzate in locale nella cache del computer da cui viene effettuata la query, oppure in remoto nell'infrastruttura DNS. Solitamente, una ricerca DNS consta di otto passaggi, ma quando si memorizzano le informazioni DNS nella cache, il processo di ricerca DNS ne salta alcuni rendendo la ricerca più rapida. L'esempio seguente descrive tutti gli otto passaggi.
Dopo che gli otto passaggi della ricerca DNS avranno restituito l'indirizzo IP per example.com, il browser sarà in grado di formulare la richiesta per la pagina web:
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 nel necessario indirizzo IP.
Nota: una tipica ricerca DNS senza cache includerà sia query ricorsive che iterative.
È importante fare la distinzione 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.
In una tipica ricerca DNS avvengono tre tipi di query. Utilizzando una combinazione di queste query, l'ottimizzazione del processo di risoluzione DNS può determinare 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.
Lo scopo del caching, o memorizzazione nella cache, è quello di archiviare temporaneamente i dati in un certo posto, il che comporta miglioramenti di prestazioni e affidabilità per le richieste dati. La memorizzazione nella cache DNS comporta l'archiviazione dei dati in un luogo più vicino al client richiedente, in modo che la query DNS possa essere risolta più velocemente e si evitino ulteriori query nella catena di ricerca DNS. Ciò migliora i tempi di caricamento e riduce il consumo di larghezza di banda e di risorse CPU. I dati DNS possono essere memorizzati in una pluralità di ubicazioni, ognuna delle quali memorizzerà i record DNS per un determinato intervallo di tempo, stabilito da un time-to-live (TTL).
I browser moderni sono progettati per memorizzare di default nella cache i record DNS per un dato lasso di tempo. Il motivo è abbastanza ovvio: quanto più vicino al browser avviene il caching DNS, meno passaggi dovranno essere eseguiti per controllare la cache e formulare le richieste corrette a un indirizzo IP. Quando viene effettuata una richiesta per un record DNS, la cache del browser è la prima ubicazione che viene controllata.
Su Chrome, puoi vedere lo stato della tua cache DNS andando su chrome://net-internals/#dns.
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 che è 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 verificare la presenza di un 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 provider 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 sia già memorizzata nel proprio livello di persistenza locale.
Il risolutore ricorsivo ha anche funzionalità aggiuntive a seconda dei tipi di record presenti nella cache:
Scopri cosa differenzia il DNS Cloudflare dagli altri provider DNS.