DHCP server installation and configuration Linux

DHCP server : Dynamic host configuration protocol is a Client/Server protocol which will automatically provide IP address to the requested client. Not only IP address along with IP it will also provide subnet mask, default gateway and DNS IP address.

Every device on a TCP/IP-based network must have a unique unicast IP address to access the network and its resources. Without DHCP, IP addresses for new computers or computers that are moved from one subnet to another must be configured manually; IP addresses for computers that are removed from the network must be manually reclaimed.
With DHCP, this entire process is automated and managed centrally. The DHCP server maintains a pool of IP addresses and leases an address to any DHCP-enabled client when it starts up on the network. Because the IP addresses are dynamic (leased) rather than static (permanently assigned), addresses no longer in use are automatically returned to the pool for reallocation.

Server will provide a automatic IP address using DORA process which means, D=Discovery, O=Offer, R-REquest and A=Ackowledgement see detailed explanation about each one.

The client broadcasts messages on the network subnet using the destination address or the specific subnet broadcast address. A DHCP client may also request its last-known IP address. If the client remains connected to the same network, the server may grant the request. Otherwise, it depends whether the server is set up as authoritative or not.

DHCP server receives a DHCPDISCOVER message from a client, which is an IP address lease request, the server reserves an IP address for the client and makes a lease offer by sending a DHCPOFFER message to the client. This message contains the client’s MAC address, the IP address that the server is offering, the subnet mask, the lease duration, and the IP address of the DHCP server making the offer.

In response to the DHCP offer, the client replies with a DHCP request, broadcast to the server, requesting the offered address. A client can receive DHCP offers from multiple servers, but it will accept only one DHCP offer. Based on required server identification option in the request and broadcast messaging, servers are informed whose offer the client has accepted. When other DHCP servers receive this message, they withdraw any offers that they might have made to the client and return the offered address to the pool of available addresses.

When the DHCP server receives the DHCPREQUEST message from the client, the configuration process enters its final phase. The acknowledgement phase involves sending a DHCPACK packet to the client. This packet includes the lease duration and any other configuration information that the client might have requested. At this point, the IP configuration process is completed.


while providing the permanent IP address to the DHCP client it will collect its MAC address. Provided IP address will not changed until DHCP server lease time expires.

DHCP Server Profile

Packages : dhcp*
Service : dhcpd.service
Config file : /etc/dhcp/dhcpd.conf
Port Number: 67

Installing DHCP server required packages using yum

[root@mail ~]# yum install dhcp*
[root@mail ~]# systemctl enable dhcpd.service
[root@mail ~]# systemctl start dhcpd.service
Job for dhcpd.service failed. See 'systemctl status dhcpd.service' and 'journalctl -xn' for details.

you may receive above error some times don’t worry after we set and DHCP server configuration restart service will work normally

[root@mail ~]# firewall-cmd --permanent --add-service=dhcp
[root@mail ~]# firewall-cmd --reload

Copy the sample configuration file to main configuration file. Default DHCP server configuration will not contain anything (empty)

[root@mail ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y

Now edit the config file /etc/dhcp/dhcpd.conf

[root@mail ~]# vim /etc/dhcp/dhcpd.conf
Default Line number 48
# A slightly different configuration for an internal subnet.
subnet netmask {
 option domain-name-servers ns1.internal.example.org;
 option domain-name "arkit.co.in";
 option routers;
 option broadcast-address;
 default-lease-time 600;
 max-lease-time 7200;

As shown in above we have to change subnet IP netmask IP add your domain name, routers IP (default gateway) broadcast IP address.

After that restart the dhcpd service

[root@mail ~]# systemctl restart dhcpd.service 
[root@mail ~]# systemctl status dhcpd.service 
dhcpd.service - DHCPv4 Server Daemon
 Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled)
 Active: active (running) since Thu 2016-03-24 23:39:19 IST; 5s ago

dhcp server configuration verification we can verify the config file using below command, will tell you where is the configuration went wrong

[root@mail ~]# dhcpd configtest

that’s for server side.

Go to client and test whether your getting same series IP address.

Stay tune for mac binding / reserving static IP to particular server

Please provide your valuable feedback


:: Related Topics ::

PXE Boot server configuration

DNS Server installation and configuration

LDAP Server installation and configuration

Thanks for your wonderful Support and Encouragement