VLSM Subnet Planner
Allocate differently sized IPv4 subnets inside a parent prefix without overlaps or wasted manual arithmetic.
Result
Largest-first allocation
| Name | Required hosts | Allocated prefix | Usable range | Broadcast |
|---|---|---|---|---|
| Users | 500 | 10.20.0.0/23 | 10.20.0.1 - 10.20.1.254 | 10.20.1.255 |
| Voice | 120 | 10.20.2.0/25 | 10.20.2.1 - 10.20.2.126 | 10.20.2.127 |
| Servers | 60 | 10.20.2.128/26 | 10.20.2.129 - 10.20.2.190 | 10.20.2.191 |
| Management | 20 | 10.20.2.192/27 | 10.20.2.193 - 10.20.2.222 | 10.20.2.223 |
Users: 10.20.0.0/23
Voice: 10.20.2.0/25
Servers: 10.20.2.128/26
Management: 10.20.2.192/27About VLSM Subnet Planner
VLSM divides one IPv4 block into unequal subnets. Enter each segment and its required usable-host count; the planner assigns the smallest conventional subnet that fits and prevents overlap.
Allocation rule
Requests are sorted largest-first. Each allocation includes network and broadcast addresses, is rounded to a power of two and aligned to a valid CIDR boundary.
Operational review
After calculating the plan, compare it with the real VLAN, routing and DHCP design. Record intentional gaps for growth, infrastructure and point-to-point links. A mathematically valid allocation can still be operationally weak when adjacent departments cannot grow, summarisation boundaries are lost, or security zones are mixed. Treat the table as a draft address plan, then assign ownership and document every reserved range before configuration is deployed.
Common use cases
- Campus VLAN address planning.
- Preparing an ISP or branch allocation sheet.
- Checking whether planned networks fit an assigned block.
Edge cases and gotchas
- Add growth headroom before deployment.
- /31 point-to-point semantics are intentionally not used for host-count requests.
- Confirm the final allocation against IPAM, routing summaries, DHCP reservations and security-zone boundaries. Never deploy directly from a calculation without recording ownership, purpose, gateway convention and rollback impact for every assigned prefix.