How do I install and configure a DHCP server?

The first thing You need to do is install the packages we need.

Open up a terminal and type:

sudo apt-get install isc-dhcp-server

There are two main files /etc/default/isc-dhcp-server and /etc/dhcp/dhcpd.conf which we will need to configure so lets take the first.

Open up a terminal and using your favorite text editor type:

sudo vim /etc/default/isc-dhcp-server

You should get the following:

#Defaults for dhcp initscript
#sourced by /etc/init.d/dhcp
#installed at /etc/default/isc-dhcp-server by the maintainer scripts
#
#This is a POSIX shell fragment
#
#On what interfaces should the DHCP server (dhcpd) serve DHCP requests"
#Separate multiple interfaces with spaces, e.g. “eth0 eth1".
INTERFACES="eth0"

Replace eth0 above with the name of your network interface that you want the server to lease addresses on. Onto the next file.

Open up a terminal and type:

sudo vim /etc/dhcp/dhcpd.conf

which should give you the output below.

#
#Sample configuration file for ISC dhcpd for Debian
#
#Attention: If /etc/ltsp/dhcpd.conf exists, that will be used as
#configuration file instead of this file.
#
#
....
option domain-name “example.org”;
option domain-name-servers ns1.example.org, ns2.example.org;
option domain-name “comtech.com”;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 10.0.0.0 netmask 255.255.255.0 {
range 10.0.0.150 10.0.0.253;
option routers 10.0.0.2;
option subnet-mask 255.255.255.0;
option broadcast-address 10.0.0.254;
option domain-name-servers 10.0.0.1, 10.0.0.2;
option ntp-servers 10.0.0.1;
option netbios-name-servers 10.0.0.1;
option netbios-node-type 8;
 ......
}

This needs a little bit of explaining.

  1. Adjust your settings according to your network requirements.
  2. The option domain name is your dns zone name. For example mine is set to comtech.com.
  3. Range should be the range of ip addresses that you want the server to give out to clients.

Now restart the dhcp service by typing:

sudo service isc-dhcp-server restart

Thats it!! Your dhcp server should be running, however it is best to check. Open up a terminal and type:

sudo netstat -uap

which will show you something like the following (look for dhcpd, nmbd, and named):

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address State PID/Program name
udp        0      0 10.0.0.255:netbios-dgm  *:*                   1016/nmbd
udp        0      0 10.0.0.255:netbios-ns   *:*                   1016/nmbd
udp        0      0 *:bootps                *:*                   4525/dhcpd
udp        0      0 *:netbios-dgm           *:*                   1016/nmbd
udp        0      0 *:netbios-ns            *:*                   1016/nmbd
udp        0      0 chris-desktop:domain    *:*                   1273/named
udp        0      0 chris-desktop.lo:domain *:*                   1273/named
udp        0      0 chris-deskt:netbios-dgm *:*                   1016/nmbd
udp        0      0 chris-deskto:netbios-ns *:*                   1016/nmbd
udp6       0      0 [::]:domain             [::]:*                1273/named

Additional things can be included in the accepted answer

  1. Assign static IP before starting isc-dhcp-server service .

  2. You can reserve IP for devices like printers and linux machines by adding MAC id in the below format inside the particular subnet.

    ------
    host bla1 { 
            hardware ethernet DD:GH:DF:E5:F7:D7;
            fixed-address 10.0.0.10;
    }
    ----
    

    Dhcp3-server Community Wiki

    Ubuntu DHCP server

Tags:

Server

Dhcp