Understanding IPV6

By: Daniel Imbellino
Updated: Feb 28, 2013

IP Version 6 is a network address protocol that was designed to cover the short falls of IP Version 4. IPv4 with its 32 bit address space only allowed for approximately 4.3 billion possible addresses (that’s 2 to the 32nd power possible addresses), this is becoming a serious problem now as we are currently running out of them. Back in the early 1980’s when IPv4 was initially designed, no one thought we would ever need that many to begin with. But, over time the internet has grown from what was once a network of computers systems at colleges that communicated with government networks, into the world wide phenomenon it has become today. IPv6 on the other hand uses a 128bit address space to assign addresses to networks and hosts. That’s 2 to the 128th power possible IP addresses ( or 3.4 x 10 to the 38th power as a decimal equivalent) that can be assigned! So unless you are going to assign an IP address to every rock, stick, and tree on earth, then I doubt we will ever run out of them.

A typical IPv4 address uses binary notation to represent addresses, and decimal equated values for user representation (since it’s typically easier to read decimal than binary values). IPv6 uses the hexadecimal number system to represent IP addresses in the IPv6 address space. A typical IPv4 address looks like: 174.80.44.10 (a class B IP address), which consists of 4 octets of 8bit binary values separated by a period; while as IPv6 consists of 8 sets of 4 hexadecimal values separated by colons. Each set of 4 hexadecimal values consists of 16 bits each, for a total value of 8 x 16 = 128. This is where we get the 128 bit address space from. Hex after all is the base 16 numeric system. An example IPv6 IP address looks like this: 2001:0f68:0000:0000:0000:0000:1946:69af. Although, it is perfectly legal to truncate leading zeros with a double colon like this: 2001:f68::1946:64b9. The double colon signifies that there are leading zeros after the first one. This makes it easier to read without having all the trailing zeros to view.

What many people don’t realize is that you can use an IP address in place of a fully qualified domain name when making search queries through your browser. If a website was named www.example.com, it must have a corresponding IP address associated with it. This could be say for example, 90.140.10.5. If you entered this address with an http:// prefix into your browsers main address bar, you would be able to connect with the website just as you would with the fully qualified domain name (www.example.com). Different applications use different ports to help identify the use different types of applications. Websites typically use port 80, so you could write the IPv4 address above as http://90.140.10.5:80, although your web browser would automatically assume you were using port 80 because of the http:// prefix attached to the beginning of the address. If you wanted to access an IPv6 address followed by a port number you could do so like this: http://[2001:of68:12b9:138a]:80/ . Notice we enclosed the address in brackets in order to separate the colon and port number from the rest of the address. Without doing so, we would not be able to specify a port number to be used.

There are several types of addresses that are used with IPv6, among them the most used are called “unicast addresses”. These consist of Global unicast addresses, Link-local unicast addresses, and Unique local unicast addresses. Global unicast addresses are fully routable across the open internet and have a starting hexadecimal value of 2000:. As we stated before, an IPv6 address consists of 128 bits, and in the case of the Global unicast address, the first 48 bits of the address are called the “Global routing prefix”, which specifies an organizations website for instance, and this is set of numeric values assigned by your ISP and IANA (internet assigned numbers authority). The next 16 bits that follow are called the “Subnet ID”, which represents an organizations internal IPv6 network. This provides information pertaining to what subnet or portion of a network that your site resides on. The last 64 bits are used for the “Interface ID”, which is used to identify your computer or other device within the IPv6 network. Interface ID’s work much like a host ID does in IPv4, as it provides a unique identified for a particular system (your PC). The interface ID partially consists of the workstations network interface cards MAC address(the physical address of your computer). All forms of IPv6 addresses consist of a site prefix, subnet ID, and interface ID,but different portions of the addresses are allocated differently depending on the type of address being used. Just remember that Global unicast addresses start with a 2000: prefix.

Continue to Understanding IPv6 Part Two...