{{ summaryTitle }}
{{ summaryValue }}

{{ summaryLine }}

Requested{{ resultsReady ? formatInteger(computation.values.requested_hosts) : '—' }} Gap{{ resultsReady ? formatInteger(computation.values.gap_addresses) : '—' }} Free tail{{ resultsReady ? formatInteger(computation.values.remaining_addresses) : '—' }}
{{ summaryAnnouncement }}
IPv4 parent block and allocation requirements
Enter dotted decimal, such as 10.0.0.0 or 192.0.2.35.
Choose /8 through /31. The normalized network appears in the summary.
Allocation requirements:
Enter one positive whole host count per subnet. Reordering immediately recalculates legal CIDR boundaries.
Hosts neededAllocation noteOrderRemove
Off is neutral and keeps descriptive allocation notes in chart tooltips and labels.
{{ compact_chart_labels ? 'Use short labels' : 'Use allocation notes' }}
{{ chartExportStatus }}

The chart renderer is unavailable. The exact ranges remain available in the worksheet.

VLSM packing review
{{ row.title }}{{ row.status }}
{{ row.finding }}
{{ row.action }}
AllocationHostsCIDRUsableRangeStatusCopy
{{ row.note }}{{ formatInteger(row.hosts) }}{{ row.cidr }}{{ formatInteger(row.usable) }}{{ row.range }}{{ row.status }}
{{ worksheetExportStatus }}

Every IPv4 subnet starts on a boundary set by its prefix. A /26 contains 64 consecutive addresses and can begin only at a multiple of 64 within the address space. If a smaller block is placed first, the next larger subnet may have to skip addresses before it reaches a legal boundary.

Variable Length Subnet Masking (VLSM) gives different child subnets different prefix lengths. A request for 60 conventional LAN hosts needs a /26 with 64 total addresses and 62 usable hosts, while a request for 22 needs a /27 with 32 total and 30 usable. The difference between requested hosts and allocated addresses is the cost of binary block sizing plus reserved network and broadcast addresses.

Ordering larger requests first usually reduces alignment gaps because the largest boundaries are satisfied before the address cursor becomes fragmented. Operational order can still matter more than packing efficiency, so a gap is not automatically an error. It is space that should be understood and recorded.

Common IPv4 subnet sizes
PrefixTotal addressesConventional usable hostsBoundary interval
/24256254256 addresses
/25128126128 addresses
/26646264 addresses
/27323032 addresses
/28161416 addresses

A calculated range proves only that the arithmetic fits inside the parent block. It does not check live address use, DHCP pools, routes, firewall objects, DNS records, or an IP address management system. Those records remain the authority before rollout.

How to Use This Tool:

Start with the parent address space, then order host requests in the sequence in which they should consume it.

  1. Enter a Parent IPv4 address and choose a prefix from /8 through /31. Host bits are cleared automatically, so 192.0.2.35 with /24 is planned as 192.0.2.0/24.
  2. Add one allocation row for each child subnet and enter a positive whole Hosts needed value. Notes identify rows but do not affect sizing.
  3. Move rows into the intended order. Put larger requests first when compact packing matters; keep rollout order when stable sequence matters more than unused gaps.
  4. Review Packing review for fit, order, alignment gaps, and the remaining tail. Then verify every IP range against live IPAM, routing, and reservation records.

Interpreting Results:

Utilisation is allocated subnet addresses divided by all addresses in the parent. It includes network and broadcast addresses inside each placed child, but it excludes alignment gaps and the remaining tail.

  • Allocated means the row received a legal aligned CIDR inside the parent.
  • Does not fit marks the first row whose aligned end passes the parent boundary. Later rows show Waiting for earlier row because this ordered model stops placing after that failure.
  • Gap counts addresses skipped before a child boundary. The remaining tail is the contiguous space after the last placed subnet.
  • A Pass result is mathematical only. Confirm that the ranges are unused and that /31 or /32 semantics are supported by the target network.

Technical Details:

IPv4 addresses are treated as unsigned 32-bit integers. The selected parent prefix determines the block size; any host bits in the entered address are cleared to find the parent network. Child requests are evaluated from top to bottom and receive the smallest power-of-two block that meets the usable-host rule.

Formula and Rule Core

A prefix p contains 2 raised to the number of host bits. Conventional subnets through /30 reserve the first and last address, while /31 uses both addresses for a point-to-point link and /32 represents one host address.

A(p)=232p , U(p)= A(p)2for p ≤ 30 2for p = 31 1for p = 32

The host request first becomes a required address count. Requests of one and two are special cases so that /32 and /31 can be selected; larger requests add the conventional network and broadcast pair.

R(h)= 1when h = 1 2when h = 2 h+2when h ≥ 3 , p=32log2(R)

Placement aligns the cursor upward to the chosen child size. If N is the parent network integer, C is the current cursor, and S is the child size, the next relative start is:

start=N+CNS×S

Any addresses between the cursor and that start become an alignment gap. A child fits only when start + size − 1 is less than or equal to the parent broadcast address. Up to 64 requirements are accepted, and each host request must be a whole number from 1 through 16,777,214.

Summary arithmetic

Requested hosts sum the input demands. Allocated addresses sum full child block sizes, allocated usable hosts sum each child's usable capacity, and utilisation is allocated addresses ÷ parent addresses × 100. An out-of-order warning is counted whenever a later row requests more hosts than the row immediately above it.

Worked Example:

A smaller subnet before a larger one

Inside 192.0.2.0/24, requests for 8, 60, and 10 hosts in that order receive 192.0.2.0/28, 192.0.2.64/26, and 192.0.2.128/28. The /26 must begin at .64, so addresses .16 through .63 become a 48-address alignment gap. The placed subnets consume 96 addresses, 112 remain after the last subnet, and utilisation is 37.5%. Reordering the 60-host request first can remove the internal gap if rollout order is flexible.