• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer navigation

The Geek Diary

  • OS
    • Linux
    • CentOS/RHEL
    • Solaris
    • Oracle Linux
    • VCS
  • Interview Questions
  • Database
    • oracle
    • oracle 12c
    • ASM
    • mysql
    • MariaDB
  • DevOps
    • Docker
    • Shell Scripting
  • Big Data
    • Hadoop
    • Cloudera
    • Hortonworks HDP

Beginners Guide to DHCP – Install and configure DHCP server and client

by admin

What is DHCP

Dynamic Host Configuration Protocol (DHCP) allows client machines to automatically obtain network configuration information from a DHCP server each time they connect to the network. The DHCP server is configured with a range of IP addresses and other network configuration parameters.

When the client machine is configured to use DHCP, the client daemon, dhclient, contacts the server daemon, dhcpd, to obtain the networking parameters. Because DHCP is broadcast based, both the client and the server must be on the same subnet.

When the client machine is configured to use DHCP, the client daemon, dhclient, contacts the server daemon, dhcpd, to obtain the networking parameters. Because DHCP is broadcast based, both the client and the server must be on the same subnet.

The advantages of using DHCP include ease of adding a new client machine to the network and centralized management of IP addresses. In addition, the number of total IP addresses needed is reduced because IP addresses can be reused. DHCP is also useful if you want to change the IP addresses of a large number of systems. Instead of reconfiguring each system individually, edit the DHCP configuration file on the server and enter the new set of IP addresses.

Configuring DHCP server

To configure a system as a DHCP server, install the dhcp package:

# yum install dhcp

The main configuration file for DHCP is /etc/dhcp/dhcpd.conf. Use this file to store network information for the clients. A sample configuration file is also installed with the dhcp package: /usr/share/doc/dhcp-[version]/dhcpd.conf.sample. You can copy this file to /etc/dhcp/dhcpd.conf and use it as a template. Refer the post below to get details on configuration parameters in the configuration file /etc/dhcp/dhcpd.conf.

DHCP configuration file /etc/dhcp/dhcpd.conf explained

Start/Stop DHCP server

Use the systemctl command to enable the dhcpd service to start at boot time:

# systemctl enable dhcpd
ln –s ‘/usr/lib/systemd/system/dhcpd.service’ ‘/etc/systemd/system/multi-user.target.wants/dhcpd.service’

Notice that the command enables a service by creating a symbolic link for the lowest-level system-state target at which the service starts. In the example, the command creates the symbolic link dhcpd.service for the multi-user target.

Use the systemctl command to disable the dhcpd service from starting at boot time. The symbolic link is removed when the service is disabled:

# systemctl disable httpd
rm ‘/etc/systemd/system/multi-user.target.wants/httpd.service’

Use the systemctl command to start the dhcpd service:

# systemctl start httpd

The dhcpd service fails to start if the /var/lib/dhcpd/dhcpd.leases file does not exist. You can use the touch command to create the file. The dhcpd.leases file stores the client lease information. Do not edit this file manually.

CentOS / RHEL 7 : How to specify command-line arguments and options when the dhcpd service is started

Configuring DHCP client

1. To configure a system as a DHCP client, install the dhclient package:

# yum install dhclient

2. Change the BOOTPROTO directive in the /etc/sysconfig/network-scripts/ifcfg-[interface] file for the device to dhcp. For example, to use DHCP on ens33, perform the following:

# cat /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=bbe539aa-5042-4d28-a0e6-2a4d4f5dd744
DEVICE=ens33
ONBOOT=no
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes

3. You also need to restart the network service on the DHCP client.

# systemctl restart network

4. The next time the client system connects to the network, dhclient requests a lease from the DHCP server and configures the client’s network interface. You can also run dhclient from the command line to request a lease and make a connection:

# dhclient

5. To request on a specific interface, include the interface as an argument. The following example only requests a lease for ens33:

# dhclient ens33

The DHCP client configuration file, /etc/dhcp/dhclient.conf, is required only for custom configurations. A sample file exists in /usr/share/doc/dhclient-[version]/dhclient.conf.example. When the client has requested and established a lease, information about the lease is stored in /var/lib/dhclient/dhclient.leases. For Example:

# cat /var/lib/dhclient/dhclient.leases
lease {
  interface "ens33";
  fixed-address 192.168.219.149;
  option subnet-mask 255.255.255.0;
  option routers 192.168.219.2;
  option dhcp-lease-time 1800;
  option dhcp-message-type 5;
  option domain-name-servers 192.168.219.2;
  option dhcp-server-identifier 192.168.219.254;
  option broadcast-address 192.168.219.255;
  option domain-name "localdomain";
  renew 5 2017/10/20 06:50:39;
  rebind 5 2017/10/20 07:02:37;
  expire 5 2017/10/20 07:06:22;
}

Filed Under: CentOS/RHEL 7, Linux

Some more articles you might also be interested in …

  1. killall Command Examples in Linux
  2. cpuid Command Examples in Linux
  3. lvdisplay error: “Failed to create directory /var/lock/lvm. File-based locking initilisation failed.”
  4. Linux / UNIX : How to create primary partition using fdisk
  5. mons Command Examples in Linux
  6. How to Enable sudo I/O Logging
  7. How to Find Filesystem Inode Utilization in Linux
  8. gprof: command not found
  9. How To Delete Disk Partition using Parted Command
  10. inotifywait Command Examples in Linux

You May Also Like

Primary Sidebar

Recent Posts

  • nixos-rebuild Command Examples in Linux
  • nixos-option: Command Examples in Linux
  • nixos-container : Command Examples in Linux
  • nitrogen Command Examples in Linux

© 2023 · The Geek Diary

  • Archives
  • Contact Us
  • Copyright