IPv6 Addresses With Embedded IPv4 Addresses
The IPv6 transition mechanisms include a technique for hosts and routers to tunnel IPv6 packets dynamically under IPv4 routing infrastructure. IPv6 nodes that utilize this technique are assigned special IPv6 unicast addresses that carry an IPv4 address in the low-order 32 bits. This type of address is called an IPv4-compatible IPv6 address. The address format is shown in the following table.
Table 14-5 IPv4-Compatible IPv6 Address Format
80 bits | 16 bits | 32 bits |
0000.......................................0000 | 0000 | IPv4 Address |
A second type of IPv6 address that holds an embedded IPv4 address is also defined. This address is used to represent an IPv4 address within the IPv6 address space. This address is mainly used internally within the implementation of applications, APIs, and the operating system. This type of address is called an IPv4-mapped IPv6 address. The address format is shown in the following table.
Table 14-6 IPv4-Mapped IPv6 Address Format
80 bits | 16 bits | 32 bits |
0000..............................0000 | FFFF | IPv4 Address |
Anycast Addresses
An IPv6 anycast address is an address that is assigned to more than one interface. Typically, the address belongs to different nodes. A packet that is sent to an anycast address is routed to the nearest interface that has that address, according to the routing protocol's measure of distance.
Anycast addresses can be used as part of a route sequence. Thus, a node can select which of several Internet service providers that the node wants to carry its traffic. This capability is sometimes called source-selected policies. You implement this capability by configuring anycast addresses to identify the set of routers that belongs to Internet service providers. For example, you can configure one anycast address per Internet service provider. You can use the anycast addresses as intermediate addresses in an IPv6 routing header. Then the packet is delivered by a particular provider or is delivered by a sequence of providers. You can also use anycast addresses to identify the set of routers that are attached to a particular subnet. You can also use anycast addresses to identify the set of routers that provide entry into a particular routing domain.
You can locate anycast addresses from the unicast address space by using any of the defined unicast address formats. Thus, anycast addresses are syntactically indistinguishable from unicast addresses. When you assign a unicast address to more than one interface, you turn the unicast address into an anycast address. However, you must explicitly configure the nodes to which the address is assigned in order to know that the address is an anycast address.
Multicast Addresses
An IPv6 multicast address is an identifier for a group of interfaces. An interface can belong to any number of multicast groups. The following table shows the multicast address format.
Table 14-7 Multicast Address Format
8 bits | 4 bits | 4 bits | 112 bits |
11111111 | FLGS | SCOP | Group ID |
11111111 at the start of the address identifies the address as a multicast address. FLGS is a set of four flags: 0,0,0,T.
The high-order 3 flags are reserved and must be initialized to zero.
T=0 - Indicates a permanently assigned (well-known) multicast address, assigned by the global Internet numbering authority.
T=1 - Indicates a non-permanently assigned (transient) multicast address.
SCOP is a 4-bit multicast scope value used to limit the scope of the multicast group. The following table shows the SCOP values.
Table 14-8 SCOP Values
0 | Reserved | 8 | Organization-local scope |
1 | Node-local scope | 9 | (unassigned) |
2 | Link-local scope | A | (unassigned) |
3 | (unassigned) | B | (unassigned) |
4 | (unassigned) | C | (unassigned) |
5 | Site-local scope | D | (unassigned) |
6 | (unassigned) | E | Global scope |
7 | (unassigned) | F | Reserved |
Group ID identifies the multicast group, either permanent or transient, within the given scope.
IPv6 Routing
Routing in IPv6 is almost identical to IPv4 routing under CIDR. The only difference is the addresses are 128-bit IPv6 addresses instead of 32-bit IPv4 addresses. With very straightforward extensions, all of IPv4's routing algorithms (such as OSPF, RIP, IDRP, IS-IS) can be used to route IPv6.
IPv6 also includes simple routing extensions that support powerful new routing capabilities. The following list describes the new routing capabilities:
Provider selection (based on policy, performance, cost, and so on)
Host mobility (route to current location)
Auto-readdressing (route to new address)
You obtain the new routing capability by creating sequences of IPv6 addresses that use the IPv6 routing option. An IPv6 source uses the routing option to list one or more intermediate nodes (or topological group) to be visited on the way to a packet's destination. This function is very similar in function to IPv4's loose source and record route option.
In order to make address sequences a general function, IPv6 hosts are required, in most instances, to reverse routes in a packet that a host receives. The packet must be successfully authenticated by using the IPv6 authentication header. The packet must contain address sequences in order to return the packet to its originator. This technique forces IPv6 host implementations to support the handling and reversal of source routes. The handling and reversal of source routes is the key that enables providers to work with hosts that implement the new features. The new features include provider selection and extended addresses.
IPv6 Neighbor Discovery
IPv6 solves a set of problems that are related to the interaction between nodes that are attached to the same link. IPv6 defines mechanisms for solving each of the following problems.
Router discovery - Hosts locate routers that reside on an attached link.
Prefix discovery - Hosts discover the set of address prefixes that define which destinations are attached to the link (sometimes referred to as on-link). Nodes use prefixes to distinguish destinations that reside on a link from those only reachable through a router.
Parameter discovery - A node learns link parameters, such as the link maximum transmission unit (MTU). A node also learns Internet parameters, such as the hop limit value, to place in outgoing packets.
Address autoconfiguration - Nodes automatically configure an address for an interface.
Address resolution - Nodes determine the link-layer address of a neighbor (an on-link destination) with only the destinations's IP address.
Next-hop determination - An algorithm determines mapping for an IP destination address into the IP address of the neighbor to which traffic for the destination should be sent. The next-hop can be a router or the destination.
Neighbor unreachability detection - Nodes determine that a neighbor is no longer reachable. For neighbors that are used as routers, alternate default routers can be tried. For both routers and hosts, address resolution can be performed again.
Duplicate address detection - A node determines that an address that the node wants to use is not already in use by another node.
Redirect - A router informs a host of a better first-hop node to reach a particular destination.
Neighbor discovery defines five different Internet Control Message Protocol (ICMP) packet types: a pair of router solicitation and router advertisement messages, a pair of neighbor solicitation and neighbor advertisements messages, and a redirect message. The messages serve the following purpose:
Router solicitation - When an interface becomes enabled, hosts can send router solicitations. The solicitations request routers to generate router advertisements immediately, rather than at their next scheduled time.
Router advertisement - Routers advertise their presence, various link parameters, and various Internet parameters. Routers advertise either periodically, or in response to a router solicitation message. Router advertisements contain prefixes that are used for on-link determination or address configuration, a suggested hop limit value, and so on.
Neighbor solicitation - Sent by a node to determine the link-layer address of a neighbor. Also, sent by a node to verify that a neighbor is still reachable by a cached link-layer address. Neighbor solicitations are also used for duplicate address detection.
Neighbor advertisement - A response to a Neighbor Solicitation message, node can also send unsolicited neighbor advertisements to announce a link-layer address change.
Redirect - Used by routers to inform hosts of a better first hop for a destination, or that the destination is on-link.