How to Install and Configure Multihomed ISC DHCP Server on Debian Linux?

The ISC DHCP server is a popular open-source software package that allows network administrators to dynamically allocate IP addresses and configure network settings to clients on a local area network (LAN). In some cases, it may be necessary to configure a server with multiple network interfaces, which is known as a multihomed server. This tutorial will guide you through the process of installing and configuring ISC DHCP server on a Debian Linux system with multiple network interfaces.

Prerequisites

Before you begin, you will need

  • A Debian Linux system with root access

  • Two or more network interfaces installed on your system

  • Basic knowledge of networking and Linux command line

Step 1: Install ISC DHCP Server

To install ISC DHCP server, use the following commands

sudo apt-get update
sudo apt-get install isc-dhcp-server

This will install the DHCP server software on your system.

Step 2: Configure DHCP Server

The DHCP server configuration file is located at /etc/dhcp/dhcpd.conf. Open the file in your preferred text editor.

sudo nano /etc/dhcp/dhcpd.conf

By default, the DHCP server is configured to listen on all available network interfaces. In a multihomed server, you will need to specify which interfaces the DHCP server should listen on. Add the following configuration for multiple subnets

subnet 192.168.0.0 netmask 255.255.255.0 {
   option routers 192.168.0.1;
   option subnet-mask 255.255.255.0;
   option domain-name-servers 8.8.8.8, 8.8.4.4;
   range 192.168.0.10 192.168.0.50;
}

subnet 192.168.1.0 netmask 255.255.255.0 {
   option routers 192.168.1.1;
   option subnet-mask 255.255.255.0;
   option domain-name-servers 8.8.8.8, 8.8.4.4;
   range 192.168.1.10 192.168.1.50;
}

In this example, we have specified two subnets: one on the first interface with IP range 192.168.0.10 to 192.168.0.50 and another on the second interface with IP range 192.168.1.10 to 192.168.1.50.

Step 3: Configure Network Interfaces

Next, you will need to configure your network interfaces. Edit the interfaces configuration file

sudo nano /etc/network/interfaces

Add the following lines to configure static IP addresses for your interfaces

auto eth0
iface eth0 inet static
   address 192.168.0.1
   netmask 255.255.255.0

auto eth1
iface eth1 inet static
   address 192.168.1.1
   netmask 255.255.255.0

In this example, eth0 has IP address 192.168.0.1 and eth1 has IP address 192.168.1.1. You can modify these values to suit your network requirements.

Step 4: Specify DHCP Interfaces

Configure which interfaces the DHCP server should listen on by editing the default configuration file

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

Set the interfaces parameter

INTERFACESv4="eth0 eth1"

Step 5: Restart Services

After configuring the network interfaces and DHCP server, restart the networking and DHCP services to apply the changes

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

Verification and Testing

To verify that the DHCP server is working correctly, check the service status

sudo systemctl status isc-dhcp-server

You can also monitor DHCP lease assignments by checking the lease file

sudo tail -f /var/lib/dhcp/dhcpd.leases

Test DHCP functionality using dhcping utility

sudo apt-get install dhcping
sudo dhcping -c 192.168.0.10 -s 192.168.0.1

A successful test will show output similar to

Got answer from: 192.168.0.1
received DHCP answer from 192.168.0.1
DHCP answer has 6 items:
   Server Identifier : 192.168.0.1
   IP Address Lease Time : 86400
   Subnet Mask : 255.255.255.0
   Router : 192.168.0.1
   Domain Name Server : 8.8.8.8

Advanced Configuration Options

Consider these additional configuration options for enhanced functionality

DHCP Reservations

Reserve specific IP addresses for devices based on MAC addresses

host printer {
   hardware ethernet 00:11:22:33:44:55;
   fixed-address 192.168.0.100;
}

Lease Time Configuration

Adjust lease times in the subnet configuration

subnet 192.168.0.0 netmask 255.255.255.0 {
   default-lease-time 600;
   max-lease-time 7200;
   range 192.168.0.10 192.168.0.50;
}

Firewall Configuration

Allow DHCP traffic through the firewall using ufw

sudo ufw allow 67/udp
sudo ufw allow 68/udp

Troubleshooting

If the DHCP server fails to start, check the configuration syntax

sudo dhcpd -t -cf /etc/dhcp/dhcpd.conf

Monitor system logs for DHCP-related messages

sudo journalctl -u isc-dhcp-server -f

Conclusion

Configuring a multihomed DHCP server on Debian Linux involves installing ISC DHCP server, defining subnet configurations for multiple interfaces, and properly configuring network interfaces. This setup enables efficient IP address management across multiple network segments from a single server. Always test your configuration thoroughly in a non-production environment before deployment.

Updated on: 2026-03-17T09:01:38+05:30

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements