I deployed an ISC DHCP server with a scoped pool, static reservations for infrastructure hosts, and standard options for gateway and DNS. Centralized addressing eliminated manual IP assignment while keeping servers on fixed, MAC-reserved addresses.

Objective & Context

DHCP automates client addressing through the DORA exchange (Discover, Offer, Request, Acknowledge). This lab balances dynamic pools for clients with reservations for hosts that need stable addresses, complementing the static-config and DNS labs.

Environment & Prerequisites

  • Linux server with isc-dhcp-server; one test client.
  • A subnet plan with a defined dynamic range and reservations.
  • Gateway and DNS resolver addresses to advertise.

Step-by-Step Execution

1. Define the scope and a reservation [ROOT REQUIRED]

subnet 192.168.20.0 netmask 255.255.255.0 {
  range 192.168.20.100 192.168.20.200;
  option routers 192.168.20.1;
  option domain-name-servers 192.168.20.2;
}
host nas { hardware ethernet de:ad:be:ef:00:11; fixed-address 192.168.20.10; }

2. Validate config and start the service

dhcpd -t -cf /etc/dhcp/dhcpd.conf && systemctl enable --now isc-dhcp-server

3. Confirm a lease is issued

journalctl -u isc-dhcp-server | grep DHCPACK
DHCPACK on 192.168.20.105 to aa:bb:cc:dd:ee:ff

Validation & Testing

Release and renew on the client and confirm it receives a pool address while the reserved host always gets its fixed IP. Pass criteria: successful DORA exchange, correct gateway/DNS options, and reservation honored by MAC.

Advanced: Troubleshooting
  • No offers: the server interface must be on the same broadcast domain or use a relay (ip-helper).
  • Wrong options: confirm scope vs global option precedence.
  • Lease conflicts: ensure the dynamic range excludes reserved addresses.

Key Results

  • Automated addressing for a /24 client pool of 100 addresses.
  • Pinned infrastructure hosts to fixed IPs via MAC reservations.
  • Advertised gateway and DNS options to 100% of leased clients.
  • Reduced manual IP assignment effort to zero for client subnets.