Parakalix

VLSM subnet planner

Give it the block you were issued and a list of what has to live in it. It sizes each subnet from the host count and a growth buffer, packs them largest-first so nothing is stranded, and tells you plainly when the block is too small — including the prefix to ask for instead.

Blocks

Already in use

Subnets that already exist and cannot move — a command post that is already numbered, a range the last unit left in place. Anything inside one of your blocks is held at that exact address and the plan is built around it. Anything outside them is checked for overlap and otherwise left alone.

What has to fit

Quick-add fills a row with a typical size — change it. Sizes are hosts, before the buffer. Transit rows are point-to-point links and loopback rows are single addresses; neither gets a buffer, because neither grows.

How it allocates, and what the numbers mean

Sizing. A subnet's size is the host count times the buffer, plus the two addresses every IPv4 subnet spends on the network and broadcast addresses, rounded up to the next power of two. 60 hosts with a 20% buffer is 72 usable, which needs a /25 (126 usable), not a /26 (62). The spare column is what is left after your hosts and the buffer, so you can see which subnets are nearly full at the size they were given.

Packing. Subnets are allocated largest-first from the lowest free space that fits, which is what keeps a block from ending up with its free space scattered in pieces too small to use. A /30 handed out before a /24 can cost you the /24 entirely; that is the mistake this ordering exists to prevent. Every subnet lands on its own boundary, so nothing here ever produces an address that a router will reject.

When it does not fit. The tool does not just say no. It works out the smallest prefix that would hold the plan — by trying to pack it, not by adding the sizes up, because alignment wastes space that arithmetic alone does not show — and gives you that prefix to request.

Transit links. /30 gives two usable addresses and is what most routers and most unit SOPs expect. /31 gives two usable addresses in half the space (RFC 3021) and is supported by every current Cisco and Juniper platform, but not by every radio or legacy device, so it is offered and not assumed.

Already in use. A subnet that exists and cannot move is entered under Already in use. If it falls inside one of your blocks it is taken at that exact address before anything else is allocated, so the rest of the plan is built around it; if it falls outside them it is only checked for overlap, because it is not yours to hand out. Reserved subnets appear in the table and the diagram in amber, and are skipped by the Cisco output - they already have an owner, and emitting config for them is how a net ends up with two gateways.

At 2x. The last column answers the question that decides whether a plan survives contact: if this subnet's host count doubled, would the block it was given still hold it? fits means yes. A prefix there means you would need that much to absorb the growth.

Two pictures, and they say different things. The bar is the block drawn to scale, so a gap in the middle looks like a gap - it is how you see fragmentation. The diagram below it is the same plan drawn as a network, which is the version that belongs in an annex.

Nothing leaves the page. There is no server here. The plan is computed in your browser, and the only thing stored is your last plan, in this browser, so the page comes back the way you left it. Copy a link to this plan puts the whole plan in the URL fragment, which is never sent to any server - so a shared link carries the plan itself and goes only where you send it. Anyone opening that link sees that plan rather than their own saved one.