Listing 1. Configuration file for the DHCP server. 

##############################################################################
#   DISCLAIMER. The configuration files provided in Listings 1-8 are meant
#   to be perused by humans, as an illustration of the main text. Any other
#   use is on the sole responsibility of the user.
#
#   DICTIONARY. The following notation is used consistently in all the files:
#
#   123.45.6.789        : public (external) IP address of the head node
#   pubname.in.domain   : full hostname of head node on the external network
#   pubalias            : alias of head node on the external network
#   privalias           : alias of head node on the internal network
#   ./default           : same meaning as in the main text
#
##############################################################################
# /etc/dhcpd.conf on the master node
##############################################################################
# Configure the tftp server to run from the directory where the file
# pxelinux.0 is found. A good choice is ./default itself.
#
allow booting;
allow bootp;
option subnet-mask 255.255.255.0;
option domain-name-servers privalias;
default-lease-time 21600;
max-lease-time 43200;
subnet 123.45.6.0 netmask 255.255.255.0 {}
subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.10 192.168.0.19;
  option broadcast-address 192.168.0.255;
  option routers privalias;
}

group {
        use-host-decl-names on;
        next-server 192.168.0.1;

        #This is the pxe bootloader file
        filename "pxelinux.0";

        # One host block per client.

        host osa2 {
                hardware ethernet 00:a1:b2:c3:d4:e5;
                fixed-address osa2;
        }

        host osa3 {
                hardware ethernet 00:b2:c3:d4:e5:a1;
                fixed-address osa3;
        }

        host osa4 {
                hardware ethernet 00:c3:d4:e5:a1:b2;
                fixed-address osa4;
        }
}
# end of file