Logo

dev-resources.site

for different kinds of informations.

DHCP Server

Published at
10/18/2024
Categories
dhcp
network
networking
linux
Author
Anass Assim
Categories
4 categories in total
dhcp
open
network
open
networking
open
linux
open
DHCP Server

1- Network Setup :

We assume the following network configuration:

  • Server (Debian 1) - Internal Network: 192.168.1.1/24
  • Failover (Debian 2) - Internal Network: 192.168.1.2/24
  • Relay (Debian 3) - 2 Interfaces (Internal Network):
    • IP in the Client Network: 192.168.1.3/24
    • IP in the Server Network: 192.168.2.1/24
  • Client (Debian 4) - Internal Network: 192.168.2.10/24

We will assign the IPs to the machines through the file /etc/network/interfaces :

  • Server :

Image description

  • Failover :

Image description

  • Relay :

Image description

  • Client:

Image description

2- Installing Necessary Packages :

  • Server :
apt update
apt install isc-dhcp-server
  • Failover :
apt update
apt install isc-dhcp-server
  • Relay :
apt update
apt install isc-dhcp-relay
  • Client :

No packages need to be installed on the client, but it is advisable to update the repository.

apt update

3-Connectivity Check :

  • To check connectivity between the client and server, we usually ping from the client to the server or vice versa.

Image description

  • Now, edit the network configuration file on the client, located at /etc/network/interfaces, and configure the enp0s3 interface in DHCP mode.

Image description

3- Server Machine Configuration :

a- /etc/default/isc-dhcp-server :

  • Edit the file /etc/default/isc-dhcp-server to configure the interface that will listen for client requests, which in this case will be enp0s3.

Image description

b- /etc/dhcp/dhcpd.conf :

  • Now, configure the DHCP service on the server:

Image description

Now we need to restart the DHCP service:

systemctl restart isc-dhcp-server
systemctl status isc-dhcp-server

The service should now be active.

4-Failover Machine Configuration :

a- /etc/default/isc-dhcp-server

  • Just like on the server, we need to edit the file /etc/default/isc-dhcp-server to configure the interface that will listen for client requests, which in this case will be enp0s3.

Image description

b- /etc/dhcp/dhcpd.conf

  • Now, configure the DHCP service on the Failover:

Image description

  • Now we need to restart the DHCP service:
systemctl restart isc-dhcp-server
systemctl status isc-dhcp-server

The service should now be active.

5-Relay Machine Configuration :

*a- Enable Forwarding: *

Edit the file /proc/sys/net/ipv4/ip_forward to allow packet forwarding between network interfaces:

echo '1' > /proc/sys/net/ipv4/ip_forward

b- Client Network:

To make this change persistent after a reboot, edit the file /etc/sysctl.conf and add the following line:

echo "net.ipv4.ip_forward=1" > /etc/sysctl.conf

c- /etc/default/isc-dhcp-relay

In this file, we need to add the IP of the server and the Failover, and set the two interfaces that connect to the client and the server. By default, these are usually β€œenp0s3” and β€œenp0s8” in VirtualBox.

Image description

6- DHCP Verification:

Part 1: Server Check

We have finished configuring all machines (Server, RELAY, FAILOVER). Now it's time to check if the DHCP works correctly and if the client can obtain a dynamic IP from the server.

Image description

Part 2: Failover Check

After verifying that the client can obtain a dynamic IP from the server and everything works correctly, we can turn off the server or stop the isc-dhcp-server service to check if the client can obtain a dynamic IP from the Failover machine.

systemctl stop isc-dhcp-server # On the Server Machine

Image description

Featured ones: