A Lattice reservation is the Microsoft DHCP reservation: this MAC (or DUID / client-id) always gets this IP on this subnet, and nobody else does.
It is not a static NIC you configured on the server. That is an assignment (Static server). It is not an exclusion. excludes. First subnet: first-subnet.
1. When to use which
| You want | Lattice |
|---|---|
Printer / phone / badge reader always gets .10 via DHCP | Add address → DHCP client (reservation) |
| ESXi / a Windows server with a static NIC, no DHCP | Add address → Static server (assignment). Counts on the license. |
| Gateway, HSRP/VRRP VIP, “don’t ever Offer this” | Don’t offer (exclude) |
| Temporary “keep current Microsoft lease IP” during cutover | Reservation seeded from the old lease dump, then delete later. migrate §5 |
Dynamic laptops belong in the pool, not in hundreds of reservations.
2. Click path
Subnet → Add address → DHCP client.
- IP inside the subnet, not in an exclude
- At least one identity: MAC, client-id, or DUID (v6)
- Hostname optional (DDNS uses it as the single DNS label)
Microsoft ClientId is typically a hyphenated MAC (F0-DE-F1-7A-00-5E). Lattice wants lowercase aa:bb:cc:dd:ee:ff. Normalize in Excel before a bulk import. migrate §4.
A reservation counts as a managed IP on the license even when the device is offline. Stale printers from 2019 still meter. Work → Stale (~90 days, no lease, no ping) is the queue — list, don’t auto-delete.
3. Behavior
- Discover from that MAC: Offer only the reserved IP.
- Another client cannot have it (NAK / not offered).
- Release / expire: inventory stays reserved, not free-for-the-pool.
- Force-release a live lease on a reserved IP: the IP is still reserved; the next Discover of that MAC gets it again.
Work → Wrong MAC: a live lease on this IP whose MAC is not the reservation. Someone statically addressed the printer’s IP, or a second device. Do not “fix” it by deleting the reservation until you know which device is real.
Work → Hostnames: two reservations named hp-01. DDNS last-writer-wins. Rename one.
4. API / migration
POST /api/v1/subnets/{id}/reservations with ip + mac. Do not import the Microsoft lease table as live lease rows. Turning old active bindings into reservations is a cutover trick, not a lease import. migrate.