ping6.net
Fundamentals

IPv6 Subnetting: From /48 to /64

Plan your IPv6 network with proper subnetting. Learn about /64 boundaries, how to divide /48 and /56 allocations, and practical examples.

ping6.netFebruary 1, 20248 min read
IPv6subnettingCIDRnetwork planningprefix

IPv6 Subnetting Philosophy#

IPv6 subnetting flips the IPv4 mindset. Instead of carefully rationing scarce address space, you're dividing abundance. A single /48 allocation gives you 65,536 /64 subnets—more than most organizations will ever use.

TL;DR - Quick Summary

Key Points:

  • Always use /64 for end-host networks (required for SLAAC and Neighbor Discovery)
  • ISP allocations: /48 for enterprise (65,536 subnets), /56 for small business (256 subnets), /64 for minimal
  • Point-to-point links can use /127 or /126 to conserve addresses
  • Stop conserving addresses—IPv6 abundance is a feature, organize it logically instead

Skip to: Common ISP Allocations | Subnetting a /48 | Special Cases

The design goal is simple: make subnetting straightforward and consistent. Use /64 for everything that connects end hosts. Stop worrying about address conservation.

The /64 Boundary: Just Use It#

The /64 prefix length is special in IPv6. Not because it's aesthetically pleasing or traditional, but because fundamental IPv6 protocols require it:

SLAAC (Stateless Address Autoconfiguration) generates the 64-bit Interface ID from the device's MAC address or a random value. It needs exactly 64 bits to work. Give it less, and autoconfiguration breaks.

Neighbor Discovery optimization assumes /64 subnets. Using smaller prefixes creates performance issues that aren't worth the "saved" addresses.

Modified EUI-64 interface identifiers require 64 bits. Privacy extensions require 64 bits. Everything in the IPv6 ecosystem expects 64 bits.

Don't Subnet Below /64

Using /96 or /112 for end-user networks breaks SLAAC and causes compatibility issues. The only exceptions are point-to-point router links (/127 or /126) and loopback interfaces (/128).

The practical advice: use /64 for every network segment with hosts. Done.


CIDR Notation#

IPv6 uses CIDR notation to express network prefixes:

2001:db8:abcd:1234::/64
│                  │
│                  └─ Prefix length
└──────────────────── Network prefix (first 64 bits)

The number after the slash indicates how many bits identify the network. The remaining bits identify individual interfaces.

For 2001:db8:abcd:1234::/64:

  • Network prefix: first 64 bits (2001:db8:abcd:1234)
  • Interface ID: last 64 bits (anything from :: to ffff:ffff:ffff:ffff)

Common ISP Allocations#

Most IPv6 connectivity comes with one of these prefix sizes:

/48 - Enterprise and Large Customer#

You get 16 bits for subnetting (bits 49-64), creating up to 65,536 /64 networks.

2001:db8:abcd:0000::/64  ─┐
2001:db8:abcd:0001::/64   │
2001:db8:abcd:0002::/64   ├─ All from the same /48
...                       │
2001:db8:abcd:ffff::/64  ─┘

This is the standard allocation for businesses. It supports complex networks with hundreds of locations and VLANs.

/56 - Small Business and Residential#

You get 8 bits for subnetting, creating up to 256 /64 networks.

2001:db8:abcd:ab00::/64  ─┐
2001:db8:abcd:ab01::/64   │
...                       ├─ 256 /64 subnets available
2001:db8:abcd:abff::/64  ─┘

Plenty for home networks with multiple VLANs (main network, guest WiFi, IoT devices, etc.).

/64 - Minimal Residential#

A single subnet. Works fine if you don't need network segmentation. Most home users won't need more.

Many ISPs default to /64 but will assign /56 on request. Always ask for at least a /56.


Subnetting a /48#

When you receive a /48, you control bits 49-64 for subnet identification. That's 16 bits = 65,536 subnets.

Practical Example: Office Network#

Allocation: 2001:db8:abcd::/48
 
