IPv6: IP on Steroids (TCP/IP) Part 1

At first glance, IPv6 protocols and addresses seem more complicated than in IPv4. Take a deep breath, count to ten, and rest assured that IPv6 can make your life a lot easier. Several IPv4 limitations led to the development of IPv6.

Say Hello to IPv6

IPv6 is the Internet protocol designed to replace IPv4. The IPv4′s address space offers 4,294,967,296 possible unique addresses. That’s not nearly enough, though, to meet the demand for globally unique IP addresses. Remember that it isn’t just the obvious computers and routers that need IP addresses — other devices include smartphones, the computer under your car’s hood, your GPS device, robots, and medical devices, such as select pacemakers and their monitoring systems. As you can see, one person might need several IP addresses, and the IPv4 address space just isn’t large enough to cover the demand that’s expected in the next couple of years.

IPv6 offers 340,282,366,920,938,463,463,374,607,431,770,000,000 unique global addresses, so it might be easier to say "340 billion billion billion billion." In any case, IPv6 provides more than enough global unique addresses for every device on the planet.Now you have a mammoth IPv6 platter so that billions more devices that are hungry for addresses can enjoy the TCP/IP banquet.

In the following sections, we discuss in more depth the limitations of IPv4 and the advantages of IPv6.


Digesting IPv4 limitations

Keep in mind some of the limitations of IPv4:

✓ In the late 20th century, Internet architects realized that the Internet was in danger of running out of network numbers. They created temporary solutions involving Network Address Translations (NATs) and classless inter-domain routing (CIDR), but using those workarounds isn’t a final solution. The Internet is still running out of addresses.

✓ You know that the IPv4 32-bit numbering provides for 4 billion addresses. How many networks is that? We don’t know. The Internet probably won’t run out of IPv4 addresses for another year (around 2010). That’s just a guess. If we could predict the future, do you think we would be authors?

✓ The IPv4 classful addressing strategy wastes a lot of Class C addresses.

✓ Large, cumbersome routing tables of addresses slow down the Internet.

✓ The NAT workaround causes other problems.

If you’re a network manager and you haven’t begun to plan for IPv6, start now to plan your migration path to IPv6. Start now! In the meantime, while you plan, IPv4 and IPv6 can coexist. In fact, you should be considering a coexistence plan now if you want to be ahead of the conversion tidal wave.

Absorbing IPv6 advantages

IPv6 has a variety of benefits in addition to the huge address space.For now, here’s a brief list:

✓ Improved security

✓ Mobile IPv6 — better support for mobile devices

✓ Improved VoIP transmissions.

We’re not trying to drive you crazy, we promise! In the IPv6 world, a computer is now known as a node. And, it isn’t just computers — any device, such as a router, on an IPv6 network is a node.

If It Ain’t Broke, Don’t Fix It — Unless It Can Be Improved

IPv6 retains most IPv4 characteristics — especially the stuff that works. For example, fully qualified domain names (FQDNs) stay the same. Thank goodness!

Some things change, though. Every piece of TCP/IP is affected by a new, longer address format. Although the name resolution services (local hosts file, NIS, and DNS) still exist, the availability of autodiscovery, autoconfigura-tion, and autoregistration should make them less necessary.

Other things can become unnecessary, such as supernet masks and ARP,while still other things could simply stand some improvements (such as switching to a different network number). In this topic, we highlight IPv6 addressing and other key topics that become important when using IPv6.

Wow! Eight Sections in an IPv6 Address?

A 32-bit IPv4 address provides 4 billion addresses. To be able to offer more addresses on the Internet, IPv6 changes the address format. It works like adding a country code to telephone numbers. If you think that you have to discover a new way to access the Internet because of IPv6, relax. The IPv6 task force mandates that IPv4 and IPv6 addresses must coexist. IPv6 has its own Web site at www.ipv6.org.

Every IPv6 address is 128 bits long, or four times longer than an IPv4 address. More than four times as many IPv6 addresses are available, however (an enormously huge number of IPv6 addresses are available) because we’re talking about exponential growth! The number is so big that we broke three calculators trying to work it out. It’s more than 340,000,000,000,000,000,000,00 0,000,000,000,000,000 addresses.

An IPv6 128-bit address consists of 8 groups of 16-bit numbers, separated by colons. Each number is written as 4 hexadecimal (hex) digits. So, IPv6 addresses range from

tmp9107_thumb

to

tmp9108_thumb

Here’s a sample IPv6 address:

tmp9109_thumb

(Hey, these are even more agonizing than IPv4 addresses.) Aren’t you glad that fully qualified domain names are still valid?

The next few sections get extremely mathematical, and you can use an IP calculator, freely available on the Internet, to perform the calculations. We show your inquiring minds "the hard way" to perform IPv6 calculations.

Don’t these long addresses clog network traffic? The format of the packets is so improved that even though the IPv6 long addresses use more of the network’s capabilities, the new packet format offsets any performance penalty of the longer address fields. The streamlined packet headers make the e-mail store-and-forward process faster.

Why use hexadecimal?

Hexadecimal is quite compact inside a computer, which saves memory and disk space. Writing large numbers in hex is also easier than in decimal.

Most operating systems have a calculator tool that can convert between decimal and hexadecimal.

There’s good news and there’s bad news

The good news is that if you’re what the computer industry calls an end user, you don’t need to worry about hexadecimal, decimal, or any other numbers.

The bad news is that if you’re a system manager or network administrator, you may have to type these awkward IPv6 addresses into files to set up the network for the lucky end users.

Take advantage of IPv6 address shortcuts

We know that it seems like a lot of work to read and write these long IPv6 addresses. Thank goodness IPv6 has some shortcuts to make them easier to handle.

The leading zero (0000) shortcut

When you write an IPv6 address, you can omit any leading zeros (and there may be lots of them) in each group of four hex digits. If all four digits are zero, you need to write just one. For example, you can write the line

tmp9110_thumb

as

tmp9111_thumb

The double-colon (::) shortcut

In an address, you can replace one sequence of single zeros and colons with a double colon, which is quite a shortcut. You can use it only once in an address, though. For example, you can write

tmp9112_thumb

as

tmp9113_thumb

To expand a double-colon address again, you have to figure out how many colons, and which ones, are missing. You may want to draw an address template with asterisks (*) rather than hex digits and with all seven colons in place, like this:

tmp9114_thumb

Then look at the address you need to expand and find the double colon, :: — everything to the left of it must start at the beginning of the address. Line up any colons you can. Everything to the right of the :: must end at the end of the address. Again, line up any colons you can. Insert spaces or leading zeros to help. Now you can tell which colons are missing and how many.

For example, to expand 1060::6:600:200C:326B again, the 1060 (in front of the ::) must start at the beginning of the address, and the 6:600:200C:326B (behind the ::) must be placed at the end, like this:

tmp9115_thumb

Now you can tell that 0:0:0 is missing. Don’t worry about the leading zeros before the 6 and 60 0. They’re optional.

Be careful. Sometimes, the double-colon appears at the start or end of the address — as in ::8267:2805 or FEC0:1:A0::.

The IPv4 coexistence shortcut

IPv4 addresses are a subset of the IPv6 address space. You can convert an IPv4 address into an IPv6 address by inserting zeros at the beginning and converting the decimal digits to hexadecimal. All of IPv4 fits in

tmp9116_thumb

which can also be written as

tmp9117_thumb

For example, the IPv4 address 130.103.40.5 is also the IPv6 address

tmp9118_thumb

or

tmp9119_thumb

In the hybrid notation IPv4 mapped addresses, you can still use dotted decimal notation. It looks like this:

tmp9120_thumb

or this:

tmp9121_thumb

Thanks to mapped addresses, you can reduce the risk of typos caused by broken calculators.

Special IPv6 Addresses

IPv6 reserves certain addresses for special purposes. These special addresses include

✓ Unspecified address: The unspecified address is 0:0:0:0:0:0:0:0 (or just :: ). It can be used by a system that needs to send a packet for broadcasting or DHCP client requests but hasn’t yet received an address. An unspecified cannot be used as a destination address.

✓ Loopback address: The loopback address is 0:0:0:0:0:0:0:1 (or just ::1). It lets a system send a message to itself for testing.

✓ Site-local addresses: Site-local addresses begin with FEC0: — they’re designed for use within an organization’s intranet and cannot be routed on the Internet.

✓ Link-local addresses: Link-local addresses begin with FE80: — they’re designed for use on a single network segment and aren’t forwarded by any router. Link-local addresses permit communication with only those neighboring systems directly connected to the same part of the network (link). They allow a system to learn about its neighbors and their services without involving a router.

This address type saves time and has a side security benefit: A system can automatically generate an IPv6 address for itself from the link-local address prefix (FE80), the double-colon shortcut (::), and the 48-bit hardware address from its network interface card (NIC). Every NIC comes with a unique, hard-coded hardware address — the Media Access Control (MAC) address — built in to it. For example, your link-local address may be FE80::0800:2BBE:1124.

IPv6 — and the Using Is Easy

Suppose you receive a new computer that you need to connect to your office intranet. How does your computer get an IP address? In the IPv4 environment, with a static IP address, you have to contact your network administrator. He configures your laptop with an IP address and updates the appropriate network management files.In two or three days (assuming the network administrator isn’t on holiday or swamped with requests), your IP address is ready, and you can sign on to the network and start working. If your site uses DHCP, you may be able to connect your laptop to the branch office intranet and request an address from the DHCP server.

IPv6, which can automatically connect your host to a network, automatically builds your IP address. You don’t even need DHCP — it’s magic! (Those first two sentences are the most important ones in this topic. If you aren’t in the mood for technical, behind-the-scenes, head-breaking information, stop reading here.)

