Posts Tagged 'Slash Notation'

August 27, 2012

IPv4 v. IPv6 - What's the Difference?

About a year ago, Phil Jackson and I recorded a podcast-esque click-through of a presentation that explained the difference between IPv4 and IPv6 address space, and as a testament to the long-tail nature of blog posts, Internet Society's Deploy360 Blog shared the video. With a hint of nostalgia, I clicked "play" on the video.

I laughed. I cried. I found it informative. I noticed a few places where it could have been better.

We recorded the video in response to a tweet from one of our Twitter followers, and the off-the-cuff dialog wound up being somewhere in between "accessible, informative and funny" and "overly detailed, too long and obviously improvised." Because there aren't many people who want to listen to two guys give a 15-minute presentation on IP addresses when they could be watching a Songified review of Five Guys Burgers and Fries or an epic data center tour, I thought I'd dilute the information from the video into a quick blog post that spells out some of the major distinctions between IPv4 and IPv6 so you can scan it, interject your own "witty" banter and have your favorite YouTube viral video playing in the background.

IP Address Overview

An IP address is like a telephone number or a street address. When you connect to the Internet, your device (computer, smartphone, tablet) is assigned an IP address, and any site you visit has an IP address. The IP addressing system we've been using since the birth of the Internet is called IPv4, and the new addressing system is called IPv6. The reason we have to supplement the IPv4 address system (and ultimately eclipse it) with IPv6 is because the Internet is running out of available IPv4 address space, and IPv6 provides is an exponentially larger pool of IP addresses ... Let's look at the numbers:

  • Total IPv4 Space: 4,294,967,296 addresses
  • Total IPv6 Space: 340,282,366,920,938,463,463,374,607,431,768,211,456 addresses

Even saying the IPv6 space is "exponentially larger" doesn't really paint the picture of the difference in size.

IPv4 Addresses

To understand why the IPv4 address space is limited to four billion addresses, we can break down an IPv4 address. An IPv4 address is a 32-bit number made up of four octets (8-bit numbers) in decimal notation, separated by periods. A bit can either be a 1 or a 0 (2 possibilities), so the decimal notation of an octet would have 28 distinct possibilities — 256 of them, to be exact. Because we start numbering at 0, the possible values of one an octet in an IPv4 address go from 0 to 255.

Examples of IPv4 Addresses:,,

If an IPv4 address is made up of four sections with 256 possibilities in each section, to find the total number of possibilities in the entire IPv4 pool, you'd just multiply 256*256*256*256 to get to the 4,294,967,296 number. To look at it another way, you've got 32 bits, so 232 will get you to the same total.

IPv6 Addresses

