The plan is not the grant
phpIPAM holds prefixes. Windows, ISC, or Kea still Offers. A reservation in phpIPAM is a comment until something syncs it.
Replace
phpIPAM is good at prefixes. It is not your DHCP. A reservation there is a comment until something syncs it — and on a busy Tuesday, that sync is often “we’ll build it later.” In Lattice the write is the next Discover. One catalog. You keep AD, Unbound, or BIND.
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 is not a phpIPAM clone. It is not your DNS. It will not import your phpIPAM database as a dump-and-run. Prefixes and subnets you care about get mapped and POSTed. Devices that must keep an IP become reservations. Your existing DHCP is what you turn off at cutover, not phpIPAM’s ping scan.
Playbook: Migrate · HA is not Microsoft failover — three-node VIP.
Office trusts the sheet because it looks authoritative. Networking trusts DHCP because packets don’t lie. When a printer MAC changes, those two stories diverge. Lattice collapses that: helpdesk search and the Offer read the same row.
| Topic | phpIPAM (+ your DHCP) | Lattice |
|---|---|---|
| Plan and leases | IPAM sheet; DHCP is still Windows/ISC/Kea | One catalog |
| Scale-out / failover | Whatever your DHCP does | Same pool on every node (Starter: extra dhcpd + three-node VIP). A 30-day Starter trial is in the portal. |
| Find a MAC | phpIPAM search ≠ live lease | Console search |
| Who held this IP | Ping scan / last seen — not the grant | Every hold. As-of a day. CSV. |
| DNS | Not the resolver (same as Lattice) | A/PTR after Ack into DNS you keep |
| Cutover | Map prefixes/subnets you care about; turn off the DHCP server at cutover, not phpIPAM’s ping scan | Dump → map → API |
phpIPAM holds prefixes. Windows, ISC, or Kea still Offers. A reservation in phpIPAM is a comment until something syncs it.
There is no lease object that dhcpd must honour. Helpdesk has two consoles and a sheet that might be true.
You already knew that. The pain is keeping them aligned when a printer MAC changes.
The reservation you save is the next Offer. Assignments (static servers) and tracking-only VLANs sit on the same map.
Occupancy is lease rows dhcpd already wrote. As-of a day. phpIPAM last-seen is a ping.
No second DHCP product to keep in sync. Identical processes, shared Postgres.
Names after Ack into AD or BIND. phpIPAM was never the resolver. Neither is Lattice, unless you publish lattice-dns on purpose.
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.