The Dynamic Host Configuration Protocol (DHCP) [1] server centralizes the management of the local network configuration for any device connected to it. When a computer (or a device such as a printer, smartphone, etc.) connects to the local network, it can ask the network configuration parameters by means of the DHCP protocol. The DHCP server replies, providing the IP, DNS, and other relevant network parameters.
Note
In most cases, the devices are already configured to use DHCP protocol on start up.
The Preboot eXecution Environment (PXE) [3] specification allows a network device to retrieve the operating system from a centralized network location while starting up, through the DHCP and TFTP protocols. See Boot from network configuration for an example about configuring a such case.
The DHCP server can be enabled on all green and blue interfaces (see Network). NethServer Enterprise will assign a free IP address within the configured DHCP range in DHCP > DHCP server page.
The DHCP range must be defined within the network of the associated
interface. For instance, if the green interface has IP/netmask
192.168.1.1/255.255.255.0
the range must be 192.168.1.2 -
192.168.1.254
.
The DHCP server leases an IP address to a device for a limited period of time. If a device requires to always have the same IP address, it can be granted an IP reservation associated to its MAC address.
The page DHCP > IP reservation lists the currently assigned IP addresses:
To allow clients to boot from network, the following components are required:
TFTP is a very simple file transfer protocol and usually it is used for automated transfer of configuration and boot files.
In NethServer Enterprise the TFTP implementation comes with the DHCP module and is
enabled by default. To allow accessing a file through TFTP, simply
put it in /var/lib/tftpboot
directory.
Note
To disable TFTP type the following commands in a root’s console:
config setprop dhcp tftp-status disabled
signal-event nethserver-dnsmasq-save
For instance, we now configure a client to boot CentOS from the network. In NethServer Enterprise, type at root’s console:
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
Then create the file /var/lib/tftpboot/pxelinux.cfg/default
with
the following content:
default menu.c32
prompt 0
timeout 300
MENU TITLE PXE Menu
LABEL CentOS
kernel CentOS/vmlinuz
append initrd=CentOS/initrd.img
Create a CentOS directory:
mkdir /var/lib/tftpboot/CentOS
Copy inside the directory vmlinuz
and initrd.img
files. These files are public, and can be found in the ISO image, in
/images/pxeboot
directory or downloaded from a CentOS mirror.
Finally, power on the client host, selecting PXE boot (or boot from network) from the start up screen.
References
[1] | Dynamic Host Configuration Protocol (DHCP) http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol |
[2] | Trivial File Transfer Protocol https://en.wikipedia.org/wiki/Tftp |
[3] | Preboot eXecution Environment http://en.wikipedia.org/wiki/Preboot_Execution_Environment |