As mentioned in my last article, an IPv6 address is 128 bits in length, represented in hexadecimal. Much like a MAC address, an IPv6 address is broken down into 2-byte (16-bit) sections separated by a colon; the major difference being that an IPv6 address includes 8 of these sections rather than 3 with a MAC address. In fact, the standard configuration of an IPv6 address actually uses a system’s MAC address as part of the interface ID of a host, as I’ll explain shortly. The address below shows an example of a full 128-bit IPv6 address:
The first thing to recognize about an IPv6 address is that it can actually be compressed quite easily. For example, in the address above, each 2-byte section that contains only 0s can be reduced to a single 0. By the same token, any 2-byte section that begins with a 0 can also have that leading 0(s) dropped. In other words, in compressed form the address just considered would be represented as:
Although this is a little better, there is still an even easier way to represent an IPv6 address. Because the IPv6 address space is so large, there’s a good change that you’re likely to find many 0s in any given address. So, in cases where more than more than one successive field contains 0s only, you can represent it with double colons (::) in the address. For example, the compressed address 2031:0:130D:0:0:08D0:875D:130A could be represented as:
When an IPv6 system comes across this double colon (::) within an address, it knows that it should include as many 0s as necessary to get the address back to 128 bits. However, it’s very important to note than the double colons can only be included once within a given address – if it were included more than once, a system couldn’t possible know where all the 0s were to be placed in the expanded address.
Tip: Remember that double colons (::) can be used as placeholders for contiguous 0 fields in an IPv6 address, but only once within any given address.
In some cases, using the pair of colons makes an address very small indeed. For example, the loopback address in IPv6 is 0000:0000:0000:0000:0000:0000:0000:0001. By using the double colon arrangement just learned, this address can also be identified as:
Overall, IPv6 addressing is probably neither easier nor harder than what you’ve come to know and love with IPv4 – it’s simply different. As with anything new, it will just take a little time to understand and appreciate this new addressing format.
While this article gives you an introduction to IPv6, we’re just getting started. In my next CCDA article I’ll walk you through how subnetting occurs in this address space, and we’ll explore different IP address allocation and transmission methods. Stay tuned!