Domain Name System e risoluzione DNS: concetti generali Panoramica sul funzionamento del Domain Name System e dei suoi componenti principali: DNS Recursor, Root nameserver, TLD nameserver, Authoritative nameserver

The Missing Link: A Beginner's Guide to Building Quality Links

Dopo aver parlato di URL Rewrite e HTTP Redirect in termini generali e nei loro utilizzi pratici, in questo articolo andremo ad approfondire un concetto fondamentale alla base del funzionamento della rete Internet, nonché di tutte le principali reti basate sulla suite di protocolli TCP/IP: il Domain Name System, più noto come DNS.

Gli argomenti trattati in questo articolo fanno parte del corso di formazione per Web Administrator organizzato da Ryadel per privati e aziende: per maggiori informazioni, consulta questa pagina.

Definizione

Il termine Domain Name System (più noto come DNS, in italiano sistema dei nomi di dominio) indica un sistema utilizzato per assegnare dei nomi identificativi ai singoli host (nodi) che fanno parte di una rete. Questi "nomi di dominio" sono una delle principali caratteristiche della rete Internet, in quanto consentono di identificare ciascun host in modo estremamente più leggibile e mnemonico rispetto a un indirizzo IP numerico.

Per fare un rapido esempio, basti pensare al motore di ricerca più diffuso e famoso su internet: se vogliamo memorizzare la home page di Google, ad esempio per inserirla nella barra degli indirizzi di un browser, un nome di dominio come www.google.it è certamente più semplice di un indirizzo IP come 142.250.184.35, anche se di fatto entrambe le notazioni si riferiscono al medesimo host.

Il Domain Name System (DNS) è dunque una sorta di "guida telefonica" della rete, che consente di accedere ai singoli host tramite nomi facilmente leggibili e memorizzabili, che vengono poi "convertiti" negli indirizzi IP che consentono ai browser di collegarsi ai server e caricare le relative risorse (pagine HTML, contenuti multimediali, etc). Il nome di dominio è quindi una sorta di "alias" di un indirizzo IP: l'operazione di conversione dal nome di dominio all'indirizzo IP è detta risoluzione DNS, mentre la conversione dall'indirizzo IP al nome di dominio è detta risoluzione inversa.

Nello specifico, il processo di risoluzione DNS prevede la conversione di un hostname (come ad esempio www.example.com) in un indirizzo IP compatibile con il computer (come ad esempio 192.168.1.1); l'indirizzo IP risultante, in quanto univocamente assegnato a un dispositivo presente sulla rete, consente di connettersi a tale dispositivo, proprio come per trovare una determinata casa si utilizza un indirizzo stradale.

Componenti del Domain Name System

Per comprendere il funzionamento del processo che consente di effettuare la risoluzione DNS dei nomi di dominio è necessario conoscere i quattro diversi componenti che si occupano di realizzare tale conversione, a partire dalla richiesta iniziale (la cosiddetta Query DNS), tipicamente effettuata da un client come un browser web. Questi sono, nell'ordine: DNS recursor, Root nameserver, TLD nameserver e Authoritative nameserver.

DNS recursor

Il DNS recursor, noto anche come recursive resolver, è un server progettato per ricevere query dai computer client attraverso applicazioni client, come ad esempio i browser web: è dunque il destinatario della Query DNS che dà inizio al processo di risoluzione. Per comodità, possiamo pensare al DNS recursor come a un bibliotecario a cui viene chiesto di andare a trovare un libro particolare in un qualche punto di una biblioteca. Questa attività di ricerca, a seconda dei casi - e di come è configurato il "bibliotecario" - può avvenire tramite un'attività di ricerca diretta oppure tramite il recupero delle informazioni necessarie da una cache, sfruttando quindi attività analoghe compiute poco tempo prima.

Nella maggior parte dei casi, il DNS recursor è gestito dal provider di servizi internet dell'utente: questo significa che, quando ci connettiamo con un determinato provider - ad esempio Fastweb - utilizziamo il DNS recursor di Fastweb, che potrebbe avere prestazioni o dinamiche di funzionamento diverse da quello di un altro provider. Ad esempio, potrebbe avere dei dati in cache più o meno aggiornati, che potrebbero determinare una risoluzione DNS diversa rispetto a quanto previsto.

Root nameserver

Per risolvere la query DNS, il DNS recursor - come ogni bibliotecario che si rispetti - ha bisogno di consultare un catalogo: questo è precisamente il ruolo del Root nameserver, una sorta di catalogo generale della biblioteca nel quale sono indicati i diversi scaffali che contengono i libri, ovvero i nomi di dominio e i loro indirizzi IP.

Ad oggi, questo catalogo è formato da 13 Root nameserver che operano a livello mondiale e che contengono le informazioni relative a tutti i domini della rete internet; i root nameserver sono gestiti da una organizzazione no-profit chiamata Internet Corporation for Assigned Names and Numbers (ICANN), ovviamente, il loro indirizzo è noto a qualsiasi DNS recursor.

IMPORTANTE: I root nameserver sono 13, ma questo numero non è riferito alle singole macchine server di cui si compone il sistema: ciascun root nameserver è infatti presente in molteplici copie sparse in tutto il mondo, accessibili in modo centralizzato e trasparente grazie all'utilizzo di una tecnologia di anycast routing. Il numero totale di istanze di root nameserver presenti a livello mondiale era pari a 632 nell'ottobre 2016 (oggi sono probabilmente molte di più).

Il risultato fornito dal root nameserver è il TLD nameserver relativo all'estensione del dominio (com, net, org, etc), che rappresenta il passo successivo del processo di risoluzione.

