
This article introduces you to the next generation of TCP/IP: IP version 6 (IPv6). Because of the many deficiencies found in IPv4, as well as the poor scalability for hierarchical addressing in IPv4, IPv6 was developed to meet the rapidly growing needs of small companies, corporations, and the explosive growth of the internet, especially in emerging markets such as China and India.
In this article you’ll discover why IPv6 is necessary, the different kinds of IPv6 addresses, routing with IPv6, and how to configure a basic IPv6 set up. The CCNA certification goes into much more depth than what you will learn in this IPv6 article series.
Why do we need IPv6
Well, the short answer is, because we need to communicate, and our current system isn’t really cutting it any more kind of how the Pony express can’t compete with airmail. Just look at how much time and effort we’ve invested in coming up with slick new ways to converse bandwidth and IP addresses. We’ve seen come up with Variable Length Subnet Masks (VLSMs) in our struggle to overcome the worsening address drought.
Its’ really the number of people and devices that connect to networks increases each and every day. That’s not a bad thing at all we’re finding new and exciting ways to communicate to more people all the time, and that’s a good thing. In fact, it’s a basic human need. But the forecast isn’t exactly blue skies and sunshine because, as we alluded to in this article’s introduction, IPv4, upon which our ability to communicate is presently dependent, is going to run out of addresses for us to use. IPv4 has only about 4.3 billion addresses available in theory, and we know that we don’t even get to use all of those.
There are really only about 250 million addresses that can be assigned to devices. Sure, the use of classless inter-domain routing (CIDR) and Network Address Translation (NAT) has helped to extend the inevitable dearth of addresses, but we will run out of them, and it’s going to happen within a few years.
China is barely online, and we know there’s a huge population of people and corporations there that surely want to be. There are a lot of reports that give us all kinds of numbers, but all you really need to think about to convince yourself that we are not just being an alarmist is the fact that there are about 6.5 billion people in the world today, and it’s estimated that just over 10 percent of that population is connected to the Internet wow!
That statistic is basically screaming at us the ugly truth that based on IPv4’s capacity, every person cant even have a computer let alone all the other devices we use with them. We have more than one computer, and it’s pretty likely you do too. And we’re not even including in the mix phones, laptops, game consoles, fax machines, routers, switches, and a mother lode of other devices we use every day! So we think we’ve made it pretty clear that we have got to do something before we run out of addresses and lose the ability to connect with each other as we know it. And that “something” just happens to be implementing IPv6.
The benefits and Uses of IPv6
So what’s so fabulous about IPv6? Is it really the answer to our coming dilemma? Is it really worth it to upgrade from IPv4? All good questions you may even think of a few more. Of course, there’s going to be that group of people with the time-tested and well-known “resistance to change syndrome” but don’t listen to them. If we had done that years ago, we’d still be waiting weeks, even months for our mail to arrive via horseback. Instead, just know that the answer is a resounding YES! Not only does IPv6 give us lots of addresses, but there are many other features built into this version that make it well worth the cost, time, and effort required to migrate to it.
Later in this article, we’ll talk about all that effort in the section called “Migrating to IPv6”. In it, we’ll cover some of the transition types required to move from version 4 to version 6, and we promise you’ll discover that the huge benefits of migrating will vastly outweigh any associated cons.
Today’s networks, as well as the internet, have a ton of unforeseen requirements that simply were not considerations when IPv4 was created. We’ve tried to compensate with a collection of addons that can actually make implementing them more difficult than they would be if they were required by a standard.
By default, IPv6 has improved upon and included many of those features as standard and mandatory. One of these sweet new standards is IP Seca features that provide end-to-end security that we have covered in the article series of “Wide Area Networks”. Another little beauty is known as mobility, and as its name suggests, it allows a device to roam from one network to another without dropping connections.
But it’s efficiency features that are really going to rock the house! For starters, the header in an IPv6 packet has half the fields, and they are aligned to 64 bits, which gives us some seriously soured-up processing speed compared to IPv4, lookups happen at light speed! Most of the information that used to be bound into the IPv4 header was taken out, and now you can choose to put it, or parts or it, back into the header in the form of optional extension headers that follow the basic header fields.
And of course, there’s that whole new universe of addresses we talked about already. But where did we get them? Did that Criss Angel Mindfreak dude just show up and, Blammo? We mean, that huge proliferation of addresses had to come from somewhere! Well, it just so happens that IPv6 gives us a substantially larger address space, meaning the address is a whole lot bigger for times bigger as a matter of fact! An IPv6 address is actually 128 bits in length and no worries. We are going to break down the address piece by piece and show you exactly how it looks like in the article IPv6 Addressing and Expressions. For now, let us just say that all that additional room permits more levels of the hierarchy inside the address space and a more flexible address architecture.
It also makes routing much more efficient and scalable because the address can be aggregated a lot more effectively. And IPv6 also allows multiple addresses for hosts and networks. This is especially important for enterprises jonesing for availability. Plus, the new version of IP now includes expanded use of multicast communication(one device sending to many hosts or to a select group), which will also join in to boost efficiency on networks because communications will be more specific.
IPv4 uses broadcasts very prolifically, causing a bunch of problems, the worst of which is, of course, the dreaded broadcast stor man uncontrolled deluge of forwarded broadcast traffic that can bring an entire network to its knees and devour every last bit of bandwidth. Another nasty thing about broadcast traffic is that it interrupts each and every device on the network. When a broadcast is sent out, every machine has to stop what it’s going and respond to the traffic whether the broadcast is meant for it or not.
But smile everyone: There is no such thing as a broadcast in IPv6 because it uses multicast traffic instead. And there are two other types of communication as well: unicast, which is the same as it is in IPv4, and a new type called anycast. Anycast communication allows the same address to be placed on more than one device so that when traffic is sent to one device addressed in this way, it is routed to the nearest host that shares the same address. This is just the beginning we’ll get more into the various type of communication in the section called “Address types”.
IPv6 Addressing and Expressions
Just as understanding how IP addresses are structured and used is critical with IPv4 addressing, it’s also vital when it comes to IPv6. You’ve already read about the fact that at 128 bits, an IPv6 address is much larger than an IPv4 address. Because of this, as well as the new ways the addresses can be used, you’ve probably guessed that IPv6 will be more complicated to manage. But no worries! As we said, we’ll break down the basics and show you what the address looks like, how you can write it, and what many of its common uses are. It’s going to be a little weird at first, but before you know it, you’ll have it nailed!
So let’s take a look at the output below, which has a sample IPv6 address broken down into sections.
20001:0db8:3c4d:0012:0000:0000:1234:56ab
Global prefix subnet Interface ID
So as you can now see, the address is truly much larger but what else is different? Well, first, notice that it has eight groups of numbers instead of four and also that those groups are separated by colons instead of periods. And hey wait a second… there are letters in that address! Yep, the address is expressed in hexadecimal just like a MAC address is, so you could say this address has eight 16-bit hexadecimal colon-delimited blocks. That’s already quite a mouthful, and you probably haven’t even tried to say the address out loud yet!
One other thing we want to point out is for when you set up your test network to play with IPv6 because we know you are going to want to do that. When you use a web browser to make an HTTP connection to an IPv6 device, you have to type the address into the browser with brackets around the literal address. Why? Well, a colon is already being used by the browser for specifying a port number. So basically, if you don’t enclose the address in brackets, the browser will have no way to identify the information.
Here’s an example of how this looks:
http://[2001:0db8:3c4d:0000:0000:1234:56ab]/default.html
now obviously if you can, you would rather use names to specify a destination (like www.lammale.com), but even though it’s definitely going to be a pain in the rear, we just have to accept the fact that sometimes we have to bite the bullet and type in the address number.
So it should be pretty clear that DNS is going to become extremely important when implementing IPv6.
Shortened Expression
The good news is there are a few tricks to help rescue us when writing these monster addresses. For one thing, you can actually leave out parts of the address to abbreviate it. But to get away with doing that you have to follow a couple of rules. First, you can drop any leading zeros in each of the individual blocks. After you do that, the sample address from earlier would then look like this:
2001:db8:3c4d:12:0:0:1234:56ab
Okay, that’s a definite improvement at least we don’t have to write all of those extra zeros! But what about whole blocks that don’t have anything in them except zeros? Well, we can kind of lose those too at least some of them. Again referring to our sample address, we can remove the two blocks of zeros by replacing them with double colons, like this:
2001:db8:3c4d:12::1234:56b
Cool, we replaced the blocks of all zeros with double colons. The rule you have to follow to get away with this is that you can only replace one contiguous block of zeros in an address.
So if my address has four blocks of zeros and each of them was separated, we just don’t get to replace them all; remember the rule is that you can only replace one contiguous block with a double colon. Check out this example:
2001:0000:0000:0012:0000:0000:1234:56ab
And just know that you can’t do this:
2001::12::1234:56ab
Instead, this is the best that you can do:
2001::12:0:0:1234:56ab
The reason why the above example is our best shot is that if we remove two sets of zeros, the device looking at the address will have no way of knowing where the zeros go back in.
Basically the router would look at the incorrect address and say, “well, do I place two blocks into the first set of double colons and two into the second set, or do I place three blocks into the first set and one block into the second set?” and on and on it would go because the information the router needs isn’t there.
Address types
We’re all familiar with IPv4 unicast, broadcast, and multicast addresses that basically define who or at least how many other devices we’re talking to. But as we mentioned, IPv6 adds to that trio and introduces the anycast. Broadcasts, as we know them, have been eliminated in IPv6 because of their cumbersome inefficiency.
So let’s find out what each of these types of IPv6 addressing and communication methods do for us.
- Unicast: packets addressed to a unicast address are delivered to a single interface. For load balancing, multiple interfaces can use the same address. There are a few different types of unicast addresses, but we don’t need to get into that here.
- Global Unicast addresses: these are your typical publicly routable addresses, and they’re the same as they are in IPv4.
- Link-Local Addresses: These are like the private addresses in IPv4 in that they are not meant to be routed. Think of them as a handy tool that gives you the ability to throw a temporary LAN together for meetings or for creating a small LAN that’s not going to be routed but still needs to share and access files and services locally.
- Unique Local Addresses: These addresses are also intended for non-routing purposes, but they are nearly globally unique, so it’s unlikely you’ll ever have one of them overlap. Unique local addresses were designed to replace site-local addresses, so they basically do almost exactly what IPv4 private addresses do allow communication throughout a site while being routable to multiple local networks. Site-local addresses were denounced as of September 2004.
- Multicast: Again, same as in IPv4, packets addressed to a multicast address are delivered to all interfaces identified by the multicast address. Sometimes people call them one-to-many addresses. It’s really easy to spot a multicast address in IPv6 because they always start with FF.
We’ll get into greater detail about the multicast operation in the article “How IPv6 works in an Internetwork”.
- Anycast: Like multicast addresses, any cast address identifies multiple interfaces, but there’s a big difference: the anycast packet is only delivered to one address actually, to the first one it finds defined in terms of routing distance. And again, this address is special because you can apply a single address to more than one interface. You could call them one-to-one-of-many addresses, but just saying “anycast” is a lot easier.
You’re probably wondering if there are any special, reserved addresses in IPv6 because you know they’re there in IPv4. Well, there are plenty of them! Let’s go over them now.
- Special addresses: we’re going to list some of the addresses and addresses ranges that you should definitely make a point to remember because you’ll eventually use them. They’re all special or reserved for a specific use, but unlike IPv4, IPv6 gives us a galaxy of addresses, so reserving a few here and there doesn’t hurt a thing!
0:0:0:0:0:0:0:0 Equals:: This is the equivalent of IPv4’s 0.0.0.0 and is typically the source address of a host when you’re using stateful configuration.
0:0:0:0:0:0:0:1 Equals::1. The equivalent of 127.0.0.1 in IPv4.
0:0:0:0:0:0:0:192.168.100.1 This is how an IPv4 address would be written in a mixed IPv6/IPv4 network environment.
2003::/3 The global unicast address range
FC00::/7 The unique local unicast range
FE80::/10 The link local unicast range
FF00::/8 The multicast range
3FFF:FFFF::/32 Reserved for examples and documentation
2001:0DB8::/32 Also reserved for examples and documentation
2002::/16 Used with 6 to 4, which is the transition system the structure that allows IPv6 packets to be transmitted over an IPv4 network without the need to configure explicit tunnels.
We’ll get more into this in “Migrating to IPv6” but for now let me introduce you How IPv6 actually works in an Internetworking in this article. We all know how IPv4 works, so let’s see what’s new.