Posted on 11/06/2010 8:01:03 AM PDT by ShadowAce
Although IPv6 adoption seems to be moving at a snails pace, theres no outrunning it. Brien Posey demystifies some of the addressing issues many admins are still trying to figure out.
[Editor's note: This article has been revised to correct a couple of errors noted by TechRepublic members. Thanks to everyone who contributed their input.]
Over the last several years, IPv6 has been inching toward becoming a mainstream technology. Yet many IT pros still dont know where to begin when it comes to IPv6 adoption because IPv6 is so different from IPv4. In this article, Ill share 10 pointers that will help you understand how IPv6 addressing works.
The IPv4 addresses we are all used to seeing are made up of four numerical octets that combine to form a 32-bit address. IPv6 addresses look nothing like IPv4 addresses. IPv6 addresses are 128 bits in length and are made up of hexadecimal characters.
In IPv4, each octet consists of a decimal number ranging from 0 to 255. These numbers are typically separated by periods. In IPv6, addresses are expressed as a series of eight 4-character hexadecimal numbers, which represent 16 bits each (for a total of 128 bits). As well see in a minute, IPv6 addresses can sometimes be abbreviated in a way that allows them to be expressed with fewer characters.
IPv6 reserves certain headers for different types of addresses. Probably the best known example of this is that link local unicast addresses always begin with FE80. Similarly, multicast addresses always begin with FF0x, where the x is a placeholder representing a number from 1 to 8.
Because of their long bit lengths, IPv6 addresses tend to contain a lot of zeros. When a section of an address starts with one or more zeros, those zeros are nothing more than placeholders. So any leading zeros can be suppressed. To get a better idea of what I mean, look at this address:
FE80:CD00:0000:0CDE:1257:0000:211E:729C
If this were a real address, any leading zero within a section could be suppressed. The result would look like this:
FE80:CD00:0:CDE:1257:0:211E:729C
As you can see, suppressing leading zeros goes a long way toward shortening the address.
Real IPv6 addresses tend to contain long sections of nothing but zeros, which can also be suppressed. For example, consider the address shown below:
FE80:CD00:0000:0000:0000:0000:211E:729C
In this address, there are four sequential sections separated by zeros. Rather than simply suppressing the leading zeros, you can get rid of all of the sequential zeros and replace them with two colons. The two colons tell the operating system that everything in between them is a zero. The address shown above then becomes:
FE80:CD00::211E:729C
You must remember two things about inline zero suppression. First, you can suppress a section only if it contains nothing but zeros. For example, you will notice that the second part of the address shown above still contains some trailing zeros. Those zeros were retained because there are non-zero characters in the section. Second, you can use the double colon notation only once in any given address.
In IPv4, a designated address known as a loopback address points to the local machine. The loopback address for any IPv4-enabled device is 127.0.0.1.
Like IPv4, there is also a designated loopback address for IPv6:
0000:0000:0000:0000:0000:0000:0000:0001
Once all of the zeros have been suppressed, however, the IPv6 loopback address doesnt even look like a valid address. The loopback address is usually expressed as ::1.
In IPv4, every IP address comes with a corresponding subnet mask. IPv6 also uses subnets, but the subnet ID is built into the address.
In an IPv6 address, the first 48 bits are the network prefix. The next 16 bits are the subnet ID and are used for defining subnets. The last 64 bits are the interface identifier (which is also known as the Interface ID or the Device ID).
If necessary, the bits that are normally reserved for the Device ID can be used for additional subnet masking. However, this is normally not necessary, as using a 16-bit subnet and a 64-bit device ID provides for 65,535 subnets with quintillions of possible device IDs per subnet. Still, some organizations are already going beyond 16-bit subnet IDs.
In IPv4, Host (A) records are used to map an IP address to a host name. DNS is still used in IPv6, but Host (A) records are not used by IPv6 addresses. Instead, IPv6 uses AAAA resource records, which are sometimes referred to as Quad A records. The domain ip6.arpa is used for reverse hostname resolution.
One of the things that has caused IPv6 adoption to take so long is that IPv6 is not generally compatible with IPv4 networks. As a result, a number of transition technologies use tunneling to facilitate cross network compatibility. Two such technologies are Teredo and 6to4. Although these technologies work in different ways, the basic idea is that both encapsulate IPv6 packets inside IPv4 packets. That way, IPv6 traffic can flow across an IPv4 network. Keep in mind, however, that tunnel endpoints are required on both ends to encapsulate and extract the IPv6 packets.
Beginning with Windows Vista, Microsoft began installing and enabling IPv6 by default. Because the Windows implementation of IPv6 is self-configuring, your computers could be broadcasting IPv6 traffic without your even knowing it. Of course, this doesnt necessarily mean that you can abandon IPv4. Not all switches and routers support IPv6, just as some applications contain hard-coded references to IPv4 addresses.
Its kind of ironic, but as hard as Microsoft has been pushing IPv6 adoption, Windows does not fully support IPv6 in all the ways you might expect. For example, in Windows, it is possible to include an IP address within a Universal Naming Convention (\\127.0.0.1\C$, for example). However, you cant do this with IPv6 addresses because when Windows sees a colon, it assumes youre referencing a drive letter.
To work around this issue, Microsoft has established a special domain for IPv6 address translation. If you want to include an IPv6 address within a Universal Naming Convention, you must replace the colons with dashes and append .ipv6.literal.net to the end of the address for example, FE80-AB00200D-617B.ipv6.literal.net.
Bookmarked :)
Funny, I have been doing IPv6 for more than 5 years but have been doing it though tunnels. Done some IPv6 exploring s well. In fact if you have an Apple Airport Extreme, if the WAN side is hooked in with a real IP number and not a internal IP like 192.168.x.x, it will create an IPv6 tunnel !
That’s what I’ve been saying all along.
Thanks! I need to start looking into IPv6, which I’ve ignored at least since it was IP next gen, because it’s creeping into my workaday world.
I remember, back in the day, when this was just beginning to take shape. We all feared it, as we didn’t understand it and we liked IPV4. Since retirement from the IT world I assumed IPV6 would be the law of the land by now but apparently this hasn’t happened yet.
not yet. It looks like this is something will have to be forced on the IT world. IPv4 is just too easy, I guess.
Yep, once you get the idea of IPV4 it is easy, but they should just about be out of addresses by now:)
Algore actually invented this BEFORE he invented the internet. (He just has problems with prioritizing.)
OK, now that you're totally confused, I actually think it's kind of cool that you posted this. I'll guarantee you there aren't 7 people over at the DU funny farm that could even begin to understand this article.
LOL! I thought it kinda cool, and required reading for our resident techies here. :)
Make that 11 things.
First thing:
What the hell is IPv6 addressing?
I read that IANA has about 5% of all IPv4 address left to issue. My company is begining to roll out IPv6 in our core. It has taken me a while to wrap my head around 52-bit subnets ;-)
LOL! OK, I don't know how versed you are in internet addressing, so I'll start kinda at the very basics.
The URL you type into browsers is called a Uniform Resource Location. It's essentially the english form of internet addresses. The browser takes what you type in and converts it to an Internet address.
Internet addresses currently are expressed in IPv4. That is, 4 32-bit numbers, separated by periods. For example, 127.0.0.1 indicates your local machine. Google has an internet IPv4 address of 66.249.92.104
Each of those number is between 0 and 255 (that's 32 bits long). However, due to housekeeping chores, and various short-sighted assignments in the 80's, the actual number of addresses that are available, is quite a few less than you'd expect. 232 is approximate 4,294,967,296 addresses, but we only have access to a subset of that. With the expansion of the Internet, we are approaching the upper limit of the number of devices that can be connected.
IPv6 uses 128 bits, rather than 32. This vastly increases the number of available addresses, and ensure we will not run out of addresses on the Internet. 2128 is about 340,282,366,920,938,463,463,374,607,431,768,211,456
The format of IPv6, though is quite a bit different that IPv4. That's what this article is about.
So in terms that I can understand, it’s sorta like the Post Office coming up with ZIP Codes?
NAT helped push it off, but even that’s only delaying the inevitable.
That not quite exact. ZIP codes are the area of an address. IP is the exact address. So instead of 4 billion possible addresses, IPv6 allows for a heck of a lot more addresses to be available.
Thank you!
I wasn’t trying to be a wiseass. Computer stuff intrigues me.
Yours is a great explanation, and I appreciate it!
Best Wishes!
Pete
Disclaimer: Opinions posted on Free Republic are those of the individual posters and do not necessarily represent the opinion of Free Republic or its management. All materials posted herein are protected by copyright law and the exemption for fair use of copyrighted works.