IPv6 addresses are based on 128 bits. Using the same math as above, we can take 2128 and find the total IPv6 address pool (which I won't copy again here because it takes up too much space). Because the IPv6 pool is so much larger than the IPv4 pool, it'd be much more difficult to define the space in the same decimal notation ... you'd have 232 possibilities in each section.

To allow for that massive IPv6 pool to be used a little more easily, IPv6 addresses are broken down into eight 16-bit sections, separated by colons. Because each section is 16 bits, it can have 216 variations (65,536 distinct possibilities). Using decimal numbers between 0 and 65,535 would still be pretty long-winded, so IPv6 addresses are expressed with hexadecimal notation (16 different characters: 0-9 and a-f).

Example of an IPv6 Addresses: 2607:f0d0:4545:3:200:f8ff:fe21:67cf

That's still a mouthful, but it's a little more manageable than the decimal alternatives.

CIDR Slash (/) Notation

When people talk about blocks of IP addresses, they generally use CIDR Slash (/) Notation where the block might look like this: ... When you glance at that number, you might assume, "Okay, so you have through," but CIDR notation is not showing you the range of addresses, it's telling you the size of the "network" part of the allocation.

IP addresses are made up two parts — the network and the host. The "network" part of the address tells us the number of bits that stay the same at the beginning of the block of IPs, while the "host" part of the address are the bits that define the different possibilities of IP addresses in the block. In CIDR notation, a /24 is telling us that the first 24 bits of the address are defined by the network, so we have 8 bits (32 total bits minus 24 network bits) in the host — 28 is 256 distinct addresses. The IPv4 address block includes to

IPv4 address blocks can be as large as a /8 (given to regional registries like ARIN and APNIC), and they can be as small as a /32 (which is a single IP address).

Why Provision So Many IPv6 Addresses?

When SoftLayer provisions an IPv6 address block on a server, we give a /64 block of IPv6 addresses ... Or 18,446,744,073,709,551,616 IPv6 addresses to each server. That number seems excessive, but the /64 block size is the "smallest" IPv6 allocation block.

Providers like SoftLayer are allocated /32 blocks of IPv6 addresses. The difference between a /32 and a /64 is 32 bits (232) ... Bonus points if you can remember where you've seen that number before. What that means is that SoftLayer is given a block of IP addresses so large that we could provision 4,294,967,296 /64 blocks of IPv6 addresses ... Or put more remarkably: In one /32 block of IPv6 space, there are the same number of /64 blocks of IPv6 addresses as there are TOTAL IPv4 addresses.

So while it's pretty impossible to use a full /64 of IPv6 addresses on a server, it's equally difficult for SoftLayer to burn through its /32 block.

So Now What?

IPv4 space is running out quickly. If your site isn't running a dual-stack IPv6 configuration yet, it's possible that you're going to start missing traffic from users who are only able to access the Internet over IPv6 (which is not backwards compatible with IPv4). If your Internet Service Provider (ISP) doesn't support IPv6 yet, you won't be able to access websites that are broadcast only with IPv6 addresses.

The percentage of instances of each of those cases is relatively small, but it's only going to get larger ... And it only takes one missed customer to make you regret not taking the steps to incorporate IPv6 into your infrastructure.


June 23, 2011

IPv6 - Blocks, Slashes and Big Numbers

IPv4 addresses are 32-bit while IPv6 addresses are 128-bit. Customers can get a /64 allocation of IPv6 addresses provisioned to a single SoftLayer server. A /64 block of IPv6 addresses contains 18,446,744,073,709,551,616 distinct addresses. The entire IPv4 address space is 4,294,967,296 distinct addresses.

It's easy to get lost in a sea of numbers when you start talking about IPv4 and IPv6 address space. With the exhaustion of IPv4 address space and the big push toward IPv6, everyone's talking about address blocks, usage justification and dual stack compatibility, but all of those conversations presuppose a certain understanding of why IP addresses are the way they are. Someone can say, "The IPv6 pool is exponentially larger than the IPv4 pool," but that statement needs a little context when you hear that providers like SoftLayer are provisioning a free /64 IPv6 allocation of 18,446,744,073,709,551,616 addresses to a single server. If the entire IPv4 pool on the Internet is 4,294,967,296 addresses and we're giving away that many IPv6 addresses to a single server, a simple question logically follows:


Are the Internet authorities being irresponsible when they're allowing such huge numbers of IPv6 addresses to be assigned to individual servers without a demonstrated need for that many addresses? Will this "wastefulness" lead to another IP address pool depletion in our lifetime? These questions are completely legitimate, and they're much easier to explain in a visualized format than they are if we answered them line-by-line in text:

The video duration might seem intimidating, especially if you consider that all 15 minutes are spent talking about IP addresses (Woohoo!), but there's a lot of information, and we did our best to break it down to simple pieces that logically follow each other to help you get the full picture of the world of IP addresses. We explain what CIDR Slash (/) Notation (where you see IP address blocks written as ""), and we offer a simple trick to calculate the number of distinct addresses available in a given IPv4 block. There's a fair amount of witty (and not-witty) banter and at least one use of the word "ridonkulous," so if you enjoyed the DC Construction video commentary, you'll get a kick out of this one too.

Toward the end of the video, we speak directly to why SoftLayer is able to give a /64 of IPv6 addresses to every server and what that means for the future of the IPv6 space.

Fun Fact: SoftLayer IP Address Space*

  • IPv4: 872,448 Addresses
  • IPv6 (/32): 79,228,162,514,264,337,593,543,950,336 Addresses

*Does not include IP space assigned to The Planet

Did the video help you wrap your mind around the differences between IPv4 and IPv6? Do you have any more questions about the differences between the two or how SoftLayer is approaching them?


Subscribe to slash-notation