Note: This article describes how to create an addressing plan when applying for an IPv6 address allocation or assignment directly from the RIPE NCC, not for an End User who has received an IPv6 assignment from an Internet Service Provider.
We've mentioned it before: IPv6 addresses come in massive quantities, both when allocated to network operators as well as when assigned to End Users. Those massive allocations and assignments can be quite overwhelming. Creating a structured IPv6 addressing plan is a vital step in any IPv6 deployment strategy. Whether you are a small operator with only a few thousand customers or a very big telecoms operator serving millions of users across multiple countries, a structured addressing plan will help you maintain oversight and let you properly estimate how much address space you need to request from the RIPE NCC.
There are rules about how many IPv6 addresses you can request from the RIPE NCC or how many addresses your ISP is allowed to assign to you. These rules are written down in so-called RIPE Documents, and there is one that describes IPv6 Address Allocation and Assignment Policy. This document makes a distinction between “allocations”, which are larger blocks delegated by the RIPE NCC to operators, and “assignments”, which is address space distributed to End Users either via their ISP or directly by the RIPE NCC as Provider Independent (PI) address assignments.
Central to this policy is the End User, who can receive up to a /48 of address space per end site. The actual size of the allocation or PI assignment will be based on the expected number of end sites or users, but there are minimum allocation sizes to ease administrative overhead and prevent too much fragmentation. Under these rules, any RIPE NCC member will receive a minimum allocation of a /32, while PI users will get a minimum assignment of a /48 of address space.
The key to building a structured addressing plan is to start at the very bottom and decide on how many addresses – or, in the case of IPv6, how many subnets – you are going to assign to each customer or site. The number of actual computers becomes irrelevant with IPv6; instead, you need to estimate how many subnets you will need at each end site. The IPv6 policy states that an end site can be assigned anything between a /64 and a /48 (i.e. anything between one and 65,536 subnets).
At this stage we recommend that a simple approach is best. Choose one or two assignment sizes to work with, regardless of the actual size of the customer's network. This is a big difference from IPv4, where the number of actual computers dictates the amount of IP addresses you need to assign.
A lot of operators use two different sizes: one for residential users and one for their business products. Maybe you need or want to introduce a third one, which of course can be done, but we recommend not creating too many groups and keeping a fixed assignment size per product or product range. There are no constraints in the policy that require you to differ between individual customers, and adopting a one-size-fits-all strategy will greatly simplify your address management.
How many subnets a customer needs is a question that appears to be very difficult to answer at first. The important thing is to not be too restrictive – after all, there are so many IPv6 addresses that we are unlikely to ever run out!
While most residential users today only use one subnet, we recommend assigning a far bigger block. Often this one subnet is a result of the fact that there is only one IPv4 address available. With that restriction lifted, it could be beneficial to split a home network into multiple subnets, especially with appliances such as televisions and refrigerators coming online and home automation taking off.
So if one subnet is not enough, how much do you need? The answer is “many” and we advise making assignments on 4-bit boundaries. That means the next step after a single subnet would be a /60 assignment, which would give the users 16 (4 bits) possible subnets.
While a /60 for a lot of residential users would be more than enough address space for the foreseeable future, you could argue that a customer might want to further subdivide his address space. As he does so, why not offer the same opportunity to use 4-bit boundaries in the addressing plan?
Extending a customer assignment to a /56 would allow for 256 subnets, but more importantly, it could be used to create 16 groups of 16 subnets. For instance, one of these blocks could be assigned to a dedicated router that connects home appliances together and to the Internet. Or maybe company security policies require the home office to be separated from any private computers. The illustration below shows how a /56 would allow a hierarchical structure in your addressing plan.
In practice, a lot of operators choose to assign a /56 to residential users and a /48 to business customers. This practice falls within the limits allowed by the IPv6 Address Policy.
Now that you've decided how much address space each customer will get, it's time to take a step back and look at your network structure. Maybe all customers connect to a single point in your network, or maybe they are connected in different cities or via different wholesale providers. Similarly, you might want to distinguish between customers hosted in a data centre and your broadband access customers. Try to identify “natural” areas in your network, which come either from different products or product ranges, or from physical infrastructure.
With the two key decisions made, we can now start calculating the actual size of the IPv6 address block you will need. Take a look at the number of customers you have, or expect to have, in each of the areas we discussed above, and take the biggest area.
Round that number up to the nearest “bit boundary”. Maybe your biggest area has 1,000 customers, in which case you'll end up with 1,024 (10 bits); maybe your biggest area has 100,000 customers, in which case you'll end up with 131,072 (17 bits). Now go back to the number of subnets you decided each customer in this area would get. Let's assume you choose to assign each one a /56. In that case, the amount of addresses needed for this area would be 17+72 (8+64) bits, which would yield a subnet size of /39.
The final step would be to multiply this figure by the number of areas you have defined. For instance, if you have 14 areas, you would need another 4 bits (16 areas) to fit it all in.
Combining the above means that an allocation of /35 would be sufficient to assign each customer in your network a /56 subnet. This is still less than the minimum allocation size of a /32.
You can of course repeat this for other products and assignment sizes, and in the end tally it all up like we did above to find the final number.
The rounding we did in the example above already allows for quite a bit of growth; in the largest area, there are enough addresses for another 30,000 customers and you can even add two of those areas before exceeding the calculated /35. The minimum allocation of a /32 would add another 3 bits –in human terms, that means you could grow eight times as big before you would need to request additional IPv6 addresses!
But maybe you have bigger plans and want to ensure room to grow. In that case, why not add an additional bit and go for a /38? This is very easy, because when your total address request does not exceed a /29, the policy allows for the allocation to be made without any extra documentation.
When talking about address structures and discussing assignment sizes above, we pointed out that it is easier to stick to 4-bit boundaries. This is because these 4 bits nicely align with the hexadecimal digits that are used in IPv6 addresses, and so greatly reduces the risk for mistakes.
We recommend doing the same in the rest of your addressing plan, especially for all subnets smaller than a /32. In the example above, that would mean you would get a /32 instead of a /35. Or alternatively, you could take two adjacent /36 ranges, which together make a /35. Which one is better all depends on the overall addressing plan, and especially the size of your other areas. If you have multiple areas that each are close to the size of the largest one, it might be better to allow for 16 areas of a /32. However, as the total in this case would exceed a /29, this would require you to supply documentation to the RIPE NCC to justify this larger request.
Perhaps in your case, and especially when there are a number of smaller areas, using /36 as the basic unit would lead to far less overhead. Maybe a number of areas only need a /40, which allows for 65,536 assignments of a /56, and you can divide one of the /36 ranges one step further. This makes for a much more compact addressing plan and smaller allocations.
The examples above are quite generous in the number of addresses used, and highlight the importance of easier administration and notation over the use of a smaller allocation. That is the big difference between IPv4 and IPv6; where traditionally such a liberal approach was discouraged, this is allowed by the IPv6 Address Policy. Leaving room for the future and making sure that there is no need for renumbering to accommodate further growth lies at the very heart of IPv6 policies.
Of course, as the section above shows, this does not mean that you can't choose a more conservative approach, but this should never be the leading argument. Especially when making the decision about how many subnets to assign to an individual customer, the total allocation size should not be a constraint. You can assign up to a /48 per end site, and if this means you need a bigger allocation, you can simply request one. And if that would exceed a /29, the RIPE NCC IP Resource Analysts are happy to help and inform you about the documentation needed to justify a larger allocation request.
Even when your network is a lot smaller than in the examples above, as some members' are, you would still receive the minimum /32 allocation. In such cases we still recommend you use the method described above and take a structured approach. Maybe you only need a /36, but why not take one subnet and put aside the remaining 15 blocks for future use? You never know when you might need them and when you do, you can tap into large amounts of additional address space without the need to renumber your existing infrastructure.
In the next article, we will go into more detail about how to create an addressing plan when receiving an IPv6 address assignment from your provider as an End User, or when making assignments to your own infrastructure.