Home | IPv6 Video Tutorials | IPNG | ABCs of IPv6 | IPv6 IOS Software | IPv6 Addressing

My Introduction to IPv6

It has been coming for some time now. I can remember hearing about IPv6 ages ago. Official support for IPv6 began with Cisco IOS version 12.2(1)T. It looks like it is inevitable -- I am going to have to learn about IPv6 sooner rather than later. This is a brief introduction to IPv6.

The version of IP currently being used on the Internet (and just about everywhere else) is IPv4. IPv4 has been around for twenty-odd years. While it was appropriately designed for the networks of its day, it is starting to show its age.

IP addresses currently consist of a 32-bit number divided into network and host portions. Address space has become limited due to the fact that networks are divided along class boundaries (A, B, C type networks). In the past, a network that had more than 256 hosts would be assigned a class B network address that would tie up 65,536 hosts. The explosive growth of the Internet has only made the shortage of valid IP addresses worse. Routing tables on the Internet's core routers are very large as a result of the two hierarchical levels (network and host) inherent in IPv4.

The result is routing tables with millions of routes and enormous processor overhead on the routers.

In 1991, the Internet Architecture Board (IAB) started studying the growth of the Internet and the number of addresses needed. In 1994, Request For Comments (RFC) 1752, entitled "The Recommendation for the IP Next Generation Protocol", was issued. Over the next few years several more RFCs were issued outlining IPv6 (check out RFCs 1883-1886 for more information).

IPv6 uses a 128-bit address instead of the 32-bit address of IPv4. This does not give 4 times the addresses of IPv4 but rather the number of IPv4 addresses squared twice. A couple of articles out there have stated that this works out to billions of billions of addresses for every square meter on the planet. Just the number of IPv6 addresses, 3x10^38, is impressive enough -- that is a lot of zeros.

An IPv6 address is written as hexadecimal values (0-F) in groups of four separated by colons. Writing out the octets in the standard dotted-decimal notation of IPv4 would result in long, complicated network addresses. An IPv6 network address would look something like:


Strings of zeros can be dropped and leading zeros in a number group can be dropped, so the example above would shorten to A223:BB34::99:DA78:5679. IPv4 addresses can be expressed in IPv6 form as follows:

0000:0000:0000:0000:0000:0000: -- which can be shortened to ::

The headers for IPv6 are significantly different than IPv4.

There are eight fields in an IPv6 header. There is a 4-bit version field that defines the protocol in use (default is 6), a 8-bit traffic class field to allow for Quality of Service (QOS) - type services, and a 20-bit flow label field that provides path management services similar to Multiprotocol Label Switching (MPLS). These fields are followed by the 8-bit, next header field that indicates to routers that there is another header following the main header, a 16-bit payload length field that gives the length of the payload in octets, and hop limit field that indicates the number of hops a packet can take before being discarded (maximum 255). The header ends with the 128-bit source and destination fields. The total length of the header is 40 bytes compared to the 20-byte header in IPv4. Use of the next header field allows headers to be chained after the main header. These auxiliary headers can add routing, encryption and authentication features.

IPv6 adds significant extra features that were not possible with IPv4. These include automatic configuration of hosts (similar to BOOTP and DHCP), extensive multicasting capabilities, and built-in security using authentication headers and encryption. Built-in support for QOS and path control are also features found in IPv6.

It looks like the transition from IPv4 is well underway. For those of us on the front lines, it is important to keep up-to-date. There is a ton of good IPv6 information on the Internet, and it is only a matter of time before IPv6 use becomes wide spread, and is tested on certification exams.