IPv6 Up and Running - Address Planning Basics and using a Tunnel Broker

First things first - let’s cover some IPv6 basics.

What’s Different

Many aspects of IPv6 is actually much easier than most people would expect - since there’s such a large addressing space, entire fields of work with IPv6 go away.

Custom CIDR / Subnetting

Remember how you had to do binary math, and use your crystal ball to guess how many hosts will be on any given subnet? Well, if you use CIDR masks from /29 to /19 for individual subnets, that will be replaced with a /64.

A great deal of functionality breaks if you use a subnet mask longer than /64 for generic devices - such as RA/DHCP. When setting up a network for any host-facing network, you need to remember only four masks:

NAT

You don’t need it, because it’s IPv4 duct tape. Prepare yourself for a simpler life without it.

Private Addressing

IPv6 does take a different approach here - there are TWO “private” allocations:

Instead, IPv6 architecture focuses on the inverse - allocating prefixes you CAN use. Right now the planet (e.g. Earth, not kidding) has the Global (hehehe) allocation of 2::/3. All IPv6 prefixes are allocated out of this block by providers, using large allocations to ensure easy summarization.

DHCP

DHCPv6 is not mandatory, as SLAAC/RA Configuration can provide any client device with the default gateway and DNS servers. For enterprise applications, however, it is recommended to use DHCPv6 so you don’t unintentionally disclose any information encoded into your IP by SLAAC, and so that your ARP tables aren’t murdered by SLAAC privacy extensions. More here.

DNS

DNS actually isn’t all that different anymore, but still deserves mention for a few reasons.

The first reason why I think it deserves mention is because, as an application, its IPv6 journey was extremely well designed.

Second, if you don’t have AAAA resolving, IPv6 won’t do much for you.

IPv6 Address Planning

IPv6 address planning is fundamentally different for the reasons listed above, but I do have some general guidelines that help establish a good starting point:

Here’s how I did it (/48 allocated to me, prefix is masked):

I’m actually not using much else - I’m allocating large because IPv6 Address shortening makes it easier to type (P.S. IPv4 Address shortening works too, but there are fewer opportunities. Try and ping 1.1) and allocating properly would look like:

Hopefully this is helpful - when in doubt, whiteboard it out.

Well that’s nice, but I’d like to actually do something!

Let’s go through the process of selecting a tunnel broker (this assumes you do not have native IPv6 connectivity, because this would already be done):

Step 1: Search and select the best tunnel broker for you. Since I’m in the United States, I selected Hurricane Electric. I am biased by their educational outreach and certification program. I cannot recommend enough taking a crack at their Sage certification.

Step 2: Sign up using the links provided in the cheat sheet. If possible, ask for a /48 for maximum productivity.

Step 3: Establish a tunnel - I have provided a VyOS template here, but a great deal of networking equipment supports SIT tunneling, so it’s not particularly difficult to set up. Keep in mind that there’s no firewall enabled here, I wouldn’t recommend the same approach, but I’m doing that elsewhere.

Step 4: Start experimenting!