networking dhcp ai_generated true

DHCPNAK: lease expired, no address assigned

ID: networking/dhcp-lease-expired

Also available as: JSON · Markdown
90%Fix Rate
88%Confidence
50Evidence
2023-01-01First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
any active

Root Cause

The DHCP lease has expired and the client cannot obtain a new one. The host loses its IP address and all network connectivity until a lease is successfully renewed or a new one is acquired.

generic

Workarounds

  1. 90% success Release and renew the DHCP lease
    1. Release the current lease: sudo dhclient -r eth0
    2. Request a new lease: sudo dhclient eth0
    3. Check the assigned IP: ip addr show eth0
    4. Verify connectivity: ping -c 3 8.8.8.8
    5. If using NetworkManager: nmcli connection down eth0 && nmcli connection up eth0
  2. 85% success Check and fix the DHCP server pool exhaustion or connectivity issue
    1. On the DHCP server, check the lease pool: dhcpd-pools or inspect /var/lib/dhcpd/dhcpd.leases
    2. If the pool is exhausted, expand the IP range in dhcpd.conf
    3. Remove stale leases if hosts have been decommissioned
    4. Verify the DHCP relay agent if the server is on a different subnet
    5. Check firewall rules allow UDP ports 67 and 68
    6. Restart the DHCP service: systemctl restart isc-dhcp-server

Dead Ends

Common approaches that don't work:

  1. Manually assign the old DHCP address as a static IP without checking for conflicts 70% fail

    The DHCP server may have already reassigned that IP to another host, causing an IP conflict. Additionally, DNS and gateway settings from DHCP will not be applied.

  2. Repeatedly run dhclient without checking if the DHCP server is reachable 80% fail

    If the DHCP server is down or unreachable (e.g., different VLAN, firewall blocking UDP 67/68), no amount of client retries will obtain a lease.

Error Chain

Leads to:
Preceded by:
Frequently confused with: