27.5 Configurazione Automatica della Rete (DHCP)

Scritto da Greg Sutter.

27.5.1 Cos'è il DHCP?

DHCP, il Protocollo di Configurazione Host Dinamico, descrive i passi attraverso i quali un sistema si può connettere ad una rete ed ottenere l'informazione necessaria per comunicare attraverso quella rete. Le versioni di FreeBSD prima della 6.0 usano l'implementazione DHCP client (dhclient(8)) dell'ISC (Internet Software Consortium). Le ultime versioni usano il dhclient di OpenBSD preso da OpenBSD 3.7. Tutte le informazioni specifiche all'implementazione di dhclient in questa sede sono riferite all'uso dei client DHCP sia di ISC che di OpenBSD. Il server DHCP è quello incluso nella distribuzione ISC.

27.5.2 Cosa Copre Questa Sezione

Questa sezione descrive sia il lato client del sistema DHCP di ISC e di OpenBSD che il lato server del sistema DHCP ISC. Il programma client, dhclient, è già integrato con FreeBSD, e la parte server è disponibile nel port net/isc-dhcp3-server. Le pagine di manuale dhclient(8), dhcp-options(5), e dhclient.conf(5), oltre ai riferimenti elencati oltre, sono risorse utili.

27.5.3 Come Funziona

