Il protocollo DNS

L’operazione di conversione da nome a indirizzo IP è detta risoluzione DNS, la conversione da indirizzo IP a nome è detta risoluzione inversa.

Internet

Internet si basa interamente su un sistema numerico per il collegamento tra computer sparsi in tutto il mondo, questi numeri vengono chiamati indirizzi IP.
Gli indirizzi IP nel vecchio indirizzamento ipv4 erano composti da 4 numeri separati dal punto, ogni numero va da 0 a 255, esempio: 88.99.66.66.
Il nuovo indirizzamento ipv6 estende il limite massimo di dispositivi collegati ad internet dai 4.294.967.296 di ipv4 a 2^128 (un numero enorme).
Ben presto ci si accorse che era impossibile ricordare l’indirizzo IP associato ad ogni sito web, per questo venne creato il servizio DNS, acronimo di domain name system.
Il DNS permette quindi di associare ad un nome, il corrispondente indirizzo IP, questa operazione potrebbe sembrare banale, ma in realtà è una cosa piuttosto complessa da capire per chi è alle prime armi e deve configurare un server DNS.

Top level domain (TLD)

Innanzi tutto quando ad esempio scriviamo nel nostro browser www.google.it, il computer andrà ad interrogare il DNS server impostato sul PC chiedendo di fornire l’IP di www.google.it, fin qui, tutto sembra semplice.
Lato server però, quello che avviene è lo spezzamento ed il rovesciamento della stringa www.google.it in 3 pezzi: it google e www.
Il top level domain in questo caso è IT, in altri casi potrebbe essere COM, NET, ORG ecc…
A questo punto il server DNS, chiede ai ROOT SERVER a chi deve rivolgersi per sapere un indirizzo per il TLD IT.

[box type=”info”]

I root server sono dei server sparsi per tutto il mondo che tengono in piedi l’intera internet, tutto parte da loro, se ipoteticamente, si guastassero tutti insieme, internet non funzionerebbe più a nessuno nell’arco di 12/24 ore.
Se siete curiosi, sul sito www.root-servers.org trovate tutti i root server del mondo con tanto di cartografia da cui possiamo vedere che ne abbiamo un paio anche in Italia 🙂

[/box]

A questo punto il root server ci risponde dicendo quali server possiamo interrogare per sapere l’indirizzo associato ad un dominio che termina in IT e il server DNS li contatterà per sapere chi gestisce, in questo caso: google.it.

Ricorsivamente i server risponderanno con gli indirizzi da contattare per sapere chi gestisce il dominio www.google.it, i nomi dominio posso infatti essere multilivello: google.it è di secondo livello, www.google.it è di terzo livello, pippo.pluto.qui.quo.qua.com è di sesto livello 🙂

Quindi in sostanza, volevo farvi capire, che quando scrivete www.google.it sul vostro browser, in realtà… partono delle connessioni per mezzo mondo!
Ok, non partono dal vostro computer ma dal vostro server DNS che avete impostato sul PC, tuttavia è possibile installare un server DNS anche localmente (anche se è piuttosto inutile).
Ecco un’immagine delle connessioni che facciamo ogni volta che andiamo su un sito, senza accorgercene:
dns

Tutto questo, avviene in maniera completamente trasparente all’utilizzatore del PC 🙂

ed ecco infine un output in “linguaggio macchina” di ciò che avviene lato server DNS digitando www.ciamberlini.it:

[~]# dig +trace www.ciamberlini.it

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> +trace www.ciamberlini.it
;; global options: +cmd
.                       3551    IN      NS      m.root-servers.net.
.                       3551    IN      NS      b.root-servers.net.
.                       3551    IN      NS      l.root-servers.net.
.                       3551    IN      NS      h.root-servers.net.
.                       3551    IN      NS      f.root-servers.net.
.                       3551    IN      NS      c.root-servers.net.
.                       3551    IN      NS      e.root-servers.net.
.                       3551    IN      NS      a.root-servers.net.
.                       3551    IN      NS      g.root-servers.net.
.                       3551    IN      NS      i.root-servers.net.
.                       3551    IN      NS      j.root-servers.net.
.                       3551    IN      NS      k.root-servers.net.
.                       3551    IN      NS      d.root-servers.net.
;; Received 512 bytes from 194.209.228.50#53(194.209.228.50) in 53 ms

it.                     172800  IN      NS      a.dns.it.
it.                     172800  IN      NS      c.dns.it.
it.                     172800  IN      NS      m.dns.it.
it.                     172800  IN      NS      r.dns.it.
it.                     172800  IN      NS      dns.nic.it.
it.                     172800  IN      NS      nameserver.cnr.it.
;; Received 419 bytes from 199.7.83.42#53(199.7.83.42) in 188 ms

ciamberlini.it.         10800   IN      NS      dns.aziendeitalia.com.
ciamberlini.it.         10800   IN      NS      dns3.aziendeitalia.com.
ciamberlini.it.         10800   IN      NS      dns4.aziendeitalia.com.
;; Received 109 bytes from 194.0.1.22#53(194.0.1.22) in 93 ms

www.ciamberlini.it.     600     IN      CNAME   ciamberlini.it.
ciamberlini.it.         600     IN      A       46.231.28.17
ciamberlini.it.         600     IN      NS      dns.aziendeitalia.com.
ciamberlini.it.         600     IN      NS      dns3.aziendeitalia.com.
ciamberlini.it.         600     IN      NS      dns4.aziendeitalia.com.
;; Received 187 bytes from 212.239.40.117#53(212.239.40.117) in 26 ms

Rispondi

Leggi articolo precedente:
Database documentali: RavenDB

RavenDB è un database che non utilizza il modello relazionale come SQL server o Oracle.

Chiudi