Subnet Plan:
├─ 0000-000f  Infrastructure
│  ├─ 2001:db8:abcd:0001::/64  Management/Out-of-band
│  ├─ 2001:db8:abcd:0002::/64  Switches and APs
│  └─ 2001:db8:abcd:0003::/64  Monitoring and logs

├─ 0010-00ff  Servers
│  ├─ 2001:db8:abcd:0010::/64  Web/app servers
│  ├─ 2001:db8:abcd:0011::/64  Database servers
│  └─ 2001:db8:abcd:0012::/64  Storage

├─ 0100-01ff  User networks
│  ├─ 2001:db8:abcd:0100::/64  Floor 1 workstations
│  ├─ 2001:db8:abcd:0101::/64  Floor 2 workstations
│  └─ 2001:db8:abcd:0102::/64  Floor 3 workstations

├─ 0200-02ff  Guest and public
│  ├─ 2001:db8:abcd:0200::/64  Guest WiFi
│  └─ 2001:db8:abcd:0201::/64  Public WiFi

└─ f000-ffff  Reserved for future use

Notice the hexadecimal ranges create logical groupings. The scheme is readable and leaves room for growth.

Hierarchical Subnetting#

Multi-site organizations can allocate larger blocks to each location:

2001:db8:abcd::/48

├─ 2001:db8:abcd:0000::/52  HQ (4,096 /64 subnets)
│  └─ 2001:db8:abcd:0000::/64 through 2001:db8:abcd:0fff::/64

├─ 2001:db8:abcd:1000::/52  Branch A (4,096 subnets)
│  └─ 2001:db8:abcd:1000::/64 through 2001:db8:abcd:1fff::/64

├─ 2001:db8:abcd:2000::/52  Branch B (4,096 subnets)

└─ 2001:db8:abcd:3000::/52  Branch C (4,096 subnets)

Each branch manages its own /52 independently. HQ can delegate without coordination overhead.

You can subnet further:

Branch A: 2001:db8:abcd:1000::/52

├─ 2001:db8:abcd:1000::/56  Building 1 (256 subnets)
├─ 2001:db8:abcd:1100::/56  Building 2 (256 subnets)
└─ 2001:db8:abcd:1200::/56  Building 3 (256 subnets)

The hierarchy can go as deep as you need, down to the /64 boundary.


Subnetting a /56#

With a /56, you have 8 bits (bits 57-64) for subnetting. That's 256 /64 networks.

Home Network Example#

Allocation: 2001:db8:abcd:ab00::/56
 
Subnet Plan:
├─ 2001:db8:abcd:ab00::/64  Main LAN
├─ 2001:db8:abcd:ab01::/64  Home office
├─ 2001:db8:abcd:ab02::/64  Guest WiFi
├─ 2001:db8:abcd:ab03::/64  IoT devices (cameras, sensors)
├─ 2001:db8:abcd:ab04::/64  Smart home (speakers, lights)
├─ 2001:db8:abcd:ab05::/64  Lab/test network
└─ 2001:db8:abcd:ab06-abff  Available (250 subnets unused)

Even a power user won't exhaust 256 subnets. This allocation is generous.

The eighth bit in the fourth hextet changes:

  • ab00 = binary ...0000 0000 (subnet 0)
  • ab01 = binary ...0000 0001 (subnet 1)
  • ab02 = binary ...0000 0010 (subnet 2)
  • abff = binary ...1111 1111 (subnet 255)

Special Cases#

Router-to-router links don't need 18 quintillion addresses. Two options:

/127 - RFC 6164 standard for point-to-point links. Provides exactly 2 addresses, analogous to IPv4's /31:

2001:db8:abcd:1::/127
├─ 2001:db8:abcd:1::0   Router A
└─ 2001:db8:abcd:1::1   Router B

/126 - Provides 4 addresses, like IPv4's /30:

