ElementaryOS 0.4: Install isc-dhcp-server for DHCP server

This article will describe installing isc-dhcp-server and running DHCP server.

1 Install isc-dhcp-server

Install isc-dhcp-server with apt.

$ sudo apt install -y isc-dhcp-server

2 /etc/default/isc-dhcp-server

Add configuration for DHCPD. INTERFACES is a network interface name which is connected to a network which you try to provided DHCP.

$ sudo sed -e 's/^#DHCPD_CONF=/DHCPD_CONF=/g' \
     -e 's/^#DHCPD_PID=/DHCPD_PID=/g' \
     -e "s/INTERFACES=\"\"/INTERFACES=\"${INTERFACES}\"/g" \
     -i /etc/default/isc-dhcp-server

3 /etc/dhcp/dhcpd.conf

Define domain name, DHCP server IP address and gateway IP address. Mapping MAC address 52:54:00:c0:07:60 to IP address

$ cat /etc/dhcp/dhcpd.conf
subnet netmask {
  option domain-name "hiroom2.com";
  option domain-name-servers,;
  option routers;

host dhcp-client {
  hardware ethernet 52:54:00:c0:07:60;

4 Run isc-dhcp-server

Run isc-dhpc-server with systemd.

$ sudo systemctl enable isc-dhcp-server
$ sudo systemctl restart isc-dhcp-server

5 Execution result

Run the following command on client machine.

IP address is provided.

$ ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
state UP group default qlen 1000
    link/ether 52:54:00:c0:07:60 brd ff:ff:ff:ff:ff:ff
    inet brd scope global dynamic ens3
       valid_lft 43148sec preferred_lft 43148sec
    inet6 fe80::5054:ff:fec0:760/64 scope link
       valid_lft forever preferred_lft forever

DNS servers are provided.

$ cat /etc/resolv.conf
# Generated by NetworkManager
search hiroom2.com