Hexadeci-what? Last month our IPv6 Study Hall series brought you a study guide on how IPv6 addresses are distributed. This month, we’re talking hexadecimal notation. With increased IPv6 usage, you have probably seen IPv6 addresses, but you might not understand how to parse what you are seeing. If you say “huh?” when you see this: 260F:03BA::/32, stay tuned for a quick intro to IPv6: hexadecimal notation and the structure of an IPv6 address.
First things first, let’s talk hexadecimals. IPv6 addresses are expressed as a series of eight 4-character hexadecimal numbers, which represent 16 bits each (which equals 128 bits total).
Here’s an example of a full IPv6 address:
Let’s break it down:
2604: identifies ARIN’s block
8000: identifies the ISP’s /32 block
0FC0: identifies a specific site
CF00: identifies a specific subnet at that site
1234:5678:9ABC:DEF0 identifies a specific device on that subnet
Comparing IPv6 to IPv4
An IPv4 /8 is composed of 65,536 /24s, each of which can hold 256 devices (assuming one IP address per device), and parallel that to an IPv6 /32, which is composed of 65,536 /48s, each of which has 65,536 /64 subnets, each of which has a near-infinite number of IP addresses. So, a fair comparison is to say that with an IPv4 /8, if you assign a /24 per site, you can number 65,536 sites, each of which gets 256 IP addresses. With an IPv6 /32, you can support the same number of sites (65,536), but each has 65,536 subnets instead of 256 IP addresses. So, in IPv6, every ISP gets something that’s effectively larger than the class A subnets, of which there are only a few in all of IPv4 (referring to classful networks), that were given out way back when. This illustrates how massive the scale is of IPv6 in comparison to that of IPv4.
IPv6 host addressing
The least significant 64 bits (the 64 bits on the right) are basically for host auto configuration, so the device takes its MAC address, does some magic, and assigns itself its own last half of its IPv6 address.
Common block sizes for IPv6 addresses:
IPv6 addresses are distributed in blocks, just like IPv4. Here is a breakdown of the most common allocation sizes.
/12 issued by IANA to ARIN
/32 issued by ARIN to an ISP (can also get a /28, /24, etc.)
Each RIR /12 has 1,048,576 /32s to assign to ISPs.
/48 assigned by an ISP to a customer site (end users may also request directly from ARIN)
Each ISP’s /32 has 65,536 /48s to assign to customer sites.
/64 to a subnet at the customer’s site
Each customer’s /48 has 65,536 /64 subnets.
Each /64 subnet contains more than 18 quintillion IPv6 addresses.
Thanks for joining us for this month’s IPv6 Study Hall, be sure to stop by for our next unit when we cover how ISPs can prepare for IPv6.