Quando dhclient, il client DHCP, viene eseguito sulla macchina client, inizia a fare broadcasting di richieste per informazioni di configurazione. Di default queste richieste sono sulla porta UDP 68. Il server risponde sulla porta UDP 67, dando al client un indirizzo IP ed altre informazioni rilevanti di rete come la netmask, il router ed il DNS server. Tutte queste informazioni arrivano sotto forma di un “rilascio” DHCP e sono valide sono per un certo periodo di tempo (configurato dall'amministratore del server DHCP). In questo modo, gli indirizzi IP bloccati da client che non sono più connessi alla rete possono essere riutilizzati automaticamente.

I client DHCP possono ottenere molti tipi di informazione dal server. Una lista esauriente può essere trovata in dhcp-options(5).

27.5.4 L'Integrazione con FreeBSD

FreeBSD integra completamente il client DHCP ISC o OpenBSD, dhclient (a seconda della versione di FreeBSD utilizzata). Viene fornito supporto al client DHCP sia con l'installazione sia con il sistema base, rendendo inutile il bisogno di una conoscenza dettagliata della configurazione di rete su ogni rete che abbia un server DHCP. dhclient è stato incluso in tutte le distribuzioni FreeBSD a partire dalla 3.2.

DHCP è supportato da sysinstall. Quando configuri una interfaccia di rete con sysinstall, la seconda domanda che ti pone è: “ Vuoi provare a configurare l'interfaccia via DHCP?”. Una risposta affermativa eseguirà dhclient, e, se ha successo, riempirà le informazioni di configurazione della rete in automatico.

Ci sono due cose che devi fare per far sì che il tuo sistema usi il DHCP all'avvio:

Il server DHCP, dhcpd, è incluso come parte del port net/isc-dhcp3-server nella collezione dei ports. Questo port contiene il server DHCP ISC e la documentazione.

27.5.5 Files

27.5.6 Ulteriori Letture

Il protocollo DHCP è descritto in maniera estesa in RFC 2131. Informazioni aggiuntive sono presenti a questo URL: http://www.dhcp.org/.

27.5.7 Installare e Configurare un Server DHCP

27.5.7.1 Cosa Copre Questa Sezione

Questa sezione fornisce informazioni su come configurare un sistema FreeBSD che funzioni come un server DHCP usando l'implementazione del server DHCP dell'ISC (Internet Software Consortium).

Il server non viene fornito come parte di FreeBSD, così dovrai installare il port net/isc-dhcp3-server per fornire questo servizio. Vedi Capitolo 4 per più informazioni su come usare la Collezione dei Port.

27.5.7.2 Installazione del DHCP Server

Per configurare il tuo sistema FreeBSD come un server DHCP, assicurati che il device bpf(4) sia compilato nel kernel. Per farlo, aggiungi device bpf al file di configurazione del kernel, e ricompilalo. Per maggiori informazioni su come compilare un kernel, vedi Capitolo 8.

Il device bpf è già parte del kernel GENERIC che viene fornito con FreeBSD, così non hai bisogno di creare un kernel custom per far funzionare il DHCP.

Nota: Quelli di voi che sono particolarmente attenti alla sicurezza, dovrebbero notare che bpf è anche il device che permette agli sniffer di pacchetti di funzionare correttamente (anche se tali programmi hanno bisogno di accesso privilegiato). bpf è richiesto per il funzionamento del DHCP, ma se siete molto attenti alla sicurezza, probabilmente non dovreste includere bpf nel vostro kernel semplicemente perchè vi aspettate di usare il DHCP in qualche momento

La prossima cosa che devi fare è editare il file dhcpd.conf che è stato installato dal port net/isc-dhcp3-server. Di default, questo sarà /usr/local/etc/dhcpd.conf.sample e dovresti copiare questo file in /usr/local/etc/dhcpd.conf prima di procedere con i cambiamenti.

27.5.7.3 Configurare il Server DHCP

dhcpd.conf è composto di dichiarazioni riguardanti sottoreti ed host, e forse lo si spiega meglio con un esempio:

option domain-name "example.com";(1)
option domain-name-servers 192.168.4.100;(2)
option subnet-mask 255.255.255.0;(3)

default-lease-time 3600;(4)
max-lease-time 86400;(5)
ddns-update-style none;(6)

subnet 192.168.4.0 netmask 255.255.255.0 {
  range 192.168.4.129 192.168.4.254;(7)
  option routers 192.168.4.1;(8)
}

host mailhost {
  hardware ethernet 02:03:04:05:06:07;(9)
  fixed-address mailhost.example.com;(10)
}
(1)
Questa opzione specifica il dominio che verrà servito ai client come il dominio di default di ricerca. Si veda resolv.conf(5) per più informazioni.
(2)
Questa opzione specifica una lista di server DNS separata da virgole, che i client dovrebbero usare.
(3)
La netmask che sarà fornita ai client.
(4)
Un client potrebbe richiedere una lunghezza di tempo specifica per la quale il rilascio sarà valido. Altrimenti il server assegnerà un tempo di rilascio con questa durata (in secondi).
(5)
Questa è la lunghezza massima di tempo per la quale un server effettuerà un rilascio. Se un client dovesse richiedere un rilascio più lungo, sarà effettuato un rilascio, anche se sarà valido solo per max-lease-time secondi.
(6)
Questa opzione specifica se il server DHCP dovrà cercare di modificare il DNS quando un rilascio è accettato o liberato. Nella implementazione ISC questa opzione è richiesta.
(7)
Questo identifica quale indirizzo IP dovrà essere usato nel pool riservato per l'allocazione ad i client. Gli indirizzi IP fra, ed inclusi, quelli dichiarati sono assegnabili agli utenti.
(8)
Dichiara il default gateway che sarà assegnato ad i client.
(9)
L'indirizzo hardware MAC di un host (cosicchè il server DHCP possa riconoscere un host quando fa una richiesta).
(10)
Specifica che all'host dovrebbe sempre essere fornito lo stesso indirizzo IP. Nota che usare un hostname è corretto in questo caso, dato che il DHCP server risolverà l'hostname stesso prima di restituire l'informazione sul rilascio.

Una volta che hai finito di scrivere il tuo dhcpd.conf, puoi abilitare il server DHCP in /etc/rc.conf, aggiungendo:

dhcpd_enable="YES"
dhcpd_ifaces="dc0"

Sostituisci il nome dell'interfaccia dc0 con l'interfaccia (o le interfacce, separate da spazi) su cui il tuo server DHCP dovrebbe stare in ascolto per le richieste DHCP dei client.

Quindi, puoi procedere ad avviare il server con il seguente comando:

# /usr/local/etc/rc.d/isc-dhcpd.sh start

Se hai bisogno di fare altri cambiamenti alla configurazione del server in futuro, è importante notare che l'invio di un segnale SIGHUP a dhcpd non fa sì che il file di configurazione sia ricaricato, come avviene con la maggior parte dei demoni. Dovrai inviare un segnale SIGTERM per fermare il processo, e poi riavviarlo usando il comando sopracitato.

27.5.7.4 Files

  • /usr/local/sbin/dhcpd

    dhcpd è linkato staticamente e risiede in /usr/local/sbin . La pagina di manuale di dhcpd(8) installata con il port dà più informazioni su dhcpd.

  • /usr/local/etc/dhcpd.conf

    dhcpd richiede un file di configurazione, /usr/local/etc/dhcpd.conf , prima che possa iniziare a fornire il servizio ai client. Questo file deve contenere tutte le informazioni che devono essere fornite ai client che sono serviti, oltre alle informazioni riguardanti le operazioni del server. Questo file di configurazione è descritto dalla pagina di manuale dhcpd.conf(5) installata dal port.

  • /var/db/dhcpd.leases

    Il server DHCP mantiene un database dei rilasci che ha effettuato in questo file, che viene scritto come un log. La pagina di manuale dhcpd.leases(5), installata dal port ne dà una descrizione leggermente pi` lunga.

  • /usr/local/sbin/dhcrelay

    dhcrelay è usata in ambienti avanzati dove un server DHCP reinvia le richieste da un client ad un altro server DHCP su una rete separata. Se hai bisogno di questa funzionalità, installa il port net/isc-dhcp3-relay. La pagina di manuale dhcrelay(8) fornita col port contiene più dettagli.

Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Per domande su FreeBSD, leggi la documentazione prima di contattare <questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a <doc@FreeBSD.org>.