Passa al contenuto principale

1. Introduzione (Introduction)

Il protocollo di configurazione dinamica degli host (Dynamic Host Configuration Protocol, DHCP) fornisce parametri di configurazione agli host Internet. DHCP è composto da due componenti: un protocollo per consegnare parametri di configurazione specifici dell'host da un server DHCP a un host e un meccanismo per l'allocazione di indirizzi di rete agli host.

DHCP è costruito su un modello client-server, in cui host server DHCP designati allocano indirizzi di rete e consegnano parametri di configurazione agli host configurati dinamicamente. Nel resto di questo documento, il termine "server" si riferisce a un host che fornisce parametri di inizializzazione tramite DHCP, e il termine "client" si riferisce a un host che richiede parametri di inizializzazione da un server DHCP.

Un host non dovrebbe agire come server DHCP a meno che non sia esplicitamente configurato per farlo da un amministratore di sistema. La diversità delle implementazioni hardware e di protocollo su Internet impedirebbe un funzionamento affidabile se fossero consentiti a host casuali di rispondere alle richieste DHCP. Ad esempio, IP richiede l'impostazione di molti parametri all'interno del software di implementazione del protocollo. Poiché IP può essere utilizzato su molti tipi diversi di hardware di rete, i valori per quei parametri non possono essere indovinati o si può supporre che abbiano valori predefiniti corretti. Inoltre, gli schemi di allocazione degli indirizzi distribuiti dipendono da un meccanismo di polling/difesa per la scoperta di indirizzi già in uso. Gli host IP potrebbero non essere sempre in grado di difendere i loro indirizzi di rete, quindi tale schema di allocazione degli indirizzi distribuiti non può garantire di evitare l'allocazione di indirizzi di rete duplicati.

DHCP supporta tre meccanismi per l'allocazione degli indirizzi IP. Nell'"allocazione automatica", DHCP assegna un indirizzo IP permanente a un client. Nell'"allocazione dinamica", DHCP assegna un indirizzo IP a un client per un periodo di tempo limitato (o fino a quando il client rinuncia esplicitamente all'indirizzo). Nell'"allocazione manuale", l'indirizzo IP di un client viene assegnato dall'amministratore di rete, e DHCP viene semplicemente utilizzato per trasmettere l'indirizzo assegnato al client. Una rete particolare utilizzerà uno o più di questi meccanismi, a seconda delle politiche dell'amministratore di rete.

L'allocazione dinamica è l'unico di questi meccanismi che consente il riutilizzo automatico di un indirizzo che non è più necessario al client a cui è stato assegnato. Pertanto, l'allocazione dinamica è particolarmente utile per assegnare un indirizzo a un client che sarà connesso alla rete solo temporaneamente o per condividere un pool limitato di indirizzi IP tra un gruppo di client che non necessitano di indirizzi IP permanenti. L'allocazione dinamica può anche essere una buona scelta per assegnare un indirizzo IP a un nuovo client connesso permanentemente a una rete dove gli indirizzi IP sono sufficientemente scarsi da rendere importante recuperarli quando i vecchi client vengono dismessi. L'allocazione manuale consente di utilizzare DHCP per eliminare il processo soggetto a errori della configurazione manuale degli host con indirizzi IP in ambienti dove (per qualsiasi motivo) è desiderabile gestire l'assegnazione degli indirizzi IP al di fuori dei meccanismi DHCP.

Il formato dei messaggi DHCP è basato sul formato dei messaggi BOOTP, per catturare il comportamento dell'agente relay BOOTP descritto come parte della specifica BOOTP [7, 21], e per consentire l'interoperabilità dei client BOOTP esistenti con i server DHCP. L'utilizzo di agenti relay BOOTP elimina la necessità di avere un server DHCP su ogni segmento di rete fisico.


1.1 Modifiche alla RFC 1541

Questo documento aggiorna la specifica del protocollo DHCP che appare nella RFC 1541. È stato aggiunto un nuovo tipo di messaggio DHCP, DHCPINFORM; vedere le sezioni 3.4, 4.3 e 4.4 per i dettagli. Il meccanismo di classificazione per identificare i client DHCP ai server DHCP è stato esteso per includere le classi "vendor" come definito nelle sezioni 4.2 e 4.3. La restrizione sulla durata minima del lease è stata rimossa. Infine, sono state apportate molte modifiche editoriali per chiarire il testo come risultato dell'esperienza acquisita nei test di interoperabilità DHCP.


