Calculator

VLSM planner

List the subnets you need and how many hosts each has. Get a gap-free plan sized to fit.

192.168.10.0/24 · 256 addresses

Point-to-point links
Subnets you need

Enter them in any order. The planner sorts largest first.

4 subnets
Presets
Allocated
116 / 256
45% of 192.168.10.0/24
Hosts needed
99
Across 4 subnets
Wasted in subnets
9
Usable addresses nobody asked for
Still free
140
3 blocks for growth

Address map

192.168.10.0/24 drawn to scale, lowest address on the left

192.168.10.0192.168.10.255
  • Engineering 192.168.10.0/26
  • Sales 192.168.10.64/27
  • Mgmt 192.168.10.96/28
  • WAN 192.168.10.112/30
  • Free space

Allocation table

Largest first, in address order

NameNeededPrefixNetworkUsable rangeBroadcastUsableWaste
Engineering60/26192.168.10.0192.168.10.1 – 192.168.10.62192.168.10.63622
Sales25/27192.168.10.64192.168.10.65 – 192.168.10.94192.168.10.95305
Mgmt12/28192.168.10.96192.168.10.97 – 192.168.10.110192.168.10.111142
WAN2/30192.168.10.112192.168.10.113 – 192.168.10.114192.168.10.11520

Free blocks

Unallocated space, as the fewest aligned blocks. Keep it for growth.

  • 192.168.10.116/304 addr
  • 192.168.10.120/298 addr
  • 192.168.10.128/25128 addr
How VLSM works

VLSM (variable length subnet masking) means giving each subnet its own prefix length, sized to what it needs, instead of cutting the network into equal pieces. A small WAN link gets a tiny block; a big office gets a big one.

  1. Sort largest first. List the subnets by hosts needed, biggest at the top.
  2. Size each one. Find the fewest host bits h where 2ʰ − 2 ≥ hosts. The 2 is the network and broadcast addresses, which hosts cannot use. The prefix is 32 − h. For 60 hosts: 2⁶ − 2 = 62, so h = 6 and the prefix is /26 (64 addresses).
  3. Place it on the next boundary of its own size. A /26 (64 addresses) must start on a multiple of 64: .0, .64, .128 or .192. Take the first free one.

Why largest first? Every block size is a power of two, and every bigger size is a multiple of every smaller one. When the big blocks go first, the end of each block is automatically a valid boundary for the next, smaller block, so blocks sit back to back with no gaps. Going small first leaves odd-sized holes: a /30 at .0 forces the next /26 to skip ahead to .64, wasting .4–.63.

Waste in the table is usable addresses inside a subnet that you did not ask for, e.g. 25 hosts in a /27 (30 usable) wastes 5. Free blocks are space not given to any subnet yet.