2001:db8:abcd:1::/126
├─ 2001:db8:abcd:1::0   Network address (can use)
├─ 2001:db8:abcd:1::1   Router A
├─ 2001:db8:abcd:1::2   Router B
└─ 2001:db8:abcd:1::3   (available)

Both work. /127 is more efficient. Some older equipment only supports /126.

Alternatively, just use /64 on point-to-point links. It wastes nothing that matters and simplifies your addressing plan.

Loopback Addresses#

Router loopback interfaces use /128 (a single address):

2001:db8:abcd::1/128

These are used for router IDs, management access, and protocol endpoints.


Documentation Practices#

Document your subnet plan before assigning addresses. A simple table works:

| Prefix                    | VLAN | Purpose              | Gateway    |
|---------------------------|------|----------------------|------------|
| 2001:db8:abcd:1::/64      | 10   | Management           | ::1        |
| 2001:db8:abcd:2::/64      | 20   | Servers              | ::1        |
| 2001:db8:abcd:10::/64     | 100  | Floor 1 users        | ::1        |
| 2001:db8:abcd:11::/64     | 101  | Floor 2 users        | ::1        |
| 2001:db8:abcd:100::/64    | 200  | Guest WiFi           | ::1        |
| 2001:db8:abcd:200::/64    | 300  | IoT devices          | ::1        |

Include:

  • Prefix: The full /64 network
  • VLAN ID: If applicable (helps correlate layer 2 and layer 3)
  • Purpose: What connects to this network
  • Gateway: Usually ::1, the first address
  • Notes: Firewall zones, contact info, whatever helps operations

Track this in your network documentation system, not a forgotten spreadsheet. Future you will be grateful.


Calculating Subnet Information#

Number of /64 Subnets Available#

Formula: 2^(64 - prefix_length)
 
/48: 2^(64-48) = 2^16 = 65,536 subnets
/52: 2^(64-52) = 2^12 = 4,096 subnets
/56: 2^(64-56) = 2^8  = 256 subnets
/60: 2^(64-60) = 2^4  = 16 subnets

Subnet Range#

For a given /64 subnet, the range is straightforward:

Prefix: 2001:db8:abcd:1234::/64
 
First address: 2001:db8:abcd:1234::
Last address:  2001:db8:abcd:1234:ffff:ffff:ffff:ffff
 
Usable addresses: All of them (18,446,744,073,709,551,616)

Unlike IPv4, there's no broadcast address to reserve. IPv6 uses multicast for broadcast-like functions.

Finding Subnet Boundaries#

When given a /56 like 2001:db8:abcd:ab00::/56, the subnet boundaries are:

First /64:  2001:db8:abcd:ab00::/64
Last /64:   2001:db8:abcd:abff::/64
 
The range locks bits 1-56:     2001:db8:abcd:ab...
Bits 57-64 can vary:           00 through ff
Bits 65-128 identify interfaces (the /64 portion)

For hierarchical allocation, align on nibble (4-bit) boundaries when possible. It keeps hexadecimal notation clean:

  • /48, /52, /56, /60, /64 align on nibble boundaries
  • /50, /54, /58, /62 don't align and create messy hex ranges

Stick to nibble-aligned prefixes unless you have a specific reason not to.


Summary#

IPv6 subnetting is simpler than IPv4 once you internalize the philosophy:

  1. Use /64 for all host networks. Don't overthink it. The protocol stack expects it.

  2. ISP allocations are generous. /48 for enterprises (65,536 subnets), /56 for small sites (256 subnets), /64 for minimal deployments.

  3. Plan hierarchically. Allocate blocks to locations or functions. Let each site manage its portion independently.

  4. Document your plan. Future troubleshooting depends on knowing what each subnet does.

  5. Stop conserving addresses. IPv6 abundance is a feature. Use it.

The biggest mental shift from IPv4: you're not squeezing every last address out of limited space. You're organizing abundance into a logical structure.

Calculate Your Subnets

Use our Subnet Calculator to plan your IPv6 network allocation and visualize subnet hierarchies.