DHCP: cosa si nasconde dietro al Dynamic Host Configuration Protocol

Connettere dispositivi con un network TCP/IP già in uso è ormai un gioco da ragazzi: se una volta l’indirizzo IP andava digitato carattere per carattere e inserito manualmente nei diversi sistemi, al giorno d’oggi la gestione degli indirizzi avviene in maniera del tutto automatica. Se gli hardware di comunicazione come i router, gli hub o gli switch sono in grado di assegnare automaticamente un indirizzo personalizzato ai dispositivi in cerca di connessione per poi integrarli nella rete, è tutto merito del Dynamic Host Configuration Protocol (DHCP).

Il Black Friday di IONOS

Risparmia fino al 98% su un'ampia selezione di prodotti.

Offerta valida fino al 29 novembre.

Web hosting
WordPress
Domini

Cos’è il DHCP?

Il Dynamic Host Configuration Protocol è un’implementazione del Bootstrap Protocol (BOOTP), sviluppato nel 1985, il quale serviva per la connessione di dispositivi semplici come terminali e workstation prive di disco rigido con un boot server. Questi dispositivi collegavano poi il proprio sistema operativo tramite il server. Il DHCP è stato sviluppato come soluzione per reti più estese e computer portatili e compensa il BOOTP sia con la capacità di assegnazione automatica di indirizzi di rete riutilizzabili sia con possibilità aggiuntive di configurazione.

Dopo le prime definizioni del protocollo negli RFC 1531 e 1541 (entrambe avvenute nel 1993), la specificazione standard definitiva è stata effettuata nel 1997 con l’RFC 2131. La Internet Assigned Numbers Authority (IANA) assegnò al protocollo di comunicazione le porteUDP 67 e 68 (per IPv6: porte 546 e 547), che sono previsti anche per il protocollo Bootstrap.

L’assegnazione di indirizzo con DHCP funziona secondo il principio “client-server”: i dispositivi alla ricerca di connessione richiedono la configurazione dell’indirizzo IP da un server DHCP, che a sua volta attinge a un database dove sono dati tutti i parametri della rete da impostare. Fra le altre cose, questo server, che è un componente di ogni moderno router ADSL, è in grado di assegnare al client le seguenti impostazioni con l’aiuto delle informazioni del database:

  • IndirizzoIP univoco
  • Subnet mask
  • Standard Gateway
  • Server DNS
  • Configurazione proxy tramite WPAD (Web Proxy Auto-Discovery Protocol)

Come avviene la comunicazione tra il client DHCP e il server?

L’assegnazione automatica dell’indirizzo tramite il Dynamic Host Configuration Protocol avviene in quattro passaggi in successione:

  1. Per cominciare il client invia un pacchetto DHCPDISCOVER con l’indirizzo di destinazione 255.255.255.255 e l’indirizzo sorgente 0.0.0.0. Con questo cosiddetto “broadcast”, il client contatta tutti i partecipanti alla rete per poter localizzare i server DHCP disponibili e per informarli della richiesta di indirizzo. Nella migliore delle ipotesi c’è un unico server cosicché non si vengano a creare complicazioni durante l’assegnazione.
  2. Successivamente tutti i server DHCP raggiunti, i quali sono attivi sulla porta 67 in attesa di richieste in entrata, rispondono al broadcast con un pacchetto DHCPOFFER. Lo stesso contiene un possibile indirizzo IP libero e l’indirizzo MAC del client, oltre che la subnet mask e l’indirizzo IP e l’ID del server.
  3. Il client DHCP sceglie poi i dati di indirizzo desiderati tra quelli ottenuti e informa il server corrispondente tramite DHCPREQUEST. Anche tutti gli altri server ricevono questo messaggio e sono quindi al corrente del fatto che la scelta è stata fatta a favore di un altro rappresentante. Oltre a ciò il client richiede al server l’esecuzione dei dati offerti. Il DHCPREQUEST serve anche per confermare i parametri ottenuti già in un momento precedente.
  4. Per finire il server conferma i parametri TCP/IP e li trasmette un’altra volta al client, anche se lo fa per mezzo di un pacchetto DHCPACK (DHCP acknowledged, “riconosciuto”). Questo contiene indicazioni aggiuntive, come ad esempio riguardo al server DNS, SMTP o POP3. Il client DHCP salva quindi tutti i dati ottenuti a livello locale e si connette a tutte le reti. Se il server non ha più alcun indirizzo a disposizione o se il rispettivo indirizzo IP è stato assegnato a un altro client, allora risponderà con DHCPNAK (DHCPnot acknowledged, “non riconosciuto”).

