host - Sistemi di Elaborazione delle Informazioni

Transcript

host - Sistemi di Elaborazione delle Informazioni
Internetworking
V anno
La configurazione dei sistemi di rete
Amministratori di rete
Gli amministratori di rete svolgono quotidianamente numerose
operazioni per mantenere efficiente la rete.
Per queste operazioni, molti amministratori fanno uso dei protocolli a
livello Application.
Quando la rete è di dimensioni ridotte può ancora essere gestita
“manualmente”.
Oramai, però, ci si occupa sempre più spesso di reti estese e complesse
che necessitano di strumenti per una gestione automatica e da remoto
delle risorse.
Protocolli configurazione host
I protocolli per la configurazione di un host sono usati dagli
amministratori di rete per consentire alle macchine di determinare in
automatico il proprio indirizzo IP e altri parametri necessari per la
connessione a una rete TCP/IP.
Questi protocolli sono utilizzati anche per effettuare operazioni da
remoto e per il setup di: device mobile e host storageless (o diskless).
Host configuration e host management
In ambito IETF sono stati definiti protocolli di alto livello a supporto della
configurazione e della gestione della rete.
I numerosi compiti degli amministratori che richiedono protocolli del
livello Application, si dividono in due tipologie:
- host configuration, ogni host deve essere configurato PRIMA del suo
utilizzo e della messa in rete; la configurazione permette all’host di
svolgere le sue funzioni in modo corretto e appropriato.
- host management, la gestione e il controllo degli host di una rete sono
attività che devono poter essere effettuate in remoto, mantenendo sotto
controllo parametri che segnalano anomalie o degrado delle prestazioni.
Perché scegliere il livello Application?
La comprensione del perché la definizione di questi protocolli avvenga
nel livello Application e non nel livello Network può non essere così
immediata.
In realtà, questa scelta offre non pochi vantaggi:
- le operazioni di configurazione NON sono legate all’hardware della
macchina ma sono svolte in modo indipendente e, quindi, valido per
qualunque tipo di host
- i messaggi vengono scambiati tra end-system (E2E), quindi potrebbero
attraversare più reti
- si possono utilizzare le funzionalità offerte dai protocolli del livello
Transport.
Configurazione di un host
Come fa una macchina non ancora in possesso di un indirizzo IP a
inviare e ricevere i messaggi necessari per la propria configurazione di
rete?
La risposta è nell’utilizzo delle tecniche broadcasting e nell’impiego di
indirizzi IP “speciali”.
I protocolli BOOTP (BOOTstrap Protocol) e DHCP (Dynamic Host
Configuration Protocol) ne sono un esempio.
Protocollo BOOTP e protocollo DHCP
Il protocollo DHCP aggiunge al protocollo BOOTP la funzionalità per
l’assegnazione dinamica degli indirizzi IP.
Anche se DHCP ha soppiantato BOOTP nel ruolo di configurazione di
un host, il BOOTP è ancora molto usato nelle piccole reti e nella
configurazione delle macchine senza disco.
Caratteristiche protocollo BOOTP
Il protocollo BOOTP è standard dal 1985 e presentò, fin da subito,
alcune caratteristiche che lo resero preferibile al protocollo RARP:
- utilizzo protocollo di trasporto UDP e indipendenza dall’hardware
- invio, in un unico messaggio, dell’indirizzo IP e di altre informazioni
per la configurazione
- gestione dell’internetworking. Client e server possono appartenere a
reti differenti, agevolando l’utilizzo di un unico server centrale per la
gestione di host dislocati in diverse subnet.
Indirizzi IP speciali
Per comprendere meglio come un computer possa inviare un messaggio
usando UDP senza conoscere ancora il suo indirizzo IP, ricordiamo che
esistono indirizzi IP speciali usati per scopi diversi da quelli di
identificazione univoca di un host.
L’indirizzo 255.255.255.255 indica un broadcast limitato alla rete a cui
appartiene la macchina. Il software IP di una macchina può accettare e
trasmettere i pacchetti che specificano tale indirizzo anche PRIMA di
aver scoperto le informazioni sull’indirizzo IP locale.
Un’applicazione può utilizzare l’indirizzo IP 1.1.1.1 (broadcast limitato)
per forzare IP a trasmettere un pacchetto sulla rete locale PRIMA di aver
scoperto l’indirizzo IP della rete o della macchina locale.
La richiesta BOOTP al server
Esaminiamo ora il comportamento del server che riceve la richiesta BOOTP.
Il server NON può rispondere in modo diretto indirizzando la macchina con il suo
reale indirizzo IP, ma utilizza come destination address l’indirizzo speciale
255.255.255.255.
Se il software sul server utilizzasse l’indirizzo IP del client, nel momento in cui il
messaggio da trasmettere passa alla scheda di rete, questa cercherebbe di tradurre
l’indirizzo IP nel corrispondente indirizzo hardware (MAC address) utilizzando
l’Address Resolution Protocol. Tuttavia, il client, non avendo ancora ricevuto la
risposta alla richiesta BOOTP, non riconoscerebbe il suo indirizzo IP e non sarebbe
in grado di rispondere alla richiesta dell’ARP.
Da questo, risulta chiaro che l’UNICA soluzione sia quella di trasmettere in
modalità broadcast.
UDP e BOOTP
L’utilizzo di UDP per la comunicazione è necessario in quanto supporta il broadcast.
UDP, però, NON è un protocollo affidabile, quindi il controllo della comunicazione
DEVE essere affidato al client BOOTP:
- viene utilizzato il campo checksum per il controllo dei bit ricevuti;
- le richieste e le risposte devono essere inviate con il bit di non frammentazione
impostato così da poter gestire anche i client che hanno una scarsità tale di
memoria da non poter riassemblare i pacchetti in arrivo;
- viene impostato un timer allo scadere del quale la richiesta è ritrasmessa.
Inizializzazione in due fasi
La procedura di bootstrap di una
macchina utilizzando BOOTP consiste
in due fasi:
1.
2.
Su richiesta del client viene fornito
l’indirizzo IP e alcune informazioni
su come ottenere l’immagine della
memoria
Il client utilizza il protocollo TFTP
per scaricare il file con l’immagine
di memoria, contenente anche il
sistema operativo da caricare sulla
macchina.
Tale procedura permette di mantenere separate le funzioni di configurazione
della macchina da quelle della memoria.
Dynamic Host Configuration Protocol
DHCP può essere considerato un’evoluzione di BOOTP, di cui mantiene la
struttura del messaggio.
L’esigenza di definire un nuovo protocollo ebbe con la diffusione del wireless e l’uso
di computer portatili. In questo contesto BOOTP si rivelò troppo lento
nell’aggiornare i computer che si spostavano sovente da una rete a un’altra.
Per l’assegnazione dinamica degli indirizzi IETF definì pertanto DHCP come
protocollo migliorativo rispetto a BOOTP:
- un host acquisisce tutte le informazioni necessarie alla sua configurazione usando
un unico messaggio
- un host ottiene l’indirizzo IP in modo rapido e dinamico. Nasce quindi il concetto di
lease (“prestito”) dell’indirizzo IP a un host, per un periodo limitato nel tempo.
DHCP Address pool
Il DHCP server deve avere a disposizione un insieme di indirizzi (address pool)
usato per l’allocazione dinamica degli indirizzi IP.
Questi indirizzi sono condivisi tra più host e gestiti in modo efficiente, per esempio
riutilizzando un indirizzo assegnato a un host quando questi non usa più la rete
perché disconnesso o spento.
La seguente figura schematizza il contesto di rete in cui opera il protocollo DHCP:
Vantaggi assegnazione dinamica IP
I vantaggi dell’assegnazione dinamica degli indirizzi IP sono da ricercare in:
• Automazione: assegnazione dell’indirizzo IP al client automatica.
• Gestione centralizzata: l’amministratore può analizzare il database del DHCP Server per
conoscere: indirizzi del pool assegnati e a quali host, effettuare operazioni di aggiornamento
su address pool, tempo di lease e altro, sempre lavorando su una sola macchina, il server.
• Condivisione e riutilizzo degli indirizzi: host di una rete non sempre connessi tutti
insieme, quindi la rete può supportare un numero di host superiore al numero di indirizzi
disponibili (condivisione); nel momento in cui un host non è più connesso alla rete il suo
indirizzo IP torna nel pool a disposizione di altri client (riutilizzo).
• Portabilità: non essendoci un assegnamento predefinito host-indirizzoIP, qualunque client
che si connetta alla rete può richiedere un indirizzo, supportando così la mobilità degli host.
• Assenza di conflitti: essendo possibile l’assegnazione solo tramite il pool di indirizzi a
disposizione del DHCP Server, si evitano conflitti sugli indirizzi IP.
DHCP, tipi di assegnazione degli indirizzi
DHCP permette tre tipi di assegnazione degli indirizzi ed è
l’amministratore di rete a scegliere il modo in cui il DHCP server risponderà
per ogni rete o per ogni host:
1. Configurazione manuale
2. Configurazione automatica
3. Configurazione dinamica
Come BOOTP, anche DHCP usa l’identità del client per decidere come
procedere, basandosi su MAC address e network address.
Lease length policy
La presenza del database consente al DHCP di riacquisire lo stesso indirizzo in
seguito a un riavvio della macchina, fino allo scadere del lease.
Uno dei compiti più delicati dell’amministratore è impostare la durata del lease
(lease length policy) ossia dopo quanto tempo l’indirizzo assegnato a un host
ritorna nel pool.
Il periodo ottimale dipende dal tipo di rete e dalle necessità dell’host, in generale:
- periodo lungo, offre agli host una certa stabilità (utile in caso si attendano
risposte dalla rete, che farà riferimento all’indirizzo indicato nella richiesta)
- periodo breve, risolve il problema del mantenere assegnato un indirizzo a un
computer non più in rete. Costringe, però, un host attivo a richiedere continuamente
il suo rinnovo. Appena “libero”, l’indirizzo torna a disposizione degli altri host e,
quindi nel pool.
Solitamente si predilige un tempo breve ma è anche possibile (molto raramente)
impostare un tempo infinito.
Relay agent
Quando un DHCP Server è responsabile dell’indirizzamento su una subnet diversa
dalla propria è necessario introdurre un relay agent (agente di ritrasmissione).
Il relay agent è una macchina che non è né cliet né server ma svolge il ruolo di
intermediario, occupandosi di facilitare la comunicazione tra client e server
attraverso più reti.
Molteplici DHCP Server
Un DHCP Server può essere configurato per supportare più subnetwork e per
svolgere altri compiti come mantenere i log degli accessi e delle operazioni.
Quindi, perché configurare più DHCP Server su un rete?
Per garantire la fault tollerance
Infatti, se l’unico server si guastasse gli utenti non avrebbero la possibilità di
connettersi alla rete.
In una rete è, quindi,
opportuno inserire un
secondo DHCP Server
di backup per garantire
il servizio.
Formato messaggi DHCP
La figura dettaglia il formato del
messaggio DHCP, molto simile a
quello BOOTP.
Infatti gli sviluppatori, considerata
la diffusione di BOOTP, decisero di
non modificare il formato del
messaggio e di specificare nel
campo Options i campi con le
informazioni utili a DHCP.
In questo modo un DHCP Server
può rispondere alle richieste di
client BOOTP.
Il campo Options è di lunghezza
variabile, il client deve essere
preparato ad accettare ALMENO
312 ottetti di opzioni.
Parametri configurazione sistemi con DHCP
Il BOOTP prevedeva che un server comunicasse al client solo tre informazioni:
- il suo indirizzo IP
- il nome del server da cui effettuare il download del file di boot
- il nome del file di boot
Con l’evolversi delle reti, l’indirizzo IP NON è più l’unica informazione necessaria
a una macchina per la sua configurazione di rete.
Il lavoro svolto in questo ambito, ha resto DHCP uno strumento di
configurazione general-purpose in cui la gestione dei parametri di
configurazione della macchina diventa un elemento essenziale del processo di
installazione.
Ciclo di vita del DHCP lease
L’affitto dell’indirizzo (DHCP lease) segue concettualmente un ciclo di vita (life
cycle):
- il lease dell’indirizzo è assegnato al client tramite il processo iniziale di
allocazione;
- se in seguito l’host effettua un reboot avrà ri-allocato il lease;
- prima dello scadere della durata del lease, l’host proverà a rinnovarlo
contattando il server che gliel’ha assegnato;
- SE questo tentativo fallisce, l’host cerca di rinnovare il lease contattando un
qualunque server disponibile sulla rete;
- SE ANCHE questo tentativo fallisce, l’host ritorna allo stato iniziale e
riesegue il processo di allocazione.
Il client può in qualunque momento effettuare la restituzione dell’indirizzo.
Stati del DHCP Client
La specifica di DHCP
usa una macchina a
stati finiti (FSM) per
descrivere il ciclo di vita
del client.
L’host all’inizio si trova
nello stato in cui non ha
alcun indirizzo IP, poi il
suo stato viene
modificato in base ai
messaggi inviati/ricevuti
e agli eventi che si
verificano.
La figura mostra la MSF
del DHCP Client.
Offerta di lease
La figura mostra un esempio di scambio dei messaggi tra client e server
relativi all’offerta del lease.
Selezione e accettazione offerta di lease
La figura mostra un esempio di scambio dei messaggi relativi alla selezione
del lease e alla conseguente accettazione dell’offerta del server.
La non sicurezza di DHCP
DHCP utilizza i protocolli UDP e IP che sono intrinsecamente insicuri e
nelle sue specifiche non si fa riferimento a possibili misure per la sicurezza.
Attualmente le problematiche di sicurezza sono le più critiche, soprattutto
per un protocollo come DHCP che tratta informazioni di configurazione.
Possiamo dividere i problemi di sicurezza tra quelli riguardanti il server e quelli
riguardanti il client in:
• DHCP Server non autorizzati
• DHCP Client non autorizzati
DHCP Server non autorizzati
DHCP Server non autorizzati: si potrebbe inserire un DHCP Server “abusivo”
che risponda alle richieste del client fornendo informazioni false in modo da
rendere inusabili host, oppure si forniscono informazioni di configurazioni tali da
renderli utilizzabili per azioni fraudolente.
DHCP Client non autorizzati
DHCP Client non autorizzati: un host potrebbe essere predisposto per
sembrare un certo client e ottenere le informazioni di configurazione a esso
destinate ed essere poi usato per creare danni alla rete, oppure si potrebbe
usare un software che genera moltissime richieste DHCP così da esaurire gli
indirizzi a disposizione del server e bloccare la rete in quanto nessun altro host
in seguito riuscirebbe a ottenere un nuovo indirizzo.