IPv6Planner - a basic IPv6 subnet planning tool

There are so many ways to create IPv6 Subnet plans. As discussed in IPv6 Buzz 180 , an address plan is one of, if not the first step. Because getting started in the IPv6 subnet planning can be somewhat daunting, I wrote this go application to help bootstrap the process. This open source tool can be used along with the web version of ipv6utils , or the CLI tool .

It’s not the Swiss army knife, but it’s enough to build a starting point. It currently supports:

Example output:

This tool is not intended to provide a comprehensive address plan.
It should be used to generate a top level heirarchy of IPv6 address plans.
IPv6 Address Plan
Base Subnet: 3fff:db8::/32
Number of POPs: 10
Preferred POP subnet size: /40
Subnet levels: /[48 52 56 64]

Global Subnet Counts:
  /48: 65536 available subnets
  /52: 1048576 available subnets
  /56: 16777216 available subnets
  /64: 4294967296 available subnets

POP Allocations:

POP 1: 3fff:db8::/40
  Level 1 (/48): 3fff:db8::/48 (Available: 256)
  Level 2 (/52): 3fff:db8::/52 (Available: 4096)
  Level 3 (/56): 3fff:db8::/56 (Available: 65536)
  Level 4 (/64): 3fff:db8::/64 (Available: 16777216)

POP 2: 3fff:db8:8000::/40
  Level 1 (/48): 3fff:db8:8000::/48 (Available: 256)
  Level 2 (/52): 3fff:db8:8000::/52 (Available: 4096)
  Level 3 (/56): 3fff:db8:8000::/56 (Available: 65536)
  Level 4 (/64): 3fff:db8:8000::/64 (Available: 16777216)

POP 3: 3fff:db8:4000::/40
  Level 1 (/48): 3fff:db8:4000::/48 (Available: 256)
  Level 2 (/52): 3fff:db8:4000::/52 (Available: 4096)
  Level 3 (/56): 3fff:db8:4000::/56 (Available: 65536)
  Level 4 (/64): 3fff:db8:4000::/64 (Available: 16777216)

POP 4: 3fff:db8:c000::/40
  Level 1 (/48): 3fff:db8:c000::/48 (Available: 256)
  Level 2 (/52): 3fff:db8:c000::/52 (Available: 4096)
  Level 3 (/56): 3fff:db8:c000::/56 (Available: 65536)
  Level 4 (/64): 3fff:db8:c000::/64 (Available: 16777216)

POP 5: 3fff:db8:2000::/40
  Level 1 (/48): 3fff:db8:2000::/48 (Available: 256)
  Level 2 (/52): 3fff:db8:2000::/52 (Available: 4096)
  Level 3 (/56): 3fff:db8:2000::/56 (Available: 65536)
  Level 4 (/64): 3fff:db8:2000::/64 (Available: 16777216)

POP 6: 3fff:db8:a000::/40
  Level 1 (/48): 3fff:db8:a000::/48 (Available: 256)
  Level 2 (/52): 3fff:db8:a000::/52 (Available: 4096)
  Level 3 (/56): 3fff:db8:a000::/56 (Available: 65536)
  Level 4 (/64): 3fff:db8:a000::/64 (Available: 16777216)

POP 7: 3fff:db8:6000::/40
  Level 1 (/48): 3fff:db8:6000::/48 (Available: 256)
  Level 2 (/52): 3fff:db8:6000::/52 (Available: 4096)
  Level 3 (/56): 3fff:db8:6000::/56 (Available: 65536)
  Level 4 (/64): 3fff:db8:6000::/64 (Available: 16777216)

POP 8: 3fff:db8:e000::/40
  Level 1 (/48): 3fff:db8:e000::/48 (Available: 256)
  Level 2 (/52): 3fff:db8:e000::/52 (Available: 4096)
  Level 3 (/56): 3fff:db8:e000::/56 (Available: 65536)
  Level 4 (/64): 3fff:db8:e000::/64 (Available: 16777216)

POP 9: 3fff:db8:1000::/40
  Level 1 (/48): 3fff:db8:1000::/48 (Available: 256)
  Level 2 (/52): 3fff:db8:1000::/52 (Available: 4096)
  Level 3 (/56): 3fff:db8:1000::/56 (Available: 65536)
  Level 4 (/64): 3fff:db8:1000::/64 (Available: 16777216)

POP 10: 3fff:db8:9000::/40
  Level 1 (/48): 3fff:db8:9000::/48 (Available: 256)
  Level 2 (/52): 3fff:db8:9000::/52 (Available: 4096)
  Level 3 (/56): 3fff:db8:9000::/56 (Available: 65536)
  Level 4 (/64): 3fff:db8:9000::/64 (Available: 16777216)

Download it here .