In dettaglio:

A monte di tutto ci sono i ROOT DNS (il primo anello di Internet) che
detengono le informazioni relative a tutti i domini di primo livello (.com, .net, .org, .it, .fr, .info, ecc) e i riferimenti delle relative Authority che li gestiscono (Internic per .com e .net, ISOC per .org, Italian Registration Authority per .it, ecc.).

Poi ci sono i DNS delle varie Registration Authority che detengono le
informazioni relative ai dati dei DNS autoritativi per ogni specifico dominio di secondo livello (es. html.it).

Poi ci sono i DNS autoritativi per ogni dominio che rispondono alle
richieste per quel dominio e ne forniscono i record relativi (posta, web, ftp ecc.), questi DNS sono gestiti da chi ospita il dominio (provider di hosting)

Infine ci sono i DNS del nostro provider di connessione ad internet che utilizziamo per la navigazione (non autoritativi) e che alla nostra richiesta per un dominio seguono la seguente procedura:

1) Interrogano i ROOT DNS per sapere quale e' l'Authority che gestisce quel TLD (Top Level Domain)

2) Ottenuta questa informazione, interrogano i DNS dell'Authorty competente (es nic.it) sapere quali sono i DNS autoritativi per quel determinato dominio.

3) Quindi interrogano questi ultimi e ci forniscono l'IP di destinazione in base al tipo di servizio da noi richiesto (http, FTP, POP3, SMTP, ecc.)

Esempio pratico:

io voglio vedere il sito www.html.it

Quando chiamo questo link i DNS del mio provider di connessione ad internet interrogano i ROOT servers che rispondono all'indirizzo x.ROOT-SERVERS.NET (x e' una lettera variabile da A a M)

Questi ROOT DNS rispondono quindi che tutti i domini .it sono gestiti dai seguenti DNS (un primario e tanti secondari):

Name=it
Name Server=NAMESERVER.CNR.it
Name Server=DNS.NIC.it
Name Server=DNS2.IT.NET
Name Server=NS2.PSI.NET
Name Server=NS.RIPE.NE
Name Server=SERVER2.INFN.it
Name Server=DNS2.IUNET.it
Name Server=IT2.MIX-IT.NET

NOTA: come vedi i DNS autoritativi per la gestione ROOT DNS e DNS di primo livello sono sempre molti e sono disclocati su piu' contimenti per fare in modo che almeno uno sia comunque sempre raggiungibile qualsiasi disastro possa accadere.

Andiamo avanti...

I DNS del nostro provider interrogano quindi a partire dal primo in lista i DNS dell'Authority Italiana (NIC.IT) che rispondono nel caso di html.it quanto segue:

il dominio html.it ha i seguenti DNS autoritativi:

dns1.grapesnet.net
dns2.grapesnet.net

Quindi i DNS del nostro provider (che vitaccia...) vanno ad interogare i DNS di cui sopra (x.graspenet.net) a partire dal primo in lista e ottengono finalmente i dati che ci servono:

NOTA BENE:
non e' che tutte le volte che voglio visitare un dominio i DNS del mio
provider ripetono la trafila descritta sopra, per accelerare il processo esiste una "Cache DNS " che mantiene in locale (presso il nostro provider), per un prefissato periodo di tempo, le informazioni richieste.

Quindi se io o un'altro utente richiediamo lo stesso dominio il provider verifica prima se esistono gia' i dati relativio a questo dominio nella sua cache locale, verifica poi se questi dati non sono scaduti, se cio' e' vero ci fornisce i dati che ha memorizzato nella sua cache, se invece il tempo di vita del dati nella cache (TTL) e' scaduto o il dominio non risulta presente ripete tutta la trafila da capo (ROOT, Authority, ecc).

Un parametro particolare nella configurazione dei DNS autoritativi di ogni specifico dominio che serve per determinare per qaunto tempo le informazioni relative allo specifico dominio devono vivere nella cache locale e' il TTL (Time To Live), questo parametro e' settato a piacere (entro certi limiti imposti) dal provider che ospita il dominio.