Discover on A and Ack on B is the same lease.

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.

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.

Why DHCP said no

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.

Named queues, not a dump of logs. Why NAK, Relays, Wrong MAC, Stale.

Named queues, not a dump of logs. Why NAK, Relays, Wrong MAC, Stale.

Work queues: Stale 9 open — reservations with no lease or ping in ~90 days. Lattice does not auto-delete.

Heartbeat ≠ serving

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.

Lease rows are occupancy

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.

Discover on dhcp-a, renew on dhcp-b. Same lease. Occupancy is the scale-out proof.

Discover on dhcp-a, renew on dhcp-b. Same lease. Occupancy is the scale-out proof.

History of MAC 60:34:ed:55:10:01: HQ floor 3 then guest Wi-Fi; hop dhcp-a to dhcp-b.

What dhcpd honors

  • Reservations, pools, excludes, client classes
  • Gateway, mask, lease time, NTP (option 42)
  • PXE next-server and boot file — subnet fields, not a reservation checkbox
  • Relay option 82 (RFC 3527 link-selection before giaddr, the relay’s address)
  • DHCPv4 and DHCPv6 IA_NA / IA_PD. Lattice does not split a /64 into individual addresses

Health is HTTP /readyz, never a UDP probe on port 67.

Over the cap

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.