The Internet Protocol, in my opinion, is the most ingenious numbering system used to date. Version 4 was conceived in 1981 for the purpose of connecting a limited amount of computers together. Back then, only a few in the general public owned computers. Since the Internet was not yet around, very few computers transmitted data outside the home.
Today, just about everyone has a computer. It is very hard to randomly walk inside a house that does not only have a computer, but one that is connected to the Internet. Not only does that household have a computer, but a cell phone or two and a game console on the Internet as well. With each new Internet device invented, a new wave of IP addresses are used so that everyone owning the device can get connected. Every single device, big or small, that uses the Internet needs an IP address.
The growth of Internet devices has been an exponential growth. However, this growth has taken a toll on IP address assigning. As running out of IP addresses grew near, NAT and PAT was used as a temporary band-aid to preserve IP addresses. Thanks to these great protocols, a household can have a dozen Internet devices connect to the household’s LAN and would only need to use one outside IP address, not twelve. This slowed down the inedible, but the inedible is finally here.
On February 3, 2011, the Internet Assigned Numbers Authority (IANA) allocated the last two blocks of IPv4 address space to APNIC, the Regional Internet Registry (RIR) for the Asia Pacific region. What does this mean? The Asia Pacific region will no longer receive blocks of IPv4 addresses. While this does not mean that nobody can get an IPv4 address, this means that the amount of IP addresses handed out are confined within the blocks. The actual date of us running out of IPv4 addresses will probably be sometime next year (in 2012). But, that is up to Internet Service Providers (ISPs) and how conservative they are with their IP address blocks.
Since the depletion of IPv4 addresses are one day inedible, IPv6 came to existence. The good news with IPv6 is that if you have a grasp about IPv4, you should have an idea about IPv6. The bad news about IPv6 is that it is still to this day not well known to most people in IT. Internet Protocol Version 6 (IPv6) is an upgrade to IPv4 by how many addresses are used. IPv4 uses 32 bits as an address. IPv6 uses 128 bits. Using a base of two and the number of bits as an exponent, you can figure how much addresses each version can produce. IPv4 can produce up to 2^32, or 4,294,967,296 addresses. Keep in mind that because of the mechanics of IPv4, you really cannot have 4,294,967,296 devices. As explained in previous posts, each subnet has to have a network address and a broadcast address. There is also a gateway considered as well as the size of the bits borrowed for the subnet. IPv6 can have up to 2^128, or 340,282,366,920,938,463,463,374,607,431,768,211,456 addresses!
IPv6 Addressing
Now that you see IPv6 has a huuuge advantage in addressing space, it also has a feature that many people in the IT field (myself included) hates. IPv4 uses dotted-decimal notation when an IP address is written out. This means decimals. It is the numbering system we humans like to use. IPv6, on the other hand, uses hexadecimal numbers. While IPv4 had four decimal numbers separated by periods (dots), IPv6 consists of 64 hexadecimal numbers grouped into fours separated by semicolons, making eight groups. An example IPv6 address would be: A1B2:0056:0000:0000:00CD:01DB:7943:00AF. That is one huge Number!
One confusing thing about IPv6 is the abbreviation scheme it can use. If there are a lot of zeros in an IPv6 address, it can be abbreviated. There are two rules to it:
- Zeros that begin in each group can be left out. However, at least one number (even if zero) has to be written for each group.
- Double colons can be used to abbreviate a string of groups that are just zeros. However, they can only be used once.
Sounds confusing? Well, it can be. But, I like to explain things in examples. So, let us use the first rule to abbreviate my made up IPv6 address: A1B2:0056:0000:0000:00CD:01DB:7943:00AF. According to the first rule, zeros can be left out if they are in front of a group. So, A1B2 will remain as A1B2. However, 0056 can be written as just 56. But, looking at the next two groups (the two 0000′s,) at least one zero has to be written. So, they can be abbreviated as just 0. Putting it all together you will have A1B2:56:0:0:CD:1DB:7943:AF. Using the second rule, you can use two colons in place of the two groups of zeros. So, the address can be reduced to: A1B2:56::CD:1DB:7943:AF. The double colon method can be used with any amount of groups that only have zeros in them. Say you have an address of: 00FF:0000:0000:0000:0000:0000:0000:00FF. Using both rules, this address can be reduced to FF::FF. Makes sense? Because the first and last groups have zeros to begin with, those can be dropped. A double colon just means that all groups in between are all zeros. So, using this abbreviation, how can the original long-hand version be recreated? It is because IPv6 addresses have eight groups. If one group is listed, followed by double colons and one group is listed after that, you can figure out that there has to be six groups in between them.
Converting to Binary
In a previous post, I explained how to convert an IPv4 address into binary. You have four decimal numbers. Each number represents 8 bits. You would just convert the decimal number into 8 bits. However, IPv6 is hexadecimal. Thankfully, it is actually much easier to convert an IPv6 number into bits. It is simple because each number is four bits. If the first number is 0, it would mean that the first four bits are 0000. If the second number is an F, that would mean 15 in decimal, or four bits that are 1111. To convert the first group in my example A1B2, you would just look at each number individually:
- A = 1010
- 1 = 0001
- B = 1011
- 2 = 0010
So, the final result would be: 1010000110110010. Pretty simple, but long…just use a calculator
. To convert back, you would just group every bit into fours in order to get the hexadecimal number.
World-Wide IPv6 Upgrade
Because of IPv4 addresses are being depleted, the world must now rely on IPv6. On the backbone of the Internet, this is probably going to be a complicated task. However, us at home will probably not see a bleep. IPv6, unfortunately, is not backward compatible with IPv4. A computer running solely IPv6 cannot send data to a computer running solely on IPv4. To make matters worse, most home network equipment has no support for IPv6. This means our routers and our modems (being DSL or cable.) However, this can be bypassed by using IPv4 tunneling.
IPv4 tunneling is used encapsulate data more than once. Thinking about going down the OSI model, when data is at level 3 and packet info is added, it can be passed back up layer 4 and be encapsulated down a second time. But, why do this? Well, one reason is for using VPN. If you want two LANs to act like they are connected together, even though they are separated by the Internet, you would do tunneling. The first round of encapsulation only makes sense to the LAN addressing. The second round of encapsulation makes sense to the Internet. Using the second encapsulation, the information is passed through the Internet, then the second encapsulation is stripped so that the first can be used for the destination LAN.
This idea also benefits the current predicament we are in. If your computer has both IPv4 and IPv6 support, but your network equipment does not, IPv4 tunneling can be used to get around that. When data is passed down to OSI model’s layer 4 then layer 3, it will use IPv6. However, instead of going down to layer 2, the packet will then be passed back to layer 4 and down to layer 3, this time using IPv4. That way, IPv4 surrounds IPv6. Your network equipment will not notice a difference! Then, when the data is passed to the ISP, the ISP can completely strip the IPv4 information and use IPv6 to route the data.
The unfortunate with more steps is, well, there are more steps! This would mean that communication between the source and destination will be slower. So, if you are playing an online game or doing video chat, you will probably notice a difference. However, unlike some claims circulating the Internet, running out of IPv4 addresses is not the end of the world. The Internet will live on.
Hopefully, you now have an understanding about what IPv6 is all about. In a later post, I will discuss in more detail about IPv6 and how it differs from IPv4.
resources
http://en.wikipedia.org/wiki/Internet_Protocol#Version_history http://www.nro.net/news/ipv4-free-pool-depleted http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/sag_ip_v6checklist.mspx?mfr=true
Join the forum discussion on this post


