Yesterday, my wife asked me about IPv6. “What are the benefits?” and “How is it different from IPv4?” Rather then send her to LMGTFY, like the snarky person I am, I decided to give her the run down on IPv6. Thus I was inspired to share my thoughts about IPv6 here, with you. This week, I will discuss how the need for a new version of Internet Protocol came about.
Let’s dive right in by defining the IPv4 address exhaustion problem. Consider the following:
You are making an address system to help in sending letters. At the time you make your system, there are about 10 houses in your city. As such, you very simply label the houses A, B, C, D, etc. You have used 10 letters of the 26 letter alphabet. This works fine, but eventually, people hear about the amazing landscape in your “town” and start moving in. Within a year, you get five new neighbors. Then five more next year. You can tell, that in two more years, you are going to run out of addresses for the houses in your neighborhood! What do you do?
This is what happened with IPv4. Internet Protocol version 4 uses 32-bit addresses. This means that there are 232 possible addresses. For those of you who didn’t just whip out your calculators, that is 4,294,967,296 addresses. That may seem like a large number, but remember – every interface needs an IP address. That means if a company has 1200 employees, each with a laptop, that is 1200 addresses, plus all of the infrastructure needed. If they are divided into five subnets, the router uses five more addresses.
Additionally, when allocating IP addresses, regulatory bodies were doing so in blocks. If a company wanted 64,000 addresses, they were given 65,536 (leaving 1,536 addresses claimed and unused). This happened because of the use of Classful Networking. With a classful network, a company was allocated a block of addresses, instead of just the few they needed. If a company only needed only three addresses, they would still receive a class C block of space (256 addresses).
Exhausting the IPv4 address space didn’t sneak up, though. It was predicted well in advance and some mitigation efforts were put into effect. For starters, regulatory bodies did away with classful networking, instead utilizing Classless Inter-Domain Routing. This meant, instead of reserving an entire /24 block (256 addresses), they divided classes into into smaller parts, using /27 (32 addresses) or /26 (64 addresses) for IP address allocation. This allowed more organizations to utilize the same space.
The most impactful mitigation technique (the one that has caused IPv4 to hold on to this day) is Network Address Translation, or more specifically, Port Address Translation. Back to our scenario:
Realizing that you are about to run out of addresses, you reallocate addresses to streets instead of houses. Now, instead of sending my letter to house A, I send it to street A. Each street gets its own mailman that can recognize the name on an envelope and deliver it to the proper house.
This scenario describes how PAT came into effect. Now our big company of 1200 employees uses only one public IP address for their router. Internally, devices are given addresses from one of the three private address spaces. When an internal device has external traffic, the router translates the internal address to the external address by assigning it to a certain port. Picture below:
PAT helped out significantly with the address exhaustion problem. Now, small companies that would be using 32 public IP addresses only need one!
Even though PAT was extremely effective at reducing the utilization of the IPv4 address space, the world still ran out of addresses on February 3rd, 2011. Thus, the need for IPv6 was born. On my next blog, I will go over the differences between IPv6 and IPv4, besides the huge jump in address space.
See you next time!