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-serverIf 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.