Introduction to IPv6


What is IP?

IP stands for Internet Protocol. IP is the base for all of today’s traffic between devices. It forms the foundation of the Internet and anything that connects to it requires IP to communicate. IP can be thought of as a language; everyone needs it and different languages cannot directly communicate without a translator.

“TCP/IP was initially developed in the 1970s as part of an effort to define a set of technologies to operate the fledgling Internet. The name “TCP/IP” came about when the original Transmission Control Program (TCP) was split into the Transmission Control Protocol (TCP) and Internet Protocol (IP). The first modern versions of these two key protocols were documented in 1980 as TCP version 4 and IP version 4.” (http://www.tcpipguide.com/free/t_TCPIPOverviewandHistory.htm)

The version of IP we have been using, Internet Protocol Version 4 (IPv4), was described in RFC 791 in September 1981. This protocol (or language) became one of the most popular protocols for data communication.


IPv4

IPv4, while great in implementation, has its limitations. The address for IPv4 is exactly 32 bits in length (a bit being a 1 or a 0). Taking this into account, the maximum number of IP addresses for version 4 can be calculated by the following equation: X = 2^32. When calculated, that turns out to be 4,294,967,296 addresses.

When you step back and look at the number of addresses, you need to realize a couple of facts. First, the number of addresses is less than the total number of people in the world. In 2010, the world population was estimated at 6,852,472,823 people (http://geography.about.com/od/obtainpopulationdata/a/worldpopulation.htm). Already we are past the maximum, but there is more to it than just that. Even though there are over 4 billion addresses available for IPv4, there are a certain number of “reserved” addresses that are used for special purposes and are not handed out. Out of the over 4 billion addresses, only about 3,706,456,113 are assignable.

To add to matters, connecting your computer up to the internet takes more than one address. Your computer takes an address and your Internet service provider (ISP) takes an IP address. Then your ISP has to do the same connecting to other ISPs, states, countries, and so forth. This is why the development of IPv6 began. They realized there was going to be a shortage as the Internet was taking off.


Y2K (For IPv4)

In February 2011, Internet Assigned Numbers Authority (IANA) issued out the rights to the last remaining blocks of addresses to Countries for assignment. Currently the last remaining IP addresses are being assigned to ISPs for issuing to companies and home users. It is estimated that the last addresses are to be issued by countries before the end of August 2011. Once that happens, IPv4 will be stopped in its tracks and cause ISPs to perform the following two things:

· Carrier-grade Network Address Translation (NAT) – Basically the ISP will be putting all home users inside isolated “local” networks. The best example is going to the store and getting a new router so you can support multiple computers with 1 internet connection. One of the major problems this will cause is in Gaming. Computer and Console games that use the internet do not like these home routers without special configurations. Given that the ISP will be controlling these systems, games may not be playable anymore.

· IPv6 (IP Version 6) – This is the main focus of my series of articles. This protocol was designed to replace version 4 by providing substantially more addresses. How many more? How about 3.4×10^38 addresses! I will explain this more later.

With these things in mind, something is going to have to change for the internet to continue functioning correctly. Both of these pose big problems ahead as implementation is going to be difficult and costly.


IPv6

Now that we have the background on IPv4, let’s talk a little bit about IPv6. IPv6 has been around for a long time. The reasons behind why it has not taken off are probably due to many different factors, but from my own personal opinion, it is because the IPv6 has differences in implementation.

Tons of Addressing Space

First, IPv6 has tons more addresses available. We are talking about a massive increase in the number of available addresses. IPv6 is 128 bits long containing 3.4×10^38 addresses over IPv4’s mere 4.2 billion. When written out that number looks like this:

340,282,366,920,938,463,463,374,607,431,768,211,456

That means that for every person in the population of the world in 2010, there are at least 4.9 × 10^28 addresses. Another reference to IPv6’s capacity is as follows:

“The earth’s surface area is about 510 trillion square meters. If a typical computer has a footprint of about a tenth of a square meter, we would have to stack computers 10 billion high blanketing the entire surface of the earth to use up that same trillionth of the address space.” (http://www.tcpipguide.com/free/t_IPv6AddressSizeandAddressSpace-2.htm)

Will we ever run out of IPv6 addresses? The short answer is not in the near future. This brings us to the next key point of public addresses.

Public Addressing

Currently, most homes with high-speed internet have what is called a router. This is the little box that sits connecting you to your ISP and allowing multiple computers to access the Internet at once (also sometimes providing wireless access). In general, a residential home has one public IP address and one or more private (192.168.x.x) addresses. To see your current public IP address, you can go to http://ip-lookup.net/ and see your public address. In IPv4, there are not enough addresses for every computer in the household to have a public address so the router provides a service called NAT. Without getting into details about NAT, it basically hides multiple systems behind 1 public IP address. With the number of addresses available for IPv6, there is no longer a need for NAT. IPv6 will put every device on the internet with their own IP address.

Before I get a bunch of comments on this, I would like to point out to those individuals that are big fans of privacy that there are several components that will still aid in privacy such as a firewall, temporary addressing, and the fact that by default IPv6 addresses are based on a MAC or are randomly generated (Typically seen by default in Windows) which mean privacy and security can still be achieved.

Multiple Scope Addressing

IPv6 also has the ability for a system to have multiple addresses. Typically these addresses are classified under “scope” which determines where traffic is allowed to go or what type of traffic it is. There are 2 main scopes to understand at a base level. The main two are Link-Local and Global Unicast which designate private and public addresses respectively. I will cover others in a later topic.


Where is IPv5?

IPv5 was designed as an experiment towards streaming voice and video. The protocol was designed differently from IPv4 and could not be used for communication by all types of data. Ultimately the protocol ended up being called ST2. Because of this, the next generation of IP had to go with version 6.


Conclusion

While I can talk for days on both IPv4 and IPv6, I will save it for other articles. With the basic summary I have provided, you should be able to understand what IP is, why we need to move to version 6 and what the main differences are. If there is one thing I hope you understand from this article, that is to start trying to get devices that will support IPv6 as the year draws to a close. Only by raising your voice and concern about IPv6 can we speed the move.


Where can I go from here?

There are tons of sources you can use to learn more about IPv6. Although I will have articles on this topic later, you can get started at some of the following sites:

http://www.cisco.com/web/solutions/netsys/ipv6/index.html – Cisco IPv6 Transition Information

http://ipv6.net/ – IPv6 Resources

http://www.ipv6forum.com/ – IPv6 Forum

https://wiki.tools.isoc.org/IPv6_Deployment/IPv6_for_Software_Developers/List_of_Resources_for_IPv6_Programmers – IPv6 Programming Resources

http://www.ipv6now.com.au/resources.php – General IPv6 Resources

Advertisements