DHCP netboot configuration
Contents
Global configuration
Access configuration file
The main configuration file is /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
Advanced configuration (name + netboot)
In the following scenario you will configure the server to accept only specific clients, use static IP @ and set names.
This configuration also allow NetBoot using PXE technology - check out the end of the file in the "subnet" section:
#### General options ####
## Domain settings
# domain name
option domain-name "myDomain.lan";
# DNS IP @ (replace it by your IP server, Google DNS or your ISP DNS)
option domain-name-servers XXX.XXX.XXX.XXX, YYY.YYY.YYY.YYY;
# DNS update system (disable)
ddns-update-style none;
## IP lease settings
default-lease-time 7200;
max-lease-time 86400;
## Network settings
# DHCP server name
server-name "dns.myDomain.lan";
# Authoritative server = this is the official DHCP server for the local network
authoritative;
# Subnet-mask
option subnet-mask 255.255.255.0;
## Security
# Do not allow unknown clients
deny unknown-clients;
# Do not forward DHCP request from this server to another one using a different Network Interface
option ip-forwarding off;
# Use this to send dhcp log messages to a different log file
# you also have to hack syslog.conf to complete the redirection
log-facility local7;
### NetBoot PXE
# Enable network boot using TFTP
allow bootp;
allow booting;
## Available networks
# Your server can manage many network. Just add new subnet{} instruction
# Main LAN
subnet 172.16.50.0 netmask 255.255.255.0 {
#### Overall settings
# You can override the default domain set earlier
option domain-name "myDomain.lan";
# Broadcast address
option broadcast-address 172.16.50.255;
# Default gateway
option routers 172.16.50.1;
# Set the NTP (time server) to use
option ntp-servers 172.16.50.1;
#### DHCP range
# Hint: if the range has only 1 address, and this is a bail (fixed address), then the range won't be used!
range 172.16.50.5 172.16.50.5;
#### NETBOOT settings
# PXE file to serve.
# >> elilo.efi => for ia64 clients;
# >> pxelinux.0 => for x86
# These files should be at the root of your TFTP server
# Note: The file name can be add in the "host" section too. Then, the "host" will override the current setting
filename "pxelinux.0";
# set the server that serve this NETBOOT file
next-server 172.16.50.2;
# Ensure that the new client (the one boot) is not stealing someone else IP @
ping-check = 1;
}
Be aware that the "option host-name ..." may be discard by most clients.
Client management
Add new host
Every time you need to install you host you have to:
Edit the configuration file:
vim /etc/dhcp/dhcpd.conf
Add new host at the end of the file :
host myNewHost {
hardware ethernet 00:0e:af:31:d1:cc;
fixed-address 172.16.50.60;
option host-name "myNewHost";
}
==> Don't forget to the given IP @ must match the DNS server declaration !
Configuration example
This is a configuration example:
#### Managed host and fixed IP @
# FTP server
host ftp {
hardware ethernet 00:0f:75:af:eb:44;
fixed-address 172.16.50.2;
option host-name "ftp";
### NetBoot PXE settings
# dedicated file for the current machine:
#filename "debian-installer/ia64/elilo.efi";
# Set the TFTP server
#next-server 172.16.50.2;
}
# WEB server
host web {
hardware ethernet 00:02:0d:31:d1:cc;
fixed-address 172.16.50.3;
option host-name "web";
}
# EMAIL server
host mail {
hardware ethernet 00:02:55:d2:d1:cc;
fixed-address 172.16.50.4;
option host-name "mail";
}
# LAPTOP workstation
host laptop {
hardware ethernet 00:0e:af:31:d1:cc;
fixed-address 172.16.50.5;
option host-name "laptop";
}
Take on changes
Restart the DHCP server :
/etc/init.d/isc-dhcp-server restart