In questa lezione impari a
- spiegare come funziona il DHCP
- configurare il server DHCP di pfSense
- creare prenotazioni (static mapping)
- risolvere i problemi più comuni
Come pfSense assegna gli indirizzi ai dispositivi della rete, e come si risolvono i problemi più frequenti.
Cos'è il DHCP?
Il DHCP (Dynamic Host Configuration Protocol) è un protocollo di rete che permette ai dispositivi di ottenere automaticamente un indirizzo IP e altre configurazioni di rete senza doverle inserire manualmente. pfSense include un server DHCP completo basato su ISC DHCP, lo stesso usato in ambienti enterprise.
Vantaggi del DHCP
- Configurazione Automatica – I client ricevono IP, gateway, DNS senza intervento manuale
- Gestione Centralizzata – Modifica configurazione in un solo punto per tutta la rete
- Riuso Indirizzi – Gli IP vengono riassegnati quando i dispositivi si disconnettono
- Tracking Dispositivi – Visibilità su tutti i dispositivi connessi alla rete
Come funziona il DHCP
Il processo DHCP si basa su uno scambio di 4 messaggi chiamato DORA:
1. DISCOVER (Client → Broadcast) Client: "Ho bisogno di un IP! C'è un server DHCP nella rete?" Inviato a: 255.255.255.255 (broadcast) 2. OFFER (Server → Client) Server DHCP: "Ti offro l'IP 192.168.1.100 con questi parametri..." Include: IP proposto, subnet mask, gateway, DNS, lease time 3. REQUEST (Client → Server) Client: "Accetto l'IP 192.168.1.100, confermami l'assegnazione" 4. ACK (Server → Client) Server: "Confermato! L'IP 192.168.1.100 è tuo per le prossime 24 ore" Risultato: ✅ Client configurato con: - IP: 192.168.1.100 - Subnet Mask: 255.255.255.0 - Gateway: 192.168.1.1 (pfSense) - DNS: 192.168.1.1 (pfSense) - Lease time: 86400 secondi (24 ore)
Lease time (tempo di leasing). Il lease time è il periodo per cui l'IP è assegnato al client. Scaduto questo tempo, il client deve rinnovare il lease (richiesta automatica) oppure l'IP torna disponibile per altri dispositivi.
- Lease brevi (1-2 ore): WiFi pubblico, reti con molti dispositivi temporanei
- Lease medi (12-24 ore): Uffici, scuole - default consigliato
- Lease lunghi (7 giorni): Reti stabili, pochi dispositivi
Configurazione DHCP server su pfSense
pfSense può eseguire un server DHCP separato per ogni interfaccia configurata (LAN, DMZ, OPT, ecc.). Configuriamo il DHCP sulla LAN step-by-step.
- Accedi alla configurazione DHCP
Vai in Services → DHCP Server → LAN
Nota: Vedrai una tab per ogni interfaccia (LAN, DMZ, OPT1, ecc.) - Abilita il server DHCP
Enable DHCP server on LAN interface
Di default è già abilitato su LAN dopo l'installazione - Configura il range di indirizzi
Subnet: 192.168.1.0 Subnet mask: 255.255.255.0 Available range: 192.168.1.1 - 192.168.1.254 (L'IP .1 è occupato da pfSense come gateway) Range: From: 192.168.1.100 To: 192.168.1.200 Spiegazione: - 192.168.1.1-99: Riservati per IP statici (server, stampanti, AP) - 192.168.1.100-200: Pool DHCP (101 IP disponibili) - 192.168.1.201-254: Riservati per futuri usi Consigli dimensionamento: - Piccolo ufficio (20 dispositivi): Range 100-150 (50 IP) - Ufficio medio (50 dispositivi): Range 100-200 (100 IP) - Grande ufficio (100+ dispositivi): Range 100-250 (150 IP)
- Configura gateway e DNS
Gateway: (lascia vuoto - usa IP interfaccia automaticamente) Default: 192.168.1.1 (IP di pfSense sulla LAN) Domain name: azienda.local (Dominio locale per risoluzione nomi interni) Domain search list: (opzionale) azienda.local, ufficio.azienda.local (Suffissi DNS per ricerche) DNS servers: (Lascia vuoto per usare pfSense come DNS) Alternative: 8.8.8.8, 1.1.1.1 se vuoi DNS pubblici diretti Consiglio: Lascia vuoto DNS per usare DNS Resolver di pfSense (maggior controllo, cache locale, filtering possibile)
- Configura tempi di lease
Default lease time: 86400 (secondi) = 24 ore (valore predefinito e consigliato) Maximum lease time: 86400 = 24 ore (uguale al default in questo caso) Calcolo rapido lease: 1 ora = 3600 secondi 12 ore = 43200 secondi 24 ore = 86400 secondi 7 giorni = 604800 secondi
- Opzioni avanzate (opzionali)
Scroll down per vedere opzioni aggiuntive:- Failover peer IP: IP di un secondo server DHCP per alta disponibilità
- Static ARP: Crea entry ARP statiche (previene ARP spoofing)
- Time format change: Notifica client cambio ora legale
- Statistics graphs: Abilita grafici utilizzo DHCP
- DHCP Options (Opzioni Extra)
Puoi configurare opzioni DHCP custom:Opzioni comuni: Option 42 - NTP servers: time.google.com (server orario per sync automatica) Option 66 - TFTP server: 192.168.1.10 (per boot PXE, telefoni VoIP) Option 119 - Domain search: azienda.local (suffisso ricerca DNS) Option 252 - WPAD URL: http://proxy.azienda.local/wpad.dat (proxy auto-config)
- Salva configurazione
Scroll down → Save
Il server DHCP si riavvia automaticamente (pochi secondi)
DHCP attivo e operativo.
Video: ▶ Guarda: DHCP Server pfSense
Monitoraggio DHCP leases
Dopo aver abilitato il DHCP, puoi monitorare quali dispositivi hanno ottenuto indirizzi IP.

Visualizzare leases attivi
- Accedi alla pagina leases
Vai in Status → DHCP Leases - Informazioni visualizzate
Per ogni lease vedrai:IP Address: 192.168.1.125 MAC Address: 00:1a:2b:3c:4d:5e Hostname: laptop-mario (se fornito dal client) Description: (puoi aggiungere nota manuale) Start: 2025-01-03 10:30:15 End: 2025-01-04 10:30:15 Online: ✅ (icona verde se attivo) Lease Type: Dynamic / Static
- Azioni disponibili
Per ogni lease puoi:- Edit: Aggiungi descrizione manuale
- Add Static Mapping: Converti in IP fisso (static mapping)
- View ARP: Vedi entry ARP associata
- ⏹ Delete: Rilascia lease manualmente
- Filtri e ricerca
Show: All leases / Active / Static / Offline / Expired Search: Cerca per IP, MAC, hostname Per Interface: Filtra per LAN, DMZ, OPT1, etc. Export: Scarica lista in CSV per analisi esterna
Interpretare lo stato dei leases.
- Online + Active: Dispositivo attualmente connesso e con lease valido
- Offline + Active: Lease valido ma dispositivo non risponde (spento/disconnesso)
- Expired: Lease scaduto, IP disponibile per riassegnazione
- Static: IP assegnato permanentemente (static mapping)
Static mappings (prenotazioni DHCP)
Le Static Mappings (o DHCP Reservations) permettono di assegnare sempre lo stesso IP a un dispositivo specifico identificato dal suo MAC address. Essenziale per server, stampanti, AP, telecamere IP, NAS, ecc.
Quando usare static mappings
| Dispositivo | Motivo | Esempio |
|---|---|---|
| Server | Altri dispositivi devono conoscere l'IP fisso | File server, mail server |
| Stampanti | Driver configurati con IP statico | Stampanti di rete |
| Access Point | Management centralizzato | WiFi controller |
| Telecamere IP | Software videosorveglianza usa IP fisso | NVR systems |
| NAS | Share di rete mappati per IP | Synology, QNAP |
| VoIP Phones | PBX configurato per IP specifici | Telefoni Yealink, Cisco |

Creare static mapping
- Identifica il MAC address
Opzione A: Guarda in Status → DHCP Leases → copia MAC del dispositivo
Opzione B: Sul dispositivo stesso:# Windows ipconfig /all → Cerca "Indirizzo fisico" o "Physical Address" # Linux/macOS ip addr show → Cerca "link/ether" # Esempio MAC: 00:1a:2b:3c:4d:5e
- Accedi a DHCP Static Mappings
Vai in Services → DHCP Server → LAN
Scroll down fino a DHCP Static Mappings for this Interface - Aggiungi nuovo mapping
Clicca ↑ Add (in alto nella tabella mappings) - Configura static mapping
MAC Address: 00:1a:2b:3c:4d:5e (Formato: xx:xx:xx:xx:xx:xx - case insensitive) Client Identifier: (lascia vuoto) (Solo per client che usano client-id invece di MAC) IP Address: 192.168.1.50 (DEVE essere FUORI dal range DHCP dinamico!) Hostname: stampante-ufficio (Opzionale - apparirà nei DNS se hai DNS Resolver attivo) Description: Stampante HP LaserJet Ufficio 1° Piano (Descrizione dettagliata per identificazione futura) ARP Table Static Entry: ☐ (opzionale) (Crea entry ARP statica - previene ARP spoofing) DHCP Options: (opzionali) Puoi configurare opzioni specifiche solo per questo client
- Salva
Clicca Save → Torna alla pagina DHCP Server
Scroll down → Save (conferma finale)
Static mapping attivo. - Rinnova IP sul client
Per applicare immediatamente la reservation:# Windows ipconfig /release ipconfig /renew # Linux sudo dhclient -r sudo dhclient # macOS sudo ipconfig set en0 DHCP (en0 = interfaccia di rete, varia) Il dispositivo ora riceverà l'IP statico configurato!
Errori comuni static mappings.
- IP dentro range DHCP: L'IP statico DEVE essere fuori dal range dinamico (es: se range è 100-200, usa 1-99 o 201-254)
- Duplicati IP: Non assegnare lo stesso IP a due dispositivi diversi
- MAC errato: Controlla bene il MAC address (typo comuni: 0/O, 1/l/I)
- Client non rilascia: Alcuni device tengono vecchio IP in cache - riavvia device
Opzioni DHCP avanzate
pfSense supporta tutte le opzioni DHCP standard (RFC 2132) più opzioni vendor-specific. Ecco le più utili:
Opzioni DHCP comuni
| Opzione | Nome | Descrizione | Esempio Valore |
|---|---|---|---|
| 3 | Router (Gateway) | Default gateway | 192.168.1.1 |
| 6 | DNS Servers | Server DNS | 8.8.8.8, 1.1.1.1 |
| 15 | Domain Name | Dominio locale | azienda.local |
| 42 | NTP Servers | Server orario | time.google.com |
| 66 | TFTP Server | Boot PXE, phone config | 192.168.1.10 |
| 67 | Bootfile Name | File boot PXE | pxelinux.0 |
| 119 | Domain Search | Lista domini ricerca | azienda.local, corp.local |
| 150 | TFTP Server (Cisco) | Alternativa opzione 66 | 192.168.1.10 |
| 252 | WPAD URL | Proxy auto-config | http://proxy/wpad.dat |
Esempio: configurare NTP per tutti i client
Configuriamo l'opzione NTP per sincronizzare automaticamente l'orario di tutti i dispositivi:
- Vai in Additional DHCP Options
Services → DHCP Server → LAN
Scroll down a Additional BOOTP/DHCP Options - Aggiungi opzione NTP
Clicca AddNumber: 42 Type: IP Address or Host Value: time.google.com Alternative: - pool.ntp.org (pool pubblico) - 192.168.1.1 (pfSense stesso se hai NTP server configurato) - time.windows.com (per ambienti Windows)
- Salva
Save → Ora tutti i client riceveranno automaticamente il server NTP!
Esempio: configurare DHCP per telefoni VoIP
I telefoni VoIP spesso richiedono opzioni DHCP specifiche per ottenere configurazione da un server TFTP:
Services → DHCP Server → LAN → Additional Options
Opzione 66 - TFTP Server:
Number: 66
Type: String
Value: 192.168.1.50
(IP del tuo server telefonico/PBX)
Opzione 150 - TFTP Server (Cisco):
Number: 150
Type: IP Address or Host
Value: 192.168.1.50
(Alcuni telefoni Cisco usano opzione 150 invece di 66)
Opzione 160 - HTTP Server (Yealink):
Number: 160
Type: String
Value: http://192.168.1.50/config/{mac}.cfg
(Per telefoni Yealink che usano HTTP provisioning)
Risultato:
I telefoni VoIP si auto-configurano scaricando config dal server!
DHCP options per vendor specifici. Diversi produttori richiedono opzioni specifiche:
- Cisco Phones: Opzione 150 (TFTP)
- Yealink Phones: Opzione 66 o 160 (HTTP)
- Polycom Phones: Opzione 66 (TFTP)
- Windows Deployment: Opzione 60 (PXEClient), 66, 67
- Proxy Auto-Config: Opzione 252 (WPAD)
Consulta sempre la documentazione del vendor per opzioni esatte.
DHCP relay
Il DHCP Relay (o DHCP Helper) permette di inoltrare richieste DHCP da una subnet a un server DHCP su un'altra subnet. Utile quando hai un server DHCP centralizzato che serve multiple VLAN/subnet.
Scenario tipico
Setup: - Server DHCP Windows su LAN (192.168.1.10) - VLAN 10 Guest (10.0.10.0/24) - VLAN 20 VoIP (10.0.20.0/24) Obiettivo: I client delle VLAN 10 e 20 devono ottenere IP dal server su LAN Soluzione: DHCP Relay su pfSense
Configurazione DHCP relay
- Disabilita DHCP locale sulle VLAN
Services → DHCP Server → VLAN10
Deseleziona "Enable DHCP server"
Ripeti per ogni VLAN che userà il relay - Configura DHCP Relay
Vai in Services → DHCP Relay - Abilita e configura
☑ Enable DHCP relay Interface(s): ☑ VLAN10_GUEST ☑ VLAN20_VOIP (Seleziona le interfacce che inviano richieste DHCP) Destination servers: 192.168.1.10 (IP del server DHCP centrale - puoi aggiungere backup) ☐ Append circuit ID and agent ID to requests (Abilita solo se il server DHCP supporta e usa queste info)
- Salva
Save → DHCP relay attivo. - Configura scope sul server DHCP Windows
Sul server DHCP centrale, crea scope per ogni VLAN:Scope 1 - VLAN 10 Guest: Range: 10.0.10.100 - 10.0.10.200 Gateway: 10.0.10.1 (pfSense IP su VLAN10) DNS: 192.168.1.1 Scope 2 - VLAN 20 VoIP: Range: 10.0.20.100 - 10.0.20.200 Gateway: 10.0.20.1 (pfSense IP su VLAN20) DNS: 192.168.1.1 Option 66: 192.168.1.50 (TFTP per telefoni)
DHCP relay: considerazioni.
- Il server DHCP centrale deve avere route verso tutte le subnet client
- Il relay non funziona con DHCP failover/HA (usa server DHCP pfSense)
- Più complesso da debuggare rispetto a server locale su ogni VLAN
- Utile per centralizzare gestione e integrazione con AD/RADIUS
Risoluzione dei problemi DHCP
Problema: client non riceve IP
- Verifica DHCP server abilitato
Services → DHCP Server → LAN
"Enable DHCP server" deve essere selezionato - Verifica range disponibile
Status → DHCP Leases
Se tutti gli IP sono occupati, espandi il range - Controlla regole firewall
DHCP usa UDP porta 67 (server) e 68 (client)
Firewall → Rules → LAN
Deve esistere regola che permette traffico DHCP (di solito "allow all") - Test manuale DHCP
Sul client:# Windows ipconfig /release ipconfig /renew ipconfig /all # Linux sudo dhclient -v -r eth0 sudo dhclient -v eth0 # Output atteso: DHCPDISCOVER DHCPOFFER DHCPREQUEST DHCPACK
- Verifica log DHCP
Status → System Logs → DHCP
Cerca errori o messaggi riguardanti il MAC del client
Problema: IP duplicati
Due dispositivi con stesso IP causano conflitti di rete.
Cause comuni: 1. Static mapping con IP dentro range DHCP dinamico 2. Device con IP statico manuale che collide con DHCP 3. Due server DHCP attivi sulla stessa rete (BAD!) Soluzione: 1. Status → DHCP Leases → Trova dispositivo conflitto 2. Se static mapping: Sposta IP fuori range dinamico 3. Se device con IP manuale: Riconfigura o crea static mapping 4. Se doppio DHCP: Disabilita DHCP su router/AP secondari!
Problema: lease non si rinnova
Client perde connettività quando lease scade.
Verifica: 1. pfSense raggiungibile quando lease scade? (client può contattare DHCP server?) 2. Lease time troppo breve? (aumenta a 24h) 3. Client in sleep/standby quando lease scade? (alcuni OS non rinnovano in sleep) Soluzione: - Aumenta lease time - Crea static mapping per dispositivi critici - Sveglia client prima scadenza (Wake-on-LAN se supportato)
Buone pratiche DHCP
Pianificazione IP
- Separa range statico/dinamico: 1-99 statici, 100-254 DHCP
- Documenta static mappings: Usa description dettagliate
- Dimensiona correttamente pool: Calcola # dispositivi * 1.5 per margine
- Usa naming convention: Hostname descrittivi (stampante-piano1, ap-ufficio2)
Sicurezza
- Mai DHCP su WAN: Estremamente pericoloso.
- Rogue DHCP prevention: Disabilita DHCP su switch/AP non gestiti
- Monitor leases: Controlla periodicamente per device sconosciuti
- Static ARP: Abilita per server critici (previene ARP spoofing)
Monitoraggio
- Review settimanale leases: Identifica dispositivi insoliti
- Alert pool esaurito: Configura notifiche se >90% pool usato
- Backup configurazione: Esporta static mappings periodicamente
Esercizi
Esercizio 1 – I lease. Configura il DHCP della LAN con intervallo .100–.199, collega due client e trova i loro lease in Status → DHCP Leases. Annota MAC, IP e scadenza.
Esercizio 2 – Un indirizzo fisso per la stampante. Crea uno static mapping che assegni sempre .20 al MAC di un client (fai finta che sia la stampante). Perché l'indirizzo scelto deve stare fuori dall'intervallo dinamico?
Suggerimento
Altrimenti il server potrebbe darlo anche a un altro dispositivo: indirizzo duplicato.
Esercizio 3 – DORA. Disegna lo scambio Discover, Offer, Request, Ack: per ogni messaggio indica chi lo invia, a chi, e se è broadcast o unicast.
Esercizio 4 – IP 169.254.x.x. Un client mostra un indirizzo 169.254.x.x. Elenca almeno quattro cause possibili e, per ognuna, come la verifichi (sul client e su pfSense).
Suggerimento
Servizio DHCP spento sull'interfaccia, intervallo esaurito, cavo/VLAN sbagliati, regole che bloccano. Sul client: ipconfig /release e ipconfig /renew.