Quando si parla di reti, ci sono alcune risorse che vengono utilizzate e ci semplificano la vita, ma non ce ne rendiamo nemmeno conto. Uno di questi è il protocollo DHCP. Dall’inglese Dynamic Host Configuration Protocol, è un protocollo utilizzato nelle reti di computer che consente alle macchine di ottenere un indirizzo IP automaticamente.
Questo protocollo ha iniziato a guadagnare terreno intorno all’ottobre 1993, essendo il successore di BOOTP che, sebbene più semplice, è diventato troppo limitato per i requisiti attuali.
Il protocollo DHCP è un protocollo client/server che fornisce automaticamente a un host IP (protocollo IP) il suo indirizzo IP e altre informazioni di configurazione correlate come la subnet mask e il gateway predefinito. Le RFC 2131 e 2132 definiscono DHCP come uno standard IETF (Internet Engineering Task Force) basato sul protocollo BOOTP, un protocollo con il quale DHCP condivide molti dettagli di implementazione. DHCP consente agli host di ottenere le informazioni di configurazione TCP/IP necessarie da un server DHCP.
Windows Server 2016 include il server DHCP, che è un ruolo del server di rete facoltativo che puoi distribuire nella rete per affittare indirizzi IP e altre informazioni ai client DHCP. Tutti i sistemi operativi client Windows basati su Windows includono il client DHCP come parte di TCP/IP e il client DHCP è abilitato per impostazione predefinita.
Perché è importante?
Diciamo che sei l’amministratore di una rete. Se fosse una rete domestica con 3 computer, non sarebbe troppo complicato assegnare a ciascuno di essi un numero IP e tutti i parametri necessari. Ora, se ce ne fossero 100, 200 o più, la storia sarebbe sicuramente diversa.
Il protocollo DHCP fa proprio questo, attraverso il quale un server è in grado di distribuire automaticamente indirizzi IP diversi a tutti i computer mentre effettuano la richiesta di connessione alla rete. Questa distribuzione di IP viene eseguita a un intervallo predefinito configurato sul server. Ogni volta che una delle macchine viene disconnessa, l’IP sarà gratuito per l’uso su un’altra.
Potresti aver sentito dire che ottieni un indirizzo IP diverso per ogni connessione Internet, giusto? Questo è un fatto che è responsabile del DHCP combinato con diversi protocolli.
Come fa?
In breve, utilizzando un modello client-server, DHCP esegue le seguenti operazioni:
● Quando un client si connette a una rete, invia un pacchetto con una richiesta di impostazioni DHCP.
● Il server DHCP gestisce un intervallo fisso di IP disponibili insieme alle informazioni e ai parametri necessari (gateway predefinito, nome di dominio, DNS, ecc.).
● Quando questo server riceve una richiesta, fornisce uno di questi indirizzi e impostazioni al client.
Modalità operative
Può funzionare in tre modi: automatico, dinamico e manuale.
Automatico , in cui è definito un numero di indirizzi IP (entro un intervallo) da utilizzare sulla rete. In questo caso, ogni volta che uno dei computer di una rete richiede una connessione ad esso, uno di questi IP verrà assegnato alla macchina in questione.
In dinamica la procedura è molto simile a quella eseguita da automatico, ma la connessione del computer con un certo IP è limitata da un periodo di tempo preconfigurato che può variare a piacere dall’amministratore di rete.
In modalità manuale , DHCP assegna un indirizzo IP in base al valore MAC (Medium Access Control) di ciascuna scheda di rete in modo che ciascun computer utilizzi solo questo indirizzo IP. Questa funzione viene utilizzata quando è necessario che una macchina disponga di un indirizzo IP fisso.
Poiché DHCP supporta più piattaforme, offre una soluzione efficiente e fornisce un grande aiuto agli amministratori di rete. Ora che sai cos’è questo protocollo di rete e cosa fa, speriamo che tutte le domande sull’argomento abbiano ricevuto risposta soddisfacente e fino alla prossima volta!
Perché usare DHCP?
Ciascun dispositivo su una rete basata su TCP/IP deve disporre di un indirizzo IP unicast univoco per accedere alla rete e alle sue risorse. Senza DHCP, gli indirizzi IP per i nuovi computer o per i computer che vengono spostati da una sottorete a un’altra devono essere configurati manualmente; Gli indirizzi IP per i computer rimossi dalla rete devono essere recuperati manualmente.
Con DHCP, l’intero processo è automatizzato e gestito centralmente. Il server DHCP mantiene un pool di indirizzi IP e affitta un indirizzo a qualsiasi client abilitato per DHCP all’avvio della rete. Poiché gli indirizzi IP sono dinamici (leasing) anziché statici (assegnati in modo permanente), gli indirizzi non più in uso vengono automaticamente restituiti al pool per il riposizionamento.
L’amministratore di rete stabilisce server DHCP che conservano le informazioni di configurazione TCP/IP e forniscono la configurazione degli indirizzi ai client abilitati per DHCP sotto forma di un’offerta di locazione. Il server DHCP memorizza le informazioni di configurazione in un database che include:
Parametri di configurazione TCP/IP validi per tutti i client sulla rete.
Indirizzi IP validi, conservati in un pool per l’assegnazione ai client, nonché indirizzi esclusi.
Indirizzi IP riservati associati a client DHCP specifici. Ciò consente l’assegnazione coerente di un singolo indirizzo IP a un singolo client DHCP.
La durata del contratto di locazione, o il periodo di tempo in cui l’indirizzo IP può essere utilizzato prima che sia richiesto un rinnovo del contratto di locazione.
Un client abilitato per DHCP, dopo aver accettato un’offerta di locazione, riceve:
Un indirizzo IP valido per la sottorete a cui si sta connettendo.
Opzioni DHCP richieste, che sono parametri aggiuntivi che un server DHCP è configurato per assegnare ai client. Alcuni esempi di opzioni DHCP sono Router (gateway predefinito), Server DNS e Nome di dominio DNS.
Vantaggi del DHCP
DHCP offre i seguenti vantaggi.
Configurazione indirizzo IP affidabile. DHCP riduce al minimo gli errori di configurazione causati dalla configurazione manuale di un indirizzo IP, come errori tipografici o conflitti di indirizzi causati dall’assegnazione di un indirizzo IP a più computer contemporaneamente.
Amministrazione di rete ridotta. DHCP include le seguenti funzioni per ridurre l’amministrazione della rete:
Configurazione TCP/IP centralizzata e automatizzata.
La possibilità di configurare le impostazioni TCP/IP da una posizione centrale.
La possibilità di assegnare una gamma completa di valori di configurazione TCP/IP aggiuntivi tramite le opzioni DHCP.
Gestione efficiente delle modifiche dell’indirizzo IP per i client che devono essere aggiornati frequentemente, come quelli per i dispositivi palmari che si spostano in posizioni diverse su una rete wireless.
Inoltro dei messaggi DHCP iniziali utilizzando un agente di inoltro DHCP, che elimina la necessità di un server DHCP su ciascuna sottorete.
Termini usati in DHCP
Server DHCP: è un server in cui è stato installato e configurato il servizio DHCP. In Microsoft Windows, dopo aver installato un server DHCP, è necessario che sia autorizzato in Active Directory prima che possa soddisfare efficacemente le richieste dei client. La procedura di autorizzazione in Active Directory è una misura di sicurezza per impedire che i server DHCP vengano introdotti nella rete all’insaputa dell’amministratore di rete. Oltre a Windows Server, il servizio DHCP può essere installato anche su distribuzioni Linux, come il servizio DHCP3 Server, un pacchetto già presente nella maggior parte delle distribuzioni server Linux. Il server DHCP non è disponibile per Windows 2000 Professional, Windows XP Professional o Windows Vista.
Client DHCP: qualsiasi dispositivo di rete in grado di ottenere le impostazioni TCP/IP da un server DHCP. Ad esempio, una workstation con Microsoft Windows 10, una workstation con qualsiasi distribuzione Linux, una stampante con una scheda di rete abilitata per DHCP, ecc.
Ambito: un ambito è l’intervallo consecutivo completo di possibili indirizzi IP per una rete (ad esempio, l’intervallo da 10.10.10.100 a 10.10.10.150, sulla rete 10.10.10.0/255.255.255.0). In generale, gli ambiti definiscono una singola sottorete fisica all’interno della rete su cui verranno offerti i servizi DHCP. Gli ambiti forniscono anche il metodo principale per il server per gestire la distribuzione e l’assegnazione di indirizzi IP e altri parametri di configurazione per i client sulla rete, come il gateway predefinito, il server DNS e così via.
Superscope: un superscope è un raggruppamento amministrativo di ambiti che può essere utilizzato per supportare più subnet IP logiche sulla stessa subnet fisica. I superscopi contengono solo un elenco di ambiti associati o di ambiti figlio che possono essere attivati insieme. I superscopi non vengono utilizzati per configurare altri dettagli sull’utilizzo dell’ambito. Per configurare la maggior parte delle proprietà utilizzate in un superscope, è necessario configurare le proprietà per ogni ambito associato individualmente. Ad esempio, se a tutti i computer deve essere assegnato lo stesso numero IP del gateway predefinito, questo numero deve essere configurato individualmente in ogni ambito. Non c’è modo di fare questa configurazione nel superscope e tutti gli scope (che compongono il superscope) erediteranno queste configurazioni.
Intervallo di esclusione: un intervallo di esclusione è una sequenza limitata di indirizzi IP all’interno di un ambito, esclusi dagli indirizzi forniti da DHCP. Gli intervalli di esclusione assicurano che gli indirizzi in questi intervalli non siano offerti dal server ai client DHCP sulla rete. Ad esempio, nell’intervallo da 10.10.10.100 a 10.10.10.150, sulla rete 10.10.10.0/255.255.255.0 di un determinato ambito, è possibile creare un intervallo di esclusione da 10.10.10.120 a 10.10.10.130. Gli indirizzi dell’intervallo di esclusione non verranno utilizzati dal server DHCP per configurare i client DHCP.
Pool di indirizzi: dopo aver definito un ambito DHCP e applicato gli intervalli di esclusione, gli indirizzi rimanenti formano il pool di indirizzi disponibili all’interno dell’ambito. Gli indirizzi in pool sono idonei per l’assegnazione dinamica da parte del server ai client DHCP sulla rete. Nel nostro esempio, dove abbiamo l’ambito con l’intervallo da 10.10.10.100 a 10.10.10.150, con un intervallo di esclusione da 10.10.10.120 a 10.10.10.130, il nostro pool di indirizzi è formato dagli indirizzi da 10.10.10.100 a 10.10.10.119 , più indirizzi da 10.10.10.131 a 10.10.10.150.
Lease: un lease è un periodo di tempo specificato da un server DHCP durante il quale un computer client può utilizzare un indirizzo IP ricevuto dal server DHCP (si dice che sia stato assegnato dal server DHCP). Un contratto di locazione è attivo quando viene utilizzato dal cliente. In genere, il client deve rinnovare l’assegnazione del contratto di locazione dell’indirizzo con il server prima che scada. Un lease diventa inattivo quando scade o viene eliminato sul server. La durata di un contratto di locazione determina quando scadrà e con quale frequenza il client deve rinnovarlo sul server.
Prenotazione: una prenotazione viene utilizzata per creare un lease di indirizzi permanente dal server DHCP. Le prenotazioni garantiscono che un dispositivo hardware specifico nella sottorete possa utilizzare sempre lo stesso indirizzo IP. La prenotazione viene creata associata all’indirizzo hardware della scheda di rete, noto come indirizzo MAC (o indirizzo MAC). Nel server DHCP viene creata una prenotazione associando un indirizzo IP ad un indirizzo MAC. Quando il computer (con l’indirizzo MAC per il quale esiste una prenotazione) si avvia, contatta il server DHCP. Il server DHCP verifica che vi sia una prenotazione per quell’indirizzo MAC e configura il computer con l’indirizzo IP associato all’indirizzo MAC. Se si verifica un problema con la scheda di rete del computer e la scheda deve essere sostituita,
Tipi di opzione: i tipi di opzione sono altri parametri di configurazione del client che un server DHCP può assegnare ai client. Ad esempio, alcune opzioni comunemente utilizzate includono indirizzi IP per gateway (router) predefiniti, server WINS (Windows Internet Name System) e server DNS (Domain Name System). Questi tipi di opzioni sono generalmente abilitati e configurati per ogni ambito. La console di amministrazione del servizio DHCP consente inoltre di configurare i tipi di opzioni predefiniti utilizzati da tutti gli ambiti aggiunti e configurati sul server. La maggior parte delle opzioni sono predefinite tramite RFC 2132, ma è possibile utilizzare la console DHCP per definire e aggiungere tipi di opzioni personalizzate, se necessario.
Criteri di assegnazione IP
DHCP, a seconda dell’implementazione, può offrire tre tipi di allocazione dell’indirizzo IP:
Assegnazione manuale – Dove è presente una tabella di associazione tra l’indirizzo MAC del client (che verrà confrontato tramite il pacchetto broadcast ricevuto) e l’indirizzo IP (e dati rimanenti) da fornire. Questa associazione viene eseguita manualmente dall’amministratore di rete; pertanto, solo i client il cui MAC appare in questo elenco potranno ricevere le configurazioni da quel server;
Assegnazione automatica: quando il client ottiene un indirizzo da un possibile spazio di indirizzi, specificato dall’amministratore. In genere non esiste alcun collegamento tra i vari MAC abilitati in questo spazio di indirizzi;
Assegnazione dinamica: l’unico metodo che prevede il riutilizzo dinamico degli indirizzi. L’amministratore mette a disposizione uno spazio di possibili indirizzi e ogni client avrà il software TCP/IP della propria interfaccia di rete configurato per richiedere un indirizzo tramite DHCP non appena la macchina si connette alla rete. L’allocazione utilizza un meccanismo di locazione degli indirizzi, caratterizzato da una durata. Azzerato/scaduto questa durata naturalmente, la prossima volta che il client si connette, l’indirizzo sarà probabilmente un altro.
Alcune implementazioni del software del server DHCP consentono anche l’aggiornamento dinamico dei server DNS in modo che ogni client abbia anche un DNS. Questo meccanismo utilizza il protocollo di aggiornamento DNS specificato nella RFC 2136.
Inoltro DHCP
Nelle piccole reti in cui viene gestita una sola sottorete IP, i client DHCP comunicano direttamente con i server DHCP. Tuttavia, i server DHCP possono anche fornire indirizzi IP per più sottoreti. In questo caso, un client DHCP che non ha ancora acquisito un indirizzo IP non può comunicare direttamente con il server DHCP utilizzando il routing IP, perché non ha un indirizzo IP, né conosce l’indirizzo IP di un router. Per consentire ai client DHCP su sottoreti non servite direttamente dai server DHCP di comunicare con i server DHCP, è possibile installare agenti di inoltro DHCP su queste sottoreti. Il client DHCP trasmette sul collegamento locale, l’agente di inoltro riceve la trasmissione e la trasmette a uno o più server DHCP utilizzando unicast. L’agente di inoltro memorizza il proprio indirizzo IP nel campo GIADDR del pacchetto DHCP. Il server DHCP utilizza GIADDR per determinare la sottorete su cui l’agente di inoltro ha ricevuto la trasmissione e assegna un indirizzo IP sulla sottorete. Quando il server DHCP risponde al client, invia la risposta all’indirizzo GIADDR, sempre utilizzando unicast. L’agente di inoltro trasmette quindi la risposta sulla rete locale.
Affidabilità
Il protocollo DHCP fornisce affidabilità in diversi modi: rinnovo periodico, riassociazione e failover. Ai client DHCP vengono assegnati contratti di locazione che durano per un certo periodo di tempo. I clienti iniziano a provare a rinnovare i contratti di locazione una volta scaduta metà dell’intervallo di locazione. Lo fanno inviando un messaggio DHCPREQUEST unicast al server DHCP che ha concesso il contratto originale. Se quel server è inattivo o irraggiungibile, smetterà di rispondere a DHCPREQUEST. Tuttavia, la richiesta DHCP verrà ripetuta dal client di volta in volta, [specificare], quindi quando il server DHCP torna o diventa nuovamente raggiungibile, il client DHCP sarà in grado di contattarlo e rinnovare il suo contratto. Se il server DHCP è irraggiungibile per un periodo di tempo prolungato, [specificare] il client DHCP tenterà di ricollegarsi, trasmettendo la sua DHCPREQUEST invece di inviarla in unicast. Poiché viene trasmesso, il messaggio DHCPREQUEST raggiunge tutti i server DHCP disponibili. Se qualche altro server DHCP è in grado di rinnovare il contratto di locazione, lo farà a questo punto.
Affinché la riassociazione funzioni, quando il client contatta correttamente un server DHCP di backup, il server deve disporre di informazioni di associazione client accurate. Mantenere le informazioni di associazione accurate tra due server è un problema complicato, se entrambi i server sono in grado di aggiornare lo stesso database di posizione, deve essere presente un meccanismo per evitare conflitti tra aggiornamenti su server indipendenti. Uno standard per l’implementazione di server DHCP tolleranti agli errori è stato sviluppato presso l’Internet Engineering Task Force.
Se la riconnessione fallisce, il contratto di locazione scadrà. Alla scadenza del contratto di locazione, il cliente deve interrompere l’utilizzo dell’indirizzo IP fornitogli nel contratto. A quel punto, riavvierà il processo DHCP dall’inizio, trasmettendo un messaggio DHCPDISCOVER. Poiché il suo contratto di locazione è scaduto, accetterà qualsiasi indirizzo IP che gli viene offerto. Una volta che avrà un nuovo indirizzo IP, probabilmente da un server DHCP diverso, sarà nuovamente in grado di utilizzare la rete. Tuttavia, poiché il tuo indirizzo IP è cambiato, le connessioni in corso verranno interrotte.
Sicurezza
La base del protocollo DHCP non include alcun meccanismo di autenticazione. Pertanto, è vulnerabile a una varietà di attacchi. Questi attacchi si dividono in tre categorie principali:
Fornitura di informazioni false ai client da parte di server DHCP non autorizzati.
Accesso alle risorse di rete da parte di client non autorizzati.
Attacchi esaustivi alle risorse di rete da client DHCP dannosi.
Poiché il client non ha modo di convalidare l’identità di un server DHCP, i server DHCP non autorizzati possono operare sulle reti, fornendo informazioni errate ai client DHCP. Questo può servire sia come attacco Denial of Service, impedendo al client di ottenere l’accesso alla connettività di rete. Poiché il server DHCP fornisce al client DHCP gli indirizzi IP del server, come l’indirizzo IP di uno o più server DNS, un utente malintenzionato può convincere un client DHCP a eseguire ricerche tramite il suo DNS sul proprio server DNS e può quindi fornire il proprio proprie risposte alle query DNS dal client. A sua volta, consente all’attaccante di reindirizzare il traffico di rete attraverso se stesso, consentendogli di ascoltare le connessioni tra i server di rete del client ed entra in contatto, o semplicemente di sostituire i server di rete con i propri. Poiché il server DHCP non dispone di un meccanismo sicuro per autenticare il client, i client possono ottenere l’accesso non autorizzato agli indirizzi IP presentando credenziali, ad esempio identificatori client, che appartengono ad altri client DHCP. Ciò consente inoltre ai client DHCP di esaurire la memoria degli indirizzi IP del server DHCP presentando nuove credenziali ogni volta che richiede un indirizzo, il client può utilizzare tutti gli indirizzi IP disponibili su un particolare collegamento di rete, impedendo ad altri client DHCP di ottenere servizi. DHCP fornisce alcuni meccanismi per mitigare questi problemi. Ciò consente inoltre ai client DHCP di esaurire la memoria degli indirizzi IP del server DHCP presentando nuove credenziali ogni volta che richiede un indirizzo, il client può utilizzare tutti gli indirizzi IP disponibili su un particolare collegamento di rete, impedendo ad altri client DHCP di ottenere servizi. DHCP fornisce alcuni meccanismi per mitigare questi problemi. Ciò consente inoltre ai client DHCP di esaurire la memoria degli indirizzi IP del server DHCP presentando nuove credenziali ogni volta che richiede un indirizzo, il client può utilizzare tutti gli indirizzi IP disponibili su un particolare collegamento di rete, impedendo ad altri client DHCP di ottenere servizi. DHCP fornisce alcuni meccanismi per mitigare questi problemi.
L’opzione di estensione del protocollo di informazioni sull’agente di inoltro (RFC 3046) consente agli operatori di rete di collegare i tag ai messaggi DHCP una volta che questi messaggi arrivano alla rete attendibile dell’operatore di rete. Questo tag viene quindi utilizzato come token di autorizzazione per controllare l’accesso del client alle risorse di rete. Poiché il client non ha accesso alla rete a monte dell’agente di inoltro, la mancanza di autenticazione non impedisce all’operatore del server DHCP di considerare attendibile il token di autorizzazione.
Un’altra estensione, Autenticazione per messaggi DHCP (RFC 3118), fornisce un meccanismo per l’autenticazione dei messaggi DHCP. Sfortunatamente, l’RFC 3118 non ha visto un’adozione diffusa a causa di problemi di gestione delle chiavi per un gran numero di client DHCP.