1.2 Lavori correlati

Esistono diversi protocolli Internet e meccanismi correlati che affrontano alcune parti del problema complessivo della configurazione degli host. Il Reverse Address Resolution Protocol (RARP) [10] (attraverso le estensioni definite nel Dynamic RARP (DRARP) [5]) affronta esplicitamente il problema della scoperta dell'indirizzo di rete e include un meccanismo di assegnazione automatica degli indirizzi IP. Il Trivial File Transfer Protocol (TFTP) [20] fornisce il trasporto di un'immagine di boot da un server di boot. L'Internet Control Message Protocol (ICMP) [16] fornisce informazioni agli host sui router aggiuntivi tramite messaggi "ICMP redirect". ICMP può anche fornire informazioni sulla maschera di sottorete tramite il messaggio "ICMP mask request" e altre informazioni tramite il messaggio (obsoleto) "ICMP information request". Gli host possono localizzare i router tramite il meccanismo di scoperta del router ICMP [8].

BOOTP è un meccanismo di trasporto per una raccolta di informazioni di configurazione. BOOTP è anche estensibile, e sono state definite estensioni ufficiali [17] per diversi parametri di configurazione. Morgan ha proposto estensioni a BOOTP per l'assegnazione dinamica degli indirizzi IP [15]. Il Network Information Protocol (NIP), utilizzato dal progetto Athena al MIT, è un meccanismo distribuito per l'assegnazione dinamica degli indirizzi IP [19]. Il Resource Location Protocol RLP [1] fornisce la localizzazione di servizi di livello superiore. Le workstation senza disco Sun Microsystems utilizzano una procedura di boot che impiega RARP, TFTP e un meccanismo RPC chiamato "bootparams" per fornire informazioni di configurazione e codice del sistema operativo agli host senza disco. (Sun Microsystems, Sun Workstation e SunOS sono marchi commerciali di Sun Microsystems, Inc.) Alcune reti Sun utilizzano anche DRARP e un meccanismo di auto-installazione per automatizzare la configurazione di nuovi host in una rete esistente.

In altri lavori correlati, l'algoritmo di scoperta dell'unità di trasmissione minima del percorso (MTU) può determinare la MTU di un percorso Internet arbitrario [14]. L'Address Resolution Protocol (ARP) è stato proposto come protocollo di trasporto per la localizzazione e selezione delle risorse [6]. Infine, le RFC sui requisiti degli host [3, 4] menzionano requisiti specifici per la riconfigurazione degli host e suggeriscono uno scenario per la configurazione iniziale degli host senza disco.


1.3 Definizione del problema e questioni

DHCP è progettato per fornire ai client DHCP i parametri di configurazione definiti nelle RFC sui requisiti degli host. Dopo aver ottenuto i parametri tramite DHCP, un client DHCP dovrebbe essere in grado di scambiare pacchetti con qualsiasi altro host su Internet. I parametri dello stack TCP/IP forniti da DHCP sono elencati nell'Appendice A.

Non tutti questi parametri sono richiesti per un client appena inizializzato. Un client e un server possono negoziare per la trasmissione solo dei parametri richiesti dal client o specifici per una particolare sottorete.

DHCP consente ma non richiede la configurazione di parametri client non direttamente correlati al protocollo IP. DHCP inoltre non affronta la registrazione dei client appena configurati nel Domain Name System (DNS) [12, 13].

DHCP non è destinato all'uso nella configurazione dei router.


1.4 Requisiti

In tutto questo documento, le parole utilizzate per definire l'importanza di particolari requisiti sono scritte in maiuscolo. Queste parole sono:

"MUST" (deve)

Questa parola o l'aggettivo "REQUIRED" significa che l'elemento è un requisito assoluto di questa specifica.

"MUST NOT" (non deve)

Questa frase significa che l'elemento è un divieto assoluto di questa specifica.

"SHOULD" (dovrebbe)

