IPv6 Working Group Charles Perkins
INTERNET DRAFT IBM Corporation
David B. Johnson
Carnegie Mellon University
26 January 1996
Mobility Support in IPv6
<draft-ietf-mobileip-ipv6-00.txt>
Abstract
This document specifies mobility messages that allow transparent
routing of IP datagrams to mobile nodes in the Internet. Each
mobile node is always identified by its home address, regardless of
its current point of attachment to the Internet. While situated
away from its home, a mobile node is also associated with a
care-of address, which provides information about its current
point of attachment to the Internet. The protocol provides for
notifying the mobile node's home agent, and any other interested IPv6
addressable entities, about the care-of address of the mobile node.
When necessary, the home agent sends packets destined for the mobile
node through a tunnel to the care-of address. After arriving at the
end of the tunnel, the packets are then delivered to the mobile node.
Status of This Memo
This document is an Internet-Draft. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas,
and its working groups. Note that other groups may also distribute
working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at
any time. It is inappropriate to use Internet- Drafts as reference
material or to cite them other than as ``work in progress.''
To learn the current status of any Internet-Draft, please check the
``1id-abstracts.txt'' listing contained in the Internet- Drafts
Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
ftp.isi.edu (US West Coast).
Perkins, Johnson Expires 26 July 1996 [Page i]
Internet Draft Mobility Support in IPv6 26 January 1996
1. Introduction
A new version of the Internet Protocol, IPv6, is being developed with
128-bit addresses, which remedies perceived flaws with the existing
version (that is, IPv4). This document specifies messages and a
simple protocol for the operation of mobile computers for IPv6.
Mobile computers are likely to account for a substantial fraction of
the population of the Internet during the lifetime of IPv6.
The development of IPv6 presents a rare opportunity, in that there
is no existing installed base of IPv6 hosts or routers with which
compatibility must be maintained, and all IPv6 nodes may be assumed
to perform the few operations needed to support Internet-wide
mobility. The most important function needed to support mobility
is the reliable and timely notification of a mobile node's current
location those other nodes that need it. The home agent needs this
location information in order to forward intercepted packets from the
home network to the mobile node, and correspondent nodes need this
information in order to send their own packets directly to the mobile
node.
In this document, we specify the way that the mobile node can notify
other nodes about its current whereabouts, using a Destination option
which fits naturally in IPv6. We describe the mechanism by which a
routing header can be used to deliver packets to the mobile node at
its current whereabouts. All IPv6 nodes and routers are assumed to
perform the few operations required for mobility, since doing so adds
little additional overhead. This leads to dramatic simplifications
in the required protocols, compared to the methods required for IPv4.
2. Basic Operation
From the model of operation developed for enabling mobile networking
for IPv4, we borrow the concepts of home network, home address,
home agent, care-of address, and binding. Mobile computers will
have assigned to their interface(s) (at least) two IPv6 addresses
whenever they are roaming away from their home network. One (the
home address) is permanent; the other (the IPv6 link-local address)
is used temporarily. In addition, the mobile node will typically
autoconfigure a globally-routable address at each new point of
attachment [12]. Every IPv6 router supports encapsulation, so every
router is capable of serving as a home agent on the network(s) to
which it is attached.
In brief, using the IPv4 language, we have a basic model of operation
in which a mobile node can always be reached by sending packets
to its home (permanent) address. Assuming the mobile node is not
Perkins, Johnson Expires 26 July 1996 [Page 1]
Internet Draft Mobility Support in IPv6 26 January 1996
present on its home network, packets arriving for it there will be
intercepted by the home agent, and tunneled to a care-of address.
Care-of addresses can be constructed by the mobile node using
the methods of automatic address configuration [12]. If the
mobile node receives router advertisments, it MUST use automatic
address configuration to construct a globally unique, routable
address. This routable address can be used by the mobile node as its
care-of address. After determining its care-of address, a mobile
node must send a binding update containing that care-of address
to the home agent (and any other correspondent nodes that may
have out-of-date bindings in their binding cache). By default,
correspondent nodes send packets to mobile nodes by using routing
headers instead of encapsulation. As detailed in the next section,
correspondent nodes are usually expected to deliver packets directly
to the mobile node's care-of address, so that the home agent is
rarely involved with packet transmission to the mobile node.
It is essential for scalability and minimizing network load that
correspondent nodes be able to learn the care-of address of a mobile
node, and to be able to cache this information for use in sending
future packets to the mobile node's care-of address. By caching the
care-of address of a mobile node, optimal routing of packets can be
achieved between the correspondent node and the mobile node. Routing
packets directly to the mobile node's care-of address also eliminates
congestion at the home agent and thus contributes significantly to
the overall health of the Internet. Moreover, many communications
between the mobile nodes and its correspondent nodes can be carried
out with no assistance from the home agent. Thus, the impact
of failure at the home agent can be drastically reduced; this is
important because many administrative domains will have a single home
agent to serve a particular home network, and thus a single point of
failure for communications to nodes using that home agent. Besides
that, communications between the home agent and a mobile node may
depend on a number of intervening networks; thus, there are many more
ways that packets can fail to reach a mobile node when the home agent
is required as an intermediate node. This would be particularly
relevant on, say, trans-oceanic links between home agent and mobile
node. Caching the binding of a mobile node at the correspondent node
enables communication with the mobile nodes even if the home agent
fails or is difficult to contact over the Internet.
In the typical case when a mobile node has configured its
care-of address at one of its own interfaces, transferring data to
the mobile node means no more work for routers on link at its current
point of attachment, than transferring data to any other node on that
link. This affords another substantial performance improvement in
the typical case.
Perkins, Johnson Expires 26 July 1996 [Page 2]
Internet Draft Mobility Support in IPv6 26 January 1996
3. Terminology
Mobile IPv6 defines these terms:
Binding
The association of a home address with a care-of address, along
with the remaining lifetime of that association.
Care-of Address
The care-of address is the termination point of a tunnel toward
a mobile node that is away from its home network.
Correspondent
A peer with which a mobile node is communicating. The
correspondent may be either mobile or stationary.
Foreign Network
Any network other than the mobile node's Home Network.
Home Address
An IPv6 address that is assigned for an extended period of time
to a mobile node. It remains unchanged regardless of where the
node is attached to the Internet.
Home Agent
A router on a mobile node's home network which tunnels packets
for delivery to the mobile node when it is away from home, and
maintains current location information for the mobile node.
Home Network
A network, possibly virtual, having a network prefix matching
that of a mobile node's home address. Note that standard IP
routing mechanisms will deliver packets destined to a mobile
node's Home Address to the mobile node's Home Network.
Link
A facility or medium over which nodes can communicate at the
link layer. A link underlies the network layer.
Perkins, Johnson Expires 26 July 1996 [Page 3]
Internet Draft Mobility Support in IPv6 26 January 1996
Mobile Node
A host or router that changes its point of attachment from one
network or subnetwork to another. A mobile node may change its
location without losing connectivity and without changing its
IPv6 address.
Node
A host or a router.
Tunnel
The path followed by a packet while it is encapsulated. The
model is that, while it is encapsulated, a packet is routed
to a knowledgeable decapsulating agent, which decapsulates
the packet and then correctly delivers it to its ultimate
destination.
4. Binding Updates
In IPv6, all IPv6 nodes must be capable of caching the care-of
address of mobile nodes with which they want to communicate. This
cached address information can be integrated with the node's
Destination Cache [9]. Binding updates should be considered a
form of routing updates; thus, handled incorrectly, they could
be a source of security problems and routing loops. Therefore,
packets which include binding updates MUST also include an IPv6
authentication header [1]; replay protection is then achieved by use
of the Identification field in the binding update.
4.1. Binding Update Option Format
The Binding Update Option is an option within the Destination
Header [5].
A mobile node uses the Binding Update destination option to notify
another node (e.g., correspondent node or home agent) of its current
care-of address. The binding update should be placed in the IPv6
packet after any routing header, since the binding update should
only be processed by the destination node rather than by each hop
along the path. The binding update is encoded as destination option
type 16 (TBD). By encoding the binding update in this way, it can
be included in any normal data packet or can be sent in a separate
packet containing no data. The binding update contains the mobile
node's care-of address, an identification for the update (to protect
Perkins, Johnson Expires 26 July 1996 [Page 4]
Internet Draft Mobility Support in IPv6 26 January 1996
against attempts to replay it), and a lifetime for the binding.
This option format is adapted from that used in the IPv4 Route
Optimization [7]. Note that the home address MUST be the source
address of the IPv6 packet containing the binding update, and thus is
not required to be located within the data of the destination option.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Option Type | Option Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|A|C|I|E|B| Reserved | Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Care-of Address |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Option Type
8-bit identifier of the type of option. The first three bits
of the option are 000, indicating first that a node receiving
the option may discard the option and still process the rest
of the packet, and second that the option may not be modified
enroute.
Option Length
8-bit unsigned integer. Length of the Option Data field of
this option, in octets.
Acknowledge (A)
The Acknowledge (A) bit is set by a node if it wants a a
Binding Acknowledge message to be returned upon receipt of the
Binding Update Option.
Co-location (C)
The mobile node is itself the agent receiving datagrams at the
care-of address.
Perkins, Johnson Expires 26 July 1996 [Page 5]
Internet Draft Mobility Support in IPv6 26 January 1996
Identification Present (I)
The (I) bit is set by the node sending the Binding Update
option to indicate whether or not the Identification field is
present.
Encapsulation (E)
The (E) bit is set by the mobile node to request that the
receiving node use IPv6-within-IPv6 encapsulation when sending
any future packets to the mobile node's care-of address,
instead of packets containing the care-of address in a routing
header. See subsection 7.
"All-Nodes Multicast" (B)
The (B) bit is set by the mobile node to request that the home
agent encapsulate and send "all-nodes multicast" packets to the
mobile node at its care-of address. The (B) bit must only be
used when sending binding updates to the home agent. Note that
the home agent may be manually configured to send only a subset
of such packets to the mobile node -- for instance, the home
agent may inspect the port number of UDP packets, or the ICMP
packet type, to determine whether or not the packet should be
forwarded to the mobile node.
Reserved
Sent as 0; ignored on reception.
Lifetime
The number of seconds remaining before the binding must be
considered expired. A value of all ones indicates infinity.
A value of zero indicates that the indicated binding (or
route table entry, in the case of a mobile node's previous
router) for the mobile node should be deleted. The lifetime is
typically equal to the remaining lifetime of the mobile node's
binding with its care-of address.
Care-of Address
The current care-of address of the mobile node. When set equal
to the home address of the mobile node, the Binding Update
option instead indicates that any existing binding for the
mobile node should be deleted; no binding for the mobile node
should be created.
Perkins, Johnson Expires 26 July 1996 [Page 6]
Internet Draft Mobility Support in IPv6 26 January 1996
Identification
If present, a 64-bit number used to protect against replay
attacks.
The receiver of this message must be able to determine that the
mobile node is truly the agent which has generated the binding
update, by verifying a subsequent IPv6 authentication header [1]
within the packet.
Extensions to the Binding Update Options format may be included after
the fixed portion of the Binding Update option. The presence of such
extensions will be indicated by the option length field. When the
option length is greater than the size of the fixed fields of the
Binding Update Option, the remainder is interpreted as extensions.
Currently no extensions have been defined.
Perkins, Johnson Expires 26 July 1996 [Page 7]
Internet Draft Mobility Support in IPv6 26 January 1996
5. Sending Binding Updates
After moving away from its home network to a new location (see
subsection 5.1), the mobile node registers its new binding with
its home agent by sending a packet containing a binding update to
its home agent. This binding update MUST have the (A) bit set,
instructing the home agent to send an acknowledgement. If not
already doing so, the home agent must send out onto the Home Network
a proxy Neighbor Advertisment on behalf of the mobile node, with the
Override flag set [9]. This will ensure that other nodes on the home
network are able to send packets to the mobile node by using the
services of the home agent.
In the case when the mobile node is returning to its home network,
the binding update sent to its home agent MUST contain the mobile
node's home address in place of any care-of address. The mobile node
MUST also send out the appropriate Neighbor Advertisment packets with
the Override flag set, so that its neighbors on its home network will
update the relevant information for the mobile node in their Neighbor
Caches. This Neighbor Advertisement packet can be repeated a small
number of times to guard against occasional loss of packets on the
home network.
A binding update may also be included, whenever necessary, in
a normal data packet sent to a correspondent node. For each
correspondent node, information is kept by the mobile node to
determine whether or not the correspondent node has been sent a
fresh binding update since the last time any movement by the mobile
node to a new care-of address has occurred. When a packet is to be
sent to a correspondent node which hasn't been sent a fresh binding
update, the mobile node SHOULD include the update within the packet,
and indicate that the update has been sent. Thus, correspondent
nodes are generally kept updated and can send almost all data packets
directly to the mobile node. Such binding updates are not generally
required to be acknowledged. However, if the mobile node wants to be
sure, an acknowledgment can be requested.
The binding update can also be sent in an otherwise empty packet
whenever the mobile node wishes to update its correspondents. This
is normally done only if the mobile suspects that its home agent is
not operational, too far away, a correspondent node is not sending
the traffic to the proper care-of address, or there is an immediate
need for the correspondent node to obtain the binding. The mobile
node must not send binding updates more often than MAX_UPDATE_RATE to
any correspondent host, since it is not allowed to change its point
of attachment more often than MAX_UPDATE_RATE. A mobile node can
detect that a correspondent node is not sending packets to the proper
care-of address because in that case the packets arrive at the mobile
Perkins, Johnson Expires 26 July 1996 [Page 8]
Internet Draft Mobility Support in IPv6 26 January 1996
node's care-of address by encapsulation instead by inclusion in a
routing header within the packet.
The mobile node may choose to keep its location private from certain
correspondent nodes. The mobile node need not send binding updates
to those correspondents. No other IPv6 nodes are authorized to send
binding updates on behalf of the mobile node.
When sending binding updates, a mobile node uses the Identification
field of the destination option, in conjunction with the IPv6
Authentication Header, to protect against replays. One style
of replay protection involves the use of a timestamp as the
Identification data. The result would be that the mobile node and
the target of its binding update would have to roughly agree on
the current time, and that stale binding updates would have to be
rejected. The exact mechanisms by which the Identification field is
created and interpreted by the sending and receiving parties depends
on the Security Association existing between them. This subject is
discussed thoroughly in the mobile-IPv4 specification [6].
5.1. Detecting movement
A mobile node may detect that it has changed its point of attachment
to the Internet by several means. The usual method involves
reception of router advertisements from previously undetected
routers. This may also be augmented by a determination that a
previously accessible router is no longer accessible (using Neighbor
Unreachability Detection (NUD) as specified in [9]).
It is also possible that indications about changes of point of
attachment can be obtained from lower-level protocol or device driver
software.
6. Binding Acknowledgement Message
A Binding Acknowledge message is used to acknowledge acceptance
of a Binding Update (section 4.1) option, if that option has the
Acknowledge (A) bit set. Binding Acknowledgement messages should be
sent addressed to the mobile node originating the Binding Update,
using if necessary a routing header containing the care-of address
given in the Binding Update.
Since the Binding Acknowledgement is mostly used by home agents
and is not associated with any transmission of data packets, it is
specified here as an informational ICMP message to the mobile node.
However, all of the error conditions specified in the Registration
Perkins, Johnson Expires 26 July 1996 [Page 9]
Internet Draft Mobility Support in IPv6 26 January 1996
Reply message of the IPv4 mobile-IP protocol may apply, so the
general format and codes of that message are adapted here to fit the
ICMP packet layout for IPv6 [4].
The acknowledgement message contains the necessary codes to inform
the mobile node about the status of its binding. Additionally, the
home agent MAY shorten the lifetime to be smaller than indicated
in the original binding update. When the lifetime of the reply is
greater than what was contained in the binding update, the excess
time MUST be ignored. When the lifetime of the reply is smaller than
the original request, another binding update SHOULD be sent before
the lifetime expires.
If a mobile node fails to receive an acceptable Binding
Acknowledgement within INITIAL_BINDACK_TIMEOUT seconds after
transmitting the binding update, it must retransmit the binding
update with the same identification, and begin an exponential
back-off process of retransmission. The time-out period is doubled
upon each retransmission until the target of the binding update
sends an acknowledgement, or the time-out period reaches the value
MAX_BINDACK_TIMEOUT.
The ICMP Binding Acknowledgment packet has the following format:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type 192 (TBD)
Code One of the following codes:
0 service will be provided
128 service denied: reason unspecified
129 service denied: administratively prohibited
130 service denied: insufficient resources
133 service denied: identification mismatch
134 service denied: poorly formed request
136 service denied: unknown home agent address
Perkins, Johnson Expires 26 July 1996 [Page 10]
Internet Draft Mobility Support in IPv6 26 January 1996
Lifetime The seconds remaining before the binding is
considered expired. A value of zero indicates
removal of a binding. A value of all ones
indicates infinity.
Identification The acknowledgment identification is derived
from the binding update message, for use by the
mobile node in matching the acknowledgment with
an outstanding Binding Update.
Up-to-date values of the Code field are to be specified in the most
recent "Assigned Numbers" [10].
7. Delivering Packets to a Mobile Node
If a routing header is not present, the routing infrastructure will
route packets addressed to a mobile node to its home network. Since
the mobile node's location is known on the home network (namely, by
the home agent), packets can be addressed to the mobile node and
intercepted by the home agent without the sender knowing that the
node is mobile.
Correspondent nodes that have accepted a binding update for a
mobile node, can send packets directly to that mobile node's current
care-of address by including a routing header in them. To use
the routing header for delivery of packets to a mobile node, a
correspondent host just specifies the care-of address as the (last)
intermediate routing point and the mobile node as the destination.
When the packet arrives at the care-of address, normal processing of
the routing header will ensure delivery to the mobile node. IPv6
routing headers do not carry the semantics which require reversal of
source routes.
Home agents cannot use routing headers to deliver packets to the
mobile node, because they can't modify the packet and add to it in
flight. They must always use encapsulation [3] for this purpose
(section 8).
If a packet to the mobile node is encapsulated, it uses the care-of
address as the destination address in the outer IPv6 header. Then,
when the the encapsulated packet arrives at the care-of address,
the encapsulation is stripped away and the packet delivered (if
possible) to the mobile node. Of course, if the mobile node is
itself receiving packets at the care-of address, the delivery path is
trivial.
Perkins, Johnson Expires 26 July 1996 [Page 11]
Internet Draft Mobility Support in IPv6 26 January 1996
If a correspondent node receives ICMP Host Unreachable or Network
Unreachable after sending a packet to a mobile node using its cached
care-of address, it SHOULD delete the cache entry until information
about the mobile node's current care-of address becomes available
(via a binding update).
7.1. Smooth Handoffs
If a mobile node obtains a new care-of address from an stateful
address allocation authority (e.g, [2]), it should soon explicitly
deallocate the previous care-of address. For smooth handoffs, a
mobile client may still accept packets at both addresses for a short
time after configuring its newly allocated IPv6 address. If the
previous address is allocated by such a stateful address server, then
such a mobile client may not wish to release the address immediately
upon acquisition of a new care-of address. The stateful address
server will allow mobile clients to acquire new addresses while still
using previously allocated addresses.
Routers must (just as any IPv6 node) be able to accept authenticated
binding updates for the mobile node and, subsequently, act on the
cached binding by encapsulating packets for intermediate delivery
to the care-of address specified in the binding. In cases where
a mobile node moves from one care-of address to another with no
delay, but without being able to maintain simultaneous connectivity
at both care-of addresses, it SHOULD send a binding update to the
router servicing the previous care-of address, so that packets
for the mobile node can be delivered to the new care-of address
immediately. For example, a mobile node may move from one radio link
to another on a different channel, and be unable to monitor packets
delivered over two channels at once. In this example, the mobile
node should send a binding update to the entity delivering packets
over the previous radio channel so that those packets will instead be
delivered via a new care-of address. This binding update associates
the mobile node's previous care-of address to the mobile node's new
care-of address, and is authenticated using the IPv6 Authentication
Header with whatever security association the previous router had
with the mobile node's previous care-of address.
For this purpose, the mobile node must have some security association
with the entity serving the previous care-of address. In the typical
case specified within this document, a mobile node has obtained a
care-of address via autoconfiguration and is receiving tunneled
packets at that care-of address. When the mobile node moves, routers
serving the link at its previous point of attachment may find that
the mobile node's previous care-of address has become inaccessible.
Perkins, Johnson Expires 26 July 1996 [Page 12]
Internet Draft Mobility Support in IPv6 26 January 1996
Note that the previous router does not necessarily know anything
about the mobile node's home address as part of this sequence of
events; the routers may only know about things associated with the
(e.g., autoconfigured) care-of addresses used by the mobile node at
the previous and current points of attachment.
Since only one binding update is expected to be sent to the previous
router, the mobile node MAY elect to omit the Identification field.
If the mobile node omits the Identification field from the binding
update, there is no replay protection and the security association
with the previous router can only be used one time. In this case,
the router should only accept the binding update if the mobile node's
care-of address is still present in its Neighbor Cache. In this
situation, the mobile node SHOULD request an acknowledgment for the
binding update. Thus, the previous router should keep the security
association around for the mobile node's previous care-of address in
case the mobile node loses the acknowledgment and retransmits the
binding update (with the same new care-of address).
The previous router then operates the same way as when the mobile
node's home agent receives a binding update from the mobile node.
That is, the previous router must inspect packets, and redirect the
packets destined for the care-of address indicated in the binding
update. Packets which need to be redirected to the mobile node's new
care-of address are encapsulated and sent to the new care-of address.
In fact, the previous router is temporarily acting as a home agent
for the mobile node's previous care-of address. In particular,
the previous router does not use any routing header to effect the
redirected delivery. Moreover, the previous router should issue
Neighbor Advertisement packets for the previous care-of address, so
that on-link neighbors will send packets destined to the mobile node
to the previous router for encapsulation and further delivery to the
new care-of address.
Once the mobile node receives the encapsulated packet, it can then
typically follow the routing header contained in the decapsulated
packet and deliver the final payload to internal protocol handling
using its IPv6 home address. The mobile node must ensure that a
binding update is sent to each source of such packets so that the
previous router is relieved of its duties at the earliest possible
moment.
8. Home Agent Considerations
When the home agent, or any other routing agent, receives a packet
destined to a mobile node for which it has a binding cached,
it encapsulates the packet for delivery to the mobile node's
Perkins, Johnson Expires 26 July 1996 [Page 13]
Internet Draft Mobility Support in IPv6 26 January 1996
care-of address. The agent cannot insert a routing header, or
modify the destination address of the mobile node, because of IPv6
authentication mechanisms [1]. Moreover, the home agent is expected
to be involved only rarely with the transmission of data to the
mobile node, because the mobile node will send binding updates as
soon as possible to its correspondent hosts.
It is useful to be able to send a packet to a mobile node's home
agent without explicitly knowing the home agent's address. For
example, a mobile node must communicate with its home agent to
send it a binding update; but since the mobile node was last at
home, it may have become necessary to replace the node serving as
its home agent due to the failure of the original node or due to
reconfiguration of the home network. It thus may not always be
possible or convenient for a mobile node to know the exact address of
its own home agent.
Mobile nodes can dynamically discover the address of a home agent
by sending a binding update to the anycast address on their home
network. Each router on the home network which receives this binding
update MUST reject the binding update and include its address in the
Binding Acknowledgement packet indicating the rejection. The mobile
node is assumed to know a proper anycast address on its home network
before making use of this method for determining a particular home
agent's address.
Other routers on the home network must be instructed to forward
packets to the current router which is serving as the mobile node's
home agent. This can be done using the same proxy mechanisms
already made available in Neighbor Discovery. The current home agent
multicasts the equivalent of a Proxy ARP onto the home network, and
subsequently the other routers on the home network will forward
packets destined to the mobile node to the particular router which is
serving as the home agent for that mobile node.
8.1. Renumbering the Home Network
Neighbor Discovery [9] specifies a mechanism by which all nodes on a
network can gracefully autoconfigure new addresses, say by combining
a new routing prefix with their existing MAC address. As currently
specified, this mechanism works when the nodes are on the same link
as the router issuing the necessary multicast packets to advertise
the new routing prefix(es) appropriate for the link.
However, for mobile nodes not currently attached to the same link
as their home agent, special care must be taken to allow the mobile
nodes to renumber gracefully. The most direct method of insuring
Perkins, Johnson Expires 26 July 1996 [Page 14]
Internet Draft Mobility Support in IPv6 26 January 1996
this is for the home agent to tunnel the multicast packets to the
care-of address of the mobile node as necessary. The rules for this
are as follows:
- A mobile node assumes that its routing prefix has not changes
unless it receives authenticated router advertisement messages
from its home agent that the prefix has changed.
- When the mobile node is at home, the home agent does not tunnel
router advertisements to it.
- When a home network prefix changes, the home agent tunnels router
advertisement packets to each mobile node which is currently
away from home and using a home address with the affected
routing prefix. Such tunneled router advertisements MUST be
authenticated [1].
- When a mobile node receives a tunneled router advertisement
containing a new routing prefix, it must perform the standard
autoconfiguration operation to create its new address
- When a mobile node returns to its home network, it must again
perform Duplicate Address Detection at the earliest possible
moment after it has registered with its home agent.
- A mobile node may send a router solicitation to its home agent at
any time, within the constraints imposed by rate control in the
Neighbor Discovery specification [9]
Note that a mobile node is guaranteed that its home address is unique
and used by no other mobile node. However, in some circumstances it
may nevertheless be true that other nodes on its home network form
the same link-local address as the mobile node during the time when
the mobile node is away from its home network. Thus, there is the
requirement above that the mobile node perform Duplicate Address
Detection when it returns again to its home network.
9. Multicast Packet Routing
A mobile node that is connected to its home network functions just
like any other (stationary) host or router. Thus, when it is at
home, a mobile node functions identically to other multicast senders
and receivers. This section therefore describes the behavior of a
mobile node that is not on its home network.
In order receive multicasts, a mobile node must join the multicast
group. Mobile nodes MAY join multicast groups in order to receive
Perkins, Johnson Expires 26 July 1996 [Page 15]
Internet Draft Mobility Support in IPv6 26 January 1996
transmissions in one of two ways. First, they MAY join the group
via a (local) multicast router on the visited subnet. This option
assumes that there is a multicast router present on the visited
subnet. The mobile node SHOULD use its dynamically acquired care-of
address (if it has acquired one) as the source IP address of its
multicast group membership control message packets. Otherwise, it
MAY use its home address.
Alternatively, a mobile node which wishes to receive multicasts can
join groups via a bi-directional tunnel to its home agent, assuming
that its home agent is a multicast router. The mobile node tunnels
the appropriate multicast group membership control packets to its
home agent and the home agent forwards multicast packets down the
tunnel to the mobile node. The home agent must tunnel the packet
directly to the mobile node's dynamically acquired care-of address,
or, the packet must be tunneled first to the mobile node's home
address and then recursively tunneled to the mobile node's care-of
address.
A mobile node which wishes to send packets to a multicast group
also has two options: (1) send directly on the visited network; or
(2) send via a tunnel to its home agent. Because multicast routing
in general depends upon the IP source address, a mobile node which
sends multicast packets directly on the visited network MUST use
a dynamically acquired care-of address as the IP source address.
Similarly, a mobile node which tunnels a multicast packet to its home
agent MUST use its home address as the IP source address of both the
(inner) multicast packet and the (outer) encapsulating packet. This
second option assumes that the home agent is a multicast router.
10. Compatibility with ICMP
When sending a packet to a mobile node, it is important to correctly
return to the original sender any ICMP error messages generated by
this packet. Since in most cases such packets use a routing header
containing the care-of address, this is usually not a problem.
However, when a packet encapsulated at the home agent encounters such
an error condition, ICMP error messages are returned to the sender as
specified in [3]. ICMP for IP version 6 has been specified to return
as much of the original packet as will fit in the ICMP error message
without the ICMP packet exceeding 576 octets [4]. This size should
be sufficient for correctly returning ICMP error messages backwards
along the tunnel.
Perkins, Johnson Expires 26 July 1996 [Page 16]
Internet Draft Mobility Support in IPv6 26 January 1996
11. Protocol Requirements
This section summarizes the requirements introduced by the above
protocol operations for IPv6 nodes and for routers.
11.1. Requirements for IPv6 Nodes
Every IPv6 node must be able to interpret Binding Update packets.
Every IPv6 node must be able to maintain Security Associations for
use in IPv6 Authentication Headers [1] which are used to authenticate
Binding Updates and protect against replay attacks. Every IPv6
node must be able to associate care-of addresses with IPv6 target
addresses, and use routing headers to deliver packets to IPv6 target
addresses (e.g., mobile node addresses) using the care-of address as
an intermediate router address.
11.2. Requirements for IPv6 Mobile Nodes
Every IPv6 mobile node must be able to perform IPv6 decapsulation.
Every mobile node must be able to send Binding Updates as outlined
above, and receive Binding Acknowledgements from routers. Every IPv6
mobile node must keep track of which other IPv6 nodes may need to
receive Binding Updates as a result of recent movement by the mobile
node. In particular, every IPv6 mobile node must be able to send
Binding Updates when a packet is received that does not use a routing
header to specify its care-of address.
11.3. Requirements for IPv6 Routers
Every IPv6 router must perform the mobility-related functions listed
in the previous subsection (11.1) for IPv6 nodes, but not necessarily
the functions for mobile nodes.
Every IPv6 router must be able to issue Binding Acknowledgements in
response to Binding Updates received and accepted from a mobile node.
Every IPv6 router must be able to encapsulate packets in order to
tunnel them to a care-of address known for a mobile node from which
it has received a binding update. Every IPv6 router must be able to
maintain security associations for the mobile nodes from which it
will accept binding updates.
Perkins, Johnson Expires 26 July 1996 [Page 17]
Internet Draft Mobility Support in IPv6 26 January 1996
A. Constants
INITIAL_BINDACK_TIMEOUT == 1 second
MAX_BINDACK_TIMEOUT == 256 seconds
MAX_UPDATE_RATE == 1 per second
B. Open issues
B.1. Using Encapsulation Protocols
Should alternative encapsulation techniques be defined for use with
these protocols? Should a minimal encapsulation be defined and
specified as the default?
There is only one possible advantage afforded by the use of
encapsulation, compared to the use of the existing routing header
defined for IPv6, and it only occurs when a mobile node uses a
care-of address associated with a router attached to the same link as
the mobile node's point of attachment as in B.3. If a mobile node
has a link to a router over a low speed wireless link, and the router
receives encapsulated packets for the mobile node, the encapsulation
is stripped away before final delivery is made to the mobile node.
In that case, fewer bytes are transmitted over the low-speed link,
than would be the case for a normally processed routing header
specifying the care-of address. Perhaps this would be better taken
care of by defining something like TCP header compression over the
link from the router to the mobile node. Such a compression scheme
would eliminate the need to include the routing header information in
every packet delivered over a slow-speed connection between a router
and a mobile node.
Another alternative would be to provide another type of routing
header (routing type == 2, say) which would allow an intermediate
node to delete itself from the list instead of just rearranging the
list. This would completely eliminate the need for encapsulation for
normal datagrams from correspondent host to mobile node. However,
having routers remove addresses to shrink the packet size may be a
slow operation (relatively speaking).
B.2. Session keys with local routers
In the IPv4 route optimization proposal, a mechanism is outlined
whereby a session key can be established between foreign agents
and mobile clients, without requiring any pre-established security
Perkins, Johnson Expires 26 July 1996 [Page 18]
Internet Draft Mobility Support in IPv6 26 January 1996
relationship between them. A similar mechanism should be defined for
IPv6, to avoid the need for a possibly time-consuming negotiation
between routers and mobile nodes for the purpose of obtaining the
session key, which under many circumstances would only be used once.
This mechanism, if needed, can be specified completely outside the
mobile-IPv6 protocol and would amount to a way of creating a dynamic
SPI between two nodes which do not share a trust relationship, but
which need to agree on a key for some particular purpose (here,
allowing the future authentication of a binding update). Hopefully,
Photuris [8] will allow this function to be performed appropriately
for mobile nodes, say by a Diffie-Hellman key exchange.
B.3. Local Router Considerations
In previous versions of this specification, routers local to the
current point of attachment of the mobile node ("local routers")
were expected to offer services to mobile nodes. That is still
quite feasible, and requires only that the routers support the
decapsulation procedure required to extract the packet for final
delivery to the mobile node. If every router supports decapsulation
(in addition to the operations required from every IPv6 router and
IPv6 node), then addresses formed using any prefix advertised by
the router could be used as a care-of address except the router's
link-local address. Enabling this style of care-of address
acquisition will likely require some straightforward enhancements
to the IPv6 Neighbor Discovery packet formats. In particular, a
Router Advertisement should probably define another per-prefix bit
to specify whether the prefix is available to the mobile nodes for
constructing a care-of address. For stateful address configuration,
an option could be defined to allow the stateful server to notify a
mobile node of a legitimate care-of address appropriate for use at
the new point of attachment.
Many other operations, related to registration of the mobile node in
a new service area, are likely to become important as mobile nodes
become more prevalent. For instance, it may be required to:
- authenticate the identity of mobile clients
- charge for connection services
- produce or share a session key for use by new mobile clients
(say, for encryption)
- negotiate a compression algorithm
- manage the resources of router's communications devices
Perkins, Johnson Expires 26 July 1996 [Page 19]
Internet Draft Mobility Support in IPv6 26 January 1996
B.4. Source Address Filtering by Firewalls
The current specification does nothing to permit mobile nodes to
send their packets through firewalls which filter out packets with
the "wrong" source IPv6 addresses in the IPv6 packet header. The
mobile node's home address may be unlikely to fall within the ranges
required to satisfy the firewall's criteria for further delivery.
This subject needs serious discussion soon. As indicated by
recent discussion, such firewalls are unlikely to disappear. Any
standardized solution [11] to the firewall problem based on hiding
the non-local source address outside the source addres field
of the IPv6 header is likely to fail. Any vendor or facilities
administrator wanting to filter based on the address in the IPv6
source address field would also quickly begin filtering on hidden
source addresses.
C. Acknowledgments
Thanks to Thomas Narten for contributing valuable discussion and
reviewing this draft, as well as helping to shape some recent changes
relevant to the operation of Neighbor Discovery.
Perkins, Johnson Expires 26 July 1996 [Page 20]
Internet Draft Mobility Support in IPv6 26 January 1996
References
[1] R. Atkinson. IP Authentication Header. RFC 1826, August 1995.
[2] J. Bound. Dynamic Host Configuration Protocol for IPv6.
draft-ietf-dhc-dhcpv6-03.txt -- work in progress, November 1995.
[3] A. Conta and S. Deering. Generic Packet Tunneling in IPv6.
draft-ietf-ipngwg-ipv6-tunnel-00.txt - work in progress,
November 1995.
[4] A. Conta and S. Deering. Internet Control Message Protocol
(ICMPv6) for the Internet Protocol Version 6 (IPv6). RFC 1885,
December 1995.
[5] S. Deering and R. Hinden. Internet Protocol, Version 6 (IPv6)
Specification. RFC 1883, December 1995.
[6] IETF Mobile-IP Working Group. IPv4 Mobility Support.
ietf-draft-mobileip-protocol-12.txt - work in progress,
September 1995.
[7] David B. Johnson and Charles E. Perkins. Route Optimization
in Mobile-IP. draft-ietf-mobileip-optim-03.txt -- work in
progress, November 1995.
[8] P. Karn and B. Simpson. draft-ietf-ipsec-photuris-08.txt.
Internet Draft -- work in progress, November 1995.
[9] T. Narten, E. Nordmark, and W. Simpson. IPv6 Neighbor
Discovery. draft-ietf-ipngwg-discovery-03.txt -- work in
progress, November 1995.
[10] J. Reynolds and J. Postel. Assigned Numbers. RFC 1700, October
1994.
[11] Fumio Teraoka. draft-teraoka-ipv6-mobility-sup-02.txt.
Internet Draft -- work in progress, January 1996.
[12] S. Thomson and T. Narten. IPv6 Stateless Address
Autoconfiguration. draft-ietf-addrconf-ipv6-auto-06.txt
- work in progress, November 1995.
Perkins, Johnson Expires 26 July 1996 [Page 21]
Internet Draft Mobility Support in IPv6 26 January 1996
Authors' Addresses
Charles Perkins
Room J1-A25
T. J. Watson Research Center
IBM Corporation
30 Saw Mill River Rd.
Hawthorne, NY 10532
Work: +1 914 789-7350
Fax: +1 914 784-7007
E-mail: perk@watson.ibm.com
David B. Johnson
Computer Science Department
Carnegie Mellon University
5000 Forbes Avenue
Pittsburgh, PA 15213-3891
Work: +1 412 268-7399
Fax: +1 412 268-5576
E-mail: dbj@cs.cmu.edu
Perkins, Johnson Expires 26 July 1996 [Page 22]