IPv6 subnetting - Thinking Outside the BoxWhen I was first getting into IP subnetting, I learned that subnetting was the process of taking an existing network and breaking it up into smaller networks.  When learning subnetting, there were usually 2 questions asked.  I saw these 2 questions in books, worksheets, even interviews.

1) How many hosts do you need in your network?

2) How many networks do you need in your internetwork?


While at Cisco Live, I had the opportunity to attend a very enlightening IPv6 Planning course.  After the course, a fellow attendee wanted to see a real life application of an IPv6 plan.  So, I decided to oblige.  I had been working on an IPv6 plan for my organization and wanted to get some ideas.  In IPv6 you can throw out one of the above questions.  There is so much address space, it’s not about the number of hosts anymore -- it’s all about the number of networks.


In IPv6, there are 128 bits.  The first 64 bits identify the network and the last 64 bits identify the host.  Lets take a look at an IPv6 address.  I have fully extended this address so we can see all of the bits, or shall I say, nibbles.  Each digit represents 4 bits.


fc00:1948:0420:0000:0000:0000:0000:0001

The Network portion is in blue and the host portion is in red.  In IPv6, a /64 is recommended not only for management ease but because stateless auto configuration requires it.  If you want a network smaller than a /64 (yes it is technically possible), you better use DHCPv6. However, keeping /64s is the recommended best practice.


So, if it's not best practice to break up a /64 to get more networks (subnets), what is a network admin to do?  Use the last nibbles of the network portion of the address!


Lets look at our address again. The blue portion is the network. The Purple portion contains the subnet bits, and the red portion is the host portion.


Here is an example of a plan for a large Enterprise office.

fc00:1948:0420:0000:0000:0000:0000:0001         Main Data network

fc00:1948:0420:0001:0000:0000:0000:0001          Voice Network

fc00:1948:0420:0002:0000:0000:0000:0001         Internal Wireless Network

fc00:1948:0420:0003:0000:0000:0000:0001         Video Network

fc00:1948:0420:0004:0000:0000:0000:0001         Management Network

fc00:1948:0420:0005:0000:0000:0000:0001         BYOD Network

fc00:1948:0420:0006:0000:0000:0000:0001         HR Dept. Network

fc00:1948:0420:0007:0000:0000:0000:0001         Accounting Dept. Network

fc00:1948:0420:0008:0000:0000:0000:0001         IT Dept. Network

fc00:1948:0420:0009:0000:0000:0000:0001         Guest Wireless Network

fc00:1948:0420:000a:0000:0000:0000:0001         Spare Network

fc00:1948:0420:000b:0000:0000:0000:0001         Spare Network

fc00:1948:0420:000c:0000:0000:0000:0001         Spare Network

fc00:1948:0420:000d:0000:0000:0000:0001         Spare Network

fc00:1948:0420:000e:0000:0000:0000:0001         Spare Network

fc00:1948:0420:000f:0000:0000:0000:0001          Spare Network


Best practices suggest to subnet at the nibble boundary instead of the bit boundary that we are used to in IPv4.  Because each digit in an IPv6 address is a nibble, you would want to plan accordingly.  If a /64 is our baseline, the next nibble would be a /60, which gives you 16 networks!  Can you subnet outside of the nibble boundary?  Logically thinking, you could say /63 is two /64 networks, /62 is four /64 networks, and /63 is eight /64 networks.  Technologically, you could do it that way, and this kind of thinking is still being debated. But to make it easy on yourself, nibble boundary subnetting is recommended.


Let's look at a comparable plan in IPv4.  In this example I will use a /24 subnet mask as our “default” mask


192.168.0.0                Main Data Network

192.168.1.0                Voice Network

192.168.2.0                Internal Wireless Network

192.168.3.0                Video Network

192.168.4.0                Management Network

192.168.5.0                BYOD Network

192.168.6.0                HR Dept. Network

192.168.7.0                Accounting Dept. Network

192.168.8.0                IT Dept. Network

192.168.9.0                Guest Wireless Network

192.168.10.0              Spare Network

192.168.11.0              Spare Network

192.168.12.0              Spare Network

192.168.13.0              Spare Network

192.168.14.0              Spare Network

192.168.15.0              Spare Network


Do you see the pattern?  The basic concepts of IP subnetting are still the same.  Aggregation still plays a huge role.  The hardest part is dismissing the need to plan for the number of hosts in each network.  After all, worrying about hosts has become a habit that is well over a decade old for me!  Forget about the number of hosts -- you will have more than you’ll ever need.  It's all about the number of networks!


Happy subnetting!

Jared