How it works
For each LAN request h, choose the smallest power of two at least h + 2. Sort largest blocks first and allocate from the normalized parent boundary. The two extra addresses reserve network and broadcast.
Worked example
90, 40 and 12 hosts fit into a /24 as /25, /26 and /28. Starting at 10.42.20.0 gives networks .0/25, .128/26 and .192/28, leaving .208–.255 unallocated.
Inputs, edge cases & common mistakes
This allocator deliberately uses ordinary LAN semantics: even a one-host request receives /30. It does not pack point-to-point /31s or account for cloud-specific reservations. An overfull plan is rejected as a whole. Request numbers preserve your input order after sorting.
Technical references
Reviewed 9 September 2026. Found an issue? Send a correction with a reproducible example.