Server DHCP e PXE

Il server DHCP (Dynamic Host Configuration Protocol [1] ) permette di controllare la configurazione di rete di tutti i computer o dispositivi collegati alla LAN. Quando un computer (o un dispositivo come una stampante, smartphone, etc.) si connette alla rete il DHCP gli assegna automaticamente un indirizzo IP valido e effettua la configurazione di DNS e gateway.

Nota

Nella maggior parte dei casi i dispositivi sono già configurati per utilizzare il protocollo DHCP.

La specifica PXE (Preboot eXecution Environment [3]) consente ad un dispositivo di scaricare da rete il sistema operativo all’avvio da una postazione di rete centralizzata, mediante i protocolli DHCP e TFTP. Vedere Configurazione per l’avvio da rete per un esempio su come configurare un caso simile.

Configurazione DHCP

Il server DHCP può essere abilitato su tutte le interfacce green e blue (vedi Rete). NethServer sceglierà un indirizzo IP libero all’interno dell”intervallo DHCP configurato nella pagina DHCP > Server DHCP.

L’intervallo DHCP deve appartenere alla rete dell’interfaccia associata. Per esempio, se l’interfaccia green ha IP 192.168.1.1 e maschera di rete 255.255.255.0, allora l’intervallo DHCP può andare da 192.168.1.2 a 192.168.1.254.

Opzioni avanzate

Il DHCP ha sette opzioni avanzate. Possono essere utilizzate indistintamente, da 0 a tutte 7.

Per i campi server – DNS, NTP, WINS and TFTP – è possible assegnare zero, uno o più server; in caso di più di uno, separare i valori con una virgola, senza lasciare spazi.

IP riservato a un host

Il server DHCP rilascia un indirizzo IP per un periodo di tempo limitato. Se un dispositivo necessita di avere sempre lo stesso IP, è possibile assegnarli un IP Riservato associato all’indirizzo MAC.

Nella pagina Riserva IP sono elencati tutti gli indirizzi IP correntemente assegnati:

  • una riga con il pulsante Riserva IP identifica un host con un lease temporaneo (colore grigio);
  • una riga con il pulsante Modifica identifica un host con un IP riservato (colore nero). Una piccola icona con due frecce indica che il lease DHCP è scaduto: questa è una condizione normale per gli host con configurazione IP statica, poiché non comunicano mai col server DHCP.

Configurazione per l’avvio da rete

Per consentire ai client di avviarsi dalla rete, sono richiesti i seguenti componenti:

  • il server DHCP, come visto nelle sezioni precedenti
  • il server TFTP [2]
  • il software per il client, servito mediante TFTP

TFTP è un protocollo di trasferimento file molto semplice e generalmente utilizzato per il trasferimento automatico di file di configurazione o di boot.

In NethServer l’implementazione di TFTP è contenuta nel modulo DHCP ed è abilitata per default. Per consentire l’accesso a un file mediante TFTP è sufficiente mettere il file nella directory /var/lib/tftproot.

Nota

Per disabilitare TFTP digitare i seguenti comandi in una console di root:

config setprop dhcp tftp-status disabled
signal-event nethserver-dnsmasq-save

Per esempio, ora configuriamo un client per avviarsi da rete con CentOS. In NethServer, digitare in una console di root:

yum install syslinux
cp /usr/share/syslinux/{pxelinux.0,menu.c32,memdisk,mboot.c32,chain.c32} /var/lib/tftpboot/
config setprop dnsmasq dhcp-boot pxelinux.0
signal-event nethserver-dnsmasq-save
mkdir /var/lib/tftpboot/pxelinux.cfg

Quindi, creare il file /var/lib/tftpboot/pxelinux.cfg/default con il seguente contenuto:

default menu.c32
prompt 0
timeout 300

MENU TITLE PXE Menu

LABEL CentOS
  kernel CentOS/vmlinuz
  append initrd=CentOS/initrd.img

Creare una directory CentOS:

mkdir /var/lib/tftpboot/CentOS

Copiare dentro la directory appena creata i file vmlinuz e initrd.img. Questi file sono pubblici e possono essere trovati nella immagine ISO, sotto la directory /images/pxeboot, oppure scaricati da un mirror di CentOS.

Per finire, avviare il client, selezionando dalla schermata di avvio la modalità «PXE boot» o «boot from network», o simile.

Riferimenti

[1]Dynamic Host Configuration Protocol (DHCP) https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol
[2]Trivial File Transfer Protocol https://en.wikipedia.org/wiki/Tftp
[3]Preboot eXecution Environment https://en.wikipedia.org/wiki/Preboot_Execution_Environment