[Articolo] Il DNS: come funziona la risoluzione dei nomi


Difficoltà articolo (0->10): 4

Oggi vediamo cosa succede quando sulla barra del browser scriviamo il nome di un sito, come ad esempio http://www.google.it, e quale arcano procedimento ci permette di collegarci realmente al sito desiderato.

google.it
Apertura di http://www.google.it da browser.

Alla base di tutto il processo si trova il protocollo DNS, il cui acronimo è Domain Name System, che è il sistema che si occupa di tradurre il nome completo di una risorsa di rete (URL) nel relativo indirizzo IP, in modo univoco. Dunque, questo protocollo ricopre un ruolo fondamentale per Internet e più in generale per una buona parte dei servizi di rete.

Ricordiamo che ogni dispositivo o risorsa collegata ad una rete (laptop, smartphone, sito web, server, …) deve possedere un indirizzo numerico chiamato indirizzo IP, nella forma x.x.x.x e che identifica in modo univoco quel dispositivo, un po’ come i numeri telefonici sono associati in modo univoco ad un telefono (non possono esistere 2 cellulari con lo stesso numero!).

Prendiamo un esempio di navigazione su Internet: vogliamo aprire nel browser la pagina di Google (www.google.it), ma cosa succede realmente? Il nostro sistema operativo manderà una richiesta al server DNS: “Ehi, devo andare su http://www.google.it e non conosco il suo indirizzo IP, qual’è?”. Il server DNS ci risponderà: “L’indirizzo IP di http://www.google.it è 173.194.35.23, puoi usare questo!”. Dunque, il nostro sistema operativo userà questo indirizzo IP per contattare il sito (il server web che gestisce il sito) e richiedere la pagina desiderata.

dns-richiesta-google
Risoluzione http://www.google.it in indirizzo IP.

Molto famosi sono i server DNS di Google i quali hanno indirizzi che possono essere facilmente memorizzabili, e che sono liberamente utilizzabili da ciascuno di noi:

  • IP del DNS primario: 8.8.8.8
  • IP del DNS secondario 8.8.4.4

Nulla vieta di usare altri server DNS che non siano quelli di Google. Per le linee Internet casalinghe, tipicamente viene usato un server DNS del proprio fornitore di connettività, che ci viene assegnato automaticamente dal fornitore:

Config DNS ADSL
Parametri di rete forniti in automatico da un fornitore italiano di rete.

E’ chiaramente comprensibile che il DNS sia un sistema fondamentale per il corretto funzionamento di Internet, senza il quale ci risulterebbe molto più difficoltosa la navigazione e l’utilizzo di moltissimi sistemi. Pensate per esempio a dover ricordare anche solamente alcuni dei vostri siti preferiti tramite indirizzo IP in questo modo:

Tutto bello, ma ora se vogliamo trovare l’indirizzo IP associato ad un nome, come posso fare? Qual’è il procedimento inverso? Semplice, ci sono vari strumenti di sistema che possono aiutarci in questo, tra cui:

  • ping
  • nslookup
  • dig (su Linux)
ping www.facebook.it
ping su Windows.
nslookup www.facebook.it
nslookup su Windows.

Adesso che abbiamo visto cos’è e come funziona il DNS, andiamo un po’ più nel dettaglio per i curiosi ;-)…

Abbiamo detto finora che il server DNS esaudisce ogni nostra richiesta traducendo un nome in indirizzo IP, questo è vero, ma non del tutto. Quando facciamo una richiesta, il primo ad essere contattato non è il server DNS, ma un file specifico all’interno del proprio sistema operativo, qualunque sia il sistema, Windows, MacOS, o Linux. Il file in questione si chiama file hosts, su Windows si trova  di default all’interno della cartella di sistema “C:\Windows\System32\drivers\etc\” mentre su Linux in “/etc/“. Pertanto, quando vogliamo aprire una determinata pagina web, prima viene controllato questo file, per vedere se l’URL è contenuto al suo interno e:

  • se il file hosts contiene la corrispondenza URL -> IP, allora viene usato questo indirizzo IP per aprire la pagina desiderata.
  • se il file hosts non contiene l’URL, allora viene contattato il server DNS a cui viene chiesto di risolvere l’URL in indirizzo IP.

Vediamo com’è fatto il file hosts, e ricordiamo che possiamo divertirci inserendo al suo interno tutto ciò che vogliamo, se abbiamo necessità particolari.

Windows file hosts
File hosts su Windows.

Il file hosts ha una sua formattazione, come spiegato all’inizio del file una volta aperto, e viene dunque consultato prima di inoltrare la

Dobbiamo sapere inoltre che l’associazione di un nome con un indirizzo IP può non essere singola, ma un nome potrebbe avere associati più indirizzi IP. Come mai? Cosa succede allora? Questo avviene in genere per siti importanti, relativi ad enti o grandi realtà, quando dietro di essi ci sono non un pc o comunque una solo server, ma spesso molti sistemi/server differenti che hanno la funzionalità di:

  • bilanciatori di carico
  • ridondanza

Immaginate se dietro http://www.google.it ci fosse un solo server a rispondere alle richieste di milioni di persone che si collegano. Cosa succederebbe se dovesse avere un problema o un blocco? Saremmo tutti fermi non potendo più aprire la pagina di Google! Ad esempio al sito di Ducati corrispondono 2 indirizzi IP principali:

nslookup www.ducati.it
IP multipli associati ad un sito.

Con questo articolo abbiamo visto solo la punta dell’iceberg del protocollo DNS e del suo funzionamento, ma per approfondimenti ecco alcuni link:

roghan

Annunci

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...