Premessa sui DNS:Con questa guida cercheremo di descrivere in modo semplice il funzionamento dei server DNS, i quali rendono la nostra navigazione in internet molto facile.
Se non fosse per loro infatti, dovremo ricordarci non semplici nomi a dominio come ad esempio
www.prozone.it, ma serie di numeri – i famosi indirizzi IP – come
217.64.202.205.
Il DNS e’ un sistema di database distribuito mirato alla gestione delle informazioni dell’insieme di reti TCP/IP interconnesse a livello mondiale; tale insieme di reti e’ noto come "Internet". I dati gestiti dal DNS sono essenzialmente dei nomi a dominio e gli indirizzi IP delle macchine connesse alla rete con la loro reciproca corrispondenza. Per ogni nome a dominio ci deve essere una corrispondenza nei due sensi: dal nome all'indirizzi (la cosidetta "risoluzione diretta") e da ogni indirizzo al nome (la "risoluzione inversa").
I DNS quindi, non fanno altro che trovare e restituirci la corrispondenza tra il nome a dominio e il relativo indirizzo IP, indirizzando la nostra navigazione verso il sito web desiderato.
Come avviene questo nel dettaglio? Scopriamolo assieme:
Come funzionano i DNS?Root DNS. A monte di tutta la rete ci sono i Root DNS che rappresentano la base di internet. Questi detengono le informazioni relative a tutti i domini di primo livello come i
.com, .net, .org, .it, .fr, .info, ecc. e i riferimenti delle relative Authority che li gestiscono come Internic per .com e .net, ISOC per i .org, Italian Registration Authority per .it, e via dicendo.
DNS delle Registration Authority o DNS di primo livello. Questi DNS sono sotto la gestione delle varie Registration Authority, possono essere dislocati in diverse parti del mondo e detengono le informazioni relative i dati dei DNS autoritativi per ogni specifico dominio di secondo livello come ad esempio
www.prozone.it.
DNS autoritativi. Questi sono i DNS che contengono i dati specifici del nome a dominio, rispondono alle richieste per quel dominio e ne forniscono i record relativi (web, mail, ftp, ecc.). Questi DNS sono gestiti da chi ospita il nome a dominio, provider di hosting come ad esempio la
Tophost.
DNS del provider di connessione. Questi sono i DNS che ci vengono assegnati dal nostro provider di connessione internet e che utilizziamo per navigare. Non sono autoritativi in quanto non contengono le informazioni ‘ufficiali’ del nome a dominio che cerchiamo e funzionano in questo modo:
- Interrogano i Root DNS per sapere quale e' l'Authority che gestisce quel dominio di primo livello.
- Ottenuta questa informazione, interrogano i DNS della Registration Authority competente per sapere quali sono i DNS autoritativi per quel determinato dominio.
- A questo punto interrogano i DNS autoritativi che forniscono, per il nome a dominio in questione, l’indirizzo IP di destinazione per il tipo di servizio richiesto (http, ftp, pop3, mail, ecc.).
Esempio praticoVogliamo vedere il sito
http://www.prozone.it/ Quando inserisco questo indirizzo nel mio browser e premo il tasto invio, i DNS del mio provider di connessione interrogano i “Root DNS” che rispondono all'indirizzo
x.root-servers.net dove “x” e' una lettera che può essere variabile dalla “a” alla “m”.
Query: IT. Query type: Any record
Recursive query: Yes Authoritative answer: No
Query time: 46 ms. Server name: dnsti.interbusiness.it
Answer:
Authority:
. 3600000 NS j.root-servers.net.
. 3600000 NS k.root-servers.net.
. 3600000 NS l.root-servers.net.
. 3600000 NS m.root-servers.net.
. 3600000 NS a.root-servers.net.
. 3600000 NS b.root-servers.net.
. 3600000 NS c.root-servers.net.
. 3600000 NS d.root-servers.net.
. 3600000 NS e.root-servers.net.
. 3600000 NS f.root-servers.net.
. 3600000 NS g.root-servers.net.
. 3600000 NS h.root-servers.net.
. 3600000 NS i.root-servers.net.
Additional:
a.root-servers.net. 13284 A 198.41.0.4
b.root-servers.net. 13284 A 192.228.79.201
c.root-servers.net. 13284 A 192.33.4.12
d.root-servers.net. 13284 A 128.8.10.90
e.root-servers.net. 13284 A 192.203.230.10
f.root-servers.net. 13284 A 192.5.5.241
g.root-servers.net. 13284 A 192.112.36.4
h.root-servers.net. 13284 A 128.63.2.53
i.root-servers.net. 13284 A 192.36.148.17
j.root-servers.net. 13284 A 192.58.128.30
k.root-servers.net. 13284 A 193.0.14.129
l.root-servers.net. 13284 A 198.32.64.12
m.root-servers.net. 13284 A 202.12.27.33
Questi “Root DNS” rispondono quindi che tutti i domini “.it” sono gestiti dai seguenti DNS dove il primo è primario e tutti gli altri sono secondari:
Query: IT. Query type: Any record
Recursive query: Yes Authoritative answer: No
Query time: 172 ms. Server name: h.root-servers.net
Answer:
Authority:
it. 172800 NS nameserver.cnr.it.
it. 172800 NS dns.nic.it.
it. 172800 NS dns2.it.net.
it. 172800 NS ns.ripe.net.
it. 172800 NS server2.infn.it.
it. 172800 NS dns2.iunet.it.
it. 172800 NS auth2.dns.cogentco.com.
it. 172800 NS it2.mix-it.net.
Additional:
nameserver.cnr.it. 172800 A 194.119.192.34
dns.nic.it. 172800 A 193.205.245.5
dns2.it.net. 172800 A 151.1.2.1
ns.ripe.net. 172800 A 193.0.0.193
server2.infn.it. 172800 A 131.154.1.3
dns2.iunet.it. 172800 A 192.106.1.31
auth2.dns.cogentco.com. 172800 A 66.28.0.30
it2.mix-it.net. 172800 A 217.29.76.4
Da queste due schermate e’ possibile notare che sia i “Root DNS” che i “DNS delle Registration Authority” sono disclocati su diversi continenti, e diverse reti, così che nel caso di guasto di un singolo server o di non raggiungibilità di una certa rete non vengano ‘oscurati’ in un colpo decine di migliaia di siti web.
Ma andiamo avanti, ora i DNS del nostro provider interrogano quindi a partire dal primo in lista i “DNS della Registration Authority” che nel caso di prozone.it rispondono come segue:
Query: prozone.it. Query type: Any record
Recursive query: Yes Authoritative answer: No
Query time: 47 ms. Server name: nameserver.cnr.it.
Answer:
Authority:
prozone.it. 86400 NS ns2.th.seeweb.it.
prozone.it. 86400 NS ns1.th.seeweb.it.
Ora che finalmente hanno trovato i DNS autoritativi per il nome a dominio vanno ad interogare i DNS di cui sopra (ns1.th.seeweb.it e ns2.th.seeweb.it) a partire dal primo in elenco, ottenendo l’agognato indirizzo IP che ci serviva.
Query: prozone.it. Query type: Any record
Recursive query: Yes Authoritative answer: Yes
Query time: 2329 ms. Server name: ns1.th.seeweb.it
Answer:
prozone.it. 172800 SOA ns1.th.seeweb.it.
hostmaster.seeweb.it.
2004100500; serial
86400; refresh (1 day)
7200; retry (2 hours)
2592000; expire (30 days)
86400; minimum (1 day)
prozone.it. 172800 NS ns2.th.seeweb.it.
prozone.it. 172800 NS ns1.th.seeweb.it.
prozone.it. 172800 MX 20 smtp-f3.seeweb.it.
prozone.it. 172800 MX 20 smtp-f4.seeweb.it.
prozone.it. 172800 MX 10 m-01b.th.seeweb.it.
prozone.it. 172800 MX 20 smtp-f1.seeweb.it.
prozone.it. 172800 MX 20 smtp-f2.seeweb.it.
Additional:
ns1.th.seeweb.it. 172800 A 217.64.201.170
ns2.th.seeweb.it. 172800 A 217.64.202.202
m-01b.th.seeweb.it. 172800 A 217.64.202.206
Cache DNSNon sempre accade quanto descritto qui sopra perché i DNS dei provider di connessione hanno una “cache DNS” dove sono memorizzate le risoluzioni degli ultimi nomi a dominio e/o dei nomi a dominio più ricercati.
Quindi se un altro utente ha richiesto prima di noi un certo nome a dominio, quando sarà il nostro turno i DNS del nostro provider di accesso a internet verificheranno prima nella propria cache se sono presenti i dati di tale richiesta, dopodichè – se l’esito è negativo – avvieranno la procedura sopra descritta.