Discover gets no Offer

Silence, not NAK. Usually giaddr, trusted relays, no pool, or dhcpd not ready.

Offer is skipped (no UDP reply) when dhcpd cannot select a subnet or allocate. NAK is a different path (NAK).

Checklist

  1. Overview — API ready? dhcpd count > 0? Alert dhcpd_missing / dhcpd_stale?
  2. curl -sf http://<dhcpd>:8080/readyz — 200 only after Postgres ping and a subnet-count query.
  3. Relayed packet: subnet pick is RFC 3527 link-selection (option 82) if present, else giaddr. That address must sit inside a subnet CIDR. Example: -giaddr 10.20.20.1 with a 10.20.20.0/24 subnet. Log: no subnet for packet. Relays.
  4. LATTICE_TRUSTED_RELAYS — empty drops relayed packets. List your relay IPs/CIDRs. Other sources are dropped (dropped untrusted relay). Relays.
  5. A pool exists, is enabled, and the client matches its class (or the pool has no class).
  6. free inventory — excludes + reservations + leased can empty a /24.
  7. Port is :67. Relays to the wrong port look like “DHCP is down.”
  8. License over cap refuses new grants (counted when a lease is committed, not when an Offer is sketched). Renewals still work.

dhcptest on the node.