Now that we understand the reasons to do this, we can jump into the display issues and how to really understand the difference. I believe the operational benefits are worth the tradeoff of the address space use, assuming you obtained the appropriate sized prefix for your organization. It helps to do this method to reduce a bit of confusion even though we are “wasting” some IPv6 prefix address space. This may seem confusing at first, but once you get used to what is being done, you quickly realize when looking at a routing table what is an address verse what is a prefix. It also means that we should not see any “all-zero” prefixes because the first usable /52 prefix would actually be:Įqually, the same would apply to the /64 and the first useable prefix would be: It is a natural byproduct of how your address plan was done. If you see 2001:db8:a1d5:: even without the /48 or other prefix length values you know it will be a prefix and NOT an address. This simplifies greatly the routing table entries and the operator understanding of what is being displayed. This means that we will never have an “all-zeros” address in that prefix. The first usable allocation from that address range is :1000::/52. Notice from the above /48 allocation the all zeros section is reserved. Here is a sample diagram going over that specific point (that is borrowed from Tom’s book): The benefits are specifically related to representing prefixes and knowing that you will NOT have a host with an address in the all zeros section of an IPv6 network prefix. While not as aggressive of a method as bisection and sparse allocation, it does allow for some nice side benefits. Tom lists out an address plan that reserves the first and last prefix in a given prefix range and holds it in reserve. I am borrowing the content from that part of the book to highlight how the method used can make your life a bit easier. Tom Coffeen’s book IPv6 Address Planning from O’Reilly Media provides some great tips on IPv6 allocation and some useful spreadsheets that demonstrate how to make it a bit clearer if an IPv6 address is representing a prefix verses a specific address. The reason this is important is that when you are trying to debug or troubleshoot a networking issues or trying to provide information to colleagues being able to identify a networking prefix verses an address quickly proves to be very helpful. There are some tricks for operators around being able to look at an IPv6 address and know if it represents a network (think of a prefix as an IPv4 subnet) or an actual IPv6 address. In my last article I went over the aspects of the IPv6 address format and some common issues with displaying, matching and searching through IPv6 addresses that are represented in different formats.