IPv6 APITopIntroductionThe IPv6 Protocol

The IPv6 Protocol

This chapter gives a brief overview of the IPv6 protocol itself. It is not meant to be a complete description; there are better generic references elsewhere.

Major Differences between version 6 and version 4

IPv6 Addresses

In the early days of IPv4, the IP addresses were put into various classes (A, B, C, then followed by D and E). They described the partition between the network portion and the host portion of an IP address.

IPv6 addresses are split into various classes although the word "class" itself cannot be used for most of them.

Scope

Scope is the topological span of an address. That is the amount of network real estate where this address is guaranteed to be unique. RFC 3513 describes the various IPv6 address scopes and their prefixes. Unicast addresses have the following scope:
Link-local
is for a single link. In other words the subnet the interface is on. Link-local addresses start with any prefix from FE80:: to FEBF::
Site-local
is for an entire enterprise. It is defined by system administrators who would put a configuration into their routers to define the boundary. Site-local addresses start with the prefixes FEC0:: to FEFF::
Global
is everywhere, this is what all IPv4 addresses are. The prefix for a global unicast address cannot start with FE or FF but can be anything else. There are some special addresses that start with 00 such as unspecified (::/128) and Loopback (::1/128).

Multicast addresses have the same scopes as unicast, but with additional ones:

interface-local
is essentially a loopback device attached to a physical interface.
others
There are about 10 site-local type scopes for multicast, so you can limit multicast to, say, a department. Like the site-local, they are defined by the system administrators. Multicast addresses can and prefix from FF00:: to FF7F::

The last type of cast for an IPv6 address is the anycast address. Where multicast means "every item from a set", anycasr means "any one item from a set". Another way to look at this is the old IPX GNS (Get Nearest Server) request. The client didn't care what Novell server they got, they just wanted one of them to reply. This is roughly how anycast works.

IPv4 address within IPv6

Quite often an entity that is working in IPv6 land will need to address or handle an IPv4 entity. To do this requires there to be a mapping between IPv4 and IPv6 addresses.

As the size of IPv6 addresses are much larger than the IPv4 ones (128 bits versus 32) the IPv4 addresses can be easily mapped into the IPv6 address space. In fact, they are mapped in several different methods depending on the application.

The first way is called Embedding. The IPv4 address is ORed with ::/128 or, if you like, 96 0 bits are prepended to the IPv4 address. These addresses are usually written with the IPv4 part still as the traditional dotted quad. For example, 10.32.100.8 when embedded is written as ::10.32.100.8

The second way is called IPv4-mapping. It is similiar to embedding except the IPv4 address is ORed with ::FFFF:0000 (FIXME check prefix, 0-80, 1-16 32-v4)

The third way is 6to4, (FIXME RFC and what address format it uses,)


IPv6 APITopIntroductionThe IPv6 Protocol