Offer is skipped (no UDP reply) when dhcpd cannot select a subnet or allocate. NAK is a different path (NAK).
Checklist
- Overview — API ready? dhcpd count > 0? Alert
dhcpd_missing/dhcpd_stale? curl -sf http://<dhcpd>:8080/readyz— 200 only after Postgres ping and a subnet-count query.- Relayed packet:
giaddrmust sit inside a subnet CIDR. Lab:-giaddr 10.20.20.1with a10.20.20.0/24subnet. Log:no subnet for packet. LATTICE_TRUSTED_RELAYS— if set, other sources are dropped (dropped untrusted relay). Lab should leave it empty. Relays.- A pool exists, is enabled, and the client matches its class (or the pool has no class).
freeinventory — excludes + reservations + leased can empty a /24.- Port: production
:67, compose:6767. Relays to the wrong port look like “DHCP is down.” - License over cap refuses new Discover/Offer. Renewals still work.
Lab: dhcptest against both dhcpd ports.