L’indirizzo assegnato automaticamente viene salvato in combinazione con l’indirizzo MAC all’interno del database del server, facendo in modo che la configurazione rimanga costantemente attiva. Il dispositivo stabilisce la connessione con la rete sempre con l’indirizzo che gli è stato assegnato, il quale è bloccato per gli altri client. Ciò ha purtroppo anche lo svantaggio che i nuovi client DHCP non ottengono alcun indirizzo se l’intero spazio di indirizzamento è già stato assegnato; ciò avviene anche se alcuni degli IP non sono più utilizzati attivamente. Per questo motivo sono decisamente più diffusi gli IP dinamici e, in casi specifici l’assegnazione manuale tramite server DHCP, che verrà approfondita nel seguente paragrafo.

DHCP: assegnazione manuale e dinamica dell‘indirizzo

Il problema di uno spazio di indirizzamento completamente occupato è piuttosto improbabile nell’utilizzo dell’assegnazione dinamica. In teoria questo procedimento è quasi completamente simile all’assegnazione automatica, tuttavia esiste una piccola ma sostanziale differenza: le configurazioni IP trasmesse dal server DHCP, infatti, non sono valide per un tempo illimitato, bensì sono munite di un lease time (“tempo di lease”) definito dall’amministratore.

Questa indicazione rappresenta l’intervallo di tempo a disposizione del dispositivo perché possa attingere alla rete con il rispettivo indirizzo IP. Prima che decorra il termine di questa finestra di tempo, i client conformi allo standard devono richiedere un prolungamento inviando nuovamente un pacchetto DHCPREQUEST. Se questo rimane escluso, non si arriva al cosiddetto refreshDHCP e il server sblocca l’indirizzo in questione rendendolo di nuovo disponibile.

Mentre agli amministratori non viene richiesto alcun lavoro sia nella variante di assegnazione automatica che in quella dinamica, la situazione è ribaltata per quanto riguarda l’assegnazione manuale dell’indirizzo. Infatti, in questo procedimento che si definisce anche come DHCP statico, gli indirizzi IP disponibili si assegnano a determinati indirizzi MAC con l’aiuto del server DHCP. In questo caso non c’è una scadenza di tempo da rispettare.

Per via dell’elevato sforzo richiesto per la gestione, che in fin dei conti va a contraddire il senso e la funzione del Dynamic Host Configuration Protocol, questa tipologia di assegnazione risulta utile solo per pochissimi scenari di applicazione. Gli IP statici sono infatti indispensabili ad esempio se sul relativo computer sono hostati servizi di server che devono essere raggiungibili in qualsiasi momento da altri partecipanti alla rete. Ma anche per il port forwarding è importante che l’indirizzo IP rimanga invariato.

Il server DHCP informa il Domain Name System

Affinché gli indirizzi IP forniti dai client possano essere assegnati ai propri nomi di dominio completamente qualificati (FQDN, Fully Qualified Domain Name), un server DNS deve occuparsi della risoluzione dei nomi. Se vengono cambiati un indirizzo o un nome host già inserito, allora il name server necessita di un aggiornamento.

Per gli indirizzi IP che variano continuamente, i quali risultano dall’assegnazione dinamica tramite un server DHCP, l’esecuzione manuale comporterebbe un impegno non indifferente non solo per l’amministratore, ma anche per l’utente che vorrebbe connettersi a Internet da casa con i propri dispositivi. Il fatto che entrambi non siano obbligati ad affrontare l’aggiornamento anche nella versione manuale di assegnazione, lo devono ai server DHCP che si occupano dello scambio di informazioni e di fornire gli aggiornamenti al server DNS, non appena viene assegnato un nuovo indirizzo IP.

Quanto è sicuro il DHCP?

Un punto debole del Dynamic Host Configuration Protocol è quello di essere facilmente manipolabile: siccome il client contatta tutti i potenziali server DHCP, per gli hacker è ad esempio possibile far entrare in gioco un proprio rappresentante se avete accesso alla rete in questione. Un tale server rogue (in italiano: malvagio) DHCP tenta di essere più veloce del server vero e proprio con la sua risposta alla richiesta di connessione del client.

In caso di successo esso trasmette parametri manipolati o inutilizzabili. Per esempio in questo modo può avviare attacchi di Denial of Service sulla rete: può farlo senza trasmettere un gateway, o in alternativa assegnando ad ogni client una propria sottorete oppure rispondendo, infine, a tutte le richieste con lo stesso indirizzo IP.

Uno scenario ancora più drammatico, ma comunque verosimile, sarebbe il tentativo di infiltrare un router estraneo con l’aiuto di un falso gateway e di false indicazioni DNS: esso registra il traffico dati del client o può persino reindirizzarli. Diversamente dalla prima di tipologia di attacco nominata, un attacco Man in the Middle non ha lo scopo di fare collassare la rete, bensì quello di estrapolare dati sensibili come informazioni bancarie, password o indirizzi.

A prescindere dalla tipologia di attacco, in ogni caso gli estranei necessitano un accesso diretto alla rete per approfittare in maniera illecita del protocollo DHCP. Se però rispettate le misure preventive necessarie, potete beneficiare dei vantaggi del protocollo di comunicazione senza dover temere simili attacchi. Come responsabile di una rete locale più grande, la protezione completa da tentativi di attacco esterni e interni, come anche la costante sorveglianza di tutti i processi di rete con tool come Nagios, dovrebbero essere la vostra priorità.

Nel nostro articolo della Digital Guide IONOS sul tema della sicurezza della rete Wi-Fi vi forniamo ulteriori informazioni sulle opzioni che avete a disposizione per proteggere le vostre reti senza fili.

Come attivare o disattivare il DHCP

Chi entra a far parte di una rete locale o Wi-Fi con il proprio dispositivo, come è normale che sia attinge automaticamente al Dynamic Host Configuration Protocol senza dover applicare dei cambiamenti alle impostazioni di rete. I computer con i sistemi Windows di Microsoft, ad esempio, fungono da tempo in maniera predefinita da client DHCP, il quale fornisce automaticamente il proprio indirizzo IP. Secondo lo standard si tratta della versione dinamica di assegnazione in cui le configurazioni devono essere regolarmente prolungate o nuovamente assegnate dopo la scadenza del tempo. Se è attiva la relativa impostazione del server DHCP, nelle reti locali può avvenire che entri in azione l’assegnazione automatica di informazioni di indirizzo fisse.   

Nel caso in cui esaminaste le impostazioni attuali dell’assegnazione dell’indirizzo o disattivaste il DHCP e intendeste passare alla variante manuale, potete farlo seguendo i passaggi che illustreremo a breve; l’unico prerequisito è disporre dei permessi da amministratore.

