I protocolli classici:
DHCP
Il DHCP è forse uno dei protocolli più utilizzati dagli utenti domestici, ma
è anche tra quelli meno visibili a chi accede a Internet via modem. La sua utilità è
tale che ormai viene utilizzato anche in quelle aziende nelle cui intranet era consolidata
lusanza di assegnare indirizzi IP fissi ai sistemi collegati
Per operare in Internet o in una intranet, un sistema deve conoscere tutta una serie di
parametri e informazioni che gli permetteranno di comunicare con gli altri host connessi
alla rete. Tale insieme è detto configurazione di rete, e nel caso più semplice, va
memorizzato manualmente nel sistema prima della connessione dellhost (la lista dei
parametri che un sistema deve avere per collegarsi a una rete basata sullInternet
Protocol è riportata in tabella 1).
Tale lista (riportata in inglese, dato che la maggior parte dei prodotti e delle
implementazioni della Suite TCP/IP sono in questa lingua) è definita in una serie di RFC
aggiornati periodicamente e che prendono il nome di Host Requirements (HR) RFCs.
In realtà, non tutti i sistemi hanno la necessità di possedere, al momento della
connessione, tutti i parametri riportati in tabella, dal momento che alcuni di questi
possono essere negoziati con il server.
Un parametro necessario è invece lindirizzo IP.
Nellarticolo pubblicato il mese scorso in questa stessa sezione abbiamo parlato di
RARP e di BOOTP, cioè i protocolli che permettono a un sistema di ottenere il proprio IP
address direttamente dalla rete.
Tuttavia, lindirizzo IP e una serie di parametri fissi possono non essere
sufficienti a dare al sistema tutte le informazioni che gli HR RFCs prevedono, anche
perché alcune di queste potrebbero cambiare nel tempo o non valere per tutti i sistemi.
In realtà, un sistema ha sempre la possibilità di ottenere buona parte di queste
informazioni dalla rete stessa, attraverso luso di vari protocolli. Per esempio, la
subnet mask e le informazioni sui router possono essere ottenuti attraverso il protocollo
di controllo ICMP (Internet Control Message Protocol). Altre informazioni, come lMTU
(Maximum Transmission Unit), possono essere calcolate con appositi algoritmi. Tutto ciò,
tuttavia, richiede uno sforzo significativo da parte del client che tra laltro deve
essere in grado di gestire fin dallinizio tutte queste operazioni di
autoconfigurazione. È evidente che la disponibilità di un protocollo che fornisce a un
sistema in rete tutte queste informazioni in modo da renderlo subito operativo è la
soluzione ideale, anche perché semplifica di parecchio il lavoro dellamministratore
della rete.
Il protocollo DHCP
A tale scopo è stato definito un nuovo protocollo, basato in massima parte sul BOOTP,
chiamato Dynamic Host Configuration Protocol o più semplicemente DHCP, il quale, in primo
luogo, consente di non dover specificare un indirizzo IP fisso nella configurazione del
TCP/IP, ma che, a ogni collegamento, fornisce un indirizzo IP dinamico rilasciato poi a
fine sessione.
In questo particolare caso il DHCP è fondamentale in quanto spesso il numero di indirizzi
IP che ciascun provider ha a disposizione è limitato, e comunque inferiore al numero di
abbonati al servizio, per cui non sarebbe fisicamente possibile assegnare in modo
permanente a ciascun abbonato un indirizzo IP fisso.
Unaltra peculiarità di DHCP è garantire, qualora non ci siano necessità
specifiche, che un sistema possa essere configurato in modo totalmente automatico, senza
cioè che sia necessario lintervento manuale in fase di inizializzazione. Non
occorre che lamministratore definisca una configurazione per ogni possibile singolo
sistema: sarà sufficiente stabilire una serie di regole valide per tutti gli host
o per raggruppamenti diversi di sistemi lasciando poi al protocollo il compito di
mappare tali regole sui singoli client. Così come non è necessario che ci sia un server
DHCP per ciascuna sottorete fisica. Dato che questo protocollo è basato sul BOOTP, esso
può utilizzare agenti chiamati BOOTP Relay Agents per reindirizzare richieste e risposte
attraverso sottoreti interconnesse.
Daltra parte, è possibile che, per ragioni di prestazioni o per altri motivi, si
decida di avere più di un server DHCP in una stessa rete. In tal caso, il sistema deve
essere in grado di gestire contemporaneamente più risposte alla sua richiesta
dinizializzazione, che gli arriveranno dai vari server DHCP.
Il DHCP deve essere anche in grado di operare in una rete dove sono presenti sistemi in
cui la configurazione è fissa o viene definita manualmente, o in cui lallocazione
dellindirizzo IP e di altri parametri di configurazione sono gestiti con altri
protocolli, nonché essere capace di comportarsi come un server BOOTP quando richiesto. In
teoria si potrebbe utilizzare il DHCP anche per ottenere parametri di configurazione non
legati allInternet Protocol, anche se ciò non è obbligatorio. Quello che invece il
DHCP non è in grado di fare è registrare automaticamente un host al sistema di gestione
dei nomi (Domain Name System) né tantomeno configurare i router.
Le regole base
Fra i «compiti» di DHCP, di primaria importanza sono: la verifica che un particolare
indirizzo IP non sia utilizzato da più di un sistema contemporaneamente; il controllo che
il server assegni al sistema sempre gli stessi parametri, a ogni collegamento, compreso
lindirizzo IP e, infine, laccertamento che tale configurazione non cambi nel
caso il server di rete o lo stesso server DHCP «cadano».
Questo schema garantisce al client una buona stabilità di configurazione, minimizzando i
problemi che potrebbero derivare dal cambiamento dinamico della configurazione durante una
sessione. Pensate, per esempio, al caso in cui, durante il trasferimento di un file di
grosse dimensioni via FTP, il server di rete, a un certo punto vada in crash. Al momento
del ripristino del collegamento, la prima cosa che tenterà di fare il programma FTP sarà
il resume della connessione, in modo da ricominciare il trasferimento dal punto in cui era
stato interrotto. Questa procedura andrà a buon fine solo se il client, nella seconda
connessione, avrà lo stesso indirizzo IP che gli era stato assegnato nella prima. In caso
contrario, il resume non funzionerà.
Il DHCP garantisce inoltre che i nuovi sistemi collegati per la prima volta abbiano
comunque subito una configurazione automatica senza richiedere lintervento
dellamministratore di rete, permettendo tuttavia la gestione della definizione di
configurazioni permanenti per particolari sistemi, come, per esempio, per i server di
posta elettronica o per i server applicativi.
Il DHCP è formato in realtà da due componenti: il primo è un protocollo che si occupa
di fornire i parametri di configurazione a fronte di specifiche richieste da parte dei
client; il secondo è un meccanismo di allocazione degli indirizzi di rete. Questo
protocollo si basa su uno schema client/server, dove il server è il sistema che fornisce
le informazioni richieste. Dato che tuttavia tali informazioni sono spesso anche delle
specifiche di ogni possibile implementazione dello stack TCP/IP, e dato che alla rete
possono essere connessi sistemi anche molto differenti fra loro, un sistema non si può
improvvisare server DHCP senza opportuni accorgimenti. Per esempio, il server potrebbe
essere specializzato per fornire un certo numero di parametri solo a macchine di un certo
tipo, oppure dedicato a una certa sottorete.
Lutilizzo di più server DHCP nella stessa rete, e in contemporanea, va studiato con
cura, in modo da evitare che lo stesso indirizzo sia assegnato a più client da parte di
server diversi.
Diverse tipologie di attribuzione degli indirizzi
Il DHCP può utilizzare tre differenti meccanismi di allocazione degli indirizzi IP. Il
primo è chiamato allocazione automatica e prevede lassegnazione permanente di un
indirizzo IP a un determinato client. Il secondo si chiama allocazione dinamica, e prevede
lattribuzione temporanea di un indirizzo IP a un determinato sistema. In questo caso
lindirizzo IP viene rilasciato quando il sistema che lo ha ricevuto si scollega o
comunque ha una scadenza ben precisa. Dei tre, questultimo è lunico
meccanismo che permette il riutilizzo degli indirizzi di rete.
Il terzo e ultimo meccanismo è detto allocazione manuale, e consiste semplicemente nel
far conoscere a un determinato sistema lindirizzo IP che comunque
lamministratore della rete ha assegnato in modo manuale a tale sistema.
Tutti e tre i sistemi possono essere utilizzati contemporaneamente nella stessa rete e
grazie allutilizzo degli agenti BOOTP, un server DHCP può servire macchine
collegate a più sottoreti fisiche.
Ogni server DHCP mantiene una tabella che contiene unentrata per ogni client
configurato. Ad ogni client viene assegnato un identificativo unico. Questo può per
esempio essere formato dallindirizzo IP della sottorete più lindirizzo fisico
di rete, differenziato per tipo di scheda di rete. Altri schemi sono comunque possibili.
Per quanto riguarda lindirizzo IP, se assegnato in modo dinamico, questo può essere
scelto con vari criteri. Per esempio, può essere attribuito per primo lindirizzo
meno utilizzato. In ogni caso un server DHCP tende a ridare a un client sempre lo stesso
indirizzo fintanto che possibile. Prima di assegnare un indirizzo, il server si assicura
che esso sia effettivamente libero facendo un controllo via ICMP. Allo stesso modo, il
client che lo riceve, lo verifica via ARP prima di utilizzarlo. Un esempio
dinterazione client/server è riportata in tabella 2.
Il messaggio DHCP
Il formato del messaggio DHCP è praticamente lo stesso del BOOTP, ed è riportato in
tabella 3. Rispetto al BOOTP ci sono però alcune differenze. La prima è che il campo
dedicato alle estensioni proprietarie si chiama adesso campo delle opzioni e, diversamente
dal BOOTP, può avere una lunghezza variabile. La seconda è che una delle opzioni
permette di assegnare a un client un identificativo unico che può essere distinto
dallindirizzo fisico di rete del client stesso.
Unultima considerazione. Il DHCP si poggia direttamente sullUDP, per cui non
possiede alcun livello di affidabilità e soprattutto di sicurezza. È cioè abbastanza
semplice introdurre in rete sia dei falsi server DHCP, sia dei client che si presentano al
server come legittimati a ricevere le informazioni e invece non lo sono. Gli
amministratori di rete dovranno prestare attenzione, poiché esiste sempre la possibilità
che hacker esperti possano creare dallinterno brecce nella rete utilizzando queste
tecniche.
Una descrizione completa del protocollo DHCP può essere trovata nel RFC 2131. Altri RFC
forniscono ulteriori informazioni e dettagli su aspetti specifici del protocollo e sulle
sue relazioni con altri protocolli, come lRFC 1533, che riporta tutte le opzioni
DHCP.
|