Getting older, not necessarily wiser!
IPV6 addresses have been out there for awhile. They will, at some point in the future, replace IPV4 addresses. However, adoption of IPV6 has been progressing like a slow moving train at a traffic stop. There are a variety of reasons for this that I am not going to get into. The focus of this article is IPV6 from 10,000 feet or what the home user really needs to know about IPV6.
One thing I notice about all the articles I have read on IPV6, is that while they start simple enough, they rapidly get overly technical and bogged down in a lot of details. I hope to avoid that problem here.
This is the first in a series of IPV6 posts, where I hope to explain the protocol in understandable terms.
In the late 1980’s the Internet Engineering Task Force (IETF) was becoming concerned about the rapid expansion of IPV4 usage, and future depletion of all IPV4 address space (back in my day it was only computers that had IP addresses, but today some toasters have them). For this reason the Internet Protocol, Version 6 (IPv6) Specification was drafted in December of 1998. The first IPV6 address was handed out by the Internet Assigned Numbers Authority (IANA) in July of 1999.
Two decades later IPV4 is still around. It will probably be another couple of decades before IPV4 goes away all together. If I had to speculate I would target IPV4 going away between 2040 and 2050. So I could probably get away without IPV6, but my kids and grand kids will not have that option.
IPV4 has a 32 bit address, yielding 4,294,967,296 addresses. IPV6 has a 128 bit address, yielding 340,282,366,920,938,463,463,374,607,431,768,211,456 addresses. That is quite a jump in available addresses. We talked about bits and bytes in a previous post, which you may want to review.
When discussing IPV4 we talked about a routing prefix, a host identifier, and a subnet mask. IPV6 explains it in somewhat different terms; Network Part (first 48 bits), Subnet ID (next 16 bits), and Client ID (last 64 bits). Instead of a subnet mask, IPV6 uses something called Classless Inter-Domain Routing (CIDR).
In this post we will look specifically at IPV6 address structure and short hand. We will be getting into some of the other details in later posts.
A fully expanded IPV6 address for one of the Google DNS servers looks like this.
It is made up of eight groups of four hexadecimal numbers. The first three groups represent the Network part of the address, the next group represent the Subnet ID, and the final final four groups represent the Client ID.
A hexadecimal number is a 4 bit binary or single digit base 16 number with a range of 0 to F. I am not going to get into bit mapping, but see these articles on hexadecimal and binary for more information.
The first issue with the IPV6 address is that it is long. You will not be typing to many full IPV6 addresses. Fortunately the designers built in some features to shorten the address we actually type.
Groups that consist of nothing but zeros can be replaced with two colons. For example in our Google address above, we have four groups that consist of nothing but zeros. This shortens the above Google address to the following.
Also any leading zeros in a group can be dropped. This does not apply to our google address, as no remaining groups have leading zeros.
For our next example we will work backwards. We will expand out the following short address to the full address.
In some cases (Windows OS specifically), you will see a % and a number at the end of a IPV6 address. This represents the network adapter. If you have multiple network cards or adapters in one computer, each adapter should get its own number. In Linux this would be equivalent to the Predictable Network Interface Names.
This has been a short introduction to IPV6, with a look at the address structure, and how to make it easier to type in.
In followup posts we will discuss some of the details on how IPV6 works.
Networking: 10,000 foot View IPV6 Part 1