Attivare e disattivare il DHCP su Windows 7

  • Partendo dal menu Start, aprite il Pannello di controllo e cliccate quindi il pulsante “Rete e Internet”.
  • Aprite ora il “Centro Connessioni di rete e condivisione” e selezionate la voce “Modifica impostazioni scheda” nel menu laterale di sinistra.
  • Con un clic destro sulla Connessione alla rete locale (LAN) da configurare scegliete nel menu la voce “Proprietà”.
  • Nel seguente menu visualizzate tutti i servizi ai quali attinge la connessione di rete scelta. Nella configurazione del DHCP su Windows 7 è interessante il Protocollo Internet versione 4 (TCP/IPv4 o IPv6), per cui a questo punto si procede a scegliere la versione corrispondente e ad aprire la panoramica delle proprietà definite cliccando sul pulsante omonimo.
  • All’interno del menu delle proprietà del protocollo Internet potete vedere se il DHCP fornisce l’indirizzo IP e il server DNS automaticamente, così come è il caso nel seguente screenshot. Altrimenti avete anche la possibilità di stabilire un indirizzo IP fisso, un gateway predefinito, una subnet mask e infine il server DNS preferito.
  • Se avete intenzione di disattivare il DHCP, allora a questo punto dovreste assegnare in ogni caso un indirizzo IP fisso e una subnet mask (di default 255.255.255.0). Potete definire lo spazio di indirizzamento per l’IP nelle impostazioni del server DHCP, che potete trovare ad esempio tramite l’interfaccia utente del vostro router, sempre che questo funga anche da server. Qui potete anche disattivare il server DHCP e quindi l’assegnazione di indirizzo tramite il protocollo.

Configurare il DHCP con Windows 8

  • Cliccate sul menu Start e cercate il Pannello di controllo tra le applicazioni elencate. In alternativa potete anche richiamarlo ricorrendo alla combinazione di tasti [Windows] + [X] e scegliendo la voce “Pannello di controllo” nel menu apparso.
  • Tramite la voce “Rete e Internet” arrivate al “Centro Connessioni di rete e condivisione”, dove con un clic su “Modifica impostazioni scheda” richiamate l’elenco delle connessioni di rete installate.
  • Con un clic destro sulla connessione di rete desiderata e l’accesso alle impostazioni elencate nel menu “Proprietà” si apre la schermata con i componenti di sistema che vengono utilizzati dalle reti locali.
  • Nell’elenco trovate i protocolli Internet IPv4 e IPv6. Scegliete la versione desiderata e cliccate su “Proprietà”.
  • In questo menu di opzioni potete vedere come viene al momento regolata l’assegnazione dell’indirizzo IP dal vostro sistema. Se a questo punto volete attivare il DHCP statico al posto del consueto procedimento automatico su Windows 8, selezionate il punto “Utilizza il seguente indirizzo IP” e inserite l’indirizzo desiderato inclusa la subnet mask (di default: 255.255.255.0). Volendo potete anche inserire il gateway predefinito (che solitamente è l’indirizzo IP del router) e l’indirizzo del server DNS preferito.
  • Per disattivare il DHCP è nuovamente necessario applicare le relative impostazioni sul server utilizzato.

Attivare e configurare il DHCP con Windows 10

  • Richiamate il Pannello di controllo a partire dal menu Start o in alternativa utilizzando la combinazione di tasti [Windows] + [X] e infine cliccate il pulsante corrispondente.
  • Cliccate ora su “Rete e Internet” e successivamente, nel nuovo menu, su “Modifica impostazioni scheda”.
  • Cliccate col tasto destro sulla connessione di rete locale desiderata e scegliete la voce “Proprietà” dal menu a discesa.
  • A partire dall’elenco di protocolli e servizi attivati o non attivati cercate la voce relativa alla versione dei protocolli Internet preferiti, selezionatela e cliccate su Proprietà tramite il pulsante omonimo.
  • Di default, è impostata come opzione predefinita la voce “Ottieni automaticamente un indirizzo IP”. Se così non fosse, baste che attiviate l’assegnazione automatica oppure che scegliate di passare a un indirizzo statico inserendo poi il parametro di rete desiderato manualmente (come è raffigurato nel seguente screenshot).
  • Per disattivare il DHCP su Windows 10 dovete richiamare l’interfaccia del vostro server DHCP e procedere ad applicare le relative impostazioni.

Sconti Black Friday
Approfitta dei nostri sconti su domini, web hosting, WordPress e tanto altro. Offerta valida solo fino al 29 novembre!
Fino al -98%