pfSense può essere utilizzato come server DHCP o come relay DHCP.
Qui configureremo pfSense come server DHCP per gli indirizzi IPv4.
Attivare il servizio DHCP
Per iniziare, accedere al menu “Services” > “DHCP Server“:

Si sceglie l’interfaccia su cui si vuole attivare il server DHCP. Nel nostro caso, questa sarà “LAN”.
Per iniziare, naturalmente, spuntiamo la casella “Enable DHCP server on LAN interface”.
Configurazione del server DHCP
È possibile configurare le seguenti voci:
- BOOTP: selezionando questa casella si disabilita il supporto per le richieste BOOTP. Il protocollo BOOTP è l’antenato del protocollo DHCP.
- Deny unknown clients: questa opzione viene utilizzata per filtrare le richieste DHCP.
Per impostazione predefinita (non selezionata), pfSense assegna un indirizzo IP a qualsiasi terminale connesso alla rete che richieda un indirizzo IP. Questa è la modalità preferita nella maggior parte dei casi. Tuttavia, è possibile, in ambienti più restrittivi, autorizzare la distribuzione di indirizzi IP solo a terminali noti (cioè il cui indirizzo MAC è stato inserito in pfSense); in questo caso, questa casella deve essere spuntata. Si noti che questa opzione è definita da un intervallo di indirizzi.
- Ignore denied clients: selezionando questa casella si ignorano le richieste DHCP dei client negati, invece di restituire una risposta esplicita di rifiuto. Questa opzione non è compatibile con una configurazione ad alta disponibilità di pfSense. ///// LIEN VERS PFSENSE HAUTE DISPONIBILITE /////
- Ignore client identifiers: ignora l’UID del client. Questa opzione può essere utile se si vuole che un computer a dual-boot mantenga lo stesso indirizzo IP quando passa da un sistema operativo all’altro. Tuttavia, abilitare questa opzione significa non rispettare le specifiche ufficiali per il funzionamento del protocollo DHCP.
- Subnet: questa riga mostra l’indirizzo di rete.
- Subnet mask: questa riga indica la subnet mask.
- Available range: questa riga indica l’intervallo massimo su cui è possibile allocare gli indirizzi IP. Questa informazione è molto utile per le reti che non utilizzano /24.
- Range: definisce l’intervallo di indirizzi IP da utilizzare.
Per impostazione predefinita, pfSense propone l’intervallo di indirizzi da 100 a 199 (ad esempio, da 192.168.1.100 a 192.168.1.199). È possibile modificarlo entro la dimensione massima specificata nella riga precedente (available range).
Se si desidera definire diversi intervalli di indirizzi IP (per filtrare i terminali noti da quelli sconosciuti o per altri motivi legati all’architettura della rete), è possibile definire più intervalli di indirizzi IP (vedere la sezione Additional Pools subito sotto).
Per aggiungere un secondo intervallo di indirizzi IP, fare clic sul pulsante “+ Add pool” nella sezione “Additional Pools”. Si aprirà una nuova finestra in cui sarà possibile definire tutti i parametri specifici di questo intervallo di indirizzi IP.
- WINS servers: consente di definire fino a 2 server WINS (Windows Internet Name Service /// VOIR LIEN WIKI ITALIEN ///) da passare ai client DHCP.
Ovviamente, questa opzione è utile solo se si dispone di un server WINS sulla rete. I server WINS non devono necessariamente trovarsi sulla stessa sottorete (in tal caso, è necessario assicurarsi di configurare le regole di routing e di filtraggio nel firewall).
Se non si utilizza un server WINS (il che dovrebbe essere il caso di quasi tutte le reti moderne), si lasciano questi campi vuoti.
- DNS servers: questo campo può essere compilato o lasciato vuoto. Se si vuole passare al client la stessa configurazione DNS configurata in pfSense, lasciare questi campi vuoti. Se invece si desidera trasmettere al client server DNS diversi da quelli configurati in pfSense, o se si desidera che pfSense agisca come server DNS, è necessario inserire qui gli indirizzi IP corrispondenti.
Per le reti locali con terminali Windows e un server Active Directory, è consigliabile specificare l’indirizzo del server Active Directory.
- Gateway: se pfSense è il gateway per questa rete, questo campo può essere lasciato vuoto. Altrimenti, si inserisce qui l’indirizzo IP del gateway.
- Domain name: consente di indicare ai clienti il nome di dominio corrispondente alla rete e che devono utilizzare per formare il loro FQDN //// VOIR LIEN WIKI ITALIEN ////. Se non viene indicato nulla, ai clienti verrà passato il nome di dominio inserito nella configurazione globale di pfSense.
- Domain search list: questa informazione è utile se avete diversi domini.
Quando si cerca un nome di host sulla rete, il client concatena il nome di host con il nome di dominio. Ogni dominio deve essere separato da un punto e virgola. Queste informazioni vengono trasmesse al client tramite l’opzione DHCP 19. Pertanto, se c’è un solo dominio locale, questo campo deve essere lasciato inalterato. Pertanto, se esiste un solo dominio locale, questo campo deve essere lasciato vuoto (quando un client cerca un nome di host, la concatenazione sarà fatta con il nome di dominio definito nella riga precedente).
- Default lease time e Maximum lease time: queste due opzioni consentono di controllare la durata delle locazioni DHCP.
Default lease time viene utilizzato quando un cliente non richiede un periodo di registrazione specifico per il suo contratto di locazione. Se il cliente richiede un tempo di locazione superiore al tempo di Maximum lease time, il tempo di locazione fornito sarà quello definito nel tempo di Maximum lease time. Questi valori sono definiti in secondi.
Se i campi vengono lasciati vuoti, i valori predefiniti sono 7.200 secondi (2h) per il tempo di locazione predefinito e 86.400 secondi (1 giorno) per il tempo di locazione massimo.
- Failover peer IP: se si dispone di due server pfSense configurati per il failover, inserire qui l’indirizzo IP fisico (non l’indirizzo virtuale) del secondo server pfSense. Altrimenti, lasciare questo campo vuoto.
- Static ARP: questa opzione è l’esatto contrario di “Deny unknow clients”: elenca le macchine in grado di comunicare con pfSense sulla rete. Ciò significa che tutti i terminali non referenziati (cioè il cui indirizzo MAC è noto e referenziato in pfSense) non saranno in grado di comunicare con pfSense. È necessario prestare molta attenzione quando si utilizza questa opzione! Inoltre, se spuntata, questa opzione rimane attiva anche se il servizio DHCP viene interrotto.
- Time format change: per impostazione predefinita, le durate dei lease DHCP sono visualizzate nel formato UTC. Se si seleziona questa opzione, saranno formattate nel fuso orario locale. Si tratta di un’opzione di visualizzazione puramente estetica.
- Statistics graphs: selezionando questa opzione si abilitano i grafici dell’RRD. Questa opzione è disattivata per impostazione predefinita.
- Dynamic DNS: questa opzione consente di definire un server DNS dinamico (da inserire nel campo corrispondente). Se pfSense è configurato in modalità “DNS forwarder”, questa opzione non deve essere spuntata e il DNS forwarder deve essere configurato di conseguenza.
- MAC Address Control: questa opzione consente di filtrare l’accesso al server DHCP in base all’indirizzo MAC.
Il primo campo è utilizzato per definire gli indirizzi MAC autorizzati. Il secondo campo definisce gli indirizzi MAC vietati. Questi indirizzi MAC possono essere inseriti parzialmente (ad esempio, inserendo 01:E5:FF si autorizzano o si vietano tutti gli indirizzi MAC che iniziano con questa sequenza, a seconda del campo in cui viene inserito).
Gli indirizzi MAC (o gli indirizzi MAC parziali) devono essere separati da una virgola, senza spazi. Questi campi possono essere lasciati vuoti se non si desidera applicare alcun controllo agli indirizzi MAC dei terminali.
È importante capire che non appena un indirizzo MAC (o un indirizzo MAC parziale) viene inserito nel campo degli indirizzi autorizzati, a tutti gli altri indirizzi MAC viene negato l’accesso; viceversa, se uno o più indirizzi MAC vengono inseriti nel campo degli indirizzi vietati, tutti gli altri indirizzi MAC vengono autorizzati.
Un esempio di utilizzo di questa funzione è la separazione di telefoni IP e computer sulla stessa rete senza l’uso di VLAN. Supponendo che tutti i telefoni IP abbiano un indirizzo MAC che inizia con aa:bb:cc, nell’intervallo di indirizzi riservato ai computer si proibiranno gli indirizzi MAC che iniziano con aa:bb:cc (inserendo questa sequenza nel campo degli indirizzi proibiti), mentre nell’intervallo di indirizzi riservato al VoIP si consentiranno solo gli indirizzi MAC che iniziano con aa:bb:cc (inserendo questa sequenza nel campo degli indirizzi consentiti).
- NTP servers: consente di definire uno o due server NTP ///// VOIR WIKI ITALIEN /////.
- TFTP server: consente di inserire l’indirizzo IP o il nome host di un server TFTP. Questa opzione è utilizzata principalmente per il provisioning automatico per la telefonia IP. Corrisponde all’opzione DHCP 66.
- LDAP: consente di inviare l’URI di un server LDAP ai client che lo richiedono. Corrisponde all’opzione DHCP 95. Il formato inserito deve essere quello di un URI LDAP, ad esempio ldap://ldap.example.com/dc=example,dc=com.
- Network booting: per abilitare questa funzione, è necessario selezionare la casella corrispondente (Enables network booting), inserire l’indirizzo IP del server e il nome del file immagine del disco di avvio. Tutti questi campi devono essere compilati affinché l’opzione funzioni correttamente.
- Additional BOOTP/DHCP Options: consente di spingere qualsiasi opzione DHCP (le cui impostazioni sono descritte in dettaglio nel paragrafo successivo).
Una volta effettuate tutte le impostazioni, non resta che fare clic su Save!
Opzioni avanzate del server DHCP
Uno dei grandi punti di forza del server DHCP pfSense è che offre una semplice interfaccia di configurazione per la maggior parte delle funzioni DHCP. Inoltre, è in grado di fornire l’intera gamma di opzioni DHCP. L’elenco delle possibili opzioni DHCP è disponibile sul sito IANA.
Per queste opzioni DHCP sono disponibili diversi formati. I nomi di questi formati potrebbero non essere molto intuitivi, quindi li spiegheremo qui:
Text: testo a forma libera.
String: una sequenza di cifre esadecimali separate dai due punti “:” (ad esempio, 00:a8:c9).
Boolean: il valore true o il valore false.
Unsigned 8, 16, or 32-bit Integer: un numero intero positivo (maggiore di zero), fino a 86400.
Signed 8, 16, or 32-bit Integer: un intero positivo o negativo, fino a -512
IP address or host: un indirizzo IP (ad esempio 192.168.1.2) o un nome host (ad esempio www.example.com).
Esempio di configurazione avanzata: server DHCP per computer e telefoni IP
Prendiamo l’esempio di una configurazione in cui i telefoni e i computer si trovano sulla stessa rete (senza separazione per VLAN /// LIEN PROVYA SEPARATION VLAN///). Vogliamo raggruppare gli indirizzi IP dei telefoni e dei computer.
Nel nostro esempio, utilizzeremo il seguente piano di indirizzamento: 192.168.2.0/24; il server pfSense ha l’indirizzo IP 192.168.2.1; il server di telefonia ha l’indirizzo IP 192.168.2.2.
Su questa rete abbiamo una ventina di postazioni di computer e altrettante postazioni telefoniche.
Nel nostro esempio, i telefoni IP hanno tutti indirizzi MAC che iniziano con la sequenza AA:BB:CC.
Vogliamo assegnare gli indirizzi IP da 192.168.2.10 a 192.168.2.99 ai telefoni IP e gli indirizzi IP da 192.168.2.100 a 192.168.2.199 agli altri terminali (computer, stampanti, ecc.).
Il nostro schema di rete è il seguente:

Configuriamo pfSense con un intervallo iniziale (campo Range) da 192.168.2.10 a 192.168.2.99 per il quale autorizziamo solo gli indirizzi MAC (primo campo dell’opzione MAC Address Control) che iniziano con AA:BB:CC :

Aggiungiamo quindi un secondo intervallo (pulsante “+ Add” nella sezione “Additional Pools”) da 192.168.2.100 a 192.168.2.199 per il quale vietiamo gli indirizzi MAC (secondo campo dell’opzione MAC Address Control) che iniziano con AA:BB:CC :

La nostra configurazione è ora completa:

Ultimo passo: se nella rete è presente un server di autoprovisioning dei telefoni IP, questo parametro può essere aggiunto al server DHCP.
Per saperne di più