{{ summaryTitle }}
{{ summaryValue }}
{{ summaryLine }}
{{ badge.label }} {{ badge.value }}

{{ summaryAnnouncement }}

Visual IPv4 subnet planning inputs
Enter one dotted address; the normalized parent network appears in the summary.
/{{ params.prefix }}
Choose /0 through /32. Changing the parent resets the plan; /31 and /32 use special endpoint semantics.

Visual subnet split and join table

Subnet data. Matching split and join controls stay in the panel on the right.
SubnetAddress rangeUsable rangeHostsNotes
{{ row.leaf.cidr }} {{ row.leaf.network }}– {{ row.leaf.broadcast }} {{ row.leaf.first_usable }}– {{ row.leaf.last_usable }} {{ row.leaf.usable_hosts }}
Subnet sizes
Subnet size controls aligned with the data rows. Each prefix size has a consistent color.

Correct the parent inputs or reset the plan to restore the subnet table.

Leaf split controls
Use these controls as an alternative to the subnet-size panel.
{{ selectedLeaf ? selectedLeaf.cidr : 'No leaf selected' }}
{{ selectedActionHint }}
{{ workflowFeedback }}
Leave off for a compact operational handoff; enable for bit-level review.
{{ params.show_binary ? 'Enabled' : 'Disabled' }}
{{ exportAnnouncement }}
FieldValueOperational meaningCopy
{{ row.label }}{{ row.value }}{{ row.detail }}
{{ exportAnnouncement }}
CheckStatusDetailCopy
{{ row.label }}{{ row.status }}{{ row.detail }}
{{ exportAnnouncement }}
{{ exportAnnouncement }}
#Leaf CIDRFirst usableLast usableBroadcastAddressesUsableNetwork bitsBroadcast bitsNoteCopy
{{ leaf.id }}{{ leaf.cidr }}{{ leaf.first_usable }}{{ leaf.last_usable }}{{ leaf.broadcast }}{{ count(leaf.total_addresses) }}{{ count(leaf.usable_hosts) }}{{ binary(leaf.network_int) }}{{ binary(leaf.broadcast_int) }}{{ noteMap[leaf.key] || '' }}

Dividing one IPv4 allocation is a boundary problem before it is a labeling problem. Every child subnet must start on an address aligned to its prefix, stay inside the parent block, and leave no gap or overlap when the plan is meant to cover the parent completely.

One split takes a selected block, adds one network bit, and creates two equal children. Splitting a /24 produces two /25 blocks; splitting only the second child again produces one /25 followed by two /26 blocks. Repeating this process creates variable-length subnet masks (VLSM) while preserving a contiguous left-to-right allocation.

Example recursive split of one IPv4 parent
Leaf orderCIDRShare of parentAddresses
110.0.0.0/2550%128
210.0.0.128/2625%64
310.0.0.192/2712.5%32
410.0.0.224/2712.5%32

The address shares always sum to 100% when the leaf plan completely covers the parent. Usable-host totals need more interpretation. Each ordinary child reserves its own network and broadcast boundary, so repeated splitting can reduce the sum of ordinarily usable host addresses even though no address disappears.

At the narrowest prefixes, the host rules change. A /31 uses both addresses as point-to-point endpoints under RFC 3021, and a /32 represents one host-route address. These exceptions can make the leaf usable total change differently from ordinary subnet arithmetic.

A mathematically complete plan is not proof that the CIDRs are unassigned or deployable. Confirm intended host demand, gateways, redundancy, DHCP reservations, routing policy, firewall scope, and IPAM ownership before using the leaves in a live network.

How to Use This Tool:

Choose the parent allocation first; changing its address or prefix resets the current split plan.

  1. Enter the Parent IPv4 address and select a prefix from /0 through /32. Host bits are masked to produce the normalized parent network.
  2. Select a leaf in Leaf split controls. Choose Split selected to replace it with two equal children, or Join sibling when an aligned sibling of the same size is present.
  3. Use the allocation rail and address-space map to compare relative sizes, then inspect Planning review for alignment, complete coverage, deepest prefix, and special-prefix counts.
  4. Check the exact CIDR, usable range, broadcast boundary, and address count in Leaf plan. Enable Binary boundaries only when a 32-bit audit view helps the handoff.

Interpreting Results:

The normalized parent CIDR is the fixed outer boundary. If Input alignment says Normalized, the entered address had host bits and was moved down to the network start before any leaves were built.

Parent coverage should remain Complete. The leaf address total must equal the parent address total, and every leaf must be contiguous with the next. The visual map helps compare proportions, but the exact leaf rows are the values to carry into routing, DHCP, firewall, or IPAM work.

A change in Leaf usable is not an overlap or loss of address space. It reflects the boundary reservations of the current leaves and the special semantics of /31 and /32. Review host demand separately because this workflow does not assign requested host counts automatically.

Technical Details:

The parent address and every leaf are represented as unsigned 32-bit integers. Applying the parent prefix clears host bits, which establishes the only address interval the split plan may cover.

Formula Core:

For parent prefix p, the block contains 232−p addresses. A split creates children at prefix p + 1 with half the parent's size.

ParentSize=232−p ChildPrefix=p+1 ChildSize=ParentSize2 LeafShare=LeafSizeParentSize×100

For ordinary prefixes through /30, usable hosts equal total addresses minus two. A /31 reports two point-to-point endpoints and a /32 reports one host-route address.

Usable(p)= { 232−p−2for p ≤ 30 2for p = 31 1for p = 32

Mechanism Core:

The plan is an ordered, complete list of leaf prefixes. It is expanded from left to right against the remaining parent space, which makes alignment and coverage deterministic.

  1. Start with one queue entry containing the normalized parent network, parent prefix, and full parent size.
  2. For each requested leaf prefix, take the next queued block and split its left child repeatedly until the requested prefix is reached. Return each right sibling to the queue.
  3. Accept the plan only when every requested leaf fits and no queued address space remains.
Visual subnet split and join rules
ActionRequirementResult
Split selectedSelected leaf is shorter than /32 and the plan has fewer than 256 leavesTwo adjacent children, each one prefix bit longer
Join siblingAn aligned adjacent sibling has the same prefixOne parent leaf, one prefix bit shorter
Reset planAt least one custom split existsOne leaf equal to the normalized parent

A supplied split state is rejected when its prefix list is malformed, contains more than 256 leaves, uses a prefix shorter than the parent or longer than /32, extends beyond the parent, or fails to cover the parent completely. Binary display changes only the leaf table presentation.

Limits and Privacy Notes:

  • The planner does not query routers, firewalls, DHCP servers, cloud networks, or IPAM systems.
  • It does not allocate leaves from host-demand requests or reserve gateway and appliance addresses automatically.
  • A valid plan proves complete mathematical coverage only; ownership, policy, reachability, and conflicts still require external checks.
  • The parent address and split choices are processed in the browser and do not trigger a network probe.

Worked Example:

Building unequal leaves from one /24

Entering 10.0.0.1 with parent prefix /24 first normalizes the parent to 10.0.0.0/24. Splitting the first leaf once, the second leaf once, and its final child once can produce 10.0.0.0/25, 10.0.0.128/26, 10.0.0.192/27, and 10.0.0.224/27. Their 128, 64, 32, and 32 addresses cover all 256 parent addresses, while ordinary boundary reservations leave 248 usable hosts across the four leaves.