| Tecnologia di Internet | ||||||||||||||||
|
||||||||||||||||
| Livello OSI di riferimento: applicazione. | Gli indirizzi IP, nella loro forma numerica binaria o decimale, sono più adatti alle macchine che agli uomini: sono difficili da ricordare e complessi da scrivere. Per questo motivo alle macchine vengono assegnati dei nomi più facilmente memorizzabili, come
|
|||||||||||||||
|
|
||||||||||||||||
| Per far corrispondere ad un nome di questo tipo un indirizzo IP è necessario un database o almeno una tabella di questo tipo | ||||||||||||||||
|
||||||||||||||||
|
Naturalmente non è obbligatorio utilizzare i nomi. Se volete collegarvi al server web del governo italiano potete battere (cliccare) il nome o semplicemente lindirizzo IP Per motivi che approfondiremo in questa sezione, il secondo metodo è più veloce, perché evita linterrogazione di un name server. Provare per credere. Durante gli anni 70, quando ARPANET era una piccola e felice comunità di alcune centinaia di nodi, la tabella che consentiva di tradurre ogni nome di macchina nel rispettivo indirizzo IP numerico era contenuta in un unico file, HOSTS.TXT. Questo file veniva mantenuto al NIC (Network Information Center) dello Stanford Research Institute di Menlo Park, in California. Tipicamente gli amministratori delle varie reti spedivano via mail le modifiche da fare alla tabella, e periodicamente scaricavano la tabella aggiornata dal computer del NIC. Con la crescita di ARPANET, in particolare quando ARPANET passò ai protocolli TCP/IP, diventò impossibile continuare ad andare avanti con questo sistema. Venne allora studiato un nuovo metodo, che è quello che viene tuttora usato: il Domain Name System, DNS. Sviluppato da Paul Mockapetris nel 1984, DNS è attualmente mantenuto da Paul Vixie sotto gli auspici dellInternet Software Consortium (ISC), una organizzazione formata da Rick Adams nel 1993. |
||||||||||||||||
| La struttura del database DNS è ad albero. Ogni nodo dellalbero è un dominio. Ogni dominio può ulteriormente essere diviso in sottodomini, tracciati come rami del dominio. Ogni dominio ha una etichetta (max 63 caratteri) che lo identifica rispetto al nodo padre e un nome che specifica la sua posizione nel database e consiste nelle etichette dal dominio alla radice. | ||||||||||||||||
| Il DNS è strutturato ad albero; la radice dellalbero è il dominio vuoto; vengono poi i domini di livello speriore e gli altri sottodomini. | ![]() |
|||||||||||||||
| Per esempio il nome ftp.example.com è il nome di un host che appartiene al dominio di livello superiore .com, al sottodominio example.com e che ha nome ftp. | ||||||||||||||||
Ogni host nella rete ha un nome di dominio a cui sono associate informazioni su quellhost, in primo luogo lindirizzo IP. I domini sono strutturati ad albero. Quelli di livello superiore, inizialmente erano sette, tutti riferiti agli USA:
Oggi i domini di livello superiore sono molti di più perché, sono stati tra laltro inseriti tutti i paesi del mondo (Stati Uniti compresi) con un codice a due lettere, regolato dallo standard internazionale ISO 3166 del 1974. Alcuni domini di paesi
Secondo il sito domainstat i domini registrati nel mondo sono più di 15 milioni, di cui quasi 10 milioni sono quelli com, 1 milione i de, 1 milione gli uk e poco più di 100.000 i domini italiani it. |
||||||||||||||||
| DNS è un database distribuito. In altre parole, lintera rete può usare il DNS, mentre la manutenzione del database avviene localmente per singole parti.
Il meccanismo di accesso al database è di tipo client-server.La parte server del DNS è costituita da programmi chiamati name server. I name server contengono informazioni su una parte del database. La parte client è costituita dai resolver, che normalmente sono delle istruzioni nel programma (per esempio nel browser, quindi a livello applicazione) che interrogano i name server. Quando un programma, per esempio un browser, richiede di accedere ad un host che ha un certo nome, entra in azione il resolver che
I name server sono distribuiti in tutto il mondo e sono organizzati in modo gerarchico. Nessun name server ha la mappa di tutti gli host di Internet. Ci sono, in prima approssimazione, tre tipi di name server:
Questi tre tipi di name server interagiscono tra di loro come indicato qui di seguito. |
||||||||||||||||
| Ogni Internet Service Provider (comprese le università, le società, i provider commerciali) ha (almeno) un name server locale e ogni host ha lindirizzo del name server locale del proprio provider.
Chiunque registri un dominio di secondo livello (per esempio boscarol.com) deve designare due name server che consentono di tradurre il nome del dominio in indirizzo IP. Normalmente questi name server sono quelli del provider che ospita il dominio. I due name server sono consultati nellordine. Il secondo viene consultato se il primo non risponde. |
||||||||||||||||
| Il pannello di controllo TCP/IP su Windows 95; notare al centro il box per inserire gli indirizzi IP dei name server locali del proprio provider. | ![]() |
|||||||||||||||
| Quando un host interroga il DNS, il messaggio viene spedito al name server locale. Il name server locale risolve velocemente le richieste relative a nomi interni al proprio dominio. Per esempio se lhost surf.eurecom.fr richiede lindirizzo di baie.eurecom.fr, il name server di Eurecom è in grado di fornirlo senza interrogare altri name server.
Alternativamente, se al name server è stata fatta la stessa richiesta in un tempo precedente, può darsi che possa trovare la risposta nella propria memoria cache. |
||||||||||||||||
| In Internet ci sono una dozzina di cosiddetti root name server molti dei quali sono negli Stai Uniti. Quando un name server locale non è in grado di risolvere velocemente la richiesta di un host (perché non ha il nome richiesto nel proprio database o nella propria cache) si comporta come un client DNS e interroga uno dei root name server. Se il root name server è in grado di rispondere spedisce un messaggio al name server locale, il quale a sua volta lo trasmette allhost che ha sottoposto la richiesta. In caso contrario il root name server è sicuramente in possesso dellindirizzo di un authoritative name server che conosce lindirizzo di quel particolare host.
Un root name server conosce dove sono i name server autorevoli per tutti i domini di livello superiore (potrebbero essere loro stessi tali name server) e quando riceve una richiesta il root name server può come minimo dare il nome e lindirizzo del name server autorevole per il dominio di livello superiore contenuto nella richiesta. Naturalmente i root name server sono cruciali per il funzionamento di Internet. In teoria ne basterebbe uno, ma per prevenire interruzioni prolungate in casi di guasti, sono in funzione attualmente undici root name servers sparsi per la rete. Otto stanno in USA, due in Europa (Londra e Stoccolma) e una in Giappone. Lelenco si trova in questa pagina. |
||||||||||||||||
| Questa immagine è fornita dal sito della World Internetworking Alliance (WIA) e riporta i root name server al febbraio 1998 (la situazione da allora non si è modificata). | ![]() |
|||||||||||||||
| Ogni host è registrato presso un name server autorevole. Tipicamente, un name server autorevole per un host è un name server presso il provider locale dellhost. Per definizione un name server è autorevole per un host se ha un un record DNS che traduce il nome dellhost nel suo indirizzo.
Quando un name server autorevole viene interrogato da un root name server, lautorevole risponde con lindirizzo richiesto, che il root trasmette al locale, che a sua volta lo trasmette allhost che lha richiesto. Molti name server sono sia locali che autorevoli. |
||||||||||||||||
| Lorganismo che assegna i nomi di sottodominio del dominio it (cioè la registration authority italiana) è il lItalian Network Information Center (it-nic) presso lIstituto per le applicazioni telematiche del CNR di Pisa.
Le modalità operative generali e le regole in base alle quali la registration authority italiana opera sono definite dalla naming authority italiana in base alle norme ISO 6523. Lorganizzazione che coordina a livello mondiale
è lICANN (Internet Corporation for Assigned Names and Numbers). |
||||||||||||||||
| Questo esempio è tratto da Computer Networking di Kurose e Ross. Lhost surf.eurecom.fr desidera lindirizzo IP dellhost gaia.cs.umass.edu.
Il name server locale di Eurecom si chiama dns.eurecom.fr, un athoritative name server per gaia.cs.umass.edu si chiama dns.umass.edu (ma i nomi dei name server sono ininfluenti sullintero processo di richiesta: i name server vengono sempre indirizzati con il loro indirizzo IP, non con il loro nome per evitare ricorsioni allinfinito). Come si vede in figura lhost surf.eurecom.fr prima spedisce una richiesta DNS al suo name server locale dns.eurecom.fr. Il messaggio di richiesta contiene il nome da tradurre in indirizzo, cioè gaia.cs.umass.edu. Il name server locale trasferisce la richiesta ad un root name server che a sua volta la trasferisce al name server autorevole per tutti gli host nel dominio umass.edu, cioè dns.umass.edu. Il name server autorevole trasmette la risposta allhost che ha fatto la richiesta passando per il root name server e il local name server. |
||||||||||||||||
![]() |
||||||||||||||||
|
|
||||||||||||||||
|
||||||||||||||||
|
||||||||||||||||