One pool, any node
Lease state lives in Postgres, not a failover peer on the box. There is no split scope. Discover on one node and Ack on another is the same lease.
Product / DHCP
dhcpd has no conf of its own — it reads the catalog. Identical processes, shared store. Ack never waits on DNS. Over the cap, existing leases keep renewing.
Lease state lives in Postgres, not a failover peer on the box. There is no split scope. Discover on one node and Ack on another is the same lease.
Work names the reason: reserved to another MAC, excluded, pool disabled, or a relay Lattice does not know. Silence is usually no Offer — the client hears nothing — not a NAK. Packet-level detail is in the Why NAK and Relays docs.
A node can look healthy and still grant nothing. Last grant 14 hours ago is a quiet note on Overview. Point a relay or prove an Ack. Do not restart “the primary.” There isn’t one.
Every grant, renew, and release stays in the catalog. History is the report: who held this IP, where this MAC has been, which NICs this hostname used, what sat on this switch port. As-of a day on this computer. CSV. Not a second log.
Health is HTTP /readyz, never a UDP probe on port 67.
New grants, reservations, and assignments stop. The cap is counted when a lease is granted, not when an Offer is sketched. Existing leases keep renewing. DHCP does not crash to enforce a cap.