DHCP Pool Exhausted: Fixing “No Free Leases”

Updated 2026-11-01

When existing devices are fine but new ones can't get on the network, suspect DHCP. A server that's out of addresses logs no free leases and simply stops answering DHCPDISCOVER — the client waits, times out, and self-assigns a useless link-local address.

Confirm the pool is full

journalctl -u isc-dhcp-server | grep 'no free leases'
# count active leases vs the configured range:
grep -c '^lease ' /var/lib/dhcp/dhcpd.leases

Widen the scope (or shorten lease time)

# /etc/dhcp/dhcpd.conf
subnet 10.0.1.0 netmask 255.255.255.0 {
  range 10.0.1.100 10.0.1.250;    # widen the range
  default-lease-time 3600;         # or shorten so idle leases recycle faster
}
systemctl restart isc-dhcp-server

If the subnet is genuinely too small for the device count, widening the range only delays the wall — you need a bigger subnet or a second scope. A flood of short-lived devices (guest Wi-Fi) is better solved with a shorter lease time so addresses return to the pool quickly.

Practise it

DHCP exhaustion is one of the simulator's networking incidents. Work it in a full incident response shift.

Learn it by doing

Create a free account and practise on a live fleet.

← All guides