conf is the plan, the lease file is reality
A host block is intent. dhcpd.leases is what happened. They drift. grep is the helpdesk.
Replace
Keep BIND. Option 6 stays on the resolvers your laptops already ask.
If you are tired of subnet/range/host in conf on one side and dhcpd.leases on the other, Lattice puts both in one catalog. dhcpd reads those rows. Search finds the MAC instead of grepping the lease file. Discover on one node and Ack on another is the normal path — same pool.
On-prem · Ubuntu tarball · Community: 1,000 managed IPs · No phone-home
Community is the install with no license file. A 30-day Starter trial is in the portal. List prices are on Pricing.
Today
The plan usually lives in a sheet (or phpIPAM). Offers still come from Windows, ISC, or Kea. You keep those stories aligned yourself.
Lattice
Prefixes, pools, reservations, and leases are one catalog. dhcpd serves those rows; the console writes them. There is no second copy to sync. A/PTR follow the grant into the DNS you already run — Ack does not wait on a nameserver.
Lattice does not ingest dhcpd.conf or dhcpd.leases. Read subnet, range, and host { hardware; fixed-address }, map them, POST /api/v1. Small dnsmasq files: enter them in Addresses. Shared-network and allow/deny pools still need a human pass.
Playbook: Migrate · HA is not Microsoft failover — three-node VIP.
ISC keeps intent in conf and reality in the lease file. Lattice has one catalog, so Work can name the failure.
Paste a MAC suffix → search lands on the lease. Neteng is not the lookup API.
Work names the queue when a laptop will not get an address (Relays, Why NAK, Wrong MAC) — no capture first, no primary to restart. Occupancy answers who held an IP last Tuesday as every remaining hold, as-of a day, CSV. Reserve a printer on .10 forever the same way: the reservation you save is the next Offer.
| Topic | ISC dhcpd | Lattice |
|---|---|---|
| Plan and leases | conf + lease file | One catalog |
| Scale-out / failover | Peer / split pools | Same pool on every node (Starter: extra dhcpd + three-node VIP). A 30-day Starter trial is in the portal. |
| Find a MAC | grep dhcpd.leases | Console search |
| Who held this IP | grep dhcpd.leases | Every hold. As-of a day. CSV. |
| DNS | Scripts / nsupdate / BYO | A/PTR after Ack into DNS you keep |
| Cutover | Read conf host/subnet/range → map → API (no conf/lease ingest) | Dump → map → API |
A host block is intent. dhcpd.leases is what happened. They drift. grep is the helpdesk.
Split pools, primary/secondary. Request on the node that did not Offer is a special case. Lattice is the opposite: that is normal.
nsupdate on a hook, or you do not do it. Ack should not wait either way — but the plan and the name should not live in two files.
Pools, reservations, and excludes are IPAM rows. Every dhcpd process loads the same catalog.
Console search lands on the reservation or the lease. Cisco dotted MAC works.
Occupancy is every remaining lease row. As-of a day. CSV. Not grep dhcpd.leases.
TSIG after Ack into the zones you already run. Option 6 stays on BIND or Unbound. lattice-dns is optional, not required.
Community is one Ubuntu node. Same binaries. A Starter file adds dhcpd processes on the same database (Discover on one node, Ack on another, same pool) and three-node HA behind a VIP. Community is no license file. A 30-day Starter trial in the portal tests HA.