Il DNS

Dns distribuiti


Come detto più volte in precedenza, i DNS sono progettati per fare 2 cose:
  • Accettare richieste da programmi per convertire nomi di dominio in indirizzi IP
  • Accettare richieste da altri DNS per convertire nomi di dominio in indirizzi IP

Quando una di queste due richieste arriva, il DNS può fare diverse cose:
  • Può rispondere alla richiesta se conosce l'IP address del dominio
  • Può contattare altri DNS e girare a loro la richiesta
  • Può rispondere "Non conosco l'IP address del dominio richiesto ma conosco quello di un DNS che lo sa"
  • Può rispondere con un messaggio di errore se il dominio richiesto è inesistente o errato
Quando digitiamo un indirizzo URl nel nostro browser, la prima cosa che il programma deve fare per accedere a quella pagina è trovare il suo indirizzo IP. Per far questo è necessario usare un server DNS che può essere impostato come parametro fisso nelle opzioni del browser oppure settato in modo dinamico dal ISP al momento della connessione.

Supponiamo di aver digitato nel nostro browser www.comefunziona.net. Il browser contatterà il server DNS dicendogli "Ho bisogno dell'indirizzo IP del dominio www.comefunziona.net". Il DNS per prima cosa controllerà se nella sua cache c'è l'IP address del sito richiesto.

Se lo trova lo restituisce immediatamente al browser ed il suo lavoro finisce. In caso contrario contatterà uno dei cosiddetti root name servers. Questi server (al momento ne esistono 13) conoscono gli indirizzi IP dei DNS che gestiscono i domini di primo livello. Nel nostro esempio quindi, il DNS contatterà il server dei domini .net che l suo interno conterrà il dominio che stiamo cercando oppure un altro DNS a cui girare la richiesta. Una volta trovato l'IP address del dominio comefunziona.net, questo verrà ritornato dal root server fino al nostro DNS che provvederà poi a comunicarlo al browser.


L'albero di ricerca usato dai server DNS nell'esempio precedente

Se avete compreso l'esempio, avrete capito l'importanza fondamentale dei root servers senza i quali tutta l'infrastruttura di Internet non sarebbe in grado di funzionare. Ci sono 13 root server in tutto il mondo, 10 negli Stati Uniti, 2 in Europa (Londra e Stoccolma) ed uno a Tokio.

Ecco la lista dei server, con relativo indirizzo IP:

A.ROOT-SERVERS.NET. IP=198.41.0.4
B.ROOT-SERVERS.NET. IP=128.9.0.107
C.ROOT-SERVERS.NET. IP=192.33.4.12
D.ROOT-SERVERS.NET. IP=128.8.10.90
E.ROOT-SERVERS.NET. IP=192.203.230.10
F.ROOT-SERVERS.NET. IP=192.5.5.241
G.ROOT-SERVERS.NET. IP=192.112.36.4
H.ROOT-SERVERS.NET. IP=128.63.2.53
I.ROOT-SERVERS.NET. IP=192.36.148.17
J.ROOT-SERVERS.NET. IP=198.41.0.10
K.ROOT-SERVERS.NET. IP=193.0.14.129
L.ROOT-SERVERS.NET. IP=198.32.64.12
M.ROOT-SERVERS.NET. IP=202.12.27.33

Praticamente con una struttura di DNS distribuiti, viene creato una sorta di albero binario in cui ricercare i domini.