Il DNS e la gestione degli indirizzi IP Appunti di Sistemi per la IV D A cura del prof. ing. Mario Catalano
Indirizzi fisici e indirizzi “astratti” Ogni macchina all’interno di una rete è identificata da un indirizzo hardware a basso livello (indirizzo MAC) Ogni macchina all’interno di una rete è identificata da un indirizzo hardware a basso livello (indirizzo MAC) L’indirizzo IP è un indirizzo logico di livello più alto L’indirizzo IP è un indirizzo logico di livello più alto Il TCP/IP è in grado di interpretare (risolvere) un indirizzo IP in uno MAC e viceversa Il TCP/IP è in grado di interpretare (risolvere) un indirizzo IP in uno MAC e viceversa La scarsa mnemonicità degli indirizzi IP ha portato all’introduzione di un nuovo livello di astrazione (high level names) La scarsa mnemonicità degli indirizzi IP ha portato all’introduzione di un nuovo livello di astrazione (high level names)
Indirizzi IP e nomi di Domini Per comodità è stato introdotto un ulteriore grado di astrazione nell'indirizzare una macchina, cioè ad ogni macchina si associa un indirizzo alfanumerico il cui significato sia dipendente dalla locazione geografica della macchina stessa che dalla funzione che essa deve svolgere. Questo semplifica notevolmente il compito di un operatore che dovrà utilizzare tali indirizzi. Per comodità è stato introdotto un ulteriore grado di astrazione nell'indirizzare una macchina, cioè ad ogni macchina si associa un indirizzo alfanumerico il cui significato sia dipendente dalla locazione geografica della macchina stessa che dalla funzione che essa deve svolgere. Questo semplifica notevolmente il compito di un operatore che dovrà utilizzare tali indirizzi.
Struttura “piatta” dei nomi Inizialmente il nome era formato da una sequenza semplice di caratteri. Inizialmente il nome era formato da una sequenza semplice di caratteri. Tali nomi venivano assegnati da un organo centrale, il NIC (Network Information Center). Questo tipo di scelta, però si rivelò presto inappropriata. Tali nomi venivano assegnati da un organo centrale, il NIC (Network Information Center). Questo tipo di scelta, però si rivelò presto inappropriata. Primo perché la semplicità del nome porta ad una probabilità di conflitti che aumenta all'aumentare del numero di host collegati, secondo perché tutti i nomi venivano decisi da un unico organo centrale. Primo perché la semplicità del nome porta ad una probabilità di conflitti che aumenta all'aumentare del numero di host collegati, secondo perché tutti i nomi venivano decisi da un unico organo centrale. Questo comportava che tutte le volte che una nuova macchina voleva connettersi in rete doveva fare richiesta al NIC; presto il traffico che il NIC doveva gestire sarebbe diventato insostenibile. Questo comportava che tutte le volte che una nuova macchina voleva connettersi in rete doveva fare richiesta al NIC; presto il traffico che il NIC doveva gestire sarebbe diventato insostenibile.
Nomi “gerarchici” La soluzione al problema fu trovata modificando la struttura dei nomi rendendola gerarchica, decentralizzando il meccanismo di nomina, delegando l'autorità per porzioni dello spazio di indirizzi e distribuendo la responsabilità della corrispondenza tra nomi ed indirizzi IP. La soluzione al problema fu trovata modificando la struttura dei nomi rendendola gerarchica, decentralizzando il meccanismo di nomina, delegando l'autorità per porzioni dello spazio di indirizzi e distribuendo la responsabilità della corrispondenza tra nomi ed indirizzi IP.
Lo spazio nei nomi Lo spazio dei nomi è partizionato in divisioni autonome Lo spazio dei nomi è partizionato in divisioni autonome La sintassi è del tipo: La sintassi è del tipo: Local.site Local.site Dove “site” è il nome del sito autorizzato dall’autorità centrale e “local” è la parte del nome controllata dal sito. Lo stesso sito potrà suddividere il nome in strutture del tipo : Local.group.site
Domain Name System Il meccanismo che realizza una gerarchia di nomi in Internet è detto DNS Il meccanismo che realizza una gerarchia di nomi in Internet è detto DNS Il DNS definisce la sintassi dei nomi e come deve essere delegata l’autorità Il DNS definisce la sintassi dei nomi e come deve essere delegata l’autorità Un Domain Name è una sequenza di “sottonomi” separati da un “.”, ognuno di essi è detto “label” e può indicare un sito o un gruppo. Un Domain Name è una sequenza di “sottonomi” separati da un “.”, ognuno di essi è detto “label” e può indicare un sito o un gruppo. L’indirizzo deve essere letto da destra verso sinistra. L’indirizzo deve essere letto da destra verso sinistra.
Utilità del DNS Da questo esempio risultano evidenti i benefici di tale astrazione, primo fra tutti la semplicità nel ricordare un indirizzo di alto livello, grazie alla sua semantica legata alla dislocazione geografica o alla funzione della macchina host. Questa struttura gerarchica è generalmente utilizzata anche all'interno di piccole reti private, in questo modo un eventuale collegamento ad internet non provocherebbe nessun cambiamento nel sistema di indirizzamento. Da questo esempio risultano evidenti i benefici di tale astrazione, primo fra tutti la semplicità nel ricordare un indirizzo di alto livello, grazie alla sua semantica legata alla dislocazione geografica o alla funzione della macchina host. Questa struttura gerarchica è generalmente utilizzata anche all'interno di piccole reti private, in questo modo un eventuale collegamento ad internet non provocherebbe nessun cambiamento nel sistema di indirizzamento.
Massimo livello Internet L'autorità dell'internet ha scelto di ripartire il suo massimo livello nei nomi elencati nella seguente tabella: L'autorità dell'internet ha scelto di ripartire il suo massimo livello nei nomi elencati nella seguente tabella: COM Organizzazioni commerciali COM Organizzazioni commerciali EDU Istituzioni per l'istruzione EDU Istituzioni per l'istruzione GOV Istituzioni governative GOV Istituzioni governative MIL Gruppi militari MIL Gruppi militari NET Maggiori centri di supporto per la rete NET Maggiori centri di supporto per la rete ORG Organizzazioni diverse dalle precedenti ORG Organizzazioni diverse dalle precedenti INT Organizzazioni internazionali INT Organizzazioni internazionali Codice nazionale (it,ch, fr...)(schema geografico) Codice nazionale (it,ch, fr...)(schema geografico)
Esempio…
Il modello client/server È una modalità di interazione tra host in rete Elaborazione diretta: ad esempio se A vuole modificare un file presente nell’host B A richiede a B il possesso del file B lo spedisce ad A A lo modifica A lo restituisce a B
Client e server DNS Come fa il DNS a risolvere un nome in un indirizzo IP? Come fa il DNS a risolvere un nome in un indirizzo IP? Interrogazioni in un databse. Interrogazioni in un databse. Si applica la tecnica Client-server. Si applica la tecnica Client-server. Ogni dominio gestisce dei “name server” che mantengono la parte del database del dominio. Ogni dominio gestisce dei “name server” che mantengono la parte del database del dominio.
DNS Quando un programma deve trasformare un nome in un indirizzo IP chiama una procedura detta risolutrice (resolver), passandole il nome come parametro di ingresso. Quando un programma deve trasformare un nome in un indirizzo IP chiama una procedura detta risolutrice (resolver), passandole il nome come parametro di ingresso. Il resolver interroga un server DNS locale, che cerca il nome nelle sue tabelle e restituisce l’indirizzo al resolver, che a sua volta lo trasmette al programma chiamante (usando tale indirizzo IP il programma può aprire una connessione di rete con la destinazione) Il resolver interroga un server DNS locale, che cerca il nome nelle sue tabelle e restituisce l’indirizzo al resolver, che a sua volta lo trasmette al programma chiamante (usando tale indirizzo IP il programma può aprire una connessione di rete con la destinazione)
TIPI di server DNS Esistono diversi tipi di “name server” Esistono diversi tipi di “name server” Primari: sono i server aggiornati e modificati dagli amministratori del dominio Primari: sono i server aggiornati e modificati dagli amministratori del dominio Secondari: ricevono i file dei databse da un altro server (primario o secondario) Secondari: ricevono i file dei databse da un altro server (primario o secondario) A sola cache: non hanno file di database, girano la richiesta dei client a un “vero” server e ne memorizzano la risposta nella cache in modo da poterla ridare ad una nuova richiesta. A sola cache: non hanno file di database, girano la richiesta dei client a un “vero” server e ne memorizzano la risposta nella cache in modo da poterla ridare ad una nuova richiesta.
Client DNS I client fanno parte di solito di altri programmi per Internet (es. i browser) I client fanno parte di solito di altri programmi per Internet (es. i browser) Interrogano i server per la risoluzione dei nomi Interrogano i server per la risoluzione dei nomi Usano UDP per comunicare con i server, poi, una volta individuato l’indirizzo si apre una connessione TCP Usano UDP per comunicare con i server, poi, una volta individuato l’indirizzo si apre una connessione TCP
Interrogazioni DNS al server Quando arriva un’interrogazione da un client, il server ricerca nel proprio database. Quando arriva un’interrogazione da un client, il server ricerca nel proprio database. Se la risposta (indirizzo IP) c’è, la restituisce Se la risposta (indirizzo IP) c’è, la restituisce Altrimenti interroga altri server Altrimenti interroga altri server L’interrogazione ha un tempo di vita: se scade, torna al client un messaggio di unknown (errore o timeout) L’interrogazione ha un tempo di vita: se scade, torna al client un messaggio di unknown (errore o timeout)
Tipi di Interrogazioni del server DNS Ricorsive: il server interroga il name server di Top Level, questo interroga i suoi sottodomini finché trova la risposta. La risposta torna indietro un passo per volta in via gerarchica Ricorsive: il server interroga il name server di Top Level, questo interroga i suoi sottodomini finché trova la risposta. La risposta torna indietro un passo per volta in via gerarchica Iterative: il server non si “scomoda”, ma fornisce al client i riferimenti ad altri server e deve essere il client a ripetere l’interrogazione. Iterative: il server non si “scomoda”, ma fornisce al client i riferimenti ad altri server e deve essere il client a ripetere l’interrogazione.
Ancora sui server DNS I server usano una cache per memorizzare le interrogazioni risolte per velocizzare le richieste successive. I server usano una cache per memorizzare le interrogazioni risolte per velocizzare le richieste successive. I dati memorizzati hanno anch’essi un tempo di vita (TTL). I dati memorizzati hanno anch’essi un tempo di vita (TTL). Gli indirizzi dei Top Level Domain, per es., hanno un TTL molto lungo e via via a diminuire. Gli indirizzi dei Top Level Domain, per es., hanno un TTL molto lungo e via via a diminuire.
I descrittori di risorse Un file del database DNS contiene un insieme di “descrittori di risorse” Un file del database DNS contiene un insieme di “descrittori di risorse” Ogni descrittore è un record formato da 5 campi: Ogni descrittore è un record formato da 5 campi: –Il nome del dominio –Il TTL –Il tipo (indirizzo IP, nome host, nome dominio) –La classe (IN per Internet) –Il valore (un numero, un nome di dominio o una stringa ASCII)
Interrogazione inversa Indica la ricerca di un nome di host noto l’indirizzo IP. Indica la ricerca di un nome di host noto l’indirizzo IP. Sono gestite mediante un dominio speciale “in-addr.arpa” in cui l’indirizzo IP viene risolto al contrario. Sono gestite mediante un dominio speciale “in-addr.arpa” in cui l’indirizzo IP viene risolto al contrario.
I cookie Come mai, quando vi collegate più di una volta a un sito, il sito stesso sembra “ricordarsi” di voi? Come mai, quando vi collegate più di una volta a un sito, il sito stesso sembra “ricordarsi” di voi? Al primo collegamento, il sito consegna al vostro computer un “cookie”, che gli darà modo di riconoscerlo ai collegamenti successivi Al primo collegamento, il sito consegna al vostro computer un “cookie”, che gli darà modo di riconoscerlo ai collegamenti successivi Al collegamento successivo, il vostro PC “mostra” al sito il cookie stesso Al collegamento successivo, il vostro PC “mostra” al sito il cookie stesso Ricordatevi che a ogni collegamento che fate sia il sito a cui vi collegate, sia tutti quelli intermedi “sanno” chi siete (hanno IP e porta dell’origine del collegamento)! Ricordatevi che a ogni collegamento che fate sia il sito a cui vi collegate, sia tutti quelli intermedi “sanno” chi siete (hanno IP e porta dell’origine del collegamento)! Possibilità di connessioni “anonime” o “sicure” Possibilità di connessioni “anonime” o “sicure”
Aggiornamento delle tabelle Aggiornamento statico: i contenuti di ciascun DNS sono configurati da un file di configurazione creato da un responsabile del sistema Aggiornamento dinamico: Permette l’aggiunta, l’eliminazione e la modifica mediante uno scambio di messaggi DNS tra un Client DNS e un Server DNS; Riduce la necessità di gestione manuale dei record di zona, specialmente per i client che vengono utilizzati in sedi diverse e che utilizzano il DHCP per ottenere un indirizzo IP
Aggiornamento dinamico Viene richiesto generalmente quando: Un indirizzo IP o un nome DNS viene aggiunto, rimosso o modificato; Viene attribuito un indirizzo IP tramite DHCP; Il lease di un indirizzo IP di una connessione istallata viene modificato o rinnovato dal server DHCP; Update Request Response Client DNSServer DNS Porta 53
DNS dinamico Il DNS attuale deve essere aggiornato manualmente. Il DNS attuale deve essere aggiornato manualmente. Il DDNS (Dinamic DNS) consente ad ogni host che cambia indirizzo (ad esempio perché ne riceve uno nuovo da DHCP) può comunicarlo al server DNS e aggiornare dinamicamente in database. Il DDNS (Dinamic DNS) consente ad ogni host che cambia indirizzo (ad esempio perché ne riceve uno nuovo da DHCP) può comunicarlo al server DNS e aggiornare dinamicamente in database.
Assegnazione degli indirizzi IP L’assegnazione statica consiste nella configurazione manuale dell’indirizzo IP. L’amministratore di rete deve avere un piano di assegnazione degli indirizzi, deve evitare duplicazioni di indirizzi. L’assegnazione statica consiste nella configurazione manuale dell’indirizzo IP. L’amministratore di rete deve avere un piano di assegnazione degli indirizzi, deve evitare duplicazioni di indirizzi. Ovviamente non è facile gestire questo tipo di assegnazione quando gli host sono molti. Ovviamente non è facile gestire questo tipo di assegnazione quando gli host sono molti. Tuttavia questa assegnazione è obbligata per tutti quegli host che offrono servizi fondamentali per la rete e devono essere facilmente localizzabili allo stesso indirizzo. Tuttavia questa assegnazione è obbligata per tutti quegli host che offrono servizi fondamentali per la rete e devono essere facilmente localizzabili allo stesso indirizzo.
Il DHCP Il servizio DHCP è un protocollo applicativo che gestisce in modo dinamico la configurazione del TCP/IP nei client di rete. Il servizio DHCP è un protocollo applicativo che gestisce in modo dinamico la configurazione del TCP/IP nei client di rete. Quando il DHCP server riceve una richiesta, seleziona un indirizzo IP da un pool del suo database e lo offre al client. Quando il DHCP server riceve una richiesta, seleziona un indirizzo IP da un pool del suo database e lo offre al client.
Ancora sul DHCP Se il client accetta, il server DHCP “affitta” la configurazione al client per un periodo di tempo. Le configurazioni non entreranno in conflitto. Se il client accetta, il server DHCP “affitta” la configurazione al client per un periodo di tempo. Le configurazioni non entreranno in conflitto. La presenza di un DHCP server consente lo spostamento fisico degli host senza problemi di riconfigurazione. La presenza di un DHCP server consente lo spostamento fisico degli host senza problemi di riconfigurazione.
Come al solito: …..Io mi fermo qui. …..Io mi fermo qui. Ma il resto tocca a voi. Ma il resto tocca a voi.