Questa parola o l'aggettivo "RECOMMENDED" significa che potrebbero esistere ragioni valide in circostanze particolari per ignorare questo elemento, ma le implicazioni complete dovrebbero essere comprese e il caso attentamente valutato prima di scegliere un corso diverso.

"SHOULD NOT" (non dovrebbe)

Questa frase significa che potrebbero esistere ragioni valide in circostanze particolari quando il comportamento elencato è accettabile o persino utile, ma le implicazioni complete dovrebbero essere comprese e il caso attentamente valutato prima di implementare qualsiasi comportamento descritto con questa etichetta.

"MAY" (può)

Questa parola o l'aggettivo "OPTIONAL" significa che questo elemento è veramente opzionale. Un fornitore può scegliere di includere l'elemento perché un particolare mercato lo richiede o perché migliora il prodotto, ad esempio; un altro fornitore può omettere lo stesso elemento.


1.5 Terminologia

Questo documento utilizza i seguenti termini:

"DHCP client" (client DHCP)

Un client DHCP è un host Internet che utilizza DHCP per ottenere parametri di configurazione come un indirizzo di rete.

"DHCP server" (server DHCP)

Un server DHCP è un host Internet che restituisce parametri di configurazione ai client DHCP.

"BOOTP relay agent" (agente relay BOOTP)

Un agente relay BOOTP o agente relay è un host Internet o un router che passa messaggi DHCP tra client DHCP e server DHCP. DHCP è progettato per utilizzare lo stesso comportamento dell'agente relay documentato nella specifica del protocollo BOOTP.

"binding" (associazione)

Un'associazione è una raccolta di parametri di configurazione, incluso almeno un indirizzo IP, associata o "legata" a un client DHCP. Le associazioni sono gestite dai server DHCP.


1.6 Obiettivi di progettazione

Il seguente elenco fornisce obiettivi generali di progettazione per DHCP.

  • DHCP dovrebbe essere un meccanismo piuttosto che una politica. DHCP deve consentire agli amministratori di sistema locali il controllo sui parametri di configurazione quando desiderato; ad esempio, gli amministratori di sistema locali dovrebbero essere in grado di applicare politiche locali riguardanti l'allocazione e l'accesso alle risorse locali quando desiderato.

  • I client non dovrebbero richiedere una configurazione manuale. Ogni client dovrebbe essere in grado di scoprire parametri di configurazione locali appropriati senza intervento dell'utente e incorporare tali parametri nella propria configurazione.

  • Le reti non dovrebbero richiedere una configurazione manuale per i singoli client. In circostanze normali, il gestore di rete non dovrebbe dover inserire parametri di configurazione per client.

  • DHCP non dovrebbe richiedere un server su ogni sottorete. Per consentire scala ed economia, DHCP deve funzionare attraverso i router o attraverso l'intervento di agenti relay DHCP.

  • Un client DHCP deve essere preparato a ricevere più risposte a una richiesta di parametri di configurazione. Alcune installazioni possono includere più server DHCP sovrapposti per migliorare l'affidabilità e aumentare le prestazioni.

  • DHCP deve coesistere con host configurati staticamente, non partecipanti e con implementazioni di protocollo di rete esistenti.

  • DHCP deve interoperare con il comportamento dell'agente relay BOOTP come descritto da RFC 951 e RFC 1542 [21].

  • DHCP deve fornire servizio ai client BOOTP esistenti.

Il seguente elenco fornisce obiettivi di progettazione specifici per la trasmissione dei parametri di livello di rete. DHCP deve:

  • Garantire che qualsiasi indirizzo di rete specifico non sarà in uso da più di un client DHCP alla volta,

  • Conservare la configurazione del client DHCP attraverso i riavvii del client DHCP. Un client DHCP dovrebbe, quando possibile, essere assegnato gli stessi parametri di configurazione (ad esempio, indirizzo di rete) in risposta a ciascuna richiesta,

  • Conservare la configurazione del client DHCP attraverso i riavvii del server e, quando possibile, un client DHCP dovrebbe essere assegnato gli stessi parametri di configurazione nonostante i riavvii del meccanismo DHCP,

  • Consentire l'assegnazione automatica dei parametri di configurazione ai nuovi client per evitare la configurazione manuale per i nuovi client,

  • Supportare l'allocazione fissa o permanente dei parametri di configurazione a client specifici.