How to create additional IPv6 subnets from your allocated /48 subnet Print

  • 1

Our IPv6 allocations are routed (Layer 3), not bridged (Layer 2).
A common misconception is that mechanisms such as NDP proxy (e.g., ndppd) are required to subdivide or use your IPv6 allocation. This is not necessary in our environment.
Because your IPv6 block is routed to your server, you can freely subnet and use it immediately without any L2 dependencies.

Subnetting Your /48 Allocation

Given an example allocation:

2c0f:2cc2:123::/48

You can carve out a /64 subnet, for example:

2c0f:2cc2:123:124::/64

Step 1: Enable IPv6 Forwarding

Ensure your server is configured to forward IPv6 traffic:

sysctl -w net.ipv6.conf.all.forwarding=1
 

To make this persistent:

echo "net.ipv6.conf.all.forwarding=1" >> /etc/sysctl.conf
sysctl -p

Step 2: Assign the /64 to an Interface

Option A — Assign to your primary network interface
ip -6 addr add 2c0f:2cc2:123:124::1/64 dev eth0
 
Option B — Assign to a bridge (Docker, KVM, etc.)

If you are using containers or virtual machines, assign the subnet to your bridge interface:

ip -6 addr add 2c0f:2cc2:123:124::1/64 dev br0

Step 3: Use the Subnet in Your Applications

Within your application environment (e.g., Docker, virtual machines):

  • Assign IPv6 addresses from your /64 to containers or VMs.
  • Configure the gateway as:
 
2c0f:2cc2:123:124::1

Important Notes

  • Do not use NDP proxy (ndppd). It is not required for routed IPv6 allocations.
  • Your /48 is fully routable and designed for direct subnetting.
  • Each /64 can be assigned to a different service, bridge, or network segment.

Was this answer helpful?

Back