IPv6 mobility allows an IPv6 node to be mobile—to arbitrarily change its location on the IPv6 Internet—and still maintain existing connections. When an IPv6 node changes its location, it might also change its link. When an IPv6 node changes its link, its IPv6 address must also change in order to maintain reachability. There are mechanisms to allow for the change in addresses when moving to a different link, such as stateful and stateless address autoconfiguration for IPv6. However, these mechanisms ungracefully terminate all the existing connections of the mobile node that are using the address assigned when it was on the previous link.
The key benefit of IPv6 mobility is that, even though the mobile node is changing locations and addresses, the existing connections through which the mobile node is communicating are maintained. Connection maintenance for mobile nodes is not done by modifying connection-oriented protocols such as TCP, but by handling the change of addresses at the Internet layer. Transport-layer protocols are completely unaware that the address of the mobile node has changed. A connection is established with a specific address assigned to the mobile node and remains connected no matter how many times the mobile node changes its location and address.
IPv6 mobility consists of the following components, as shown in Figure 12-1.
Figure 12-1. Components of IPv6 mobility
The home link is the link that is assigned the home subnet prefix. The mobile node uses the home subnet prefix to create a home address.
A home address is an address assigned to the mobile node when it is attached to the home link and through which the mobile node is always reachable, regardless of its location on the IPv6 Internet. Packets addressed to addresses matching the home subnet prefix are delivered to the home link using normal IPv6 routing processes. If the mobile node is attached to the home link, IPv6 mobility processes are not used and communication occurs normally. If the mobile node is away from home (not attached to the home link), IPv6 mobility processes are used to either deliver or tunnel traffic addressed to the mobile node's home address to its current location on the IPv6 Internet. Because the mobile node is always assigned the home address, it always has a virtual connection to the home link. This relationship is shown in Figure 12-1 as the Virtual Mobile Node.
The home agent is a router on the home link that maintains an awareness of the mobile nodes of its home link that are away from home and the addresses that they are currently using. If the mobile node is on the home link, the home agent acts as an IPv6 router, forwarding packets addressed to the mobile node. If the mobile node is away from home, the home agent tunnels data sent to the mobile node's home address to the mobile node's current location on the IPv6 Internet.
A mobile node is an IPv6 node that can change links, and therefore addresses, and maintain reachability using its home address. A mobile node has awareness of its home address and the global address of its current link address, and indicates its home address/current link address mapping to the home agent and IPv6 nodes with which it is communicating.
A foreign link is a link that is not the mobile node's home link. A foreign link is assigned a foreign subnet prefix.
A care-of address is an address used by a mobile node while it is attached to a foreign link. The care-of address is a combination of the foreign subnet prefix and an interface ID determined by the mobile node. A mobile node can be assigned multiple care-of addresses; however, only one care-of address is registered as the primary care-of address with the mobile node's home agent. The association of a care-of address with a home address for a mobile node is known as a binding. Correspondent nodes and home agents keep information on bindings in a binding cache.
A correspondent node is an IPv6 node that is capable of communicating with a mobile node while it is away from home. A correspondent node can also be a mobile node.
The drawings in this chapter assume that the common IPv6 infrastructure is the IPv6 Internet. However, all of the IPv6 mobility components, messages, and processes also work if the IPv6 nodes are separated by an IPv4 infrastructure (such as the Internet) and are using a coexistence technology (such as 6to4) to achieve IPv6 connectivity.
To achieve Application layer transparency for the home address while the mobile node is assigned a care-of address, the following is used:
For IPv6 nodes, there are the following levels of correspondent node support:
If an IPv6 node has no correspondent node support, then it will be unable to communicate with mobile nodes that are away from home. Packets sent by a mobile node that is away from home always contain a Destination Options header with the Home Address option. The Home Address option uses the Option Type of 201. For this option type, the two high-order bits are set to 11 (binary), which means that if the receiving host does not recognize the option, then it sends back an ICMPv6 Parameter Problem-Unrecognized IPv6 Option Encountered message to the sender and discards the packet. Therefore, a node that has no correspondent node support does not recognize the Home Address option and never receives the packets sent by a mobile node that is away from home.
An IPv6 node that has minimal correspondent node support recognizes the Home Address option in the Destination Options header of received packets. However, packets sent by the correspondent node to the mobile node that is away from home are always intercepted by the home agent, who then tunnels the packets to the mobile node. The result is inefficient communication for packets sent by the correspondent node to the mobile node.
An IPv6 node that has full correspondent node support recognizes the Home Address and Binding Update options in the Destination Options header, sends the Binding Acknowledgement and Binding Request options as needed, includes a Routing header in packets sent to mobile nodes that are away from home, and maintains a binding cache that maps the home address to the care-of address of mobile nodes that are away from home. The Binding Update, Binding Acknowledgment, and Binding Request options are discussed later in this chapter.
The IPv6 protocol for Windows XP and the Windows .NET Server 2003 family supports full correspondent node functionality, with the exception of sending binding requests. The IPv6 protocol for Windows XP and the Windows .NET Server 2003 family does not support mobile node or home agent functionality.