Reti di Calcolatori :
Lo strato Applicazione
Indice
- Introduzione
- DNS: Il sistema dei nomi di dominio
- Esempi di applicazioni attiva su questo strato.
Introduzione
Le applicazioni hanno bisogno di protocolli di supporto che permettano loro
di funzionare. Uno di questi protocolli è il DNS, che gestisce i nomi all'interno
di internet.
Perchè?
I programmi a questo strato possono dare riferimento a host, caselle di
posta e altre risorse tramite i loro indirizzi di rete. Tuttavia per semplificare
la vita degli utenti, per permettere loro di ricordare meglio gli indirizzi,
l'indirizzo numerico è convertito in una stringa ASCII, in questo modo sarà
possibile fare riferimento all'indirizzo remoto utilizzando la stringa ASCII.
Questa associazione è gestita dal protocollo DNS (Domain Name System).
Essenza del DNS
Il DNS è basato su uno schema di denominazione gerarchico basato su dominio,
e su un sistema di database distribuito per l'implementazione di questo
schema di denominazione. DNS è definito in RFC 1034
e
1035
Come funziona?
Per associare un nome ad un indirizzo IP un programma applicativo chiama
una procedura di libreria chiamata risolutore e gli passa
il nome come parametro. Il risolutare invia il pacchetto UDP ad un server
DNS locale, il quale cerca il nome e restituisce l'indirizzo IP. IL risolutore
ricevuto tale indirizzo lo restituisce al chiamante. Una volta che il programma
ha avuto l'indirizzo IP stabilirà una connessione tcp con la destinazione.
Come vengono gestiti i nomi?
Gestire un 'insieme di nomi grande e in continuo combiamento non è facile!
I nomi sono caratterizzati da una struttura gerarchica, cioè in internet,
ci sono circa 200 domini di primo livello, ogni dominio è partizionato in
sottodomini che a loro volta sono divisi. I nomi possono essere rappresentati
con una struttura ad albero.
I domini di primo livello possono essere di due tipi: generici, per
nazioni. I domini generici originali erano:
- com (commerciale)
- edu (istituzioni educative)
- gov (governo federale degli Stati Uniti)
- int (organizzazioni internazionali selezionale)
- mil(forze armate statunitensi)
- net (provider di rete)
- org (organizzazioni senza fini di lucro)
I domini per nazioni comprendono una voce per ogni nazione, come definito
in ISO
3166 . Dal novembre del 2000 ci sono 4 nuovi domini di primo livello:
- biz (business)
- info (informazioni)
- name (nomi delle persone)
- pro (professionisti)
I nomi di dominio non fanno distinzione tra maiuscole e minuscole cioè
com
, Com, COM sono visti come la stessa cosa.
I record delle risorse
A ogni dominio può essere associato un record delle risorse (resource
record). Se si tratta di un singolo host il record delle risorse
più comune è il solo indirizzo IP, ma possono esistere molti altri tipi
di record delle risorse. Riepilogando ogni host ha un record delle risorse
associato, quando il risolutore fornisce un nome di dominio a DNS, ciò che
ottiene sono i record delle risorse associati a tale nome. La funzione principale
di DNS è associare il nome al record delle risorse.
Come sono inseriti i nomi nei database che DNS interroga?
In teoria si potrebbe usare un solo server per contenere l'intero database
DNS, e fare in modo che questo risponda a tutte le interrogazioni. Questo
tipo di soluzione presenta dei problemi che impediscono di percorrere questa
strada:
- Il server sarebbe troppo sovraccaricato e quindi poco utile.
- Se l'unico server presente avesse un problema l'intera Internet sarebbe
bloccata.
Per evitare questi problemi lo spazio dei nomi viene diviso in zone non
sovrapposte. In questo modo quando il risolutore vuole conoscere il record
delle risorse associato a un nome passa l'interrogazione a uno dei server
dei nomi locali. Se il dominio è all'interno della giurisdizione del server
dei nomi si ottiene il record autorevole delle risorse ("autorevole"
perchè fornito dall'autorità che gestisce il record, il record può anche
essere archiviato nella cache, rispetto al precedente può essere non corretto
in quanto non aggiornato). Se il dominio è remoto e non sono disponibili
localmente informazione su di esso, il server dei nomi interroga il server
dei nomi di primo livello per il dominio richiesto. Quando un risolutore
richiede un indirizzo IP che non appartiene al database del server "della
zona" si innesca il meccanismo dell'interrogazione ricorsiva. Se
l'host è remoto e se il server dei nomi locale non ha mai fatto un'interrogazione
su questo dominio non ci saranno informazioni dell'host richiesto neanche
nella cache del server locale. Quindi il server locale interroga il server
di primo livello a cui appartiene l'host ricercato, il server remoto interroga
ricorsivamente i suoi figli fino ad arrivare all'host cercato. Il record
delle risorse di quest'host viene spedito a chi l'ha richiesto e viene immagazzinato
nel server di zona dell'host richiedente. Esiste anche una forma alternativa
di agire: quando l'interrogazione non viene soddisfatta localmente, l'interogazione
fallisce.