Your computer automatically gets an IPv6 address by using autodiscovery, autoconfiguration, and autoregistration. Together, they provide easier management of a dynamic network with no manual intervention. The following sections are technical in nature and more than a little boring, but we spent a lot of time on them, so humor us — give them a try.

Checking out the network with autodiscovery

Autodiscovery, or neighbor discovery, uses the link-local addresses and the new Neighbor Discovery Protocol (NDP) to find out about the network and its nearby systems. Available only in IPv6, NDP uses ICMPv6 informational messages. The routers on the network segments use Router Advertisement (RA) multicast packets to

✓ Advertise the routers’ existence: It says, "I’m here. Send data through me."

✓ Announce the on-link prefix (the "network part" of an IPv6 address):

It says "Here’s my network."

✓ Signal whether systems should perform stateless or stateful configuration: "Here’s how to create my address."

Other nodes hear these advertisements and can generate their own addresses (stateless) or request an address from a DHCPv6 server (stateful). (See the autoconfiguration discussion in the later section "Automatically assigning addresses.")

So how does your computer exchange address information with other computers on the network? We’re so glad you asked — although you may regret it. The following process isn’t just for computers but also for routers and every other network-attached device.

Whenever your node creates an IPv6 address for itself, it transmits a Neighbor Solicitation (NS) query to that address and waits for a response. If your node doesn’t receive a response, the address is available. If another system responds with a Neighbor Advertisement (NA), the address is already in use. Try again. Your system caches the address for that neighbor in case it needs to use it later.

Your node listens to all the NA confirmations and all the data communication traffic on the network to discover which neighbors are still alive and which addresses they’re using.

In the absence of NA confirmations and data traffic, your node periodically sends out an NS query. An NA response is a "Yes, I’m here" confirmation that includes the hardware address. If there’s no response, your neighbor is unreachable. Address information can be deleted when it expires this way. You can call this process autoforgetfulness — it’s an important piece because it supports system renumbering.

The process involving NS, NA, and Duplicate Address Detection (DAD) replaces the Address Resolution Protocol (ARP).

Ensuring that your address is unique

IPv6 supports two different autoconfiguration techniques:

✓ Stateless autoconfiguration allows systems to generate their own IPv6 addresses and also checks for address duplication. In stateless configuration, your node automatically builds an IPv6 address; you don’t have to do anything.

Of course, the configuration must now use DAD to ensure that the address is okay to use. Figure 9-1 shows how a node (also known as your computer) uses DAD.

✓ Stateful autoconfiguration uses DHCPv6, an upgrade to the current DHCP protocol. In stateful configuration, your computer requests an IPv6 address from a neighboring DHCPv6 server.

DAD ensures that the address you want is available.

Figure 9-1:

DAD ensures that the address you want is available.

What about subnet and supernet masks?

IPv6 addresses still consist of a network part and a host part, but it’s much harder to say where the division between the two parts comes. You don’t need subnet masks because the IPv6 address space is so large. The systems know what to do, and that’s what matters. Don’t worry about it. Supernet masks are obsolete under IPv6. We’re absolutely positive that it will be years before anyone will need to link multiple chunks of IPv6 address space. (At least we hope so.)

In both stateless and stateful configurations, your address has a lifetime.

The steps involved in DAD illustrate one way that NS and NA messages are used. After node A receives an IPv6 address, it performs DAD to find out whether another node is already using that address. NS and NA messages put DAD into action. Figure 9-1 lays out these steps:

1. Node A sends an NS message whose source address is the unassigned address :: d. The destination address is the IP address that node A wants to have. The NS message contains the requested IPv6 address.

2. If node B is using the requested address, node B returns an NA message. The NA message contains node B’s IPv6 address.

3. The NA message tells node A that node B is already using the requested IPv6. If node B isn’t using the IPv6 address, node A is welcome to it.

Automatically assigning addresses

Autoconfiguration is an IP address "plug-and-play" technique. It automatically assigns an IPv6 address to your NIC. As we describe in the earlier section "Checking out the network with autodiscovery," the Router Advertisement (RA) packets contain the on-link prefix and indicate whether systems should perform stateless or stateful configuration.

Realizing that autoregistration says "Let us serve you"

If your computer is just acting as a client of the services on your organization’s network, it should be completely satisfied by autodiscovery and autoconfiguration. But now you need to know how the servers — the computers responsible for the services on the network — ensure that the clients can find them.

The answer is autoregistration. It automatically adds or updates a computer’s hostname and address information in DNS. A server receives an address from autoconfiguration, just as a client does. Autoregistration makes the new IPv6 address available to the clients whenever they need it (so maybe you won’t have typos and broken calculators, after all). Even now, we can hear the contented sighs of network managers everywhere. Too bad they have to wait for more IPv6 deployment.

Next post:

Previous post: