Quando dhclient, il client DHCP, viene eseguito sulla macchina client, inizia a trasmettere le richieste di informazioni di configurazione. Per impostazione predefinita, queste richieste sono sulla porta UDP 68. Il server risponde su UDP 67, fornendo al client un indirizzo IP e altre informazioni di rete rilevanti come netmask, router e server DNS. Tutte queste informazioni si presentano sotto forma di un "affitto" DHCP? ed è valido solo per un certo tempo (configurato dal manutentore del server DHCP). In questo modo, gli indirizzi IP obsoleti dei client non più connessi alla rete possono essere recuperati automaticamente.
DHCP Server (o DHCPd) è il server che fornisce al client DHCP le informazioni di cui ha bisogno, ed è la parte server della suite non fornita come parte di FreeBSD, quindi deve essere installata da net/isc-dhcp3-server porta per fornire questo servizio.
FreeBSD viene fornito con ISC DHCP e viene fornito con FreeBSD come porte net/isc-dhcp3-server.
Per installarlo, passa alla directory ports net/isc-dhcp3-server ed esegui il seguente comando:
# make install clean
DHCPd viene configurato utilizzando un file di configurazione, normalmente dhcpd.conf che si trova nella directory /usr/local/etc. Normalmente c'è un file di configurazione di esempio che è dhcpd.conf.example alla directory. Copia dhcpd.conf.example a dhcpd.conf oppure crea un nuovo dhcpd.conf prima di procedere con le modifiche sul server DHCP.
dhcpd.conf è composto da dichiarazioni relative a sottoreti e host ed è forse spiegato più facilmente usando un esempio:
opzione nome-dominio “example.com”; (1)
opzione nome-dominio-server 192.168.4.100; (2)
opzione maschera di sottorete 255.255.255.0; (3)
tempo di locazione predefinito 3600; (4)
tempo massimo di locazione 86400; (5)
ddns-update-style nessuno; (6)
sottorete 192.168.4.0 maschera di rete 255.255.255.0 {
gamma 192.168.4.129 192.168.4.254; (7)
router opzionali 192.168.4.1; (8)
}
host mailhost {
hardware ethernet 02:03:04:05:06:07; (9)
indirizzo fisso mailhost.example.com; (10)
}
(1) Questa opzione specifica il dominio che verrà fornito ai client come dominio di ricerca predefinito.
(2) Questa opzione specifica un elenco separato da virgole di server DNS che il client deve utilizzare.
(3) La maschera di rete che verrà fornita ai client.
(4) Un cliente può richiedere un periodo di tempo specifico per la validità del contratto di locazione. In caso contrario il server assegnerà un contratto di locazione con questo valore di scadenza (in secondi).
(5) Questo è il periodo di tempo massimo per il quale il server verrà affittato. Se un cliente richiede un contratto di locazione più lungo, verrà emesso un contratto di locazione, sebbene sarà valido solo per i secondi di tempo massimo di locazione.
(6) Questa opzione specifica se il server DHCP deve tentare di aggiornare il DNS quando un lease viene accettato o rilasciato. Nell'implementazione ISC, questa opzione è richiesta.
(7) Indica quali indirizzi IP devono essere utilizzati nel pool riservato per l'allocazione ai client. Gli indirizzi IP compresi tra quelli indicati vengono distribuiti ai clienti.
(8) Dichiara il gateway predefinito che verrà fornito ai client.
(9) L'indirizzo MAC hardware di un host (in modo che il server DHCP possa riconoscere un host quando effettua una richiesta).
(10) Specifica che all'host deve essere assegnato sempre lo stesso indirizzo IP. Tieni presente che l'utilizzo di un nome host è corretto qui, poiché il server DHCP risolverà il nome host stesso prima di restituire le informazioni sull'affitto.
Una volta terminata la scrittura del tuo dhcpd.conf, puoi procedere all'avvio del server eseguendo il seguente comando:
# /usr/local/etc/rc.d/isc-dhcpd.sh start
Se in futuro dovessi apportare modifiche alla configurazione del tuo server, è importante notare che l'invio di un segnale SIGHUP a dhcpd non comporta il ricaricamento della configurazione, come accade con la maggior parte dei demoni. Un segnale SIGTERM per interrompere il processo, quindi riavviarlo utilizzando il comando sopra. Ad esempio:
# ps wax | grep dhcpd
pid di dhcpd verrà mostrato con il comando sopra, emettere il comando seguente per ucciderlo.
# kill -15 (pid of dhcpd)