TLD nameserver

TLD Nameserver è l'acronimo di Top-Level Domain Nameserver, ovvero "server dei nomi di dominio di primo livello". Ciascun TLD nameserver contiene le informazioni per tutti i nomi di dominio che condividono una estensione di dominio comune, come ad esempio com, net, o qualsiasi cosa venga dopo l'ultimo punto in un URL. Ad esempio, se l'oggetto della nostra query DNS è google.it, il Root nameserver restituirà come risultato un TLD nameserver dedicato agli indirizzi che terminano con it.

Continuando la metafora della libreria, il TLD nameserver può essere considerato come uno specifico scaffale di libri di una biblioteca, che consente al nostro bibliotecario di raggiungere tutti i librii che condividono il medesimo genere (ovvero la stessa estensione di dominio).

La gestione dei nameserver TLD è affidata alla Internet Assigned Numbers Authority (IANA), che a sua volta è una filiale di ICANN. La IANA suddivide i server TLD in due gruppi principali:

  • Domini di primo livello generici: si tratta di domini che non sono specifici del paese (com, org, net, edu, gov, etc)
  • Domini di primo livello con codice paese: includono tutti i domini specifici di un paese o stato (uk, us, ru, jp, etc)

Vi è poi una terza categoria, dedicata ai domini dell'infrastruttura (come ad esempio arpa) che oggi non vengono praticamente più utilizzati e che ha quindi un mero interesse storico.

Authoritative nameserver

Una volta che il nostro DNS resolver riceve le informazioni relative allo "scaffale" (ovvero all'estensione di dominio) dal TLD nameserver, può finalmente accedere all'ultimo passaggio necessario per completare il processo di risoluzione DNS: il nameserver autoritativo, che contiene le informazioni specifiche per il dominio che occorre risolvere (ad es google.it) e può quindi fornire un risultato di ricerca concreto. In altre parole, è il "libro" che contiene le informazioni che abbiamo bisogno di recuperare.

Questo risultato può essere, a seconda dei casi:

  • Un indirizzo IP, se il nome di dominio oggetto della ricerca è associato direttamente a un indirizzo IP (ad esempio tramite un Record A).
  • Un altro nome di dominio, se il nome di dominio oggetto della ricerca è configurato come alias di un altro nome di dominio (ad esempio tramite un Record CNAME).

Nel primo caso la query DNS è finita, mentre nel secondo caso il DNS recursor dovrà effettuare una nuova query DNS per risolvere il dominio oggetto della ricerca, e così via, fino a recuperare un indirizzo IP; questa ricerca "ricorsiva" è il motivo per cui il DNS recursor (o recursive resolver) è chiamato in questo modo.

Esempio di richiesta DNS

Ora che conosciamo i quattro componenti principali che consentono di risolvere una query DNS, proviamo a elencare i singoli passaggi in cui si svolge il processo di risoluzione:

  1. L'utente digita "google.it" in un browser. La query DNS viene inoltrata attraverso Internet ed affidata al DNS resolver fornito dall'internet provider.
  2. Il DNS resolver interroga un Root nameserver per recuperare l'indirizzo di un TLD nameserver che possa gestire la query.
  3. Il Root nameserver risponde al DNS resolver fornendo l'indirizzo di un TLD Nameserver dedicato alla gestione dei domini che terminano con "it", e che dunque memorizza le informazioni per quella specifica estensione di dominio.
  4. Il DNS resolver riceve questa informazione e invia la query DNS al TLD Nameserver ricevuto dal Root nameserver.
  5. Il TLD nameserver risponde con l'indirizzo IP dell'Authoritative nameserver relativo al nome di dominio "google.it".
  6. Il DNS resolver riceve questa informazione e invia la Query DNS query all'Authoritative nameserver del nome di dominio "google.it".
  7. L'Authoritative nameserver risponde con (A) l'indirizzo IP relativo al nome di dominio "google.it" (in caso di Record A), oppure (B) il nome di dominio di cui "google.it" è configurato come alias (in caso di Record CNAME). Nel primo caso (A) il DNS resolver ha recuperato l'indirizzo IP e si passa quindi al punto 8; in caso contrario (B) il DNS resolver si riparte dal punto 1, effettuando una query DNS aggiuntiva sul nome di dominio recuperato, e così via in modo ricorsivo, fino a quando non si ottiene un indirizzo IP.
  8. Il DNS resolver risponde al browser comunicando l'indirizzo IP del dominio richiesto inizialmente.
IMPORTANTE: spesso i risultati (totali o parziali) di una query DNS vengono memorizzati nella cache del computer da cui viene effettuata la query, oppure nella cache dei server che compongono l'infrastruttura DNS. In quei casi la query DNS potrebbe "saltare" alcuni degli otto passaggi descritti sopra, rendendo la ricerca più rapida ma anche "meno aggiornata".

Conclusioni

La nostra panoramica sul Domain Name System può dirsi conclusa: nel prossimo articolo ci dedicheremo ad approfondire il concetto di Record DNS, con particolare riguardo al funzionamento dei Record A e ai Record CNAME che abbiamo menzionato.

 

About Ryan

IT Project Manager, Web Interface Architect e Lead Developer di numerosi siti e servizi web ad alto traffico in Italia e in Europa. Dal 2010 si occupa anche della progettazione di App e giochi per dispositivi Android, iOS e Mobile Phone per conto di numerose società italiane. Microsoft MVP for Development Technologies dal 2018.

View all posts by Ryan

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.