summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc3775.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc3775.txt')
-rw-r--r--doc/rfc/rfc3775.txt9243
1 files changed, 9243 insertions, 0 deletions
diff --git a/doc/rfc/rfc3775.txt b/doc/rfc/rfc3775.txt
new file mode 100644
index 0000000..cd207f7
--- /dev/null
+++ b/doc/rfc/rfc3775.txt
@@ -0,0 +1,9243 @@
+
+
+
+
+
+
+Network Working Group D. Johnson
+Request for Comments: 3775 Rice University
+Category: Standards Track C. Perkins
+ Nokia Research Center
+ J. Arkko
+ Ericsson
+ June 2004
+
+
+ Mobility Support in IPv6
+
+Status of this Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (2004).
+
+Abstract
+
+ This document specifies a protocol which allows nodes to remain
+ reachable while moving around in the IPv6 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 the mobile node's current location. IPv6
+ packets addressed to a mobile node's home address are transparently
+ routed to its care-of address. The protocol enables IPv6 nodes to
+ cache the binding of a mobile node's home address with its care-of
+ address, and to then send any packets destined for the mobile node
+ directly to it at this care-of address. To support this operation,
+ Mobile IPv6 defines a new IPv6 protocol and a new destination option.
+ All IPv6 nodes, whether mobile or stationary, can communicate with
+ mobile nodes.
+
+
+
+
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 1]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+Table of Contents
+
+ 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 5
+ 2. Comparison with Mobile IP for IPv4 . . . . . . . . . . . . 6
+ 3. Terminology. . . . . . . . . . . . . . . . . . . . . . . . 7
+ 3.1. General Terms . . . . . . . . . . . . . . . . . . . 8
+ 3.2. Mobile IPv6 Terms . . . . . . . . . . . . . . . . . 10
+ 4. Overview of Mobile IPv6. . . . . . . . . . . . . . . . . . 13
+ 4.1. Basic Operation . . . . . . . . . . . . . . . . . . 13
+ 4.2. New IPv6 Protocol . . . . . . . . . . . . . . . . . 15
+ 4.3. New IPv6 Destination Option . . . . . . . . . . . . 17
+ 4.4. New IPv6 ICMP Messages. . . . . . . . . . . . . . . 17
+ 4.5. Conceptual Data Structure Terminology . . . . . . . 17
+ 4.6. Site-Local Addressability . . . . . . . . . . . . . 18
+ 5. Overview of Mobile IPv6 Security . . . . . . . . . . . . . 18
+ 5.1. Binding Updates to Home Agents. . . . . . . . . . . 18
+ 5.2. Binding Updates to Correspondent Nodes. . . . . . . 20
+ 5.2.1. Node Keys . . . . . . . . . . . . . . . . . 20
+ 5.2.2. Nonces. . . . . . . . . . . . . . . . . . . 20
+ 5.2.3. Cookies and Tokens. . . . . . . . . . . . . 21
+ 5.2.4. Cryptographic Functions . . . . . . . . . . 22
+ 5.2.5. Return Routability Procedure. . . . . . . . 22
+ 5.2.6. Authorizing Binding Management Messages . . 27
+ 5.2.7. Updating Node Keys and Nonces . . . . . . . 29
+ 5.2.8. Preventing Replay Attacks . . . . . . . . . 30
+ 5.3. Dynamic Home Agent Address Discovery. . . . . . . . 30
+ 5.4. Mobile Prefix Discovery . . . . . . . . . . . . . . 30
+ 5.5. Payload Packets . . . . . . . . . . . . . . . . . . 30
+ 6. New IPv6 Protocol, Message Types, and Destination Option . 31
+ 6.1. Mobility Header . . . . . . . . . . . . . . . . . . 31
+ 6.1.1. Format. . . . . . . . . . . . . . . . . . . 32
+ 6.1.2. Binding Refresh Request Message . . . . . . 34
+ 6.1.3. Home Test Init Message. . . . . . . . . . . 35
+ 6.1.4. Care-of Test Init Message . . . . . . . . . 36
+ 6.1.5. Home Test Message . . . . . . . . . . . . . 37
+ 6.1.6. Care-of Test Message. . . . . . . . . . . . 38
+ 6.1.7. Binding Update Message. . . . . . . . . . . 39
+ 6.1.8. Binding Acknowledgement Message . . . . . . 42
+ 6.1.9. Binding Error Message . . . . . . . . . . . 44
+ 6.2. Mobility Options. . . . . . . . . . . . . . . . . . 46
+ 6.2.1. Format. . . . . . . . . . . . . . . . . . . 46
+ 6.2.2. Pad1. . . . . . . . . . . . . . . . . . . . 47
+ 6.2.3. PadN. . . . . . . . . . . . . . . . . . . . 48
+ 6.2.4. Binding Refresh Advice. . . . . . . . . . . 48
+ 6.2.5. Alternate Care-of Address . . . . . . . . . 49
+ 6.2.6. Nonce Indices . . . . . . . . . . . . . . . 49
+ 6.2.7. Binding Authorization Data. . . . . . . . . 50
+ 6.3. Home Address Option . . . . . . . . . . . . . . . . 51
+
+
+
+Johnson, et al. Standard Track [Page 2]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ 6.4. Type 2 Routing Header . . . . . . . . . . . . . . . 53
+ 6.4.1. Format. . . . . . . . . . . . . . . . . . . 54
+ 6.5. ICMP Home Agent Address Discovery Request Message . 55
+ 6.6. ICMP Home Agent Address Discovery Reply Message . . 56
+ 6.7. ICMP Mobile Prefix Solicitation Message Format. . . 57
+ 6.8. ICMP Mobile Prefix Advertisement Message Format . . 59
+ 7. Modifications to IPv6 Neighbor Discovery . . . . . . . . . 61
+ 7.1. Modified Router Advertisement Message Format. . . . 61
+ 7.2. Modified Prefix Information Option Format . . . . . 62
+ 7.3. New Advertisement Interval Option Format. . . . . . 64
+ 7.4. New Home Agent Information Option Format. . . . . . 65
+ 7.5. Changes to Sending Router Advertisements. . . . . . 67
+ 8. Requirements for Types of IPv6 Nodes . . . . . . . . . . . 69
+ 8.1. All IPv6 Nodes. . . . . . . . . . . . . . . . . . . 69
+ 8.2. IPv6 Nodes with Support for Route Optimization. . . 69
+ 8.3. All IPv6 Routers. . . . . . . . . . . . . . . . . . 71
+ 8.4. IPv6 Home Agents. . . . . . . . . . . . . . . . . . 71
+ 8.5. IPv6 Mobile Nodes . . . . . . . . . . . . . . . . . 73
+ 9. Correspondent Node Operation . . . . . . . . . . . . . . . 74
+ 9.1. Conceptual Data Structures. . . . . . . . . . . . . 74
+ 9.2. Processing Mobility Headers . . . . . . . . . . . . 75
+ 9.3. Packet Processing . . . . . . . . . . . . . . . . . 76
+ 9.3.1. Receiving Packets with Home Address Option. 76
+ 9.3.2. Sending Packets to a Mobile Node. . . . . . 77
+ 9.3.3. Sending Binding Error Messages. . . . . . . 78
+ 9.3.4. Receiving ICMP Error Messages . . . . . . . 79
+ 9.4. Return Routability Procedure. . . . . . . . . . . . 79
+ 9.4.1. Receiving Home Test Init Messages . . . . . 80
+ 9.4.2. Receiving Care-of Test Init Messages. . . . 80
+ 9.4.3. Sending Home Test Messages. . . . . . . . . 80
+ 9.4.4. Sending Care-of Test Messages . . . . . . . 81
+ 9.5 Processing Bindings . . . . . . . . . . . . . . . . 81
+ 9.5.1. Receiving Binding Updates . . . . . . . . . 81
+ 9.5.2. Requests to Cache a Binding . . . . . . . . 84
+ 9.5.3. Requests to Delete a Binding. . . . . . . . 84
+ 9.5.4. Sending Binding Acknowledgements. . . . . . 85
+ 9.5.5. Sending Binding Refresh Requests. . . . . . 86
+ 9.6. Cache Replacement Policy. . . . . . . . . . . . . . 86
+ 10. Home Agent Operation . . . . . . . . . . . . . . . . . . . 87
+ 10.1. Conceptual Data Structures. . . . . . . . . . . . . 87
+ 10.2. Processing Mobility Headers . . . . . . . . . . . . 88
+ 10.3. Processing Bindings . . . . . . . . . . . . . . . . 88
+ 10.3.1. Primary Care-of Address Registration. . . . 88
+ 10.3.2. Primary Care-of Address De-Registration . . 92
+ 10.4. Packet Processing . . . . . . . . . . . . . . . . . 94
+ 10.4.1. Intercepting Packets for a Mobile Node. . . 94
+ 10.4.2. Processing Intercepted Packets. . . . . . . 95
+ 10.4.3. Multicast Membership Control. . . . . . . . 96
+
+
+
+Johnson, et al. Standard Track [Page 3]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ 10.4.4. Stateful Address Autoconfiguration. . . . . 98
+ 10.4.5. Handling Reverse Tunneled Packets . . . . . 98
+ 10.4.6. Protecting Return Routability Packets . . . 99
+ 10.5. Dynamic Home Agent Address Discovery. . . . . . . . 99
+ 10.5.1. Receiving Router Advertisement Messages . . 100
+ 10.6. Sending Prefix Information to the Mobile Node . . . 102
+ 10.6.1. List of Home Network Prefixes . . . . . . . 102
+ 10.6.2. Scheduling Prefix Deliveries. . . . . . . . 102
+ 10.6.3. Sending Advertisements. . . . . . . . . . . 104
+ 10.6.4. Lifetimes for Changed Prefixes. . . . . . . 105
+ 11. Mobile Node Operation. . . . . . . . . . . . . . . . . . . 105
+ 11.1. Conceptual Data Structures. . . . . . . . . . . . . 105
+ 11.2. Processing Mobility Headers . . . . . . . . . . . . 107
+ 11.3. Packet Processing . . . . . . . . . . . . . . . . . 107
+ 11.3.1. Sending Packets While Away from Home. . . . 107
+ 11.3.2. Interaction with Outbound IPsec Processing. 110
+ 11.3.3. Receiving Packets While Away from Home. . . 112
+ 11.3.4. Routing Multicast Packets . . . . . . . . . 114
+ 11.3.5. Receiving ICMP Error Messages . . . . . . . 115
+ 11.3.6. Receiving Binding Error Messages. . . . . . 116
+ 11.4. Home Agent and Prefix Management. . . . . . . . . . 117
+ 11.4.1. Dynamic Home Agent Address Discovery. . . . 117
+ 11.4.2. Sending Mobile Prefix Solicitations . . . . 118
+ 11.4.3. Receiving Mobile Prefix Advertisements. . . 118
+ 11.5. Movement. . . . . . . . . . . . . . . . . . . . . . 120
+ 11.5.1. Movement Detection. . . . . . . . . . . . . 120
+ 11.5.2. Forming New Care-of Addresses . . . . . . . 122
+ 11.5.3. Using Multiple Care-of Addresses. . . . . . 123
+ 11.5.4. Returning Home. . . . . . . . . . . . . . . 124
+ 11.6. Return Routability Procedure. . . . . . . . . . . . 126
+ 11.6.1. Sending Test Init Messages. . . . . . . . . 126
+ 11.6.2. Receiving Test Messages . . . . . . . . . . 127
+ 11.6.3. Protecting Return Routability Packets . . . 128
+ 11.7. Processing Bindings . . . . . . . . . . . . . . . . 128
+ 11.7.1. Sending Binding Updates to the Home Agent . 128
+ 11.7.2. Correspondent Registration. . . . . . . . . 131
+ 11.7.3. Receiving Binding Acknowledgements. . . . . 134
+ 11.7.4. Receiving Binding Refresh Requests. . . . . 136
+ 11.8. Retransmissions and Rate Limiting . . . . . . . . . 137
+ 12. Protocol Constants . . . . . . . . . . . . . . . . . . . . 138
+ 13. Protocol Configuration Variables . . . . . . . . . . . . . 138
+ 14. IANA Considerations. . . . . . . . . . . . . . . . . . . . 139
+ 15. Security Considerations. . . . . . . . . . . . . . . . . . 142
+ 15.1. Threats . . . . . . . . . . . . . . . . . . . . . . 142
+ 15.2. Features. . . . . . . . . . . . . . . . . . . . . . 144
+ 15.3. Binding Updates to Home Agent . . . . . . . . . . . 145
+ 15.4. Binding Updates to Correspondent Nodes. . . . . . . 148
+ 15.4.1. Overview. . . . . . . . . . . . . . . . . . 149
+
+
+
+Johnson, et al. Standard Track [Page 4]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ 15.4.2. Achieved Security Properties. . . . . . . . 149
+ 15.4.3. Comparison to Regular IPv6 Communications . 150
+ 15.4.4. Replay Attacks. . . . . . . . . . . . . . . 152
+ 15.4.5. Denial-of-Service Attacks . . . . . . . . . 152
+ 15.4.6. Key Lengths . . . . . . . . . . . . . . . . 153
+ 15.5. Dynamic Home Agent Address Discovery. . . . . . . . 154
+ 15.6. Mobile Prefix Discovery . . . . . . . . . . . . . . 155
+ 15.7. Tunneling via the Home Agent. . . . . . . . . . . . 155
+ 15.8. Home Address Option . . . . . . . . . . . . . . . . 156
+ 15.9. Type 2 Routing Header . . . . . . . . . . . . . . . 156
+ 16. Contributors . . . . . . . . . . . . . . . . . . . . . . . 157
+ 17. Acknowledgements . . . . . . . . . . . . . . . . . . . . . 157
+ 18. References . . . . . . . . . . . . . . . . . . . . . . . . 158
+ 18.1. Normative References. . . . . . . . . . . . . . . . 158
+ 18.2. Informative References. . . . . . . . . . . . . . . 159
+ Appendix A. Future Extensions . . . . . . . . . . . . . . . . . 161
+ A.1. Piggybacking. . . . . . . . . . . . . . . . . . . . 161
+ A.2. Triangular Routing. . . . . . . . . . . . . . . . . 161
+ A.3. New Authorization Methods . . . . . . . . . . . . . 161
+ A.4. Dynamically Generated Home Addresses. . . . . . . . 161
+ A.5. Remote Home Address Configuration . . . . . . . . . 162
+ A.6. Neighbor Discovery Extensions . . . . . . . . . . . 163
+ Authors' Addresses. . . . . . . . . . . . . . . . . . . . . . . . 164
+ Full Copyright Statement. . . . . . . . . . . . . . . . . . . . . 165
+
+1. Introduction
+
+ This document specifies a protocol which allows nodes to remain
+ reachable while moving around in the IPv6 Internet. Without specific
+ support for mobility in IPv6 [11], packets destined to a mobile node
+ would not be able to reach it while the mobile node is away from its
+ home link. In order to continue communication in spite of its
+ movement, a mobile node could change its IP address each time it
+ moves to a new link, but the mobile node would then not be able to
+ maintain transport and higher-layer connections when it changes
+ location. Mobility support in IPv6 is particularly important, as
+ mobile computers are likely to account for a majority or at least a
+ substantial fraction of the population of the Internet during the
+ lifetime of IPv6.
+
+ The protocol defined in this document, known as Mobile IPv6, allows a
+ mobile node to move from one link to another without changing the
+ mobile node's "home address". Packets may be routed to the mobile
+ node using this address regardless of the mobile node's current point
+ of attachment to the Internet. The mobile node may also continue to
+ communicate with other nodes (stationary or mobile) after moving to a
+
+
+
+
+
+Johnson, et al. Standard Track [Page 5]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ new link. The movement of a mobile node away from its home link is
+ thus transparent to transport and higher-layer protocols and
+ applications.
+
+ The Mobile IPv6 protocol is just as suitable for mobility across
+ homogeneous media as for mobility across heterogeneous media. For
+ example, Mobile IPv6 facilitates node movement from one Ethernet
+ segment to another as well as it facilitates node movement from an
+ Ethernet segment to a wireless LAN cell, with the mobile node's IP
+ address remaining unchanged in spite of such movement.
+
+ One can think of the Mobile IPv6 protocol as solving the network-
+ layer mobility management problem. Some mobility management
+ applications -- for example, handover among wireless transceivers,
+ each of which covers only a very small geographic area -- have been
+ solved using link-layer techniques. For example, in many current
+ wireless LAN products, link-layer mobility mechanisms allow a
+ "handover" of a mobile node from one cell to another, re-establishing
+ link-layer connectivity to the node in each new location.
+
+ Mobile IPv6 does not attempt to solve all general problems related to
+ the use of mobile computers or wireless networks. In particular,
+ this protocol does not attempt to solve:
+
+ o Handling links with unidirectional connectivity or partial
+ reachability, such as the hidden terminal problem where a host is
+ hidden from only some of the routers on the link.
+
+ o Access control on a link being visited by a mobile node.
+
+ o Local or hierarchical forms of mobility management (similar to
+ many current link-layer mobility management solutions).
+
+ o Assistance for adaptive applications.
+
+ o Mobile routers.
+
+ o Service Discovery.
+
+ o Distinguishing between packets lost due to bit errors vs. network
+ congestion.
+
+2. Comparison with Mobile IP for IPv4
+
+ The design of Mobile IP support in IPv6 (Mobile IPv6) benefits both
+ from the experiences gained from the development of Mobile IP support
+ in IPv4 (Mobile IPv4) [22, 23, 24], and from the opportunities
+ provided by IPv6. Mobile IPv6 thus shares many features with Mobile
+
+
+
+Johnson, et al. Standard Track [Page 6]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ IPv4, but is integrated into IPv6 and offers many other improvements.
+ This section summarizes the major differences between Mobile IPv4 and
+ Mobile IPv6:
+
+ o There is no need to deploy special routers as "foreign agents", as
+ in Mobile IPv4. Mobile IPv6 operates in any location without any
+ special support required from the local router.
+
+ o Support for route optimization is a fundamental part of the
+ protocol, rather than a nonstandard set of extensions.
+
+ o Mobile IPv6 route optimization can operate securely even without
+ pre-arranged security associations. It is expected that route
+ optimization can be deployed on a global scale between all mobile
+ nodes and correspondent nodes.
+
+ o Support is also integrated into Mobile IPv6 for allowing route
+ optimization to coexist efficiently with routers that perform
+ "ingress filtering" [26].
+
+ o The IPv6 Neighbor Unreachability Detection assures symmetric
+ reachability between the mobile node and its default router in the
+ current location.
+
+ o Most packets sent to a mobile node while away from home in Mobile
+ IPv6 are sent using an IPv6 routing header rather than IP
+ encapsulation, reducing the amount of resulting overhead compared
+ to Mobile IPv4.
+
+ o Mobile IPv6 is decoupled from any particular link layer, as it
+ uses IPv6 Neighbor Discovery [12] instead of ARP. This also
+ improves the robustness of the protocol.
+
+ o The use of IPv6 encapsulation (and the routing header) removes the
+ need in Mobile IPv6 to manage "tunnel soft state".
+
+ o The dynamic home agent address discovery mechanism in Mobile IPv6
+ returns a single reply to the mobile node. The directed broadcast
+ approach used in IPv4 returns separate replies from each home
+ agent.
+
+3. Terminology
+
+ The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
+ document are to be interpreted as described in BCP 14, RFC 2119 [2].
+
+
+
+
+
+Johnson, et al. Standard Track [Page 7]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+3.1. General Terms
+
+ IP
+
+ Internet Protocol Version 6 (IPv6).
+
+ node
+
+ A device that implements IP.
+
+ router
+
+ A node that forwards IP packets not explicitly addressed to
+ itself.
+
+ unicast routable address
+
+ An identifier for a single interface such that a packet sent to it
+ from another IPv6 subnet is delivered to the interface identified
+ by that address. Accordingly, a unicast routable address must
+ have either a global or site-local scope (but not link-local).
+
+ host
+
+ Any node that is not a router.
+
+ link
+
+ A communication facility or medium over which nodes can
+ communicate at the link layer, such as an Ethernet (simple or
+ bridged). A link is the layer immediately below IP.
+
+ interface
+
+ A node's attachment to a link.
+
+ subnet prefix
+
+ A bit string that consists of some number of initial bits of an IP
+ address.
+
+ interface identifier
+
+ A number used to identify a node's interface on a link. The
+ interface identifier is the remaining low-order bits in the node's
+ IP address after the subnet prefix.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 8]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ link-layer address
+
+ A link-layer identifier for an interface, such as IEEE 802
+ addresses on Ethernet links.
+
+ packet
+
+ An IP header plus payload.
+
+ security association
+
+ An IPsec security association is a cooperative relationship formed
+ by the sharing of cryptographic keying material and associated
+ context. Security associations are simplex. That is, two
+ security associations are needed to protect bidirectional traffic
+ between two nodes, one for each direction.
+
+ security policy database
+
+ A database that specifies what security services are to be offered
+ to IP packets and in what fashion.
+
+ destination option
+
+ Destination options are carried by the IPv6 Destination Options
+ extension header. Destination options include optional
+ information that need be examined only by the IPv6 node given as
+ the destination address in the IPv6 header, not by routers in
+ between. Mobile IPv6 defines one new destination option, the Home
+ Address destination option (see Section 6.3).
+
+ routing header
+
+ A routing header may be present as an IPv6 header extension, and
+ indicates that the payload has to be delivered to a destination
+ IPv6 address in some way that is different from what would be
+ carried out by standard Internet routing. In this document, use
+ of the term "routing header" typically refers to use of a type 2
+ routing header, as specified in Section 6.4.
+
+ "|" (concatenation)
+
+ Some formulas in this specification use the symbol "|" to indicate
+ bytewise concatenation, as in A | B. This concatenation requires
+ that all of the octets of the datum A appear first in the result,
+ followed by all of the octets of the datum B.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 9]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ First (size, input)
+
+ Some formulas in this specification use a functional form "First
+ (size, input)" to indicate truncation of the "input" data so that
+ only the first "size" bits remain to be used.
+
+3.2. Mobile IPv6 Terms
+
+ home address
+
+ A unicast routable address assigned to a mobile node, used as the
+ permanent address of the mobile node. This address is within the
+ mobile node's home link. Standard IP routing mechanisms will
+ deliver packets destined for a mobile node's home address to its
+ home link. Mobile nodes can have multiple home addresses, for
+ instance when there are multiple home prefixes on the home link.
+
+ home subnet prefix
+
+ The IP subnet prefix corresponding to a mobile node's home
+ address.
+
+ home link
+
+ The link on which a mobile node's home subnet prefix is defined.
+
+ mobile node
+
+ A node that can change its point of attachment from one link to
+ another, while still being reachable via its home address.
+
+ movement
+
+ A change in a mobile node's point of attachment to the Internet
+ such that it is no longer connected to the same link as it was
+ previously. If a mobile node is not currently attached to its
+ home link, the mobile node is said to be "away from home".
+
+ L2 handover
+
+ A process by which the mobile node changes from one link-layer
+ connection to another. For example, a change of wireless access
+ point is an L2 handover.
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 10]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ L3 handover
+
+ Subsequent to an L2 handover, a mobile node detects a change in an
+ on-link subnet prefix that would require a change in the primary
+ care-of address. For example, a change of access router
+ subsequent to a change of wireless access point typically results
+ in an L3 handover.
+
+ correspondent node
+
+ A peer node with which a mobile node is communicating. The
+ correspondent node may be either mobile or stationary.
+
+ foreign subnet prefix
+
+ Any IP subnet prefix other than the mobile node's home subnet
+ prefix.
+
+ foreign link
+
+ Any link other than the mobile node's home link.
+
+ care-of address
+
+ A unicast routable address associated with a mobile node while
+ visiting a foreign link; the subnet prefix of this IP address is a
+ foreign subnet prefix. Among the multiple care-of addresses that
+ a mobile node may have at any given time (e.g., with different
+ subnet prefixes), the one registered with the mobile node's home
+ agent for a given home address is called its "primary" care-of
+ address.
+
+ home agent
+
+ A router on a mobile node's home link with which the mobile node
+ has registered its current care-of address. While the mobile node
+ is away from home, the home agent intercepts packets on the home
+ link destined to the mobile node's home address, encapsulates
+ them, and tunnels them to the mobile node's registered care-of
+ address.
+
+ binding
+
+ The association of the home address of a mobile node with a care-
+ of address for that mobile node, along with the remaining lifetime
+ of that association.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 11]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ registration
+
+ The process during which a mobile node sends a Binding Update to
+ its home agent or a correspondent node, causing a binding for the
+ mobile node to be registered.
+
+ mobility message
+
+ A message containing a Mobility Header (see Section 6.1).
+
+ binding authorization
+
+ Correspondent registration needs to be authorized to allow the
+ recipient to believe that the sender has the right to specify a
+ new binding.
+
+ return routability procedure
+
+ The return routability procedure authorizes registrations by the
+ use of a cryptographic token exchange.
+
+ correspondent registration
+
+ A return routability procedure followed by a registration, run
+ between the mobile node and a correspondent node.
+
+ home registration
+
+ A registration between the mobile node and its home agent,
+ authorized by the use of IPsec.
+
+ nonce
+
+ Nonces are random numbers used internally by the correspondent
+ node in the creation of keygen tokens related to the return
+ routability procedure. The nonces are not specific to a mobile
+ node, and are kept secret within the correspondent node.
+
+ nonce index
+
+ A nonce index is used to indicate which nonces have been used when
+ creating keygen token values, without revealing the nonces
+ themselves.
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 12]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ cookie
+
+ A cookie is a random number used by a mobile node to prevent
+ spoofing by a bogus correspondent node in the return routability
+ procedure.
+
+ care-of init cookie
+
+ A cookie sent to the correspondent node in the Care-of Test Init
+ message, to be returned in the Care-of Test message.
+
+ home init cookie
+
+ A cookie sent to the correspondent node in the Home Test Init
+ message, to be returned in the Home Test message.
+
+ keygen token
+
+ A keygen token is a number supplied by a correspondent node in the
+ return routability procedure to enable the mobile node to compute
+ the necessary binding management key for authorizing a Binding
+ Update.
+
+ care-of keygen token
+
+ A keygen token sent by the correspondent node in the Care-of Test
+ message.
+
+ home keygen token
+
+ A keygen token sent by the correspondent node in the Home Test
+ message.
+
+ binding management key (Kbm)
+
+ A binding management key (Kbm) is a key used for authorizing a
+ binding cache management message (e.g., Binding Update or Binding
+ Acknowledgement). Return routability provides a way to create a
+ binding management key.
+
+4. Overview of Mobile IPv6
+
+4.1. Basic Operation
+
+ A mobile node is always expected to be addressable at its home
+ address, whether it is currently attached to its home link or is away
+ from home. The "home address" is an IP address assigned to the
+ mobile node within its home subnet prefix on its home link. While a
+
+
+
+Johnson, et al. Standard Track [Page 13]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ mobile node is at home, packets addressed to its home address are
+ routed to the mobile node's home link, using conventional Internet
+ routing mechanisms.
+
+ While a mobile node is attached to some foreign link away from home,
+ it is also addressable at one or more care-of addresses. A care-of
+ address is an IP address associated with a mobile node that has the
+ subnet prefix of a particular foreign link. The mobile node can
+ acquire its care-of address through conventional IPv6 mechanisms,
+ such as stateless or stateful auto-configuration. As long as the
+ mobile node stays in this location, packets addressed to this care-of
+ address will be routed to the mobile node. The mobile node may also
+ accept packets from several care-of addresses, such as when it is
+ moving but still reachable at the previous link.
+
+ The association between a mobile node's home address and care-of
+ address is known as a "binding" for the mobile node. While away from
+ home, a mobile node registers its primary care-of address with a
+ router on its home link, requesting this router to function as the
+ "home agent" for the mobile node. The mobile node performs this
+ binding registration by sending a "Binding Update" message to the
+ home agent. The home agent replies to the mobile node by returning a
+ "Binding Acknowledgement" message. The operation of the mobile node
+ is specified in Section 11, and the operation of the home agent is
+ specified in Section 10.
+
+ Any node communicating with a mobile node is referred to in this
+ document as a "correspondent node" of the mobile node, and may itself
+ be either a stationary node or a mobile node. Mobile nodes can
+ provide information about their current location to correspondent
+ nodes. This happens through the correspondent registration. As a
+ part of this procedure, a return routability test is performed in
+ order to authorize the establishment of the binding. The operation
+ of the correspondent node is specified in Section 9.
+
+ There are two possible modes for communications between the mobile
+ node and a correspondent node. The first mode, bidirectional
+ tunneling, does not require Mobile IPv6 support from the
+ correspondent node and is available even if the mobile node has not
+ registered its current binding with the correspondent node. Packets
+ from the correspondent node are routed to the home agent and then
+ tunneled to the mobile node. Packets to the correspondent node are
+ tunneled from the mobile node to the home agent ("reverse tunneled")
+ and then routed normally from the home network to the correspondent
+ node. In this mode, the home agent uses proxy Neighbor Discovery to
+ intercept any IPv6 packets addressed to the mobile node's home
+
+
+
+
+
+Johnson, et al. Standard Track [Page 14]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ address (or home addresses) on the home link. Each intercepted
+ packet is tunneled to the mobile node's primary care-of address.
+ This tunneling is performed using IPv6 encapsulation [15].
+
+ The second mode, "route optimization", requires the mobile node to
+ register its current binding at the correspondent node. Packets from
+ the correspondent node can be routed directly to the care-of address
+ of the mobile node. When sending a packet to any IPv6 destination,
+ the correspondent node checks its cached bindings for an entry for
+ the packet's destination address. If a cached binding for this
+ destination address is found, the node uses a new type of IPv6
+ routing header [11] (see Section 6.4) to route the packet to the
+ mobile node by way of the care-of address indicated in this binding.
+
+ Routing packets directly to the mobile node's care-of address allows
+ the shortest communications path to be used. It also eliminates
+ congestion at the mobile node's home agent and home link. In
+ addition, the impact of any possible failure of the home agent or
+ networks on the path to or from it is reduced.
+
+ When routing packets directly to the mobile node, the correspondent
+ node sets the Destination Address in the IPv6 header to the care-of
+ address of the mobile node. A new type of IPv6 routing header (see
+ Section 6.4) is also added to the packet to carry the desired home
+ address. Similarly, the mobile node sets the Source Address in the
+ packet's IPv6 header to its current care-of addresses. The mobile
+ node adds a new IPv6 "Home Address" destination option (see Section
+ 6.3) to carry its home address. The inclusion of home addresses in
+ these packets makes the use of the care-of address transparent above
+ the network layer (e.g., at the transport layer).
+
+ Mobile IPv6 also provides support for multiple home agents, and a
+ limited support for the reconfiguration of the home network. In
+ these cases, the mobile node may not know the IP address of its own
+ home agent, and even the home subnet prefixes may change over time.
+ A mechanism, known as "dynamic home agent address discovery" allows a
+ mobile node to dynamically discover the IP address of a home agent on
+ its home link, even when the mobile node is away from home. Mobile
+ nodes can also learn new information about home subnet prefixes
+ through the "mobile prefix discovery" mechanism. These mechanisms
+ are described starting from Section 6.5.
+
+4.2. New IPv6 Protocol
+
+ Mobile IPv6 defines a new IPv6 protocol, using the Mobility Header
+ (see Section 6.1). This Header is used to carry the following
+ messages:
+
+
+
+
+Johnson, et al. Standard Track [Page 15]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Home Test Init
+
+ Home Test
+
+ Care-of Test Init
+
+ Care-of Test
+
+ These four messages are used to perform the return routability
+ procedure from the mobile node to a correspondent node. This
+ ensures authorization of subsequent Binding Updates, as described
+ in Section 5.2.5.
+
+ Binding Update
+
+ A Binding Update is used by a mobile node to notify a
+ correspondent node or the mobile node's home agent of its current
+ binding. The Binding Update sent to the mobile node's home agent
+ to register its primary care-of address is marked as a "home
+ registration".
+
+ Binding Acknowledgement
+
+ A Binding Acknowledgement is used to acknowledge receipt of a
+ Binding Update, if an acknowledgement was requested in the Binding
+ Update, the binding update was sent to a home agent, or an error
+ occurred.
+
+ Binding Refresh Request
+
+ A Binding Refresh Request is used by a correspondent node to
+ request a mobile node to re-establish its binding with the
+ correspondent node. This message is typically used when the
+ cached binding is in active use but the binding's lifetime is
+ close to expiration. The correspondent node may use, for
+ instance, recent traffic and open transport layer connections as
+ an indication of active use.
+
+ Binding Error
+
+ The Binding Error is used by the correspondent node to signal an
+ error related to mobility, such as an inappropriate attempt to use
+ the Home Address destination option without an existing binding.
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 16]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+4.3. New IPv6 Destination Option
+
+ Mobile IPv6 defines a new IPv6 destination option, the Home Address
+ destination option. This option is described in detail in Section
+ 6.3.
+
+4.4. New IPv6 ICMP Messages
+
+ Mobile IPv6 also introduces four new ICMP message types, two for use
+ in the dynamic home agent address discovery mechanism, and two for
+ renumbering and mobile configuration mechanisms. As described in
+ Section 10.5 and Section 11.4.1, the following two new ICMP message
+ types are used for home agent address discovery:
+
+ o Home Agent Address Discovery Request, described in Section 6.5.
+
+ o Home Agent Address Discovery Reply, described in Section 6.6.
+
+ The next two message types are used for network renumbering and
+ address configuration on the mobile node, as described in Section
+ 10.6:
+
+ o Mobile Prefix Solicitation, described in Section 6.7.
+
+ o Mobile Prefix Advertisement, described in Section 6.8.
+
+4.5. Conceptual Data Structure Terminology
+
+ This document describes the Mobile IPv6 protocol in terms of the
+ following conceptual data structures:
+
+ Binding Cache
+
+ A cache of bindings for other nodes. This cache is maintained by
+ home agents and correspondent nodes. The cache contains both
+ "correspondent registration" entries (see Section 9.1) and "home
+ registration" entries (see Section 10.1).
+
+ Binding Update List
+
+ This list is maintained by each mobile node. The list has an item
+ for every binding that the mobile node has or is trying to
+ establish with a specific other node. Both correspondent and home
+ registrations are included in this list. Entries from the list
+ are deleted as the lifetime of the binding expires. See Section
+ 11.1.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 17]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Home Agents List
+
+ Home agents need to know which other home agents are on the same
+ link. This information is stored in the Home Agents List, as
+ described in more detail in Section 10.1. The list is used for
+ informing mobile nodes during dynamic home agent address
+ discovery.
+
+4.6. Site-Local Addressability
+
+ This specification requires that home and care-of addresses MUST be
+ unicast routable addresses. Site-local addresses may be usable on
+ networks that are not connected to the Internet, but this
+ specification does not define when such usage is safe and when it is
+ not. Mobile nodes may not be aware of which site they are currently
+ in, it is hard to prevent accidental attachment to other sites, and
+ ambiguity of site-local addresses can cause problems if the home and
+ visited networks use the same addresses. Therefore, site-local
+ addresses SHOULD NOT be used as home or care-of addresses.
+
+5. Overview of Mobile IPv6 Security
+
+ This specification provides a number of security features. These
+ include the protection of Binding Updates both to home agents and
+ correspondent nodes, the protection of mobile prefix discovery, and
+ the protection of the mechanisms that Mobile IPv6 uses for
+ transporting data packets.
+
+ Binding Updates are protected by the use of IPsec extension headers,
+ or by the use of the Binding Authorization Data option. This option
+ employs a binding management key, Kbm, which can be established
+ through the return routability procedure. Mobile prefix discovery is
+ protected through the use of IPsec extension headers. Mechanisms
+ related to transporting payload packets - such as the Home Address
+ destination option and type 2 routing header - have been specified in
+ a manner which restricts their use in attacks.
+
+5.1. Binding Updates to Home Agents
+
+ The mobile node and the home agent MUST use an IPsec security
+ association to protect the integrity and authenticity of the Binding
+ Updates and Acknowledgements. Both the mobile nodes and the home
+ agents MUST support and SHOULD use the Encapsulating Security Payload
+ (ESP) [6] header in transport mode and MUST use a non-NULL payload
+ authentication algorithm to provide data origin authentication,
+ connectionless integrity and optional anti-replay protection. Note
+ that Authentication Header (AH) [5] is also possible but for brevity
+ not discussed in this specification.
+
+
+
+Johnson, et al. Standard Track [Page 18]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ In order to protect messages exchanged between the mobile node and
+ the home agent with IPsec, appropriate security policy database
+ entries must be created. A mobile node must be prevented from using
+ its security association to send a Binding Update on behalf of
+ another mobile node using the same home agent. This MUST be achieved
+ by having the home agent check that the given home address has been
+ used with the right security association. Such a check is provided
+ in the IPsec processing, by having the security policy database
+ entries unequivocally identify a single security association for
+ protecting Binding Updates between any given home address and home
+ agent. In order to make this possible, it is necessary that the home
+ address of the mobile node is visible in the Binding Updates and
+ Acknowledgements. The home address is used in these packets as a
+ source or destination, or in the Home Address Destination option or
+ the type 2 routing header.
+
+ As with all IPsec security associations in this specification, manual
+ configuration of security associations MUST be supported. The used
+ shared secrets MUST be random and unique for different mobile nodes,
+ and MUST be distributed off-line to the mobile nodes.
+
+ Automatic key management with IKE [9] MAY be supported. When IKE is
+ used, either the security policy database entries or the Mobile IPv6
+ processing MUST unequivocally identify the IKE phase 1 credentials
+ which can be used to authorize the creation of security associations
+ for protecting Binding Updates for a particular home address. How
+ these mappings are maintained is outside the scope of this
+ specification, but they may be maintained, for instance, as a locally
+ administered table in the home agent. If the phase 1 identity is a
+ Fully Qualified Domain Name (FQDN), secure forms of DNS may also be
+ used.
+
+ Section 11.3.2 discusses how IKE connections to the home agent need a
+ careful treatment of the addresses used for transporting IKE. This
+ is necessary to ensure that a Binding Update is not needed before the
+ IKE exchange which is needed for securing the Binding Update.
+
+ When IKE version 1 is used with preshared secret authentication
+ between the mobile node and the home agent, aggressive mode MUST be
+ used.
+
+ The ID_IPV6_ADDR Identity Payload MUST NOT be used in IKEv1 phase 1.
+
+ Reference [21] contains a more detailed description and examples on
+ using IPsec to protect the communications between the mobile node and
+ the home agent.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 19]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+5.2. Binding Updates to Correspondent Nodes
+
+ The protection of Binding Updates sent to correspondent nodes does
+ not require the configuration of security associations or the
+ existence of an authentication infrastructure between the mobile
+ nodes and correspondent nodes. Instead, a method called the return
+ routability procedure is used to assure that the right mobile node is
+ sending the message. This method does not protect against attackers
+ who are on the path between the home network and the correspondent
+ node. However, attackers in such a location are capable of
+ performing the same attacks even without Mobile IPv6. The main
+ advantage of the return routability procedure is that it limits the
+ potential attackers to those having an access to one specific path in
+ the Internet, and avoids forged Binding Updates from anywhere else in
+ the Internet. For a more in depth explanation of the security
+ properties of the return routability procedure, see Section 15.
+
+ The integrity and authenticity of the Binding Updates messages to
+ correspondent nodes is protected by using a keyed-hash algorithm.
+ The binding management key, Kbm, is used to key the hash algorithm
+ for this purpose. Kbm is established using data exchanged during the
+ return routability procedure. The data exchange is accomplished by
+ use of node keys, nonces, cookies, tokens, and certain cryptographic
+ functions. Section 5.2.5 outlines the basic return routability
+ procedure. Section 5.2.6 shows how the results of this procedure are
+ used to authorize a Binding Update to a correspondent node.
+
+5.2.1. Node Keys
+
+ Each correspondent node has a secret key, Kcn, called the "node key",
+ which it uses to produce the keygen tokens sent to the mobile nodes.
+ The node key MUST be a random number, 20 octets in length. The node
+ key allows the correspondent node to verify that the keygen tokens
+ used by the mobile node in authorizing a Binding Update are indeed
+ its own. This key MUST NOT be shared with any other entity.
+
+ A correspondent node MAY generate a fresh node key at any time; this
+ avoids the need for secure persistent key storage. Procedures for
+ optionally updating the node key are discussed later in Section
+ 5.2.7.
+
+5.2.2. Nonces
+
+ Each correspondent node also generates nonces at regular intervals.
+ The nonces should be generated by using a random number generator
+ that is known to have good randomness properties [1]. A
+ correspondent node may use the same Kcn and nonce with all the
+ mobiles it is in communication with.
+
+
+
+Johnson, et al. Standard Track [Page 20]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Each nonce is identified by a nonce index. When a new nonce is
+ generated, it must be associated with a new nonce index; this may be
+ done, for example, by incrementing the value of the previous nonce
+ index, if the nonce index is used as an array pointer into a linear
+ array of nonces. However, there is no requirement that nonces be
+ stored that way, or that the values of subsequent nonce indices have
+ any particular relationship to each other. The index value is
+ communicated in the protocol, so that if a nonce is replaced by new
+ nonce during the run of a protocol, the correspondent node can
+ distinguish messages that should be checked against the old nonce
+ from messages that should be checked against the new nonce. Strictly
+ speaking, indices are not necessary in the authentication, but allow
+ the correspondent node to efficiently find the nonce value that it
+ used in creating a keygen token.
+
+ Correspondent nodes keep both the current nonce and a small set of
+ valid previous nonces whose lifetime has not yet expired. Expired
+ values MUST be discarded, and messages using stale or unknown indices
+ will be rejected.
+
+ The specific nonce index values cannot be used by mobile nodes to
+ determine the validity of the nonce. Expected validity times for the
+ nonces values and the procedures for updating them are discussed
+ later in Section 5.2.7.
+
+ A nonce is an octet string of any length. The recommended length is
+ 64 bits.
+
+5.2.3. Cookies and Tokens
+
+ The return routability address test procedure uses cookies and keygen
+ tokens as opaque values within the test init and test messages,
+ respectively.
+
+ o The "home init cookie" and "care-of init cookie" are 64 bit values
+ sent to the correspondent node from the mobile node, and later
+ returned to the mobile node. The home init cookie is sent in the
+ Home Test Init message, and returned in the Home Test message.
+ The care-of init cookie is sent in the Care-of Test Init message,
+ and returned in the Care-of Test message.
+
+ o The "home keygen token" and "care-of keygen token" are 64-bit
+ values sent by the correspondent node to the mobile node via the
+ home agent (via the Home Test message) and the care-of address (by
+ the Care-of Test message), respectively.
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 21]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ The mobile node should set the home init or care-of init cookie to a
+ newly generated random number in every Home or Care-of Test Init
+ message it sends. The cookies are used to verify that the Home Test
+ or Care-of Test message matches the Home Test Init or Care-of Test
+ Init message, respectively. These cookies also serve to ensure that
+ parties who have not seen the request cannot spoof responses.
+
+ Home and care-of keygen tokens are produced by the correspondent node
+ based on its currently active secret key (Kcn) and nonces, as well as
+ the home or care-of address (respectively). A keygen token is valid
+ as long as both the secret key (Kcn) and the nonce used to create it
+ are valid.
+
+5.2.4. Cryptographic Functions
+
+ In this specification, the function used to compute hash values is
+ SHA1 [20]. Message Authentication Codes (MACs) are computed using
+ HMAC_SHA1 [25, 20]. HMAC_SHA1(K,m) denotes such a MAC computed on
+ message m with key K.
+
+5.2.5. Return Routability Procedure
+
+ The Return Routability Procedure enables the correspondent node to
+ obtain some reasonable assurance that the mobile node is in fact
+ addressable at its claimed care-of address as well as at its home
+ address. Only with this assurance is the correspondent node able to
+ accept Binding Updates from the mobile node which would then instruct
+ the correspondent node to direct that mobile node's data traffic to
+ its claimed care-of address.
+
+ This is done by testing whether packets addressed to the two claimed
+ addresses are routed to the mobile node. The mobile node can pass
+ the test only if it is able to supply proof that it received certain
+ data (the "keygen tokens") which the correspondent node sends to
+ those addresses. These data are combined by the mobile node into a
+ binding management key, denoted Kbm.
+
+ The figure below shows the message flow for the return routability
+ procedure.
+
+
+
+
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 22]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Mobile node Home agent Correspondent node
+ | |
+ | Home Test Init (HoTI) | |
+ |------------------------->|------------------------->|
+ | | |
+ | Care-of Test Init (CoTI) |
+ |---------------------------------------------------->|
+ | |
+ | | Home Test (HoT) |
+ |<-------------------------|<-------------------------|
+ | | |
+ | Care-of Test (CoT) |
+ |<----------------------------------------------------|
+ | |
+
+ The Home and Care-of Test Init messages are sent at the same time.
+ The procedure requires very little processing at the correspondent
+ node, and the Home and Care-of Test messages can be returned quickly,
+ perhaps nearly simultaneously. These four messages form the return
+ routability procedure.
+
+ Home Test Init
+
+ A mobile node sends a Home Test Init message to the correspondent
+ node (via the home agent) to acquire the home keygen token. The
+ contents of the message can be summarized as follows:
+
+ * Source Address = home address
+
+ * Destination Address = correspondent
+
+ * Parameters:
+
+ + home init cookie
+
+ The Home Test Init message conveys the mobile node's home address
+ to the correspondent node. The mobile node also sends along a
+ home init cookie that the correspondent node must return later.
+ The Home Test Init message is reverse tunneled through the home
+ agent. (The headers and addresses related to reverse tunneling
+ have been omitted from the above discussion of the message
+ contents.) The mobile node remembers these cookie values to
+ obtain some assurance that its protocol messages are being
+ processed by the desired correspondent node.
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 23]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Care-of Test Init
+
+ The mobile node sends a Care-of Test Init message to the
+ correspondent node (directly, not via the home agent) to acquire
+ the care-of keygen token. The contents of this message can be
+ summarized as follows:
+
+ * Source Address = care-of address
+
+ * Destination Address = correspondent
+
+ * Parameters:
+
+ + care-of init cookie
+
+ The Care-of Test Init message conveys the mobile node's care-of
+ address to the correspondent node. The mobile node also sends
+ along a care-of init cookie that the correspondent node must
+ return later. The Care-of Test Init message is sent directly to
+ the correspondent node.
+
+ Home Test
+
+ The Home Test message is sent in response to a Home Test Init
+ message. It is sent via the home agent. The contents of the
+ message are:
+
+ * Source Address = correspondent
+
+ * Destination Address = home address
+
+ * Parameters:
+
+ + home init cookie
+
+ + home keygen token
+
+ + home nonce index
+
+
+
+
+
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 24]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ When the correspondent node receives the Home Test Init message,
+ it generates a home keygen token as follows:
+
+ home keygen token :=
+ First (64, HMAC_SHA1 (Kcn, (home address | nonce | 0)))
+
+ where | denotes concatenation. The final "0" inside the HMAC_SHA1
+ function is a single zero octet, used to distinguish home and
+ care-of cookies from each other.
+
+ The home keygen token is formed from the first 64 bits of the MAC.
+ The home keygen token tests that the mobile node can receive were
+ messages sent to its home address. Kcn is used in the production
+ of home keygen token in order to allow the correspondent node to
+ verify that it generated the home and care-of nonces, without
+ forcing the correspondent node to remember a list of all tokens it
+ has handed out.
+
+ The Home Test message is sent to the mobile node via the home
+ network, where it is presumed that the home agent will tunnel the
+ message to the mobile node. This means that the mobile node needs
+ to already have sent a Binding Update to the home agent, so that
+ the home agent will have received and authorized the new care-of
+ address for the mobile node before the return routability
+ procedure. For improved security, the data passed between the
+ home agent and the mobile node is made immune to inspection and
+ passive attacks. Such protection is gained by encrypting the home
+ keygen token as it is tunneled from the home agent to the mobile
+ node as specified in Section 10.4.6. The security properties of
+ this additional security are discussed in Section 15.4.1.
+
+ The home init cookie from the mobile node is returned in the Home
+ Test message, to ensure that the message comes from a node on the
+ route between the home agent and the correspondent node.
+
+ The home nonce index is delivered to the mobile node to later
+ allow the correspondent node to efficiently find the nonce value
+ that it used in creating the home keygen token.
+
+ Care-of Test
+
+ This message is sent in response to a Care-of Test Init message.
+ This message is not sent via the home agent, it is sent directly
+ to the mobile node. The contents of the message are:
+
+ * Source Address = correspondent
+
+ * Destination Address = care-of address
+
+
+
+Johnson, et al. Standard Track [Page 25]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ * Parameters:
+
+ + care-of init cookie
+
+ + care-of keygen token
+
+ + care-of nonce index
+
+ When the correspondent node receives the Care-of Test Init
+ message, it generates a care-of keygen token as follows:
+
+ care-of keygen token :=
+ First (64, HMAC_SHA1 (Kcn, (care-of address | nonce | 1)))
+
+ Here, the final "1" inside the HMAC_SHA1 function is a single
+ octet containing the hex value 0x01, and is used to distinguish
+ home and care-of cookies from each other. The keygen token is
+ formed from the first 64 bits of the MAC, and sent directly to the
+ mobile node at its care-of address. The care-of init cookie from
+ the Care-of Test Init message is returned to ensure that the
+ message comes from a node on the route to the correspondent node.
+
+ The care-of nonce index is provided to identify the nonce used for
+ the care-of keygen token. The home and care-of nonce indices MAY
+ be the same, or different, in the Home and Care-of Test messages.
+
+ When the mobile node has received both the Home and Care-of Test
+ messages, the return routability procedure is complete. As a result
+ of the procedure, the mobile node has the data it needs to send a
+ Binding Update to the correspondent node. The mobile node hashes the
+ tokens together to form a 20 octet binding key Kbm:
+
+ Kbm = SHA1 (home keygen token | care-of keygen token)
+
+ A Binding Update may also be used to delete a previously established
+ binding (Section 6.1.7). In this case, the care-of keygen token is
+ not used. Instead, the binding management key is generated as
+ follows:
+
+ Kbm = SHA1(home keygen token)
+
+ Note that the correspondent node does not create any state specific
+ to the mobile node, until it receives the Binding Update from that
+ mobile node. The correspondent node does not maintain the value for
+ the binding management key Kbm; it creates Kbm when given the nonce
+ indices and the mobile node's addresses.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 26]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+5.2.6. Authorizing Binding Management Messages
+
+ After the mobile node has created the binding management key (Kbm),
+ it can supply a verifiable Binding Update to the correspondent node.
+ This section provides an overview of this registration. The below
+ figure shows the message flow.
+
+ Mobile node Correspondent node
+ | |
+ | Binding Update (BU) |
+ |---------------------------------------------->|
+ | (MAC, seq#, nonce indices, care-of address) |
+ | |
+ | |
+ | Binding Acknowledgement (BA) (if sent) |
+ |<----------------------------------------------|
+ | (MAC, seq#, status) |
+
+ Binding Update
+
+ To authorize a Binding Update, the mobile node creates a binding
+ management key Kbm from the keygen tokens as described in the
+ previous section. The contents of the Binding Update include the
+ following:
+
+ * Source Address = care-of address
+
+ * Destination Address = correspondent
+
+ * Parameters:
+
+ + home address (within the Home Address destination option if
+ different from the Source Address)
+
+ + sequence number (within the Binding Update message header)
+
+ + home nonce index (within the Nonce Indices option)
+
+ + care-of nonce index (within the Nonce Indices option)
+
+ + First (96, HMAC_SHA1 (Kbm, (care-of address | correspondent
+ | BU)))
+
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 27]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ The Binding Update contains a Nonce Indices option, indicating to
+ the correspondent node which home and care-of nonces to use to
+ recompute Kbm, the binding management key. The MAC is computed as
+ described in Section 6.2.7, using the correspondent node's address
+ as the destination address and the Binding Update message itself
+ ("BU" above) as the MH Data.
+
+ Once the correspondent node has verified the MAC, it can create a
+ Binding Cache entry for the mobile.
+
+ Binding Acknowledgement
+
+ The Binding Update is in some cases acknowledged by the
+ correspondent node. The contents of the message are as follows:
+
+ * Source Address = correspondent
+
+ * Destination Address = care-of address
+
+ * Parameters:
+
+ + sequence number (within the Binding Update message header)
+
+ + First (96, HMAC_SHA1 (Kbm, (care-of address | correspondent
+ | BA)))
+
+ The Binding Acknowledgement contains the same sequence number as
+ the Binding Update. The MAC is computed as described in Section
+ 6.2.7, using the correspondent node's address as the destination
+ address and the message itself ("BA" above) as the MH Data.
+
+ Bindings established with correspondent nodes using keys created
+ by way of the return routability procedure MUST NOT exceed
+ MAX_RR_BINDING_LIFETIME seconds (see Section 12).
+
+ The value in the Source Address field in the IPv6 header carrying
+ the Binding Update is normally also the care-of address which is
+ used in the binding. However, a different care-of address MAY be
+ specified by including an Alternate Care-of Address mobility
+ option in the Binding Update (see Section 6.2.5). When such a
+ message is sent to the correspondent node and the return
+ routability procedure is used as the authorization method, the
+ Care-of Test Init and Care-of Test messages MUST have been
+ performed for the address in the Alternate Care-of Address option
+ (not the Source Address). The nonce indices and MAC value MUST be
+ based on information gained in this test.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 28]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Binding Updates may also be sent to delete a previously
+ established binding. In this case, generation of the binding
+ management key depends exclusively on the home keygen token and
+ the care-of nonce index is ignored.
+
+5.2.7. Updating Node Keys and Nonces
+
+ Correspondent nodes generate nonces at regular intervals. It is
+ recommended to keep each nonce (identified by a nonce index)
+ acceptable for at least MAX_TOKEN_LIFETIME seconds (see Section 12)
+ after it has been first used in constructing a return routability
+ message response. However, the correspondent node MUST NOT accept
+ nonces beyond MAX_NONCE_LIFETIME seconds (see Section 12) after the
+ first use. As the difference between these two constants is 30
+ seconds, a convenient way to enforce the above lifetimes is to
+ generate a new nonce every 30 seconds. The node can then continue to
+ accept tokens that have been based on the last 8 (MAX_NONCE_LIFETIME
+ / 30) nonces. This results in tokens being acceptable
+ MAX_TOKEN_LIFETIME to MAX_NONCE_LIFETIME seconds after they have been
+ sent to the mobile node, depending on whether the token was sent at
+ the beginning or end of the first 30 second period. Note that the
+ correspondent node may also attempt to generate new nonces on demand,
+ or only if the old nonces have been used. This is possible, as long
+ as the correspondent node keeps track of how long a time ago the
+ nonces were used for the first time, and does not generate new nonces
+ on every return routability request.
+
+ Due to resource limitations, rapid deletion of bindings, or reboots
+ the correspondent node may not in all cases recognize the nonces that
+ the tokens were based on. If a nonce index is unrecognized, the
+ correspondent node replies with an error code in the Binding
+ Acknowledgement (either 136, 137, or 138 as discussed in Section
+ 6.1.8). The mobile node can then retry the return routability
+ procedure.
+
+ An update of Kcn SHOULD be done at the same time as an update of a
+ nonce, so that nonce indices can identify both the nonce and the key.
+ Old Kcn values have to be therefore remembered as long as old nonce
+ values.
+
+ Given that the tokens are normally expected to be usable for
+ MAX_TOKEN_LIFETIME seconds, the mobile node MAY use them beyond a
+ single run of the return routability procedure until
+ MAX_TOKEN_LIFETIME expires. After this the mobile node SHOULD NOT
+ use the tokens. A fast moving mobile node MAY reuse a recent home
+ keygen token from a correspondent node when moving to a new location,
+ and just acquire a new care-of keygen token to show routability in
+ the new location.
+
+
+
+Johnson, et al. Standard Track [Page 29]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ While this does not save the number of round-trips due to the
+ simultaneous processing of home and care-of return routability tests,
+ there are fewer messages being exchanged, and a potentially long
+ round-trip through the home agent is avoided. Consequently, this
+ optimization is often useful. A mobile node that has multiple home
+ addresses, MAY also use the same care-of keygen token for Binding
+ Updates concerning all of these addresses.
+
+5.2.8. Preventing Replay Attacks
+
+ The return routability procedure also protects the participants
+ against replayed Binding Updates through the use of the sequence
+ number and a MAC. Care must be taken when removing bindings at the
+ correspondent node, however. Correspondent nodes must retain
+ bindings and the associated sequence number information at least as
+ long as the nonces used in the authorization of the binding are still
+ valid. Alternatively, if memory is very constrained, the
+ correspondent node MAY invalidate the nonces that were used for the
+ binding being deleted (or some larger group of nonces that they
+ belong to). This may, however, impact the ability to accept Binding
+ Updates from mobile nodes that have recently received keygen tokens.
+ This alternative is therefore recommended only as a last measure.
+
+5.3. Dynamic Home Agent Address Discovery
+
+ No security is required for dynamic home agent address discovery.
+
+5.4. Mobile Prefix Discovery
+
+ The mobile node and the home agent SHOULD use an IPsec security
+ association to protect the integrity and authenticity of the Mobile
+ Prefix Solicitations and Advertisements. Both the mobile nodes and
+ the home agents MUST support and SHOULD use the Encapsulating
+ Security Payload (ESP) header in transport mode with a non-NULL
+ payload authentication algorithm to provide data origin
+ authentication, connectionless integrity and optional anti-replay
+ protection.
+
+5.5. Payload Packets
+
+ Payload packets exchanged with mobile nodes can be protected in the
+ usual manner, in the same way as stationary hosts can protect them.
+ However, Mobile IPv6 introduces the Home Address destination option,
+ a routing header, and tunneling headers in the payload packets. In
+ the following we define the security measures taken to protect these,
+ and to prevent their use in attacks against other parties.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 30]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ This specification limits the use of the Home Address destination
+ option to the situation where the correspondent node already has a
+ Binding Cache entry for the given home address. This avoids the use
+ of the Home Address option in attacks described in Section 15.1.
+
+ Mobile IPv6 uses a Mobile IPv6 specific type of a routing header.
+ This type provides the necessary functionality but does not open
+ vulnerabilities discussed in Section 15.1.
+
+ Tunnels between the mobile node and the home agent are protected by
+ ensuring proper use of source addresses, and optional cryptographic
+ protection. The mobile node verifies that the outer IP address
+ corresponds to its home agent. The home agent verifies that the
+ outer IP address corresponds to the current location of the mobile
+ node (Binding Updates sent to the home agents are secure). The home
+ agent identifies the mobile node through the source address of the
+ inner packet. (Typically, this is the home address of the mobile
+ node, but it can also be a link-local address, as discussed in
+ Section 10.4.2. To recognize the latter type of addresses, the home
+ agent requires that the Link-Local Address Compatibility (L) was set
+ in the Binding Update.) These measures protect the tunnels against
+ vulnerabilities discussed in Section 15.1.
+
+ For traffic tunneled via the home agent, additional IPsec ESP
+ encapsulation MAY be supported and used. If multicast group
+ membership control protocols or stateful address autoconfiguration
+ protocols are supported, payload data protection MUST be supported.
+
+6. New IPv6 Protocol, Message Types, and Destination Option
+
+6.1. Mobility Header
+
+ The Mobility Header is an extension header used by mobile nodes,
+ correspondent nodes, and home agents in all messaging related to the
+ creation and management of bindings. The subsections within this
+ section describe the message types that may be sent using the
+ Mobility Header.
+
+ Mobility Header messages MUST NOT be sent with a type 2 routing
+ header, except as described in Section 9.5.4 for Binding
+ Acknowledgement. Mobility Header messages also MUST NOT be used with
+ a Home Address destination option, except as described in Section
+ 11.7.1 and Section 11.7.2 for Binding Update. Binding Update List or
+ Binding Cache information (when present) for the destination MUST NOT
+ be used in sending Mobility Header messages. That is, Mobility
+ Header messages bypass both the Binding Cache check described in
+ Section 9.3.2 and the Binding Update List check described in Section
+
+
+
+
+Johnson, et al. Standard Track [Page 31]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ 11.3.1 which are normally performed for all packets. This applies
+ even to messages sent to or from a correspondent node which is itself
+ a mobile node.
+
+6.1.1. Format
+
+ The Mobility Header is identified by a Next Header value of 135 in
+ the immediately preceding header, and has the following format:
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Payload Proto | Header Len | MH Type | Reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Checksum | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
+ | |
+ . .
+ . Message Data .
+ . .
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Payload Proto
+
+ 8-bit selector. Identifies the type of header immediately
+ following the Mobility Header. Uses the same values as the IPv6
+ Next Header field [11].
+
+ This field is intended to be used by a future extension (see
+ Appendix B.1).
+
+ Implementations conforming to this specification SHOULD set the
+ payload protocol type to IPPROTO_NONE (59 decimal).
+
+ Header Len
+
+ 8-bit unsigned integer, representing the length of the Mobility
+ Header in units of 8 octets, excluding the first 8 octets.
+
+ The length of the Mobility Header MUST be a multiple of 8 octets.
+
+ MH Type
+
+ 8-bit selector. Identifies the particular mobility message in
+ question. Current values are specified in Section 6.1.2 and
+ onward. An unrecognized MH Type field causes an error indication
+ to be sent.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 32]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Reserved
+
+ 8-bit field reserved for future use. The value MUST be
+ initialized to zero by the sender, and MUST be ignored by the
+ receiver.
+
+ Checksum
+
+ 16-bit unsigned integer. This field contains the checksum of the
+ Mobility Header. The checksum is calculated from the octet string
+ consisting of a "pseudo-header" followed by the entire Mobility
+ Header starting with the Payload Proto field. The checksum is the
+ 16-bit one's complement of the one's complement sum of this
+ string.
+
+ The pseudo-header contains IPv6 header fields, as specified in
+ Section 8.1 of RFC 2460 [11]. The Next Header value used in the
+ pseudo-header is 2. The addresses used in the pseudo-header are
+ the addresses that appear in the Source and Destination Address
+ fields in the IPv6 packet carrying the Mobility Header.
+
+ Note that the procedures of calculating upper layer checksums
+ while away from home described in Section 11.3.1 apply even for
+ the Mobility Header. If a mobility message has a Home Address
+ destination option, then the checksum calculation uses the home
+ address in this option as the value of the IPv6 Source Address
+ field. The type 2 routing header is treated as explained in [11].
+
+ The Mobility Header is considered as the upper layer protocol for
+ the purposes of calculating the pseudo-header. The Upper-Layer
+ Packet Length field in the pseudo-header MUST be set to the total
+ length of the Mobility Header.
+
+ For computing the checksum, the checksum field is set to zero.
+
+ Message Data
+
+ A variable length field containing the data specific to the
+ indicated Mobility Header type.
+
+ Mobile IPv6 also defines a number of "mobility options" for use
+ within these messages; if included, any options MUST appear after the
+ fixed portion of the message data specified in this document. The
+ presence of such options will be indicated by the Header Len field
+ within the message. When the Header Len value is greater than the
+ length required for the message specified here, the remaining octets
+ are interpreted as mobility options. These options include padding
+ options that can be used to ensure that other options are aligned
+
+
+
+Johnson, et al. Standard Track [Page 33]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ properly, and that the total length of the message is divisible by 8.
+ The encoding and format of defined options are described in Section
+ 6.2.
+
+ Alignment requirements for the Mobility Header are the same as for
+ any IPv6 protocol Header. That is, they MUST be aligned on an 8-
+ octet boundary.
+
+6.1.2. Binding Refresh Request Message
+
+ The Binding Refresh Request (BRR) message requests a mobile node to
+ update its mobility binding. This message is sent by correspondent
+ nodes according to the rules in Section 9.5.5. When a mobile node
+ receives a packet containing a Binding Refresh Request message it
+ processes the message according to the rules in Section 11.7.4.
+
+ The Binding Refresh Request message uses the MH Type value 0. When
+ this value is indicated in the MH Type field, the format of the
+ Message Data field in the Mobility Header is as follows:
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ . .
+ . Mobility options .
+ . .
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Reserved
+
+ 16-bit field reserved for future use. The value MUST be
+ initialized to zero by the sender, and MUST be ignored by the
+ receiver.
+
+ Mobility Options
+
+ Variable-length field of such length that the complete Mobility
+ Header is an integer multiple of 8 octets long. This field
+ contains zero or more TLV-encoded mobility options. The encoding
+ and format of defined options are described in Section 6.2. The
+ receiver MUST ignore and skip any options which it does not
+ understand.
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 34]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ There MAY be additional information, associated with this Binding
+ Refresh Request message that need not be present in all Binding
+ Refresh Request messages sent. Mobility options allow future
+ extensions to the format of the Binding Refresh Request message to
+ be defined. This specification does not define any options valid
+ for the Binding Refresh Request message.
+
+ If no actual options are present in this message, no padding is
+ necessary and the Header Len field will be set to 0.
+
+6.1.3. Home Test Init Message
+
+ A mobile node uses the Home Test Init (HoTI) message to initiate the
+ return routability procedure and request a home keygen token from a
+ correspondent node (see Section 11.6.1). The Home Test Init message
+ uses the MH Type value 1. When this value is indicated in the MH
+ Type field, the format of the Message Data field in the Mobility
+ Header is as follows:
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ + Home Init Cookie +
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ . .
+ . Mobility Options .
+ . .
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Reserved
+
+ 16-bit field reserved for future use. This value MUST be
+ initialized to zero by the sender, and MUST be ignored by the
+ receiver.
+
+ Home Init Cookie
+
+ 64-bit field which contains a random value, the home init cookie.
+
+ Mobility Options
+
+ Variable-length field of such length that the complete Mobility
+ Header is an integer multiple of 8 octets long. This field
+ contains zero or more TLV-encoded mobility options. The receiver
+
+
+
+Johnson, et al. Standard Track [Page 35]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ MUST ignore and skip any options which it does not understand.
+ This specification does not define any options valid for the Home
+ Test Init message.
+
+ If no actual options are present in this message, no padding is
+ necessary and the Header Len field will be set to 1.
+
+ This message is tunneled through the home agent when the mobile node
+ is away from home. Such tunneling SHOULD employ IPsec ESP in tunnel
+ mode between the home agent and the mobile node. This protection is
+ indicated by the IPsec security policy database. The protection of
+ Home Test Init messages is unrelated to the requirement to protect
+ regular payload traffic, which MAY use such tunnels as well.
+
+6.1.4. Care-of Test Init Message
+
+ A mobile node uses the Care-of Test Init (CoTI) message to initiate
+ the return routability procedure and request a care-of keygen token
+ from a correspondent node (see Section 11.6.1). The Care-of Test
+ Init message uses the MH Type value 2. When this value is indicated
+ in the MH Type field, the format of the Message Data field in the
+ Mobility Header is as follows:
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ + Care-of Init Cookie +
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ . .
+ . Mobility Options .
+ . .
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Reserved
+
+ 16-bit field reserved for future use. The value MUST be
+ initialized to zero by the sender, and MUST be ignored by the
+ receiver.
+
+ Care-of Init Cookie
+
+ 64-bit field which contains a random value, the care-of init
+ cookie.
+
+
+
+
+Johnson, et al. Standard Track [Page 36]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Mobility Options
+
+ Variable-length field of such length that the complete Mobility
+ Header is an integer multiple of 8 octets long. This field
+ contains zero or more TLV-encoded mobility options. The receiver
+ MUST ignore and skip any options which it does not understand.
+ This specification does not define any options valid for the
+ Care-of Test Init message.
+
+ If no actual options are present in this message, no padding is
+ necessary and the Header Len field will be set to 1.
+
+6.1.5. Home Test Message
+
+ The Home Test (HoT) message is a response to the Home Test Init
+ message, and is sent from the correspondent node to the mobile node
+ (see Section 5.2.5). The Home Test message uses the MH Type value 3.
+ When this value is indicated in the MH Type field, the format of the
+ Message Data field in the Mobility Header is as follows:
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Home Nonce Index |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ + Home Init Cookie +
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ + Home Keygen Token +
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ . .
+ . Mobility options .
+ . .
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Home Nonce Index
+
+ This field will be echoed back by the mobile node to the
+ correspondent node in a subsequent Binding Update.
+
+ Home Init Cookie
+
+ 64-bit field which contains the home init cookie.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 37]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Home Keygen Token
+
+ This field contains the 64 bit home keygen token used in the
+ return routability procedure.
+
+ Mobility Options
+
+ Variable-length field of such length that the complete Mobility
+ Header is an integer multiple of 8 octets long. This field
+ contains zero or more TLV-encoded mobility options. The receiver
+ MUST ignore and skip any options which it does not understand.
+ This specification does not define any options valid for the Home
+ Test message.
+
+ If no actual options are present in this message, no padding is
+ necessary and the Header Len field will be set to 2.
+
+6.1.6. Care-of Test Message
+
+ The Care-of Test (CoT) message is a response to the Care-of Test Init
+ message, and is sent from the correspondent node to the mobile node
+ (see Section 11.6.2). The Care-of Test message uses the MH Type
+ value 4. When this value is indicated in the MH Type field, the
+ format of the Message Data field in the Mobility Header is as
+ follows:
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Care-of Nonce Index |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ + Care-of Init Cookie +
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ + Care-of Keygen Token +
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ . .
+ . Mobility Options .
+ . .
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Care-of Nonce Index
+
+ This value will be echoed back by the mobile node to the
+ correspondent node in a subsequent Binding Update.
+
+
+
+Johnson, et al. Standard Track [Page 38]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Care-of Init Cookie
+
+ 64-bit field which contains the care-of init cookie.
+
+ Care-of Keygen Token
+
+ This field contains the 64 bit care-of keygen token used in the
+ return routability procedure.
+
+ Mobility Options
+
+ Variable-length field of such length that the complete Mobility
+ Header is an integer multiple of 8 octets long. This field
+ contains zero or more TLV-encoded mobility options. The receiver
+ MUST ignore and skip any options which it does not understand.
+ This specification does not define any options valid for the
+ Care-of Test message.
+
+ If no actual options are present in this message, no padding is
+ necessary and the Header Len field will be set to 2.
+
+6.1.7. Binding Update Message
+
+ The Binding Update (BU) message is used by a mobile node to notify
+ other nodes of a new care-of address for itself. Binding Updates are
+ sent as described in Section 11.7.1 and Section 11.7.2.
+
+ The Binding Update uses the MH Type value 5. When this value is
+ indicated in the MH Type field, the format of the Message Data field
+ in the Mobility Header is as follows:
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Sequence # |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |A|H|L|K| Reserved | Lifetime |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ . .
+ . Mobility options .
+ . .
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Acknowledge (A)
+
+ The Acknowledge (A) bit is set by the sending mobile node to
+ request a Binding Acknowledgement (Section 6.1.8) be returned upon
+ receipt of the Binding Update.
+
+
+
+Johnson, et al. Standard Track [Page 39]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Home Registration (H)
+
+ The Home Registration (H) bit is set by the sending mobile node to
+ request that the receiving node should act as this node's home
+ agent. The destination of the packet carrying this message MUST
+ be that of a router sharing the same subnet prefix as the home
+ address of the mobile node in the binding.
+
+ Link-Local Address Compatibility (L)
+
+ The Link-Local Address Compatibility (L) bit is set when the home
+ address reported by the mobile node has the same interface
+ identifier as the mobile node's link-local address.
+
+ Key Management Mobility Capability (K)
+
+ If this bit is cleared, the protocol used for establishing the
+ IPsec security associations between the mobile node and the home
+ agent does not survive movements. It may then have to be rerun.
+ (Note that the IPsec security associations themselves are expected
+ to survive movements.) If manual IPsec configuration is used, the
+ bit MUST be cleared.
+
+ This bit is valid only in Binding Updates sent to the home agent,
+ and MUST be cleared in other Binding Updates. Correspondent nodes
+ MUST ignore this bit.
+
+ Reserved
+
+ These fields are unused. They MUST be initialized to zero by the
+ sender and MUST be ignored by the receiver.
+
+ Sequence #
+
+ A 16-bit unsigned integer used by the receiving node to sequence
+ Binding Updates and by the sending node to match a returned
+ Binding Acknowledgement with this Binding Update.
+
+ Lifetime
+
+ 16-bit unsigned integer. The number of time units remaining
+ before the binding MUST be considered expired. A value of zero
+ indicates that the Binding Cache entry for the mobile node MUST be
+ deleted. (In this case the specified care-of address MUST also be
+ set equal to the home address.) One time unit is 4 seconds.
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 40]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Mobility Options
+
+ Variable-length field of such length that the complete Mobility
+ Header is an integer multiple of 8 octets long. This field
+ contains zero or more TLV-encoded mobility options. The encoding
+ and format of defined options are described in Section 6.2. The
+ receiver MUST ignore and skip any options which it does not
+ understand.
+
+ The following options are valid in a Binding Update:
+
+ * Binding Authorization Data option (this option is mandatory in
+ Binding Updates sent to a correspondent node)
+
+ * Nonce Indices option.
+
+ * Alternate Care-of Address option
+
+ If no options are present in this message, 4 octets of padding are
+ necessary and the Header Len field will be set to 1.
+
+ The care-of address is specified either by the Source Address field
+ in the IPv6 header or by the Alternate Care-of Address option, if
+ present. The care-of address MUST be a unicast routable address.
+ IPv6 Source Address MUST be a topologically correct source address.
+ Binding Updates for a care-of address which is not a unicast routable
+ address MUST be silently discarded. Similarly, the Binding Update
+ MUST be silently discarded if the care-of address appears as a home
+ address in an existing Binding Cache entry, with its current location
+ creating a circular reference back to the home address specified in
+ the Binding Update (possibly through additional entries).
+
+ The deletion of a binding can be indicated by setting the Lifetime
+ field to 0 and by setting the care-of address equal to the home
+ address. In deletion, the generation of the binding management key
+ depends exclusively on the home keygen token, as explained in Section
+ 5.2.5. (Note that while the senders are required to set both the
+ Lifetime field to 0 and the care-of address equal to the home
+ address, Section 9.5.1 rules for receivers are more liberal, and
+ interpret either condition as a deletion.)
+
+ Correspondent nodes SHOULD NOT delete the Binding Cache entry before
+ the lifetime expires, if any application hosted by the correspondent
+ node is still likely to require communication with the mobile node.
+ A Binding Cache entry that is de-allocated prematurely might cause
+ subsequent packets to be dropped from the mobile node, if they
+ contain the Home Address destination option. This situation is
+ recoverable, since a Binding Error message is sent to the mobile node
+
+
+
+Johnson, et al. Standard Track [Page 41]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ (see Section 6.1.9); however, it causes unnecessary delay in the
+ communications.
+
+6.1.8. Binding Acknowledgement Message
+
+ The Binding Acknowledgement is used to acknowledge receipt of a
+ Binding Update (Section 6.1.7). This packet is sent as described in
+ Section 9.5.4 and Section 10.3.1.
+
+ The Binding Acknowledgement has the MH Type value 6. When this value
+ is indicated in the MH Type field, the format of the Message Data
+ field in the Mobility Header is as follows:
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Status |K| Reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Sequence # | Lifetime |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ . .
+ . Mobility options .
+ . .
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Key Management Mobility Capability (K)
+
+ If this bit is cleared, the protocol used by the home agent for
+ establishing the IPsec security associations between the mobile
+ node and the home agent does not survive movements. It may then
+ have to be rerun. (Note that the IPsec security associations
+ themselves are expected to survive movements.)
+
+ Correspondent nodes MUST set the K bit to 0.
+
+ Reserved
+
+ These fields are unused. They MUST be initialized to zero by the
+ sender and MUST be ignored by the receiver.
+
+
+
+
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 42]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Status
+
+ 8-bit unsigned integer indicating the disposition of the Binding
+ Update. Values of the Status field less than 128 indicate that
+ the Binding Update was accepted by the receiving node. Values
+ greater than or equal to 128 indicate that the Binding Update was
+ rejected by the receiving node. The following Status values are
+ currently defined:
+
+ 0 Binding Update accepted
+
+ 1 Accepted but prefix discovery necessary
+
+ 128 Reason unspecified
+
+ 129 Administratively prohibited
+
+ 130 Insufficient resources
+
+ 131 Home registration not supported
+
+ 132 Not home subnet
+
+ 133 Not home agent for this mobile node
+
+ 134 Duplicate Address Detection failed
+
+ 135 Sequence number out of window
+
+ 136 Expired home nonce index
+
+ 137 Expired care-of nonce index
+
+ 138 Expired nonces
+
+ 139 Registration type change disallowed
+
+ Up-to-date values of the Status field are to be specified in the IANA
+ registry of assigned numbers [19].
+
+ Sequence #
+
+ The Sequence Number in the Binding Acknowledgement is copied from
+ the Sequence Number field in the Binding Update. It is used by
+ the mobile node in matching this Binding Acknowledgement with an
+ outstanding Binding Update.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 43]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Lifetime
+
+ The granted lifetime, in time units of 4 seconds, for which this
+ node SHOULD retain the entry for this mobile node in its Binding
+ Cache.
+
+ The value of this field is undefined if the Status field indicates
+ that the Binding Update was rejected.
+
+ Mobility Options
+
+ Variable-length field of such length that the complete Mobility
+ Header is an integer multiple of 8 octets long. This field
+ contains zero or more TLV-encoded mobility options. The encoding
+ and format of defined options are described in Section 6.2. The
+ receiver MUST ignore and skip any options which it does not
+ understand.
+
+ There MAY be additional information, associated with this Binding
+ Acknowledgement that need not be present in all Binding
+ Acknowledgements sent. Mobility options allow future extensions
+ to the format of the Binding Acknowledgement to be defined. The
+ following options are valid for the Binding Acknowledgement:
+
+ * Binding Authorization Data option (this option is mandatory in
+ Binding Acknowledgements sent by a correspondent node, except
+ where otherwise noted in Section 9.5.4)
+
+ * Binding Refresh Advice option
+
+ If no options are present in this message, 4 octets of padding are
+ necessary and the Header Len field will be set to 1.
+
+6.1.9. Binding Error Message
+
+ The Binding Error (BE) message is used by the correspondent node to
+ signal an error related to mobility, such as an inappropriate attempt
+ to use the Home Address destination option without an existing
+ binding; see Section 9.3.3 for details.
+
+
+
+
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 44]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ The Binding Error message uses the MH Type value 7. When this value
+ is indicated in the MH Type field, the format of the Message Data
+ field in the Mobility Header is as follows:
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Status | Reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ + +
+ | |
+ + Home Address +
+ | |
+ + +
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ . .
+ . Mobility Options .
+ . .
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Status
+
+ 8-bit unsigned integer indicating the reason for this message.
+ The following values are currently defined:
+
+ 1 Unknown binding for Home Address destination option
+
+ 2 Unrecognized MH Type value
+
+ Reserved
+
+ A 8-bit field reserved for future use. The value MUST be
+ initialized to zero by the sender, and MUST be ignored by the
+ receiver.
+
+ Home Address
+
+ The home address that was contained in the Home Address
+ destination option. The mobile node uses this information to
+ determine which binding does not exist, in cases where the mobile
+ node has several home addresses.
+
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 45]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Mobility Options
+
+ Variable-length field of such length that the complete Mobility
+ Header is an integer multiple of 8 octets long. This field
+ contains zero or more TLV-encoded mobility options. The receiver
+ MUST ignore and skip any options which it does not understand.
+
+ There MAY be additional information, associated with this Binding
+ Error message that need not be present in all Binding Error
+ messages sent. Mobility options allow future extensions to the
+ format of the format of the Binding Error message to be defined.
+ The encoding and format of defined options are described in
+ Section 6.2. This specification does not define any options valid
+ for the Binding Error message.
+
+ If no actual options are present in this message, no padding is
+ necessary and the Header Len field will be set to 2.
+
+6.2. Mobility Options
+
+ Mobility messages can include zero or more mobility options. This
+ allows optional fields that may not be needed in every use of a
+ particular Mobility Header, as well as future extensions to the
+ format of the messages. Such options are included in the Message
+ Data field of the message itself, after the fixed portion of the
+ message data specified in the message subsections of Section 6.1.
+
+ The presence of such options will be indicated by the Header Len of
+ the Mobility Header. If included, the Binding Authorization Data
+ option (Section 6.2.7) MUST be the last option and MUST NOT have
+ trailing padding. Otherwise, options can be placed in any order.
+
+6.2.1. Format
+
+ Mobility options are encoded within the remaining space of the
+ Message Data field of a mobility message, using a type-length-value
+ (TLV) format as follows:
+
+ 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 | Option Data...
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 46]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Option Type
+
+ 8-bit identifier of the type of mobility option. When processing
+ a Mobility Header containing an option for which the Option Type
+ value is not recognized by the receiver, the receiver MUST quietly
+ ignore and skip over the option, correctly handling any remaining
+ options in the message.
+
+ Option Length
+
+ 8-bit unsigned integer, representing the length in octets of the
+ mobility option, not including the Option Type and Option Length
+ fields.
+
+ Option Data
+
+ A variable length field that contains data specific to the option.
+
+ The following subsections specify the Option types which are
+ currently defined for use in the Mobility Header.
+
+ Implementations MUST silently ignore any mobility options that they
+ do not understand.
+
+ Mobility options may have alignment requirements. Following the
+ convention in IPv6, these options are aligned in a packet so that
+ multi-octet values within the Option Data field of each option fall
+ on natural boundaries (i.e., fields of width n octets are placed at
+ an integer multiple of n octets from the start of the header, for n =
+ 1, 2, 4, or 8) [11].
+
+6.2.2. Pad1
+
+ The Pad1 option does not have any alignment requirements. Its format
+ is as follows:
+
+ 0
+ 0 1 2 3 4 5 6 7
+ +-+-+-+-+-+-+-+-+
+ | Type = 0 |
+ +-+-+-+-+-+-+-+-+
+
+ NOTE! the format of the Pad1 option is a special case - it has
+ neither Option Length nor Option Data fields.
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 47]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ The Pad1 option is used to insert one octet of padding in the
+ Mobility Options area of a Mobility Header. If more than one octet
+ of padding is required, the PadN option, described next, should be
+ used rather than multiple Pad1 options.
+
+6.2.3. PadN
+
+ The PadN option does not have any alignment requirements. Its format
+ is as follows:
+
+ 0 1
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- - - - - - - - -
+ | Type = 1 | Option Length | Option Data
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- - - - - - - - -
+
+ The PadN option is used to insert two or more octets of padding in
+ the Mobility Options area of a mobility message. For N octets of
+ padding, the Option Length field contains the value N-2, and the
+ Option Data consists of N-2 zero-valued octets. PadN Option data
+ MUST be ignored by the receiver.
+
+6.2.4. Binding Refresh Advice
+
+ The Binding Refresh Advice option has an alignment requirement of 2n.
+ Its format is as follows:
+
+ 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 = 2 | Length = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Refresh Interval |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ The Binding Refresh Advice option is only valid in the Binding
+ Acknowledgement, and only on Binding Acknowledgements sent from the
+ mobile node's home agent in reply to a home registration. The
+ Refresh Interval is measured in units of four seconds, and indicates
+ remaining time until the mobile node SHOULD send a new home
+ registration to the home agent. The Refresh Interval MUST be set to
+ indicate a smaller time interval than the Lifetime value of the
+ Binding Acknowledgement.
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 48]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+6.2.5. Alternate Care-of Address
+
+ The Alternate Care-of Address option has an alignment requirement of
+ 8n+6. Its format is as follows:
+
+ 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 = 3 | Length = 16 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ + +
+ | |
+ + Alternate Care-of Address +
+ | |
+ + +
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Normally, a Binding Update specifies the desired care-of address in
+ the Source Address field of the IPv6 header. However, this is not
+ possible in some cases, such as when the mobile node wishes to
+ indicate a care-of address which it cannot use as a topologically
+ correct source address (Section 6.1.7 and Section 11.7.2) or when the
+ used security mechanism does not protect the IPv6 header (Section
+ 11.7.1).
+
+ The Alternate Care-of Address option is provided for these
+ situations. This option is valid only in Binding Update. The
+ Alternate Care-of Address field contains an address to use as the
+ care-of address for the binding, rather than using the Source Address
+ of the packet as the care-of address.
+
+6.2.6. Nonce Indices
+
+ The Nonce Indices option has an alignment requirement of 2n. Its
+ format is as follows:
+
+ 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 = 4 | Length = 4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Home Nonce Index | Care-of Nonce Index |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 49]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ The Nonce Indices option is valid only in the Binding Update message
+ sent to a correspondent node, and only when present together with a
+ Binding Authorization Data option. When the correspondent node
+ authorizes the Binding Update, it needs to produce home and care-of
+ keygen tokens from its stored random nonce values.
+
+ The Home Nonce Index field tells the correspondent node which nonce
+ value to use when producing the home keygen token.
+
+ The Care-of Nonce Index field is ignored in requests to delete a
+ binding. Otherwise, it tells the correspondent node which nonce
+ value to use when producing the care-of keygen token.
+
+6.2.7. Binding Authorization Data
+
+ The Binding Authorization Data option does not have alignment
+ requirements as such. However, since this option must be the last
+ mobility option, an implicit alignment requirement is 8n + 2. The
+ format of this option is as follows:
+
+ 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 = 5 | Option Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ + +
+ | Authenticator |
+ + +
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ The Binding Authorization Data option is valid in the Binding Update
+ and Binding Acknowledgement.
+
+ The Option Length field contains the length of the authenticator in
+ octets.
+
+ The Authenticator field contains a cryptographic value which can be
+ used to determine that the message in question comes from the right
+ authority. Rules for calculating this value depends on the used
+ authorization procedure.
+
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 50]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ For the return routability procedure, this option can appear in the
+ Binding Update and Binding Acknowledgements. Rules for calculating
+ the Authenticator value are the following:
+
+ Mobility Data = care-of address | correspondent | MH Data
+ Authenticator = First (96, HMAC_SHA1 (Kbm, Mobility Data))
+
+ Where | denotes concatenation. "Care-of address" is the care-of
+ address which will be registered for the mobile node if the Binding
+ Update succeeds, or the home address of the mobile node if this
+ option is used in de-registration. Note also that this address might
+ be different from the source address of the Binding Update message,
+ if the Alternative Care-of Address mobility option is used, or when
+ the lifetime of the binding is set to zero.
+
+ The "correspondent" is the IPv6 address of the correspondent node.
+ Note that, if the message is sent to a destination which is itself
+ mobile, the "correspondent" address may not be the address found in
+ the Destination Address field of the IPv6 header; instead the home
+ address from the type 2 Routing header should be used.
+
+ "MH Data" is the content of the Mobility Header, excluding the
+ Authenticator field itself. The Authenticator value is calculated as
+ if the Checksum field in the Mobility Header was zero. The Checksum
+ in the transmitted packet is still calculated in the usual manner,
+ with the calculated Authenticator being a part of the packet
+ protected by the Checksum. Kbm is the binding management key, which
+ is typically created using nonces provided by the correspondent node
+ (see Section 9.4). Note that while the contents of a potential Home
+ Address destination option are not covered in this formula, the rules
+ for the calculation of the Kbm do take the home address in account.
+ This ensures that the MAC will be different for different home
+ addresses.
+
+ The first 96 bits from the MAC result are used as the Authenticator
+ field.
+
+6.3. Home Address Option
+
+ The Home Address option is carried by the Destination Option
+ extension header (Next Header value = 60). It is used in a packet
+ sent by a mobile node while away from home, to inform the recipient
+ of the mobile node's home address.
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 51]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ The Home Address option is encoded in type-length-value (TLV) format
+ as follows:
+
+ 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 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ + +
+ | |
+ + Home Address +
+ | |
+ + +
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Option Type
+
+ 201 = 0xC9
+
+ Option Length
+
+ 8-bit unsigned integer. Length of the option, in octets,
+ excluding the Option Type and Option Length fields. This field
+ MUST be set to 16.
+
+ Home Address
+
+ The home address of the mobile node sending the packet. This
+ address MUST be a unicast routable address.
+
+ The alignment requirement [11] for the Home Address option is 8n+6.
+
+ The three highest-order bits of the Option Type field are encoded to
+ indicate specific processing of the option [11]; for the Home Address
+ option, these three bits are set to 110. This indicates the
+ following processing requirements:
+
+ o Any IPv6 node that does not recognize the Option Type must discard
+ the packet, and if the packet's Destination Address was not a
+ multicast address, return an ICMP Parameter Problem, Code 2,
+ message to the packet's Source Address. The Pointer field in the
+ ICMP message SHOULD point at the Option Type field. Otherwise,
+ for multicast addresses, the ICMP message MUST NOT be sent.
+
+ o The data within the option cannot change en route to the packet's
+ final destination.
+
+
+
+Johnson, et al. Standard Track [Page 52]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ The Home Address option MUST be placed as follows:
+
+ o After the routing header, if that header is present
+
+ o Before the Fragment Header, if that header is present
+
+ o Before the AH Header or ESP Header, if either one of those headers
+ are present
+
+ For each IPv6 packet header, the Home Address Option MUST NOT appear
+ more than once. However, an encapsulated packet [15] MAY contain a
+ separate Home Address option associated with each encapsulating IP
+ header.
+
+ The inclusion of a Home Address destination option in a packet
+ affects the receiving node's processing of only this single packet.
+ No state is created or modified in the receiving node as a result of
+ receiving a Home Address option in a packet. In particular, the
+ presence of a Home Address option in a received packet MUST NOT alter
+ the contents of the receiver's Binding Cache and MUST NOT cause any
+ changes in the routing of subsequent packets sent by this receiving
+ node.
+
+6.4. Type 2 Routing Header
+
+ Mobile IPv6 defines a new routing header variant, the type 2 routing
+ header, to allow the packet to be routed directly from a
+ correspondent to the mobile node's care-of address. The mobile
+ node's care-of address is inserted into the IPv6 Destination Address
+ field. Once the packet arrives at the care-of address, the mobile
+ node retrieves its home address from the routing header, and this is
+ used as the final destination address for the packet.
+
+ The new routing header uses a different type than defined for
+ "regular" IPv6 source routing, enabling firewalls to apply different
+ rules to source routed packets than to Mobile IPv6. This routing
+ header type (type 2) is restricted to carry only one IPv6 address.
+ All IPv6 nodes which process this routing header MUST verify that the
+ address contained within is the node's own home address in order to
+ prevent packets from being forwarded outside the node. The IP
+ address contained in the routing header, since it is the mobile
+ node's home address, MUST be a unicast routable address.
+ Furthermore, if the scope of the home address is smaller than the
+ scope of the care-of address, the mobile node MUST discard the packet
+ (see Section 4.6).
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 53]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+6.4.1. Format
+
+ The type 2 routing header has the following format:
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Next Header | Hdr Ext Len=2 | Routing Type=2|Segments Left=1|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ + +
+ | |
+ + Home Address +
+ | |
+ + +
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Next Header
+
+ 8-bit selector. Identifies the type of header immediately
+ following the routing header. Uses the same values as the IPv6
+ Next Header field [11].
+
+ Hdr Ext Len
+
+ 2 (8-bit unsigned integer); length of the routing header in 8-
+ octet units, not including the first 8 octets.
+
+ Routing Type
+
+ 2 (8-bit unsigned integer).
+
+ Segments Left
+
+ 1 (8-bit unsigned integer).
+
+ Reserved
+
+ 32-bit reserved field. The value MUST be initialized to zero by
+ the sender, and MUST be ignored by the receiver.
+
+ Home Address
+
+ The Home Address of the destination Mobile Node.
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 54]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ For a type 2 routing header, the Hdr Ext Len MUST be 2. The Segments
+ Left value describes the number of route segments remaining; i.e.,
+ number of explicitly listed intermediate nodes still to be visited
+ before reaching the final destination. Segments Left MUST be 1. The
+ ordering rules for extension headers in an IPv6 packet are described
+ in Section 4.1 of RFC 2460 [11]. The type 2 routing header defined
+ for Mobile IPv6 follows the same ordering as other routing headers.
+ If both a type 0 and a type 2 routing header are present, the type 2
+ routing header should follow the other routing header. A packet
+ containing such nested encapsulation should be created as if the
+ inner (type 2) routing header was constructed first and then treated
+ as an original packet by the outer (type 0) routing header
+ construction process.
+
+ In addition, the general procedures defined by IPv6 for routing
+ headers suggest that a received routing header MAY be automatically
+ "reversed" to construct a routing header for use in any response
+ packets sent by upper-layer protocols, if the received packet is
+ authenticated [6]. This MUST NOT be done automatically for type 2
+ routing headers.
+
+6.5. ICMP Home Agent Address Discovery Request Message
+
+ The ICMP Home Agent Address Discovery Request message is used by a
+ mobile node to initiate the dynamic home agent address discovery
+ mechanism, as described in Section 11.4.1. The mobile node sends the
+ Home Agent Address Discovery Request message to the Mobile IPv6
+ Home-Agents anycast address [16] for its own home subnet prefix.
+ (Note that the currently defined anycast addresses may not work with
+ all prefix lengths other than those defined in RFC 2373 [3, 35].)
+
+ 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 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Identifier | Reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Type
+
+ 144
+
+ Code
+
+ 0
+
+
+
+
+
+Johnson, et al. Standard Track [Page 55]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Checksum
+
+ The ICMP checksum [14].
+
+ Identifier
+
+ An identifier to aid in matching Home Agent Address Discovery
+ Reply messages to this Home Agent Address Discovery Request
+ message.
+
+ Reserved
+
+ This field is unused. It MUST be initialized to zero by the
+ sender and MUST be ignored by the receiver.
+
+ The Source Address of the Home Agent Address Discovery Request
+ message packet is typically one of the mobile node's current care-of
+ addresses. At the time of performing this dynamic home agent address
+ discovery procedure, it is likely that the mobile node is not
+ registered with any home agent. Therefore, neither the nature of the
+ address nor the identity of the mobile node can be established at
+ this time. The home agent MUST then return the Home Agent Address
+ Discovery Reply message directly to the Source Address chosen by the
+ mobile node.
+
+6.6. ICMP Home Agent Address Discovery Reply Message
+
+ The ICMP Home Agent Address Discovery Reply message is used by a home
+ agent to respond to a mobile node that uses the dynamic home agent
+ address discovery mechanism, as described in Section 10.5.
+
+ 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 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Identifier | Reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ + +
+ . .
+ . Home Agent Addresses .
+ . .
+ + +
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 56]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Type
+
+ 145
+
+ Code
+
+ 0
+
+ Checksum
+
+ The ICMP checksum [14].
+
+ Identifier
+
+ The identifier from the invoking Home Agent Address Discovery
+ Request message.
+
+ Reserved
+
+ This field is unused. It MUST be initialized to zero by the
+ sender and MUST be ignored by the receiver.
+
+ Home Agent Addresses
+
+ A list of addresses of home agents on the home link for the mobile
+ node. The number of addresses presented in the list is indicated
+ by the remaining length of the IPv6 packet carrying the Home Agent
+ Address Discovery Reply message.
+
+6.7. ICMP Mobile Prefix Solicitation Message Format
+
+ The ICMP Mobile Prefix Solicitation Message is sent by a mobile node
+ to its home agent while it is away from home. The purpose of the
+ message is to solicit a Mobile Prefix Advertisement from the home
+ agent, which will allow the mobile node to gather prefix information
+ about its home network. This information can be used to configure
+ and update home address(es) according to changes in prefix
+ information supplied by the home agent.
+
+ 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 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Identifier | Reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 57]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ IP Fields:
+
+ Source Address
+
+ The mobile node's care-of address.
+
+ Destination Address
+
+ The address of the mobile node's home agent. This home agent must
+ be on the link that the mobile node wishes to learn prefix
+ information about.
+
+ Hop Limit
+
+ Set to an initial hop limit value, similarly to any other unicast
+ packet sent by the mobile node.
+
+ Destination Option:
+
+ A Home Address destination option MUST be included.
+
+ ESP header:
+
+ IPsec headers MUST be supported and SHOULD be used as described in
+ Section 5.4.
+
+ ICMP Fields:
+
+ Type
+
+ 146
+
+ Code
+
+ 0
+
+ Checksum
+
+ The ICMP checksum [14].
+
+ Identifier
+
+ An identifier to aid in matching a future Mobile Prefix
+ Advertisement to this Mobile Prefix Solicitation.
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 58]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Reserved
+
+ This field is unused. It MUST be initialized to zero by the
+ sender and MUST be ignored by the receiver.
+
+ The Mobile Prefix Solicitation messages may have options. These
+ options MUST use the option format defined in RFC 2461 [12]. This
+ document does not define any option types for the Mobile Prefix
+ Solicitation message, but future documents may define new options.
+ Home agents MUST silently ignore any options they do not recognize
+ and continue processing the message.
+
+6.8. ICMP Mobile Prefix Advertisement Message Format
+
+ A home agent will send a Mobile Prefix Advertisement to a mobile node
+ to distribute prefix information about the home link while the mobile
+ node is traveling away from the home network. This will occur in
+ response to a Mobile Prefix Solicitation with an Advertisement, or by
+ an unsolicited Advertisement sent according to the rules in Section
+ 10.6.
+
+ 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 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Identifier |M|O| Reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Options ...
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ IP Fields:
+
+ Source Address
+
+ The home agent's address as the mobile node would expect to see it
+ (i.e., same network prefix).
+
+ Destination Address
+
+ If this message is a response to a Mobile Prefix Solicitation,
+ this field contains the Source Address field from that packet.
+ For unsolicited messages, the mobile node's care-of address SHOULD
+ be used. Note that unsolicited messages can only be sent if the
+ mobile node is currently registered with the home agent.
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 59]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Routing header:
+
+ A type 2 routing header MUST be included.
+
+ ESP header:
+
+ IPsec headers MUST be supported and SHOULD be used as described in
+ Section 5.4.
+
+ ICMP Fields:
+
+ Type
+
+ 147
+
+ Code
+
+ 0
+
+ Checksum
+
+ The ICMP checksum [14].
+
+ Identifier
+
+ An identifier to aid in matching this Mobile Prefix Advertisement
+ to a previous Mobile Prefix Solicitation.
+
+ M
+
+ 1-bit Managed Address Configuration flag. When set, hosts use the
+ administered (stateful) protocol for address autoconfiguration in
+ addition to any addresses autoconfigured using stateless address
+ autoconfiguration. The use of this flag is described in [12, 13].
+
+ O
+
+ 1-bit Other Stateful Configuration flag. When set, hosts use the
+ administered (stateful) protocol for autoconfiguration of other
+ (non-address) information. The use of this flag is described in
+ [12, 13].
+
+ Reserved
+
+ This field is unused. It MUST be initialized to zero by the
+ sender and MUST be ignored by the receiver.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 60]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ The Mobile Prefix Advertisement messages may have options. These
+ options MUST use the option format defined in RFC 2461 [12]. This
+ document defines one option which may be carried in a Mobile Prefix
+ Advertisement message, but future documents may define new options.
+ Mobile nodes MUST silently ignore any options they do not recognize
+ and continue processing the message.
+
+ Prefix Information
+
+ Each message contains one or more Prefix Information options.
+ Each option carries the prefix(es) that the mobile node should use
+ to configure its home address(es). Section 10.6 describes which
+ prefixes should be advertised to the mobile node.
+
+ The Prefix Information option is defined in Section 4.6.2 of RFC
+ 2461 [12], with modifications defined in Section 7.2 of this
+ specification. The home agent MUST use this modified Prefix
+ Information option to send home network prefixes as defined in
+ Section 10.6.1.
+
+ If the Advertisement is sent in response to a Mobile Prefix
+ Solicitation, the home agent MUST copy the Identifier value from that
+ message into the Identifier field of the Advertisement.
+
+ The home agent MUST NOT send more than one Mobile Prefix
+ Advertisement message per second to any mobile node.
+
+ The M and O bits MUST be cleared if the Home Agent DHCPv6 support is
+ not provided. If such support is provided then they are set in
+ concert with the home network's administrative settings.
+
+7. Modifications to IPv6 Neighbor Discovery
+
+7.1. Modified Router Advertisement Message Format
+
+ Mobile IPv6 modifies the format of the Router Advertisement message
+ [12] by the addition of a single flag bit to indicate that the router
+ sending the Advertisement message is serving as a home agent on this
+ link. The format of the Router Advertisement message is as follows:
+
+
+
+
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 61]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ 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 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Cur Hop Limit |M|O|H| Reserved| Router Lifetime |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Reachable Time |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Retrans Timer |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Options ...
+ +-+-+-+-+-+-+-+-+-+-+-+-
+
+ This format represents the following changes over that originally
+ specified for Neighbor Discovery [12]:
+
+ Home Agent (H)
+
+ The Home Agent (H) bit is set in a Router Advertisement to
+ indicate that the router sending this Router Advertisement is also
+ functioning as a Mobile IPv6 home agent on this link.
+
+ Reserved
+
+ Reduced from a 6-bit field to a 5-bit field to account for the
+ addition of the above bit.
+
+7.2. Modified Prefix Information Option Format
+
+ Mobile IPv6 requires knowledge of a router's global address in
+ building a Home Agents List as part of the dynamic home agent address
+ discovery mechanism.
+
+ However, Neighbor Discovery [12] only advertises a router's link-
+ local address, by requiring this address to be used as the IP Source
+ Address of each Router Advertisement.
+
+ Mobile IPv6 extends Neighbor Discovery to allow a router to advertise
+ its global address, by the addition of a single flag bit in the
+ format of a Prefix Information option for use in Router Advertisement
+ messages. The format of the Prefix Information option is as follows:
+
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 62]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ 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 | Length | Prefix Length |L|A|R|Reserved1|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Valid Lifetime |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Preferred Lifetime |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Reserved2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ + +
+ | |
+ + Prefix +
+ | |
+ + +
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ This format represents the following changes over that originally
+ specified for Neighbor Discovery [12]:
+
+ Router Address (R)
+
+ 1-bit router address flag. When set, indicates that the Prefix
+ field contains a complete IP address assigned to the sending
+ router. The indicated prefix is the first Prefix Length bits of
+ the Prefix field. The router IP address has the same scope and
+ conforms to the same lifetime values as the advertised prefix.
+ This use of the Prefix field is compatible with its use in
+ advertising the prefix itself, since Prefix Advertisement uses
+ only the leading bits. Interpretation of this flag bit is thus
+ independent of the processing required for the On-Link (L) and
+ Autonomous Address-Configuration (A) flag bits.
+
+ Reserved1
+
+ Reduced from a 6-bit field to a 5-bit field to account for the
+ addition of the above bit.
+
+ In a Router Advertisement, a home agent MUST, and all other routers
+ MAY, include at least one Prefix Information option with the Router
+ Address (R) bit set. Neighbor Discovery specifies that, if including
+ all options in a Router Advertisement causes the size of the
+ Advertisement to exceed the link MTU, multiple Advertisements can be
+ sent, each containing a subset of the options [12]. Also, when
+ sending unsolicited multicast Router Advertisements more frequently
+
+
+
+Johnson, et al. Standard Track [Page 63]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ than the limit specified in RFC 2461 [12], the sending router need
+ not include all options in each of these Advertisements. However, in
+ both of these cases the router SHOULD include at least one Prefix
+ Information option with the Router Address (R) bit set in each such
+ advertisement, if this bit is set in some advertisement sent by the
+ router.
+
+ In addition, the following requirement can assist mobile nodes in
+ movement detection. Barring changes in the prefixes for the link,
+ routers that send multiple Router Advertisements with the Router
+ Address (R) bit set in some of the included Prefix Information
+ options SHOULD provide at least one option and router address which
+ stays the same in all of the Advertisements.
+
+7.3. New Advertisement Interval Option Format
+
+ Mobile IPv6 defines a new Advertisement Interval option, used in
+ Router Advertisement messages to advertise the interval at which the
+ sending router sends unsolicited multicast Router Advertisements.
+ The format of the Advertisement Interval option is as follows:
+
+ 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 | Length | Reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Advertisement Interval |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Type
+
+ 7
+
+ Length
+
+ 8-bit unsigned integer. The length of the option (including the
+ type and length fields) is in units of 8 octets. The value of
+ this field MUST be 1.
+
+ Reserved
+
+ This field is unused. It MUST be initialized to zero by the
+ sender and MUST be ignored by the receiver.
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 64]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Advertisement Interval
+
+ 32-bit unsigned integer. The maximum time, in milliseconds,
+ between successive unsolicited Router Advertisement messages sent
+ by this router on this network interface. Using the conceptual
+ router configuration variables defined by Neighbor Discovery [12],
+ this field MUST be equal to the value MaxRtrAdvInterval, expressed
+ in milliseconds.
+
+ Routers MAY include this option in their Router Advertisements. A
+ mobile node receiving a Router Advertisement containing this option
+ SHOULD utilize the specified Advertisement Interval for that router
+ in its movement detection algorithm, as described in Section 11.5.1.
+
+ This option MUST be silently ignored for other Neighbor Discovery
+ messages.
+
+7.4. New Home Agent Information Option Format
+
+ Mobile IPv6 defines a new Home Agent Information option, used in
+ Router Advertisements sent by a home agent to advertise information
+ specific to this router's functionality as a home agent. The format
+ of the Home Agent Information option is as follows:
+
+ 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 | Length | Reserved |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Home Agent Preference | Home Agent Lifetime |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Type
+
+ 8
+
+ Length
+
+ 8-bit unsigned integer. The length of the option (including the
+ type and length fields) in units of 8 octets. The value of this
+ field MUST be 1.
+
+ Reserved
+
+ This field is unused. It MUST be initialized to zero by the
+ sender and MUST be ignored by the receiver.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 65]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Home Agent Preference
+
+ 16-bit unsigned integer. The preference for the home agent
+ sending this Router Advertisement, for use in ordering the
+ addresses returned to a mobile node in the Home Agent Addresses
+ field of a Home Agent Address Discovery Reply message. Higher
+ values mean more preferable. If this option is not included in a
+ Router Advertisement in which the Home Agent (H) bit is set, the
+ preference value for this home agent MUST be considered to be 0.
+ Greater values indicate a more preferable home agent than lower
+ values.
+
+ The manual configuration of the Home Agent Preference value is
+ described in Section 8.4. In addition, the sending home agent MAY
+ dynamically set the Home Agent Preference value, for example
+ basing it on the number of mobile nodes it is currently serving or
+ on its remaining resources for serving additional mobile nodes;
+ such dynamic settings are beyond the scope of this document. Any
+ such dynamic setting of the Home Agent Preference, however, MUST
+ set the preference appropriately, relative to the default Home
+ Agent Preference value of 0 that may be in use by some home agents
+ on this link (i.e., a home agent not including a Home Agent
+ Information option in its Router Advertisements will be considered
+ to have a Home Agent Preference value of 0).
+
+ Home Agent Lifetime
+
+ 16-bit unsigned integer. The lifetime associated with the home
+ agent in units of seconds. The default value is the same as the
+ Router Lifetime, as specified in the main body of the Router
+ Advertisement. The maximum value corresponds to 18.2 hours. A
+ value of 0 MUST NOT be used. The Home Agent Lifetime applies only
+ to this router's usefulness as a home agent; it does not apply to
+ information contained in other message fields or options.
+
+ Home agents MAY include this option in their Router Advertisements.
+ This option MUST NOT be included in a Router Advertisement in which
+ the Home Agent (H) bit (see Section 7.1) is not set. If this option
+ is not included in a Router Advertisement in which the Home Agent (H)
+ bit is set, the lifetime for this home agent MUST be considered to be
+ the same as the Router Lifetime in the Router Advertisement. If
+ multiple Advertisements are being sent instead of a single larger
+ unsolicited multicast Advertisement, all of the multiple
+ Advertisements with the Router Address (R) bit set MUST include this
+ option with the same contents, otherwise this option MUST be omitted
+ from all Advertisements.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 66]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ This option MUST be silently ignored for other Neighbor Discovery
+ messages.
+
+ If both the Home Agent Preference and Home Agent Lifetime are set to
+ their default values specified above, this option SHOULD NOT be
+ included in the Router Advertisement messages sent by this home
+ agent.
+
+7.5. Changes to Sending Router Advertisements
+
+ The Neighbor Discovery protocol specification [12] limits routers to
+ a minimum interval of 3 seconds between sending unsolicited multicast
+ Router Advertisement messages from any given network interface
+ (limited by MinRtrAdvInterval and MaxRtrAdvInterval), stating that:
+
+ "Routers generate Router Advertisements frequently enough that
+ hosts will learn of their presence within a few minutes, but not
+ frequently enough to rely on an absence of advertisements to
+ detect router failure; a separate Neighbor Unreachability
+ Detection algorithm provides failure detection."
+
+ This limitation, however, is not suitable to providing timely
+ movement detection for mobile nodes. Mobile nodes detect their own
+ movement by learning the presence of new routers as the mobile node
+ moves into wireless transmission range of them (or physically
+ connects to a new wired network), and by learning that previous
+ routers are no longer reachable. Mobile nodes MUST be able to
+ quickly detect when they move to a link served by a new router, so
+ that they can acquire a new care-of address and send Binding Updates
+ to register this care-of address with their home agent and to notify
+ correspondent nodes as needed.
+
+ One method which can provide for faster movement detection, is to
+ increase the rate at which unsolicited Router Advertisements are
+ sent. Mobile IPv6 relaxes this limit such that routers MAY send
+ unsolicited multicast Router Advertisements more frequently. This
+ method can be applied where the router is expecting to provide
+ service to visiting mobile nodes (e.g., wireless network interfaces),
+ or on which it is serving as a home agent to one or more mobile nodes
+ (who may return home and need to hear its Advertisements).
+
+ Routers supporting mobility SHOULD be able to be configured with a
+ smaller MinRtrAdvInterval value and MaxRtrAdvInterval value to allow
+ sending of unsolicited multicast Router Advertisements more often.
+ The minimum allowed values are:
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 67]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o MinRtrAdvInterval 0.03 seconds
+
+ o MaxRtrAdvInterval 0.07 seconds
+
+ In the case where the minimum intervals and delays are used, the mean
+ time between unsolicited multicast router advertisements is 50 ms.
+ Use of these modified limits MUST be configurable (see also the
+ configuration variable MinDelayBetweenRas in Section 13 which may
+ also have to be modified accordingly). Systems where these values
+ are available MUST NOT default to them, and SHOULD default to values
+ specified in RFC 2461. Knowledge of the type of network interface
+ and operating environment SHOULD be taken into account in configuring
+ these limits for each network interface. This is important with some
+ wireless links, where increasing the frequency of multicast beacons
+ can cause considerable overhead. Routers SHOULD adhere to the
+ intervals specified in RFC 2461 [12], if this overhead is likely to
+ cause service degradation.
+
+ Additionally, the possible low values of MaxRtrAdvInterval may cause
+ some problems with movement detection in some mobile nodes. To
+ ensure that this is not a problem, Routers SHOULD add 20 ms to any
+ Advertisement Intervals sent in RAs, which are below 200 ms, in order
+ to account for scheduling granularities on both the MN and the
+ Router.
+
+ Note that multicast Router Advertisements are not always required in
+ certain wireless networks that have limited bandwidth. Mobility
+ detection or link changes in such networks may be done at lower
+ layers. Router advertisements in such networks SHOULD be sent only
+ when solicited. In such networks it SHOULD be possible to disable
+ unsolicited multicast Router Advertisements on specific interfaces.
+ The MinRtrAdvInterval and MaxRtrAdvInterval in such a case can be set
+ to some high values.
+
+ Home agents MUST include the Source Link-Layer Address option in all
+ Router Advertisements they send. This simplifies the process of
+ returning home, as discussed in Section 11.5.4.
+
+ Note that according to RFC 2461 [12], AdvDefaultLifetime is by
+ default based on the value of MaxRtrAdvInterval. AdvDefaultLifetime
+ is used in the Router Lifetime field of Router Advertisements. Given
+ that this field is expressed in seconds, a small MaxRtrAdvInterval
+ value can result in a zero value for this field. To prevent this,
+ routers SHOULD keep AdvDefaultLifetime in at least one second, even
+ if the use of MaxRtrAdvInterval would result in a smaller value.
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 68]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+8. Requirements for Types of IPv6 Nodes
+
+ Mobile IPv6 places some special requirements on the functions
+ provided by different types of IPv6 nodes. This section summarizes
+ those requirements, identifying the functionality each requirement is
+ intended to support.
+
+ The requirements are set for the following groups of nodes:
+
+ o All IPv6 nodes.
+
+ o All IPv6 nodes with support for route optimization.
+
+ o All IPv6 routers.
+
+ o All Mobile IPv6 home agents.
+
+ o All Mobile IPv6 mobile nodes.
+
+ It is outside the scope of this specification to specify which of
+ these groups are mandatory in IPv6. We only describe what is
+ mandatory for a node that supports, for instance, route optimization.
+ Other specifications are expected to define the extent of IPv6.
+
+8.1. All IPv6 Nodes
+
+ Any IPv6 node may at any time be a correspondent node of a mobile
+ node, either sending a packet to a mobile node or receiving a packet
+ from a mobile node. There are no Mobile IPv6 specific MUST
+ requirements for such nodes, and basic IPv6 techniques are
+ sufficient. If a mobile node attempts to set up route optimization
+ with a node with only basic IPv6 support, an ICMP error will signal
+ that the node does not support such optimizations (Section 11.3.5),
+ and communications will flow through the home agent.
+
+ An IPv6 node MUST NOT support the Home Address destination option,
+ type 2 routing header, or the Mobility Header unless it fully
+ supports the requirements listed in the next sections for either
+ route optimization, mobile node, or home agent functionality.
+
+8.2. IPv6 Nodes with Support for Route Optimization
+
+ Nodes that implement route optimization are a subset of all IPv6
+ nodes on the Internet. The ability of a correspondent node to
+ participate in route optimization is essential for the efficient
+ operation of the IPv6 Internet, for the following reasons:
+
+
+
+
+
+Johnson, et al. Standard Track [Page 69]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o Avoidance of congestion in the home network, and enabling the use
+ of lower-performance home agent equipment even for supporting
+ thousands of mobile nodes.
+
+ o Reduced network load across the entire Internet, as mobile devices
+ begin to predominate.
+
+ o Reduction of jitter and latency for the communications.
+
+ o Greater likelihood of success for QoS signaling as tunneling is
+ avoided and, again, fewer sources of congestion.
+
+ o Improved robustness against network partitions, congestion, and
+ other problems, since fewer routing path segments are traversed.
+
+ These effects combine to enable much better performance and
+ robustness for communications between mobile nodes and IPv6
+ correspondent nodes. Route optimization introduces a small amount of
+ additional state for the peers, some additional messaging, and up to
+ 1.5 roundtrip delays before it can be turned on. However, it is
+ believed that the benefits far outweigh the costs in most cases.
+ Section 11.3.1 discusses how mobile nodes may avoid route
+ optimization for some of the remaining cases, such as very short-term
+ communications.
+
+ The following requirements apply to all correspondent nodes that
+ support route optimization:
+
+ o The node MUST be able to validate a Home Address option using an
+ existing Binding Cache entry, as described in Section 9.3.1.
+
+ o The node MUST be able to insert a type 2 routing header into
+ packets to be sent to a mobile node, as described in Section
+ 9.3.2.
+
+ o Unless the correspondent node is also acting as a mobile node, it
+ MUST ignore type 2 routing headers and silently discard all
+ packets that it has received with such headers.
+
+ o The node SHOULD be able to interpret ICMP messages as described in
+ Section 9.3.4.
+
+ o The node MUST be able to send Binding Error messages as described
+ in Section 9.3.3.
+
+ o The node MUST be able to process Mobility Headers as described in
+ Section 9.2.
+
+
+
+
+Johnson, et al. Standard Track [Page 70]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o The node MUST be able to participate in a return routability
+ procedure (Section 9.4).
+
+ o The node MUST be able to process Binding Update messages (Section
+ 9.5).
+
+ o The node MUST be able to return a Binding Acknowledgement (Section
+ 9.5.4).
+
+ o The node MUST be able to maintain a Binding Cache of the bindings
+ received in accepted Binding Updates, as described in Section 9.1
+ and Section 9.6.
+
+ o The node SHOULD allow route optimization to be administratively
+ enabled or disabled. The default SHOULD be enabled.
+
+8.3. All IPv6 Routers
+
+ All IPv6 routers, even those not serving as a home agent for Mobile
+ IPv6, have an effect on how well mobile nodes can communicate:
+
+ o Every IPv6 router SHOULD be able to send an Advertisement Interval
+ option (Section 7.3) in each of its Router Advertisements [12], to
+ aid movement detection by mobile nodes (as in Section 11.5.1).
+ The use of this option in Router Advertisements SHOULD be
+ configurable.
+
+ o Every IPv6 router SHOULD be able to support sending unsolicited
+ multicast Router Advertisements at the faster rate described in
+ Section 7.5. If the router supports a faster rate, the used rate
+ MUST be configurable.
+
+ o Each router SHOULD include at least one prefix with the Router
+ Address (R) bit set and with its full IP address in its Router
+ Advertisements (as described in Section 7.2).
+
+ o Routers supporting filtering packets with routing headers SHOULD
+ support different rules for type 0 and type 2 routing headers (see
+ Section 6.4) so that filtering of source routed packets (type 0)
+ will not necessarily limit Mobile IPv6 traffic which is delivered
+ via type 2 routing headers.
+
+8.4. IPv6 Home Agents
+
+ In order for a mobile node to operate correctly while away from home,
+ at least one IPv6 router on the mobile node's home link must function
+ as a home agent for the mobile node. The following additional
+ requirements apply to all IPv6 routers that serve as a home agent:
+
+
+
+Johnson, et al. Standard Track [Page 71]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o Every home agent MUST be able to maintain an entry in its Binding
+ Cache for each mobile node for which it is serving as the home
+ agent (Section 10.1 and Section 10.3.1).
+
+ o Every home agent MUST be able to intercept packets (using proxy
+ Neighbor Discovery [12]) addressed to a mobile node for which it
+ is currently serving as the home agent, on that mobile node's home
+ link, while the mobile node is away from home (Section 10.4.1).
+
+ o Every home agent MUST be able to encapsulate [15] such intercepted
+ packets in order to tunnel them to the primary care-of address for
+ the mobile node indicated in its binding in the home agent's
+ Binding Cache (Section 10.4.2).
+
+ o Every home agent MUST support decapsulating [15] reverse tunneled
+ packets sent to it from a mobile node's home address. Every home
+ agent MUST also check that the source address in the tunneled
+ packets corresponds to the currently registered location of the
+ mobile node (Section 10.4.5).
+
+ o The node MUST be able to process Mobility Headers as described in
+ Section 10.2.
+
+ o Every home agent MUST be able to return a Binding Acknowledgement
+ in response to a Binding Update (Section 10.3.1).
+
+ o Every home agent MUST maintain a separate Home Agents List for
+ each link on which it is serving as a home agent, as described in
+ Section 10.1 and Section 10.5.1.
+
+ o Every home agent MUST be able to accept packets addressed to the
+ Mobile IPv6 Home-Agents anycast address [16] for the subnet on
+ which it is serving as a home agent, and MUST be able to
+ participate in dynamic home agent address discovery (Section
+ 10.5).
+
+ o Every home agent SHOULD support a configuration mechanism to allow
+ a system administrator to manually set the value to be sent by
+ this home agent in the Home Agent Preference field of the Home
+ Agent Information Option in Router Advertisements that it sends
+ (Section 7.4).
+
+ o Every home agent SHOULD support sending ICMP Mobile Prefix
+ Advertisements (Section 6.8), and SHOULD respond to Mobile Prefix
+ Solicitations (Section 6.7). If supported, this behavior MUST be
+ configurable, so that home agents can be configured to avoid
+ sending such Prefix Advertisements according to the needs of the
+ network administration in the home domain.
+
+
+
+Johnson, et al. Standard Track [Page 72]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o Every home agent MUST support IPsec ESP for protection of packets
+ belonging to the return routability procedure (Section 10.4.6).
+
+ o Every home agent SHOULD support the multicast group membership
+ control protocols as described in Section 10.4.3. If this support
+ is provided, the home agent MUST be capable of using it to
+ determine which multicast data packets to forward via the tunnel
+ to the mobile node.
+
+ o Home agents MAY support stateful address autoconfiguration for
+ mobile nodes as described in Section 10.4.4.
+
+8.5. IPv6 Mobile Nodes
+
+ Finally, the following requirements apply to all IPv6 nodes capable
+ of functioning as mobile nodes:
+
+ o The node MUST maintain a Binding Update List (Section 11.1).
+
+ o The node MUST support sending packets containing a Home Address
+ option (Section 11.3.1), and follow the required IPsec interaction
+ (Section 11.3.2).
+
+ o The node MUST be able to perform IPv6 encapsulation and
+ decapsulation [15].
+
+ o The node MUST be able to process type 2 routing header as defined
+ in Section 6.4 and Section 11.3.3.
+
+ o The node MUST support receiving a Binding Error message (Section
+ 11.3.6).
+
+ o The node MUST support receiving ICMP errors (Section 11.3.5).
+
+ o The node MUST support movement detection, care-of address
+ formation, and returning home (Section 11.5).
+
+ o The node MUST be able to process Mobility Headers as described in
+ Section 11.2.
+
+ o The node MUST support the return routability procedure (Section
+ 11.6).
+
+ o The node MUST be able to send Binding Updates, as specified in
+ Section 11.7.1 and Section 11.7.2.
+
+ o The node MUST be able to receive and process Binding
+ Acknowledgements, as specified in Section 11.7.3.
+
+
+
+Johnson, et al. Standard Track [Page 73]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o The node MUST support receiving a Binding Refresh Request (Section
+ 6.1.2), by responding with a Binding Update.
+
+ o The node MUST support receiving Mobile Prefix Advertisements
+ (Section 11.4.3) and reconfiguring its home address based on the
+ prefix information contained therein.
+
+ o The node SHOULD support use of the dynamic home agent address
+ discovery mechanism, as described in Section 11.4.1.
+
+ o The node MUST allow route optimization to be administratively
+ enabled or disabled. The default SHOULD be enabled.
+
+ o The node MAY support the multicast address listener part of a
+ multicast group membership protocol as described in Section
+ 11.3.4. If this support is provided, the mobile node MUST be able
+ to receive tunneled multicast packets from the home agent.
+
+ o The node MAY support stateful address autoconfiguration mechanisms
+ such as DHCPv6 [29] on the interface represented by the tunnel to
+ the home agent.
+
+9. Correspondent Node Operation
+
+9.1. Conceptual Data Structures
+
+ IPv6 nodes with route optimization support maintain a Binding Cache
+ of bindings for other nodes. A separate Binding Cache SHOULD be
+ maintained by each IPv6 node for each of its unicast routable
+ addresses. The Binding Cache MAY be implemented in any manner
+ consistent with the external behavior described in this document, for
+ example by being combined with the node's Destination Cache as
+ maintained by Neighbor Discovery [12]. When sending a packet, the
+ Binding Cache is searched before the Neighbor Discovery conceptual
+ Destination Cache [12].
+
+ Each Binding Cache entry conceptually contains the following fields:
+
+ o The home address of the mobile node for which this is the Binding
+ Cache entry. This field is used as the key for searching the
+ Binding Cache for the destination address of a packet being sent.
+
+ o The care-of address for the mobile node indicated by the home
+ address field in this Binding Cache entry.
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 74]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o A lifetime value, indicating the remaining lifetime for this
+ Binding Cache entry. The lifetime value is initialized from the
+ Lifetime field in the Binding Update that created or last modified
+ this Binding Cache entry.
+
+ o A flag indicating whether or not this Binding Cache entry is a
+ home registration entry (applicable only on nodes which support
+ home agent functionality).
+
+ o The maximum value of the Sequence Number field received in
+ previous Binding Updates for this home address. The Sequence
+ Number field is 16 bits long. Sequence Number values MUST be
+ compared modulo 2**16 as explained in Section 9.5.1.
+
+ o Usage information for this Binding Cache entry. This is needed to
+ implement the cache replacement policy in use in the Binding
+ Cache. Recent use of a cache entry also serves as an indication
+ that a Binding Refresh Request should be sent when the lifetime of
+ this entry nears expiration.
+
+ Binding Cache entries not marked as home registrations MAY be
+ replaced at any time by any reasonable local cache replacement policy
+ but SHOULD NOT be unnecessarily deleted. The Binding Cache for any
+ one of a node's IPv6 addresses may contain at most one entry for each
+ mobile node home address. The contents of a node's Binding Cache
+ MUST NOT be changed in response to a Home Address option in a
+ received packet.
+
+9.2. Processing Mobility Headers
+
+ Mobility Header processing MUST observe the following rules:
+
+ o The checksum must be verified as per Section 6.1. Otherwise, the
+ node MUST silently discard the message.
+
+ o The MH Type field MUST have a known value (Section 6.1.1).
+ Otherwise, the node MUST discard the message and issue a Binding
+ Error message as described in Section 9.3.3, with Status field set
+ to 2 (unrecognized MH Type value).
+
+ o The Payload Proto field MUST be IPPROTO_NONE (59 decimal).
+ Otherwise, the node MUST discard the message and SHOULD send ICMP
+ Parameter Problem, Code 0, directly to the Source Address of the
+ packet as specified in RFC 2463 [14]. Thus no Binding Cache
+ information is used in sending the ICMP message. The Pointer
+ field in the ICMP message SHOULD point at the Payload Proto field.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 75]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o The Header Len field in the Mobility Header MUST NOT be less than
+ the length specified for this particular type of message in
+ Section 6.1. Otherwise, the node MUST discard the message and
+ SHOULD send ICMP Parameter Problem, Code 0, directly to the Source
+ Address of the packet as specified in RFC 2463 [14]. (The Binding
+ Cache information is again not used.) The Pointer field in the
+ ICMP message SHOULD point at the Header Len field.
+
+ Subsequent checks depend on the particular Mobility Header.
+
+9.3. Packet Processing
+
+ This section describes how the correspondent node sends packets to
+ the mobile node, and receives packets from it.
+
+9.3.1. Receiving Packets with Home Address Option
+
+ Packets containing a Home Address option MUST be dropped if the given
+ home address is not a unicast routable address.
+
+ Mobile nodes can include a Home Address destination option in a
+ packet if they believe the correspondent node has a Binding Cache
+ entry for the home address of a mobile node. Packets containing a
+ Home Address option MUST be dropped if there is no corresponding
+ Binding Cache entry. A corresponding Binding Cache entry MUST have
+ the same home address as appears in the Home Address destination
+ option, and the currently registered care-of address MUST be equal to
+ the source address of the packet. These tests MUST NOT be done for
+ packets that contain a Home Address option and a Binding Update.
+
+ If the packet is dropped due the above tests, the correspondent node
+ MUST send the Binding Error message as described in Section 9.3.3.
+ The Status field in this message should be set to 1 (unknown binding
+ for Home Address destination option).
+
+ The correspondent node MUST process the option in a manner consistent
+ with exchanging the Home Address field from the Home Address option
+ into the IPv6 header and replacing the original value of the Source
+ Address field there. After all IPv6 options have been processed, it
+ MUST be possible for upper layers to process the packet without the
+ knowledge that it came originally from a care-of address or that a
+ Home Address option was used.
+
+ The use of IPsec Authentication Header (AH) for the Home Address
+ option is not required, except that if the IPv6 header of a packet is
+ covered by AH, then the authentication MUST also cover the Home
+ Address option; this coverage is achieved automatically by the
+ definition of the Option Type code for the Home Address option, since
+
+
+
+Johnson, et al. Standard Track [Page 76]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ it indicates that the data within the option cannot change en route
+ to the packet's final destination, and thus the option is included in
+ the AH computation. By requiring that any authentication of the IPv6
+ header also cover the Home Address option, the security of the Source
+ Address field in the IPv6 header is not compromised by the presence
+ of a Home Address option.
+
+ When attempting to verify AH authentication data in a packet that
+ contains a Home Address option, the receiving node MUST calculate the
+ AH authentication data as if the following were true: The Home
+ Address option contains the care-of address, and the source IPv6
+ address field of the IPv6 header contains the home address. This
+ conforms with the calculation specified in Section 11.3.2.
+
+9.3.2. Sending Packets to a Mobile Node
+
+ Before sending any packet, the sending node SHOULD examine its
+ Binding Cache for an entry for the destination address to which the
+ packet is being sent. If the sending node has a Binding Cache entry
+ for this address, the sending node SHOULD use a type 2 routing header
+ to route the packet to this mobile node (the destination node) by way
+ of its care-of address. However, the sending node MUST not do this
+ in the following cases:
+
+ o When sending an IPv6 Neighbor Discovery [12] packet.
+
+ o Where otherwise noted in Section 6.1.
+
+ When calculating authentication data in a packet that contains a type
+ 2 routing header, the correspondent node MUST calculate the AH
+ authentication data as if the following were true: The routing header
+ contains the care-of address, the destination IPv6 address field of
+ the IPv6 header contains the home address, and the Segments Left
+ field is zero. The IPsec Security Policy Database lookup MUST based
+ on the mobile node's home address.
+
+ For instance, assuming there are no additional routing headers in
+ this packet beyond those needed by Mobile IPv6, the correspondent
+ node could set the fields in the packet's IPv6 header and routing
+ header as follows:
+
+ o The Destination Address in the packet's IPv6 header is set to the
+ mobile node's home address (the original destination address to
+ which the packet was being sent).
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 77]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o The routing header is initialized to contain a single route
+ segment, containing the mobile node's care-of address copied from
+ the Binding Cache entry. The Segments Left field is, however,
+ temporarily set to zero.
+
+ The IP layer will insert the routing header before performing any
+ necessary IPsec processing. Once all IPsec processing has been
+ performed, the node swaps the IPv6 destination field with the Home
+ Address field in the routing header, sets the Segments Left field to
+ one, and sends the packet. This ensures the AH calculation is done
+ on the packet in the form it will have on the receiver after
+ advancing the routing header.
+
+ Following the definition of a type 2 routing header in Section 6.4,
+ this packet will be routed to the mobile node's care-of address,
+ where it will be delivered to the mobile node (the mobile node has
+ associated the care-of address with its network interface).
+
+ Note that following the above conceptual model in an implementation
+ creates some additional requirements for path MTU discovery since the
+ layer that decides the packet size (e.g., TCP and applications using
+ UDP) needs to be aware of the size of the headers added by the IP
+ layer on the sending node.
+
+ If, instead, the sending node has no Binding Cache entry for the
+ destination address to which the packet is being sent, the sending
+ node simply sends the packet normally, with no routing header. If
+ the destination node is not a mobile node (or is a mobile node that
+ is currently at home), the packet will be delivered directly to this
+ node and processed normally by it. If, however, the destination node
+ is a mobile node that is currently away from home, the packet will be
+ intercepted by the mobile node's home agent and tunneled to the
+ mobile node's current primary care-of address.
+
+9.3.3. Sending Binding Error Messages
+
+ Section 9.2 and Section 9.3.1 describe error conditions that lead to
+ a need to send a Binding Error message.
+
+ A Binding Error message is sent directly to the address that appeared
+ in the IPv6 Source Address field of the offending packet. If the
+ Source Address field does not contain a unicast address, the Binding
+ Error message MUST NOT be sent.
+
+ The Home Address field in the Binding Error message MUST be copied
+ from the Home Address field in the Home Address destination option of
+ the offending packet, or set to the unspecified address if no such
+ option appeared in the packet.
+
+
+
+Johnson, et al. Standard Track [Page 78]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Note that the IPv6 Source Address and Home Address field values
+ discussed above are the values from the wire, i.e., before any
+ modifications possibly performed as specified in Section 9.3.1.
+
+ Binding Error messages SHOULD be subject to rate limiting in the same
+ manner as is done for ICMPv6 messages [14].
+
+9.3.4. Receiving ICMP Error Messages
+
+ When the correspondent node has a Binding Cache entry for a mobile
+ node, all traffic destined to the mobile node goes directly to the
+ current care-of address of the mobile node using a routing header.
+ Any ICMP error message caused by packets on their way to the care-of
+ address will be returned in the normal manner to the correspondent
+ node.
+
+ On the other hand, if the correspondent node has no Binding Cache
+ entry for the mobile node, the packet will be routed through the
+ mobile node's home link. Any ICMP error message caused by the packet
+ on its way to the mobile node while in the tunnel, will be
+ transmitted to the mobile node's home agent. By the definition of
+ IPv6 encapsulation [15], the home agent MUST relay certain ICMP error
+ messages back to the original sender of the packet, which in this
+ case is the correspondent node.
+
+ Thus, in all cases, any meaningful ICMP error messages caused by
+ packets from a correspondent node to a mobile node will be returned
+ to the correspondent node. If the correspondent node receives
+ persistent ICMP Destination Unreachable messages after sending
+ packets to a mobile node based on an entry in its Binding Cache, the
+ correspondent node SHOULD delete this Binding Cache entry. Note that
+ if the mobile node continues to send packets with the Home Address
+ destination option to this correspondent node, they will be dropped
+ due to the lack of a binding. For this reason it is important that
+ only persistent ICMP messages lead to the deletion of the Binding
+ Cache entry.
+
+9.4. Return Routability Procedure
+
+ This subsection specifies actions taken by a correspondent node
+ during the return routability procedure.
+
+
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 79]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+9.4.1. Receiving Home Test Init Messages
+
+ Upon receiving a Home Test Init message, the correspondent node
+ verifies the following:
+
+ o The packet MUST NOT include a Home Address destination option.
+
+ Any packet carrying a Home Test Init message which fails to satisfy
+ all of these tests MUST be silently ignored.
+
+ Otherwise, in preparation for sending the corresponding Home Test
+ Message, the correspondent node checks that it has the necessary
+ material to engage in a return routability procedure, as specified in
+ Section 5.2. The correspondent node MUST have a secret Kcn and a
+ nonce. If it does not have this material yet, it MUST produce it
+ before continuing with the return routability procedure.
+
+ Section 9.4.3 specifies further processing.
+
+9.4.2. Receiving Care-of Test Init Messages
+
+ Upon receiving a Care-of Test Init message, the correspondent node
+ verifies the following:
+
+ o The packet MUST NOT include a Home Address destination option.
+
+ Any packet carrying a Care-of Test Init message which fails to
+ satisfy all of these tests MUST be silently ignored.
+
+ Otherwise, in preparation for sending the corresponding Care-of Test
+ Message, the correspondent node checks that it has the necessary
+ material to engage in a return routability procedure in the manner
+ described in Section 9.4.1.
+
+ Section 9.4.4 specifies further processing.
+
+9.4.3. Sending Home Test Messages
+
+ The correspondent node creates a home keygen token and uses the
+ current nonce index as the Home Nonce Index. It then creates a Home
+ Test message (Section 6.1.5) and sends it to the mobile node at the
+ latter's home address.
+
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 80]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+9.4.4. Sending Care-of Test Messages
+
+ The correspondent node creates a care-of keygen token and uses the
+ current nonce index as the Care-of Nonce Index. It then creates a
+ Care-of Test message (Section 6.1.6) and sends it to the mobile node
+ at the latter's care-of address.
+
+9.5. Processing Bindings
+
+ This section explains how the correspondent node processes messages
+ related to bindings. These messages are:
+
+ o Binding Update
+
+ o Binding Refresh Request
+
+ o Binding Acknowledgement
+
+ o Binding Error
+
+9.5.1. Receiving Binding Updates
+
+ Before accepting a Binding Update, the receiving node MUST validate
+ the Binding Update according to the following tests:
+
+ o The packet MUST contain a unicast routable home address, either in
+ the Home Address option or in the Source Address, if the Home
+ Address option is not present.
+
+ o The Sequence Number field in the Binding Update is greater than
+ the Sequence Number received in the previous valid Binding Update
+ for this home address, if any.
+
+ If the receiving node has no Binding Cache entry for the indicated
+ home address, it MUST accept any Sequence Number value in a received
+ Binding Update from this mobile node.
+
+ This Sequence Number comparison MUST be performed modulo 2**16, i.e.,
+ the number is a free running counter represented modulo 65536. A
+ Sequence Number in a received Binding Update is considered less than
+ or equal to the last received number if its value lies in the range
+ of the last received number and the preceding 32768 values,
+ inclusive. For example, if the last received sequence number was 15,
+ then messages with sequence numbers 0 through 15, as well as 32783
+ through 65535, would be considered less than or equal.
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 81]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ When the Home Registration (H) bit is not set, the following are also
+ required:
+
+ o A Nonce Indices mobility option MUST be present, and the Home and
+ Care-of Nonce Index values in this option MUST be recent enough to
+ be recognized by the correspondent node. (Care-of Nonce Index
+ values are not inspected for requests to delete a binding.)
+
+ o The correspondent node MUST re-generate the home keygen token and
+ the care-of keygen token from the information contained in the
+ packet. It then generates the binding management key Kbm and uses
+ it to verify the authenticator field in the Binding Update as
+ specified in Section 6.1.7.
+
+ o The Binding Authorization Data mobility option MUST be present,
+ and its contents MUST satisfy rules presented in Section 5.2.6.
+ Note that a care-of address different from the Source Address MAY
+ have been specified by including an Alternate Care-of Address
+ mobility option in the Binding Update. When such a message is
+ received and the return routability procedure is used as an
+ authorization method, the correspondent node MUST verify the
+ authenticator by using the address within the Alternate Care-of
+ Address in the calculations.
+
+ o The Binding Authorization Data mobility option MUST be the last
+ option and MUST NOT have trailing padding.
+
+ If the Home Registration (H) bit is set, the Nonce Indices mobility
+ option MUST NOT be present.
+
+ If the mobile node sends a sequence number which is not greater than
+ the sequence number from the last valid Binding Update for this home
+ address, then the receiving node MUST send back a Binding
+ Acknowledgement with status code 135, and the last accepted sequence
+ number in the Sequence Number field of the Binding Acknowledgement.
+
+ If a binding already exists for the given home address and the home
+ registration flag has a different value than the Home Registration
+ (H) bit in the Binding Update, then the receiving node MUST send back
+ a Binding Acknowledgement with status code 139 (registration type
+ change disallowed). The home registration flag stored in the Binding
+ Cache entry MUST NOT be changed.
+
+ If the receiving node no longer recognizes the Home Nonce Index
+ value, Care-of Nonce Index value, or both values from the Binding
+ Update, then the receiving node MUST send back a Binding
+ Acknowledgement with status code 136, 137, or 138, respectively.
+
+
+
+
+Johnson, et al. Standard Track [Page 82]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Packets carrying Binding Updates that fail to satisfy all of these
+ tests for any reason other than insufficiency of the Sequence Number,
+ registration type change, or expired nonce index values, MUST be
+ silently discarded.
+
+ If the Binding Update is valid according to the tests above, then the
+ Binding Update is processed further as follows:
+
+ o The Sequence Number value received from a mobile node in a Binding
+ Update is stored by the receiving node in its Binding Cache entry
+ for the given home address.
+
+ o If the Lifetime specified in the Binding Update is nonzero and the
+ specified care-of address is not equal to the home address for the
+ binding, then this is a request to cache a binding for the home
+ address. If the Home Registration (H) bit is set in the Binding
+ Update, the Binding Update is processed according to the procedure
+ specified in Section 10.3.1; otherwise, it is processed according
+ to the procedure specified in Section 9.5.2.
+
+ o If the Lifetime specified in the Binding Update is zero or the
+ specified care-of address matches the home address for the
+ binding, then this is a request to delete the cached binding for
+ the home address. In this case, the Binding Update MUST include a
+ valid home nonce index, and the care-of nonce index MUST be
+ ignored by the correspondent node. The generation of the binding
+ management key depends then exclusively on the home keygen token
+ (Section 5.2.5). If the Home Registration (H) bit is set in the
+ Binding Update, the Binding Update is processed according to the
+ procedure specified in Section 10.3.2; otherwise, it is processed
+ according to the procedure specified in Section 9.5.3.
+
+ The specified care-of address MUST be determined as follows:
+
+ o If the Alternate Care-of Address option is present, the care-of
+ address is the address in that option.
+
+ o Otherwise, the care-of address is the Source Address field in the
+ packet's IPv6 header.
+
+ The home address for the binding MUST be determined as follows:
+
+ o If the Home Address destination option is present, the home
+ address is the address in that option.
+
+ o Otherwise, the home address is the Source Address field in the
+ packet's IPv6 header.
+
+
+
+
+Johnson, et al. Standard Track [Page 83]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+9.5.2. Requests to Cache a Binding
+
+ This section describes the processing of a valid Binding Update that
+ requests a node to cache a binding, for which the Home Registration
+ (H) bit is not set in the Binding Update.
+
+ In this case, the receiving node SHOULD create a new entry in its
+ Binding Cache for this home address, or update its existing Binding
+ Cache entry for this home address, if such an entry already exists.
+ The lifetime for the Binding Cache entry is initialized from the
+ Lifetime field specified in the Binding Update, although this
+ lifetime MAY be reduced by the node caching the binding; the lifetime
+ for the Binding Cache entry MUST NOT be greater than the Lifetime
+ value specified in the Binding Update. Any Binding Cache entry MUST
+ be deleted after the expiration of its lifetime.
+
+ Note that if the mobile node did not request a Binding
+ Acknowledgement, then it is not aware of the selected shorter
+ lifetime. The mobile node may thus use route optimization and send
+ packets with the Home Address destination option. As discussed in
+ Section 9.3.1, such packets will be dropped if there is no binding.
+ This situation is recoverable, but can cause temporary packet loss.
+
+ The correspondent node MAY refuse to accept a new Binding Cache entry
+ if it does not have sufficient resources. A new entry MAY also be
+ refused if the correspondent node believes its resources are utilized
+ more efficiently in some other purpose, such as serving another
+ mobile node with higher amount of traffic. In both cases the
+ correspondent node SHOULD return a Binding Acknowledgement with
+ status value 130.
+
+9.5.3 Requests to Delete a Binding
+
+ This section describes the processing of a valid Binding Update that
+ requests a node to delete a binding when the Home Registration (H)
+ bit is not set in the Binding Update.
+
+ Any existing binding for the given home address MUST be deleted. A
+ Binding Cache entry for the home address MUST NOT be created in
+ response to receiving the Binding Update.
+
+ If the Binding Cache entry was created by use of return routability
+ nonces, the correspondent node MUST ensure that the same nonces are
+ not used again with the particular home and care-of address. If both
+ nonces are still valid, the correspondent node has to remember the
+ particular combination of nonce indexes, addresses, and sequence
+ number as illegal until at least one of the nonces has become too
+ old.
+
+
+
+Johnson, et al. Standard Track [Page 84]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+9.5.4. Sending Binding Acknowledgements
+
+ A Binding Acknowledgement may be sent to indicate receipt of a
+ Binding Update as follows:
+
+ o If the Binding Update was discarded as described in Section 9.2 or
+ Section 9.5.1, a Binding Acknowledgement MUST NOT be sent.
+ Otherwise the treatment depends on the following rules.
+
+ o If the Acknowledge (A) bit set is set in the Binding Update, a
+ Binding Acknowledgement MUST be sent. Otherwise, the treatment
+ depends on the below rule.
+
+ o If the node rejects the Binding Update due to an expired nonce
+ index, sequence number being out of window (Section 9.5.1), or
+ insufficiency of resources (Section 9.5.2), a Binding
+ Acknowledgement MUST be sent. If the node accepts the Binding
+ Update, the Binding Acknowledgement SHOULD NOT be sent.
+
+ If the node accepts the Binding Update and creates or updates an
+ entry for this binding, the Status field in the Binding
+ Acknowledgement MUST be set to a value less than 128. Otherwise, the
+ Status field MUST be set to a value greater than or equal to 128.
+ Values for the Status field are described in Section 6.1.8 and in the
+ IANA registry of assigned numbers [19].
+
+ If the Status field in the Binding Acknowledgement contains the value
+ 136 (expired home nonce index), 137 (expired care-of nonce index), or
+ 138 (expired nonces) then the message MUST NOT include the Binding
+ Authorization Data mobility option. Otherwise, the Binding
+ Authorization Data mobility option MUST be included, and MUST meet
+ the specific authentication requirements for Binding Acknowledgements
+ as defined in Section 5.2.
+
+ If the Source Address field of the IPv6 header that carried the
+ Binding Update does not contain a unicast address, the Binding
+ Acknowledgement MUST NOT be sent and the Binding Update packet MUST
+ be silently discarded. Otherwise, the acknowledgement MUST be sent
+ to the Source Address. Unlike the treatment of regular packets, this
+ addressing procedure does not use information from the Binding Cache.
+ However, a routing header is needed in some cases. If the Source
+ Address is the home address of the mobile node, i.e., the Binding
+ Update did not contain a Home Address destination option, then the
+ Binding Acknowledgement MUST be sent to that address and the routing
+ header MUST NOT be used. Otherwise, the Binding Acknowledgement MUST
+ be sent using a type 2 routing header which contains the mobile
+ node's home address.
+
+
+
+
+Johnson, et al. Standard Track [Page 85]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+9.5.5. Sending Binding Refresh Requests
+
+ If a Binding Cache entry being deleted is still in active use when
+ sending packets to a mobile node, then the next packet sent to the
+ mobile node will be routed normally to the mobile node's home link.
+ Communication with the mobile node continues, but the tunneling from
+ the home network creates additional overhead and latency in
+ delivering packets to the mobile node.
+
+ If the sender knows that the Binding Cache entry is still in active
+ use, it MAY send a Binding Refresh Request message to the mobile node
+ in an attempt to avoid this overhead and latency due to deleting and
+ recreating the Binding Cache entry. This message is always sent to
+ the home address of the mobile node.
+
+ The correspondent node MAY retransmit Binding Refresh Request
+ messages as long as the rate limitation is applied. The
+ correspondent node MUST stop retransmitting when it receives a
+ Binding Update.
+
+9.6. Cache Replacement Policy
+
+ Conceptually, a node maintains a separate timer for each entry in its
+ Binding Cache. When creating or updating a Binding Cache entry in
+ response to a received and accepted Binding Update, the node sets the
+ timer for this entry to the specified Lifetime period. Any entry in
+ a node's Binding Cache MUST be deleted after the expiration of the
+ Lifetime specified in the Binding Update from which the entry was
+ created or last updated.
+
+ Each node's Binding Cache will, by necessity, have a finite size. A
+ node MAY use any reasonable local policy for managing the space
+ within its Binding Cache.
+
+ A node MAY choose to drop any entry already in its Binding Cache in
+ order to make space for a new entry. For example, a "least-recently
+ used" (LRU) strategy for cache entry replacement among entries should
+ work well, unless the size of the Binding Cache is substantially
+ insufficient. When entries are deleted, the correspondent node MUST
+ follow the rules in Section 5.2.8 in order to guard the return
+ routability procedure against replay attacks.
+
+ If the node sends a packet to a destination for which it has dropped
+ the entry from its Binding Cache, the packet will be routed through
+ the mobile node's home link. The mobile node can detect this and
+ establish a new binding if necessary.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 86]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ However, if the mobile node believes that the binding still exists,
+ it may use route optimization and send packets with the Home Address
+ destination option. This can create temporary packet loss, as
+ discussed earlier, in the context of binding lifetime reductions
+ performed by the correspondent node (Section 9.5.2).
+
+10. Home Agent Operation
+
+10.1. Conceptual Data Structures
+
+ Each home agent MUST maintain a Binding Cache and Home Agents List.
+
+ The rules for maintaining a Binding Cache are the same for home
+ agents and correspondent nodes and have already been described in
+ Section 9.1.
+
+ The Home Agents List is maintained by each home agent, recording
+ information about each router on the same link that is acting as a
+ home agent. This list is used by the dynamic home agent address
+ discovery mechanism. A router is known to be acting as a home agent,
+ if it sends a Router Advertisement in which the Home Agent (H) bit is
+ set. When the lifetime for a list entry (defined below) expires,
+ that entry is removed from the Home Agents List. The Home Agents
+ List is similar to the Default Router List conceptual data structure
+ maintained by each host for Neighbor Discovery [12]. The Home Agents
+ List MAY be implemented in any manner consistent with the external
+ behavior described in this document.
+
+ Each home agent maintains a separate Home Agents List for each link
+ on which it is serving as a home agent. A new entry is created or an
+ existing entry is updated in response to receipt of a valid Router
+ Advertisement in which the Home Agent (H) bit is set. Each Home
+ Agents List entry conceptually contains the following fields:
+
+ o The link-local IP address of a home agent on the link. This
+ address is learned through the Source Address of the Router
+ Advertisements [12] received from the router.
+
+ o One or more global IP addresses for this home agent. Global
+ addresses are learned through Prefix Information options with the
+ Router Address (R) bit set and received in Router Advertisements
+ from this link-local address. Global addresses for the router in
+ a Home Agents List entry MUST be deleted once the prefix
+ associated with that address is no longer valid [12].
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 87]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o The remaining lifetime of this Home Agents List entry. If a Home
+ Agent Information Option is present in a Router Advertisement
+ received from a home agent, the lifetime of the Home Agents List
+ entry representing that home agent is initialized from the Home
+ Agent Lifetime field in the option (if present); otherwise, the
+ lifetime is initialized from the Router Lifetime field in the
+ received Router Advertisement. If Home Agents List entry lifetime
+ reaches zero, the entry MUST be deleted from the Home Agents List.
+
+ o The preference for this home agent; higher values indicate a more
+ preferable home agent. The preference value is taken from the
+ Home Agent Preference field in the received Router Advertisement,
+ if the Router Advertisement contains a Home Agent Information
+ Option and is otherwise set to the default value of 0. A home
+ agent uses this preference in ordering the Home Agents List when
+ it sends an ICMP Home Agent Address Discovery message.
+
+10.2. Processing Mobility Headers
+
+ All IPv6 home agents MUST observe the rules described in Section 9.2
+ when processing Mobility Headers.
+
+10.3. Processing Bindings
+
+10.3.1. Primary Care-of Address Registration
+
+ When a node receives a Binding Update, it MUST validate it and
+ determine the type of Binding Update according to the steps described
+ in Section 9.5.1. Furthermore, it MUST authenticate the Binding
+ Update as described in Section 5.1. An authorization step specific
+ for the home agent is also needed to ensure that only the right node
+ can control a particular home address. This is provided through the
+ home address unequivocally identifying the security association that
+ must be used.
+
+ This section describes the processing of a valid and authorized
+ Binding Update when it requests the registration of the mobile node's
+ primary care-of address.
+
+ To begin processing the Binding Update, the home agent MUST perform
+ the following sequence of tests:
+
+ o If the node implements only correspondent node functionality, or
+ has not been configured to act as a home agent, then the node MUST
+ reject the Binding Update. The node MUST also return a Binding
+ Acknowledgement to the mobile node, in which the Status field is
+ set to 131 (home registration not supported).
+
+
+
+
+Johnson, et al. Standard Track [Page 88]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o Else, if the home address for the binding (the Home Address field
+ in the packet's Home Address option) is not an on-link IPv6
+ address with respect to the home agent's current Prefix List, then
+ the home agent MUST reject the Binding Update and SHOULD return a
+ Binding Acknowledgement to the mobile node, in which the Status
+ field is set to 132 (not home subnet).
+
+ o Else, if the home agent chooses to reject the Binding Update for
+ any other reason (e.g., insufficient resources to serve another
+ mobile node as a home agent), then the home agent SHOULD return a
+ Binding Acknowledgement to the mobile node, in which the Status
+ field is set to an appropriate value to indicate the reason for
+ the rejection.
+
+ o A Home Address destination option MUST be present in the message.
+ It MUST be validated as described in Section 9.3.1 with the
+ following additional rule. The Binding Cache entry existence test
+ MUST NOT be done for IPsec packets when the Home Address option
+ contains an address for which the receiving node could act as a
+ home agent.
+
+ If home agent accepts the Binding Update, it MUST then create a new
+ entry in its Binding Cache for this mobile node or update its
+ existing Binding Cache entry, if such an entry already exists. The
+ Home Address field as received in the Home Address option provides
+ the home address of the mobile node.
+
+ The home agent MUST mark this Binding Cache entry as a home
+ registration to indicate that the node is serving as a home agent for
+ this binding. Binding Cache entries marked as a home registration
+ MUST be excluded from the normal cache replacement policy used for
+ the Binding Cache (Section 9.6) and MUST NOT be removed from the
+ Binding Cache until the expiration of the Lifetime period.
+
+ Unless this home agent already has a binding for the given home
+ address, the home agent MUST perform Duplicate Address Detection [13]
+ on the mobile node's home link before returning the Binding
+ Acknowledgement. This ensures that no other node on the home link
+ was using the mobile node's home address when the Binding Update
+ arrived. If this Duplicate Address Detection fails for the given
+ home address or an associated link local address, then the home agent
+ MUST reject the complete Binding Update and MUST return a Binding
+ Acknowledgement to the mobile node, in which the Status field is set
+ to 134 (Duplicate Address Detection failed). When the home agent
+ sends a successful Binding Acknowledgement to the mobile node, the
+ home agent assures to the mobile node that its address(es) will be
+ kept unique by the home agent for as long as the lifetime was granted
+ for the binding.
+
+
+
+Johnson, et al. Standard Track [Page 89]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ The specific addresses, which are to be tested before accepting the
+ Binding Update and later to be defended by performing Duplicate
+ Address Detection, depend on the setting of the Link-Local Address
+ Compatibility (L) bit, as follows:
+
+ o L=0: Defend only the given address. Do not derive a link-local
+ address.
+
+ o L=1: Defend both the given non link-local unicast (home) address
+ and the derived link-local. The link-local address is derived by
+ replacing the subnet prefix in the mobile node's home address with
+ the link-local prefix.
+
+ The lifetime of the Binding Cache entry depends on a number of
+ factors:
+
+ o The lifetime for the Binding Cache entry MUST NOT be greater than
+ the Lifetime value specified in the Binding Update.
+
+ o The lifetime for the Binding Cache entry MUST NOT be greater than
+ the remaining valid lifetime for the subnet prefix in the mobile
+ node's home address specified with the Binding Update. The
+ remaining valid lifetime for this prefix is determined by the home
+ agent based on its own Prefix List entry [12].
+
+ The remaining preferred lifetime SHOULD NOT have any impact on the
+ lifetime for the binding cache entry.
+
+ The home agent MUST remove a binding when the valid lifetime of
+ the prefix associated with it expires.
+
+ o The home agent MAY further decrease the specified lifetime for the
+ binding, for example based on a local policy. The resulting
+ lifetime is stored by the home agent in the Binding Cache entry,
+ and this Binding Cache entry MUST be deleted by the home agent
+ after the expiration of this lifetime.
+
+ Regardless of the setting of the Acknowledge (A) bit in the Binding
+ Update, the home agent MUST return a Binding Acknowledgement to the
+ mobile node constructed as follows:
+
+ o The Status field MUST be set to a value indicating success. The
+ value 1 (accepted but prefix discovery necessary) MUST be used if
+ the subnet prefix of the specified home address is deprecated, or
+ becomes deprecated during the lifetime of the binding, or becomes
+ invalid at the end of the lifetime. The value 0 MUST be used
+
+
+
+
+
+Johnson, et al. Standard Track [Page 90]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ otherwise. For the purposes of comparing the binding and prefix
+ lifetimes, the prefix lifetimes are first converted into units of
+ four seconds by ignoring the two least significant bits.
+
+ o The Key Management Mobility Capability (K) bit is set if the
+ following conditions are all fulfilled, and cleared otherwise:
+
+ * The Key Management Mobility Capability (K) bit was set in the
+ Binding Update.
+
+ * The IPsec security associations between the mobile node and the
+ home agent have been established dynamically.
+
+ * The home agent has the capability to update its endpoint in the
+ used key management protocol to the new care-of address every
+ time it moves.
+
+ Depending on the final value of the bit in the Binding
+ Acknowledgement, the home agent SHOULD perform the following
+ actions:
+
+ K = 0
+
+ Discard key management connections, if any, to the old care-of
+ address. If the mobile node did not have a binding before
+ sending this Binding Update, discard the connections to the
+ home address.
+
+ K = 1
+
+ Move the peer endpoint of the key management protocol
+ connection, if any, to the new care-of address. For an IKE
+ phase 1 connection, this means that any IKE packets sent to the
+ peer are sent to this address, and packets from this address
+ with the original ISAKMP cookies are accepted.
+
+ Note that RFC 2408 [8] Section 2.5.3 gives specific rules that
+ ISAKMP cookies must satisfy: they must depend on specific
+ parties and can only be generated by the entity itself. Then
+ it recommends a particular way to do this, namely a hash of IP
+ addresses. With the K bit set to 1, the recommended
+ implementation technique does not work directly. To satisfy
+ the two rules, the specific parties must be treated as the
+ original IP addresses, not the ones in use at the specific
+ moment.
+
+ o The Sequence Number field MUST be copied from the Sequence Number
+ given in the Binding Update.
+
+
+
+Johnson, et al. Standard Track [Page 91]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o The Lifetime field MUST be set to the remaining lifetime for the
+ binding as set by the home agent in its home registration Binding
+ Cache entry for the mobile node, as described above.
+
+ o If the home agent stores the Binding Cache entry in nonvolatile
+ storage, then the Binding Refresh Advice mobility option MUST be
+ omitted. Otherwise, the home agent MAY include this option to
+ suggest that the mobile node refreshes its binding before the
+ actual lifetime of the binding ends.
+
+ If the Binding Refresh Advice mobility option is present, the
+ Refresh Interval field in the option MUST be set to a value less
+ than the Lifetime value being returned in the Binding
+ Acknowledgement. This indicates that the mobile node SHOULD
+ attempt to refresh its home registration at the indicated shorter
+ interval. The home agent MUST still retain the registration for
+ the Lifetime period, even if the mobile node does not refresh its
+ registration within the Refresh period.
+
+ The rules for selecting the Destination IP address (and possibly
+ routing header construction) for the Binding Acknowledgement to the
+ mobile node are the same as in Section 9.5.4.
+
+ In addition, the home agent MUST follow the procedure defined in
+ Section 10.4.1 to intercept packets on the mobile node's home link
+ addressed to the mobile node, while the home agent is serving as the
+ home agent for this mobile node. The home agent MUST also be
+ prepared to accept reverse tunneled packets from the new care-of
+ address of the mobile node, as described in Section 10.4.5. Finally,
+ the home agent MUST also propagate new home network prefixes, as
+ described in Section 10.6.
+
+10.3.2. Primary Care-of Address De-Registration
+
+ A binding may need to be de-registered when the mobile node returns
+ home or when the mobile node knows that it will not have any care-of
+ addresses in the visited network.
+
+ A Binding Update is validated and authorized in the manner described
+ in the previous section; note that when the mobile node de-registers
+ when it is at home, it may not include the Home Address destination
+ option, in which case the mobile node's home address is the source IP
+ address of the de-registration Binding Update. This section
+ describes the processing of a valid Binding Update that requests the
+ receiving node to no longer serve as its home agent, de-registering
+ its primary care-of address.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 92]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ To begin processing the Binding Update, the home agent MUST perform
+ the following test:
+
+ o If the receiving node has no entry marked as a home registration
+ in its Binding Cache for this mobile node, then this node MUST
+ reject the Binding Update and SHOULD return a Binding
+ Acknowledgement to the mobile node, in which the Status field is
+ set to 133 (not home agent for this mobile node).
+
+ If the home agent does not reject the Binding Update as described
+ above, then it MUST delete any existing entry in its Binding Cache
+ for this mobile node. Then, the home agent MUST return a Binding
+ Acknowledgement to the mobile node, constructed as follows:
+
+ o The Status field MUST be set to a value 0, indicating success.
+
+ o The Key Management Mobility Capability (K) bit is set or cleared
+ and actions based on its value are performed as described in the
+ previous section. The mobile node's home address is used as its
+ new care-of address for the purposes of moving the key management
+ connection to a new endpoint.
+
+ o The Sequence Number field MUST be copied from the Sequence Number
+ given in the Binding Update.
+
+ o The Lifetime field MUST be set to zero.
+
+ o The Binding Refresh Advice mobility option MUST be omitted.
+
+ In addition, the home agent MUST stop intercepting packets on the
+ mobile node's home link that are addressed to the mobile node
+ (Section 10.4.1).
+
+ The rules for selecting the Destination IP address (and, if required,
+ routing header construction) for the Binding Acknowledgement to the
+ mobile node are the same as in the previous section. When the Status
+ field in the Binding Acknowledgement is greater than or equal to 128
+ and the Source Address of the Binding Update is on the home link, the
+ home agent MUST send it to the mobile node's link layer address
+ (retrieved either from the Binding Update or through Neighbor
+ Solicitation).
+
+
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 93]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+10.4. Packet Processing
+
+10.4.1. Intercepting Packets for a Mobile Node
+
+ While a node is serving as the home agent for mobile node it MUST
+ attempt to intercept packets on the mobile node's home link that are
+ addressed to the mobile node.
+
+ In order to do this, when a node begins serving as the home agent it
+ MUST multicast onto the home link a Neighbor Advertisement message
+ [12] on behalf of the mobile node. For the home address specified in
+ the Binding Update, the home agent sends a Neighbor Advertisement
+ message [12] to the all-nodes multicast address on the home link to
+ advertise the home agent's own link-layer address for this IP address
+ on behalf of the mobile node. If the Link-Layer Address
+ Compatibility (L) flag has been specified in the Binding Update, the
+ home agent MUST do the same for the link-local address of the mobile
+ node.
+
+ All fields in each Neighbor Advertisement message SHOULD be set in
+ the same way they would be set by the mobile node if it was sending
+ this Neighbor Advertisement [12] while at home, with the following
+ exceptions:
+
+ o The Target Address in the Neighbor Advertisement MUST be set to
+ the specific IP address for the mobile node.
+
+ o The Advertisement MUST include a Target Link-layer Address option
+ specifying the home agent's link-layer address.
+
+ o The Router (R) bit in the Advertisement MUST be set to zero.
+
+ o The Solicited Flag (S) in the Advertisement MUST NOT be set, since
+ it was not solicited by any Neighbor Solicitation.
+
+ o The Override Flag (O) in the Advertisement MUST be set, indicating
+ that the Advertisement SHOULD override any existing Neighbor Cache
+ entry at any node receiving it.
+
+ o The Source Address in the IPv6 header MUST be set to the home
+ agent's IP address on the interface used to send the
+ advertisement.
+
+ Any node on the home link that receives one of the Neighbor
+ Advertisement messages (described above) will update its Neighbor
+ Cache to associate the mobile node's address with the home agent's
+ link layer address, causing it to transmit any future packets
+ normally destined to the mobile node to the mobile node's home agent.
+
+
+
+Johnson, et al. Standard Track [Page 94]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Since multicasting on the local link (such as Ethernet) is typically
+ not guaranteed to be reliable, the home agent MAY retransmit this
+ Neighbor Advertisement message up to MAX_NEIGHBOR_ADVERTISEMENT (see
+ [12]) times to increase its reliability. It is still possible that
+ some nodes on the home link will not receive any of the Neighbor
+ Advertisements, but these nodes will eventually be able to detect the
+ link-layer address change for the mobile node's address through use
+ of Neighbor Unreachability Detection [12].
+
+ While a node is serving as a home agent for some mobile node, the
+ home agent uses IPv6 Neighbor Discovery [12] to intercept unicast
+ packets on the home link addressed to the mobile node. In order to
+ intercept packets in this way, the home agent MUST act as a proxy for
+ this mobile node and reply to any received Neighbor Solicitations for
+ it. When a home agent receives a Neighbor Solicitation, it MUST
+ check if the Target Address specified in the message matches the
+ address of any mobile node for which it has a Binding Cache entry
+ marked as a home registration.
+
+ If such an entry exists in the home agent's Binding Cache, the home
+ agent MUST reply to the Neighbor Solicitation with a Neighbor
+ Advertisement giving the home agent's own link-layer address as the
+ link-layer address for the specified Target Address. In addition,
+ the Router (R) bit in the Advertisement MUST be set to zero. Acting
+ as a proxy in this way allows other nodes on the mobile node's home
+ link to resolve the mobile node's address and for the home agent to
+ defend these addresses on the home link for Duplicate Address
+ Detection [12].
+
+10.4.2. Processing Intercepted Packets
+
+ For any packet sent to a mobile node from the mobile node's home
+ agent (in which the home agent is the original sender of the packet),
+ the home agent is operating as a correspondent node of the mobile
+ node for this packet and the procedures described in Section 9.3.2
+ apply. The home agent then uses a routing header to route the packet
+ to the mobile node by way of the primary care-of address in the home
+ agent's Binding Cache.
+
+ While the mobile node is away from home, the home agent intercepts
+ any packets on the home link addressed to the mobile node's home
+ address, as described in Section 10.4.1. In order to forward each
+ intercepted packet to the mobile node, the home agent MUST tunnel the
+ packet to the mobile node using IPv6 encapsulation [15]. When a home
+ agent encapsulates an intercepted packet for forwarding to the mobile
+ node, the home agent sets the Source Address in the new tunnel IP
+ header to the home agent's own IP address and sets the Destination
+ Address in the tunnel IP header to the mobile node's primary care-of
+
+
+
+Johnson, et al. Standard Track [Page 95]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ address. When received by the mobile node, normal processing of the
+ tunnel header [15] will result in decapsulation and processing of the
+ original packet by the mobile node.
+
+ However, packets addressed to the mobile node's link-local address
+ MUST NOT be tunneled to the mobile node. Instead, these packets MUST
+ be discarded and the home agent SHOULD return an ICMP Destination
+ Unreachable, Code 3, message to the packet's Source Address (unless
+ this Source Address is a multicast address). Packets addressed to
+ the mobile node's site-local address SHOULD NOT be tunneled to the
+ mobile node by default.
+
+ Interception and tunneling of the following multicast addressed
+ packets on the home network are only done if the home agent supports
+ multicast group membership control messages from the mobile node as
+ described in the next section. Tunneling of multicast packets to a
+ mobile node follows similar limitations to those defined above for
+ unicast packets addressed to the mobile node's link-local and site-
+ local addresses. Multicast packets addressed to a multicast address
+ with link-local scope [3], to which the mobile node is subscribed,
+ MUST NOT be tunneled to the mobile node. These packets SHOULD be
+ silently discarded (after delivering to other local multicast
+ recipients). Multicast packets addressed to a multicast address with
+ a scope larger than link-local, but smaller than global (e.g., site-
+ local and organization-local [3], to which the mobile node is
+ subscribed, SHOULD NOT be tunneled to the mobile node. Multicast
+ packets addressed with a global scope, to which the mobile node has
+ successfully subscribed, MUST be tunneled to the mobile node.
+
+ Before tunneling a packet to the mobile node, the home agent MUST
+ perform any IPsec processing as indicated by the security policy data
+ base.
+
+10.4.3. Multicast Membership Control
+
+ This section is a prerequisite for the multicast data packet
+ forwarding, described in the previous section. If this support is
+ not provided, multicast group membership control messages are
+ silently ignored.
+
+ In order to forward multicast data packets from the home network to
+ all the proper mobile nodes, the home agent SHOULD be capable of
+ receiving tunneled multicast group membership control information
+ from the mobile node in order to determine which groups the mobile
+ node has subscribed to. These multicast group membership messages
+ are Listener Report messages specified in MLD [17] or in other
+ protocols such as [37].
+
+
+
+
+Johnson, et al. Standard Track [Page 96]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ The messages are issued by the mobile node, but sent through the
+ reverse tunnel to the home agent. These messages are issued whenever
+ the mobile node decides to enable reception of packets for a
+ multicast group or in response to an MLD Query from the home agent.
+ The mobile node will also issue multicast group control messages to
+ disable reception of multicast packets when it is no longer
+ interested in receiving multicasts for a particular group.
+
+ To obtain the mobile node's current multicast group membership the
+ home agent must periodically transmit MLD Query messages through the
+ tunnel to the mobile node. These MLD periodic transmissions will
+ ensure the home agent has an accurate record of the groups in which
+ the mobile node is interested despite packet losses of the mobile
+ node's MLD group membership messages.
+
+ All MLD packets are sent directly between the mobile node and the
+ home agent. Since all of these packets are destined to a link-scope
+ multicast address and have a hop limit of 1, there is no direct
+ forwarding of such packets between the home network and the mobile
+ node. The MLD packets between the mobile node and the home agent are
+ encapsulated within the same tunnel header used for other packet
+ flows between the mobile node and home agent.
+
+ Note that at this time, even though a link-local source is used on
+ MLD packets, no functionality depends on these addresses being
+ unique, nor do they elicit direct responses. All MLD messages are
+ sent to multicast destinations. To avoid ambiguity on the home
+ agent, due to mobile nodes which may choose identical link-local
+ source addresses for their MLD function, it is necessary for the home
+ agent to identify which mobile node was actually the issuer of a
+ particular MLD message. This may be accomplished by noting which
+ tunnel such an MLD arrived by, which IPsec SA was used, or by other
+ distinguishing means.
+
+ This specification puts no requirement on how the functions in this
+ section and the multicast forwarding in Section 10.4.2 are to be
+ achieved. At the time of this writing it was thought that a full
+ IPv6 multicast router function would be necessary on the home agent,
+ but it may be possible to achieve the same effects through a "proxy
+ MLD" application coupled with kernel multicast forwarding. This may
+ be the subject of future specifications.
+
+
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 97]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+10.4.4. Stateful Address Autoconfiguration
+
+ This section describes how home agents support the use of stateful
+ address autoconfiguration mechanisms such as DHCPv6 [29] from the
+ mobile nodes. If this support is not provided, then the M and O bits
+ must remain cleared on the Mobile Prefix Advertisement Messages. Any
+ mobile node which sends DHCPv6 messages to the home agent without
+ this support will not receive a response.
+
+ If DHCPv6 is used, packets are sent with link-local source addresses
+ either to a link-scope multicast address or a link-local address.
+ Mobile nodes desiring to locate a DHCPv6 service may reverse tunnel
+ standard DHCPv6 packets to the home agent. Since these link-scope
+ packets cannot be forwarded onto the home network, it is necessary
+ for the home agent to either implement a DHCPv6 relay agent or a
+ DHCPv6 server function itself. The arriving tunnel or IPsec SA of
+ DHCPv6 link-scope messages from the mobile node must be noted so that
+ DHCPv6 responses may be sent back to the appropriate mobile node.
+ DHCPv6 messages sent to the mobile node with a link-local destination
+ must be tunneled within the same tunnel header used for other packet
+ flows.
+
+10.4.5. Handling Reverse Tunneled Packets
+
+ Unless a binding has been established between the mobile node and a
+ correspondent node, traffic from the mobile node to the correspondent
+ node goes through a reverse tunnel. Home agents MUST support reverse
+ tunneling as follows:
+
+ o The tunneled traffic arrives to the home agent's address using
+ IPv6 encapsulation [15].
+
+ o Depending on the security policies used by the home agent, reverse
+ tunneled packets MAY be discarded unless accompanied by a valid
+ ESP header. The support for authenticated reverse tunneling
+ allows the home agent to protect the home network and
+ correspondent nodes from malicious nodes masquerading as a mobile
+ node.
+
+ o Otherwise, when a home agent decapsulates a tunneled packet from
+ the mobile node, the home agent MUST verify that the Source
+ Address in the tunnel IP header is the mobile node's primary
+ care-of address. Otherwise, any node in the Internet could send
+ traffic through the home agent and escape ingress filtering
+ limitations. This simple check forces the attacker to know the
+ current location of the real mobile node and be able to defeat
+ ingress filtering. This check is not necessary if the reverse-
+ tunneled packet is protected by ESP in tunnel mode.
+
+
+
+Johnson, et al. Standard Track [Page 98]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+10.4.6. Protecting Return Routability Packets
+
+ The return routability procedure, described in Section 5.2.5, assumes
+ that the confidentiality of the Home Test Init and Home Test messages
+ is protected as they are tunneled between the home agent and the
+ mobile node. Therefore, the home agent MUST support tunnel mode
+ IPsec ESP for the protection of packets belonging to the return
+ routability procedure. Support for a non-null encryption transform
+ and authentication algorithm MUST be available. It is not necessary
+ to distinguish between different kinds of packets during the return
+ routability procedure.
+
+ Security associations are needed to provide this protection. When
+ the care-of address for the mobile node changes as a result of an
+ accepted Binding Update, special treatment is needed for the next
+ packets sent using these security associations. The home agent MUST
+ set the new care-of address as the destination address of these
+ packets, as if the outer header destination address in the security
+ association had changed [21].
+
+ The above protection SHOULD be used with all mobile nodes. The use
+ is controlled by configuration of the IPsec security policy database
+ both at the mobile node and at the home agent.
+
+ As described earlier, the Binding Update and Binding Acknowledgement
+ messages require protection between the home agent and the mobile
+ node. The Mobility Header protocol carries both these messages as
+ well as the return routability messages. From the point of view of
+ the security policy database these messages are indistinguishable.
+ When IPsec is used to protect return routability signaling or payload
+ packets, this protection MUST only be applied to the return
+ routability packets entering the IPv6 encapsulated tunnel interface
+ between the mobile node and the home agent. This can be achieved,
+ for instance, by defining the security policy database entries
+ specifically for the tunnel interface. That is, the policy entries
+ are not generally applied on all traffic on the physical interface(s)
+ of the nodes, but rather only on traffic that enters the tunnel.
+ This makes use of per-interface security policy database entries [4]
+ specific to the tunnel interface (the node's attachment to the tunnel
+ [11]).
+
+10.5. Dynamic Home Agent Address Discovery
+
+ This section describes how a home agent can help mobile nodes to
+ discover the addresses of the home agents. The home agent keeps
+ track of the other home agents on the same link and responds to
+ queries sent by the mobile node.
+
+
+
+
+Johnson, et al. Standard Track [Page 99]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+10.5.1. Receiving Router Advertisement Messages
+
+ For each link on which a router provides service as a home agent, the
+ router maintains a Home Agents List recording information about all
+ other home agents on that link. This list is used in the dynamic
+ home agent address discovery mechanism, described in Section 10.5.
+ The information for the list is learned through receipt of the
+ periodic unsolicited multicast Router Advertisements, in a manner
+ similar to the Default Router List conceptual data structure
+ maintained by each host for Neighbor Discovery [12]. In the
+ construction of the Home Agents List, the Router Advertisements are
+ from each (other) home agent on the link and the Home Agent (H) bit
+ is set in them.
+
+ On receipt of a valid Router Advertisement, as defined in the
+ processing algorithm specified for Neighbor Discovery [12], the home
+ agent performs the following steps in addition to any steps already
+ required of it by Neighbor Discovery:
+
+ o If the Home Agent (H) bit in the Router Advertisement is not set,
+ delete the sending node's entry in the current Home Agents List
+ (if one exists). Skip all the following steps.
+
+ o Otherwise, extract the Source Address from the IP header of the
+ Router Advertisement. This is the link-local IP address on this
+ link of the home agent sending this Advertisement [12].
+
+ o Determine the preference for this home agent. If the Router
+ Advertisement contains a Home Agent Information Option, then the
+ preference is taken from the Home Agent Preference field in the
+ option; otherwise, the default preference of 0 MUST be used.
+
+ o Determine the lifetime for this home agent. If the Router
+ Advertisement contains a Home Agent Information Option, then the
+ lifetime is taken from the Home Agent Lifetime field in the
+ option; otherwise, the lifetime specified by the Router Lifetime
+ field in the Router Advertisement SHOULD be used.
+
+ o If the link-local address of the home agent sending this
+ Advertisement is already present in this home agent's Home Agents
+ List and the received home agent lifetime value is zero,
+ immediately delete this entry in the Home Agents List.
+
+ o Otherwise, if the link-local address of the home agent sending
+ this Advertisement is already present in the receiving home
+ agent's Home Agents List, reset its lifetime and preference to the
+ values determined above.
+
+
+
+
+Johnson, et al. Standard Track [Page 100]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o If the link-local address of the home agent sending this
+ Advertisement is not already present in the Home Agents List
+ maintained by the receiving home agent, and the lifetime for the
+ sending home agent is non-zero, create a new entry in the list,
+ and initialize its lifetime and preference to the values
+ determined above.
+
+ o If the Home Agents List entry for the link-local address of the
+ home agent sending this Advertisement was not deleted as described
+ above, determine any global address(es) of the home agent based on
+ each Prefix Information option received in this Advertisement in
+ which the Router Address (R) bit is set (Section 7.2). Add all
+ such global addresses to the list of global addresses in this Home
+ Agents List entry.
+
+ A home agent SHOULD maintain an entry in its Home Agents List for
+ each valid home agent address until that entry's lifetime expires,
+ after which time the entry MUST be deleted.
+
+ As described in Section 11.4.1, a mobile node attempts dynamic home
+ agent address discovery by sending an ICMP Home Agent Address
+ Discovery Request message to the Mobile IPv6 Home-Agents anycast
+ address [16] for its home IP subnet prefix. A home agent receiving a
+ Home Agent Address Discovery Request message that serves this subnet
+ SHOULD return an ICMP Home Agent Address Discovery Reply message to
+ the mobile node with the Source Address of the Reply packet set to
+ one of the global unicast addresses of the home agent. The Home
+ Agent Addresses field in the Reply message is constructed as follows:
+
+ o The Home Agent Addresses field SHOULD contain all global IP
+ addresses for each home agent currently listed in this home
+ agent's own Home Agents List (Section 10.1).
+
+ o The IP addresses in the Home Agent Addresses field SHOULD be
+ listed in order of decreasing preference values, based either on
+ the respective advertised preference from a Home Agent Information
+ option or on the default preference of 0 if no preference is
+ advertised (or on the configured home agent preference for this
+ home agent itself).
+
+ o Among home agents with equal preference, their IP addresses in the
+ Home Agent Addresses field SHOULD be listed in an order randomized
+ with respect to other home agents with equal preference every time
+ a Home Agent Address Discovery Reply message is returned by this
+ home agent.
+
+ o If more than one global IP address is associated with a home
+ agent, these addresses SHOULD be listed in a randomized order.
+
+
+
+Johnson, et al. Standard Track [Page 101]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o The home agent SHOULD reduce the number of home agent IP addresses
+ so that the packet fits within the minimum IPv6 MTU [11]. The
+ home agent addresses selected for inclusion in the packet SHOULD
+ be those from the complete list with the highest preference. This
+ limitation avoids the danger of the Reply message packet being
+ fragmented (or rejected by an intermediate router with an ICMP
+ Packet Too Big message [14]).
+
+10.6. Sending Prefix Information to the Mobile Node
+
+10.6.1. List of Home Network Prefixes
+
+ Mobile IPv6 arranges to propagate relevant prefix information to the
+ mobile node when it is away from home, so that it may be used in
+ mobile node home address configuration and in network renumbering.
+ In this mechanism, mobile nodes away from home receive Mobile Prefix
+ Advertisements messages. These messages include Prefix Information
+ Options for the prefixes configured on the home subnet interface(s)
+ of the home agent.
+
+ If there are multiple home agents, differences in the advertisements
+ sent by different home agents can lead to an inability to use a
+ particular home address when changing to another home agent. In
+ order to ensure that the mobile nodes get the same information from
+ different home agents, it is preferred that all of the home agents on
+ the same link be configured in the same manner.
+
+ To support this, the home agent monitors prefixes advertised by
+ itself and other home agents on the home link. In RFC 2461 [12] it
+ is acceptable for two routers to advertise different sets of prefixes
+ on the same link. For home agents, the differences should be
+ detected for a given home address because the mobile node
+ communicates only with one home agent at a time and the mobile node
+ needs to know the full set of prefixes assigned to the home link.
+ All other comparisons of Router Advertisements are as specified in
+ Section 6.2.7 of RFC 2461.
+
+10.6.2. Scheduling Prefix Deliveries
+
+ A home agent serving a mobile node will schedule the delivery of the
+ new prefix information to that mobile node when any of the following
+ conditions occur:
+
+ MUST:
+
+ o The state of the flags changes for the prefix of the mobile node's
+ registered home address.
+
+
+
+
+Johnson, et al. Standard Track [Page 102]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o The valid or preferred lifetime is reconfigured or changes for any
+ reason other than advancing real time.
+
+ o The mobile node requests the information with a Mobile Prefix
+ Solicitation (see Section 11.4.2).
+
+ SHOULD:
+
+ o A new prefix is added to the home subnet interface(s) of the home
+ agent.
+
+ MAY:
+
+ o The valid or preferred lifetime or the state of the flags changes
+ for a prefix which is not used in any Binding Cache entry for this
+ mobile node.
+
+ The home agent uses the following algorithm to determine when to send
+ prefix information to the mobile node.
+
+ o If a mobile node sends a solicitation, answer right away.
+
+ o If no Mobile Prefix Advertisement has been sent to the mobile node
+ in the last MaxMobPfxAdvInterval seconds (see Section 13), then
+ ensure that a transmission is scheduled. The actual transmission
+ time is randomized as described below.
+
+ o If a prefix matching the mobile node's home registration is added
+ on the home subnet interface or if its information changes in any
+ way that does not deprecate the mobile node's address, ensure that
+ a transmission is scheduled. The actual transmission time is
+ randomized as described below.
+
+ o If a home registration expires, cancel any scheduled
+ advertisements to the mobile node.
+
+ The list of prefixes is sent in its entirety in all cases.
+
+ If the home agent has already scheduled the transmission of a Mobile
+ Prefix Advertisement to the mobile node, then the home agent will
+ replace the advertisement with a new one to be sent at the scheduled
+ time.
+
+ Otherwise, the home agent computes a fresh value for RAND_ADV_DELAY
+ which offsets from the current time for the scheduled transmission.
+ First calculate the maximum delay for the scheduled Advertisement:
+
+
+
+
+
+Johnson, et al. Standard Track [Page 103]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ MaxScheduleDelay = min (MaxMobPfxAdvInterval, Preferred Lifetime),
+
+ where MaxMobPfxAdvInterval is as defined in Section 12. Then compute
+ the final delay for the advertisement:
+
+ RAND_ADV_DELAY = MinMobPfxAdvInterval +
+ (rand() % abs(MaxScheduleDelay - MinMobPfxAdvInterval))
+
+ Here rand() returns a random integer value in the range of 0 to the
+ maximum possible integer value. This computation is expected to
+ alleviate bursts of advertisements when prefix information changes.
+ In addition, a home agent MAY further reduce the rate of packet
+ transmission by further delaying individual advertisements, when
+ necessary to avoid overwhelming local network resources. The home
+ agent SHOULD periodically continue to retransmit an unsolicited
+ Advertisement to the mobile node, until it is acknowledged by the
+ receipt of a Mobile Prefix Solicitation from the mobile node.
+
+ The home agent MUST wait PREFIX_ADV_TIMEOUT (see Section 12) before
+ the first retransmission and double the retransmission wait time for
+ every succeeding retransmission until a maximum number of
+ PREFIX_ADV_RETRIES attempts (see Section 12) has been tried. If the
+ mobile node's bindings expire before the matching Binding Update has
+ been received, then the home agent MUST NOT attempt any more
+ retransmissions, even if not all PREFIX_ADV_RETRIES have been
+ retransmitted. In the meantime, if the mobile node sends another
+ Binding Update without returning home, then the home agent SHOULD
+ begin transmitting the unsolicited Advertisement again.
+
+ If some condition, as described above, occurs on the home link and
+ causes another Prefix Advertisement to be sent to the mobile node,
+ before the mobile node acknowledges a previous transmission, the home
+ agent SHOULD combine any Prefix Information options in the
+ unacknowledged Mobile Prefix Advertisement into a new Advertisement.
+ The home agent then discards the old Advertisement.
+
+10.6.3. Sending Advertisements
+
+ When sending a Mobile Prefix Advertisement to the mobile node, the
+ home agent MUST construct the packet as follows:
+
+ o The Source Address in the packet's IPv6 header MUST be set to the
+ home agent's IP address to which the mobile node addressed its
+ current home registration or its default global home agent address
+ if no binding exists.
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 104]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o If the advertisement was solicited, it MUST be destined to the
+ source address of the solicitation. If it was triggered by prefix
+ changes or renumbering, the advertisement's destination will be
+ the mobile node's home address in the binding which triggered the
+ rule.
+
+ o A type 2 routing header MUST be included with the mobile node's
+ home address.
+
+ o IPsec headers MUST be supported and SHOULD be used.
+
+ o The home agent MUST send the packet as it would any other unicast
+ IPv6 packet that it originates.
+
+ o Set the Managed Address Configuration (M) flag if the
+ corresponding flag has been set in any of the Router
+ Advertisements from which the prefix information has been learned
+ (including the ones sent by this home agent).
+
+ o Set the Other Stateful Configuration (O) flag if the corresponding
+ flag has been set in any of the Router Advertisements from which
+ the prefix information has been learned (including the ones sent
+ by this home agent).
+
+10.6.4. Lifetimes for Changed Prefixes
+
+ As described in Section 10.3.1, the lifetime returned by the home
+ agent in a Binding Acknowledgement MUST not be greater than the
+ remaining valid lifetime for the subnet prefix in the mobile node's
+ home address. This limit on the binding lifetime serves to prohibit
+ use of a mobile node's home address after it becomes invalid.
+
+11. Mobile Node Operation
+
+11.1. Conceptual Data Structures
+
+ Each mobile node MUST maintain a Binding Update List.
+
+ The Binding Update List records information for each Binding Update
+ sent by this mobile node, in which the lifetime of the binding has
+ not yet expired. The Binding Update List includes all bindings sent
+ by the mobile node either to its home agent or correspondent nodes.
+ It also contains Binding Updates which are waiting for the completion
+ of the return routability procedure before they can be sent.
+ However, for multiple Binding Updates sent to the same destination
+ address, the Binding Update List contains only the most recent
+ Binding Update (i.e., with the greatest Sequence Number value) sent
+ to that destination. The Binding Update List MAY be implemented in
+
+
+
+Johnson, et al. Standard Track [Page 105]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ any manner consistent with the external behavior described in this
+ document.
+
+ Each Binding Update List entry conceptually contains the following
+ fields:
+
+ o The IP address of the node to which a Binding Update was sent.
+
+ o The home address for which that Binding Update was sent.
+
+ o The care-of address sent in that Binding Update. This value is
+ necessary for the mobile node to determine if it has sent a
+ Binding Update while giving its new care-of address to this
+ destination after changing its care-of address.
+
+ o The initial value of the Lifetime field sent in that Binding
+ Update.
+
+ o The remaining lifetime of that binding. This lifetime is
+ initialized from the Lifetime value sent in the Binding Update and
+ is decremented until it reaches zero, at which time this entry
+ MUST be deleted from the Binding Update List.
+
+ o The maximum value of the Sequence Number field sent in previous
+ Binding Updates to this destination. The Sequence Number field is
+ 16 bits long and all comparisons between Sequence Number values
+ MUST be performed modulo 2**16 (see Section 9.5.1).
+
+ o The time at which a Binding Update was last sent to this
+ destination, as needed to implement the rate limiting restriction
+ for sending Binding Updates.
+
+ o The state of any retransmissions needed for this Binding Update.
+ This state includes the time remaining until the next
+ retransmission attempt for the Binding Update and the current
+ state of the exponential back-off mechanism for retransmissions.
+
+ o A flag specifying whether or not future Binding Updates should be
+ sent to this destination. The mobile node sets this flag in the
+ Binding Update List entry when it receives an ICMP Parameter
+ Problem, Code 1, error message in response to a return routability
+ message or Binding Update sent to that destination, as described
+ in Section 11.3.5.
+
+ The Binding Update List is used to determine whether a particular
+ packet is sent directly to the correspondent node or tunneled via the
+ home agent (see Section 11.3.1).
+
+
+
+
+Johnson, et al. Standard Track [Page 106]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ The Binding Update list also conceptually contains the following data
+ related to running the return routability procedure. This data is
+ relevant only for Binding Updates sent to correspondent nodes.
+
+ o The time at which a Home Test Init or Care-of Test Init message
+ was last sent to this destination, as needed to implement the rate
+ limiting restriction for the return routability procedure.
+
+ o The state of any retransmissions needed for this return
+ routability procedure. This state includes the time remaining
+ until the next retransmission attempt and the current state of the
+ exponential back-off mechanism for retransmissions.
+
+ o Cookie values used in the Home Test Init and Care-of Test Init
+ messages.
+
+ o Home and care-of keygen tokens received from the correspondent
+ node.
+
+ o Home and care-of nonce indices received from the correspondent
+ node.
+
+ o The time at which each of the tokens and nonces were received from
+ the correspondent node, as needed to implement reuse while moving.
+
+11.2. Processing Mobility Headers
+
+ All IPv6 mobile nodes MUST observe the rules described in Section 9.2
+ when processing Mobility Headers.
+
+11.3. Packet Processing
+
+11.3.1. Sending Packets While Away from Home
+
+ While a mobile node is away from home, it continues to use its home
+ address, as well as also using one or more care-of addresses. When
+ sending a packet while away from home, a mobile node MAY choose among
+ these in selecting the address that it will use as the source of the
+ packet, as follows:
+
+ o Protocols layered over IP will generally treat the mobile node's
+ home address as its IP address for most packets. For packets sent
+ that are part of transport-level connections established while the
+ mobile node was at home, the mobile node MUST use its home
+ address. Likewise, for packets sent that are part of transport-
+ level connections that the mobile node may still be using after
+ moving to a new location, the mobile node SHOULD use its home
+ address in this way. If a binding exists, the mobile node SHOULD
+
+
+
+Johnson, et al. Standard Track [Page 107]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ send the packets directly to the correspondent node. Otherwise,
+ if a binding does not exist, the mobile node MUST use reverse
+ tunneling.
+
+ o The mobile node MAY choose to directly use one of its care-of
+ addresses as the source of the packet, not requiring the use of a
+ Home Address option in the packet. This is particularly useful
+ for short-term communication that may easily be retried if it
+ fails. Using the mobile node's care-of address as the source for
+ such queries will generally have a lower overhead than using the
+ mobile node's home address, since no extra options need be used in
+ either the query or its reply. Such packets can be routed
+ normally, directly between their source and destination without
+ relying on Mobile IPv6. If application running on the mobile node
+ has no particular knowledge that the communication being sent fits
+ within this general type of communication, however, the mobile
+ node should not use its care-of address as the source of the
+ packet in this way.
+
+ The choice of the most efficient communications method is
+ application specific, and outside the scope of this specification.
+ The APIs necessary for controlling the choice are also out of
+ scope.
+
+ o While not at its home link, the mobile node MUST NOT use the Home
+ Address destination option when communicating with link-local or
+ site-local peers, if the scope of the home address is larger than
+ the scope of the peer's address.
+
+ Similarly, the mobile node MUST NOT use the Home Address
+ destination option for IPv6 Neighbor Discovery [12] packets.
+
+ Detailed operation of these cases is described later in this section
+ and also discussed in [31].
+
+ For packets sent by a mobile node while it is at home, no special
+ Mobile IPv6 processing is required. Likewise, if the mobile node
+ uses any address other than one of its home addresses as the source
+ of a packet sent while away from home, no special Mobile IPv6
+ processing is required. In either case, the packet is simply
+ addressed and transmitted in the same way as any normal IPv6 packet.
+
+ For packets sent by the mobile node sent while away from home using
+ the mobile node's home address as the source, special Mobile IPv6
+ processing of the packet is required. This can be done in the
+ following two ways:
+
+
+
+
+
+Johnson, et al. Standard Track [Page 108]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Route Optimization
+
+ This manner of delivering packets does not require going through the
+ home network, and typically will enable faster and more reliable
+ transmission.
+
+ The mobile node needs to ensure that a Binding Cache entry exists for
+ its home address so that the correspondent node can process the
+ packet (Section 9.3.1 specifies the rules for Home Address
+ Destination Option Processing at a correspondent node). The mobile
+ node SHOULD examine its Binding Update List for an entry which
+ fulfills the following conditions:
+
+ * The Source Address field of the packet being sent is equal to the
+ home address in the entry.
+
+ * The Destination Address field of the packet being sent is equal to
+ the address of the correspondent node in the entry.
+
+ * One of the current care-of addresses of the mobile node appears as
+ the care-of address in the entry.
+
+ * The entry indicates that a binding has been successfully created.
+
+ * The remaining lifetime of the binding is greater than zero.
+
+ When these conditions are met, the mobile node knows that the
+ correspondent node has a suitable Binding Cache entry.
+
+ A mobile node SHOULD arrange to supply the home address in a Home
+ Address option, and MUST set the IPv6 header's Source Address field
+ to the care-of address which the mobile node has registered to be
+ used with this correspondent node. The correspondent node will then
+ use the address supplied in the Home Address option to serve the
+ function traditionally done by the Source IP address in the IPv6
+ header. The mobile node's home address is then supplied to higher
+ protocol layers and applications.
+
+ Specifically:
+
+ * Construct the packet using the mobile node's home address as the
+ packet's Source Address, in the same way as if the mobile node
+ were at home. This includes the calculation of upper layer
+ checksums using the home address as the value of the source.
+
+ * Insert a Home Address option into the packet with the Home Address
+ field copied from the original value of the Source Address field
+ in the packet.
+
+
+
+Johnson, et al. Standard Track [Page 109]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ * Change the Source Address field in the packet's IPv6 header to one
+ of the mobile node's care-of addresses. This will typically be
+ the mobile node's current primary care-of address, but MUST be an
+ address assigned to the interface on the link being used.
+
+ By using the care-of address as the Source Address in the IPv6
+ header, with the mobile node's home address instead in the Home
+ Address option, the packet will be able to safely pass through any
+ router implementing ingress filtering [26].
+
+ Reverse Tunneling
+
+ This is the mechanism which tunnels the packets via the home
+ agent. It is not as efficient as the above mechanism, but is
+ needed if there is no binding yet with the correspondent node.
+
+ This mechanism is used for packets that have the mobile node's
+ home address as the Source Address in the IPv6 header, or with
+ multicast control protocol packets as described in Section 11.3.4.
+ Specifically:
+
+ * The packet is sent to the home agent using IPv6 encapsulation
+ [15].
+
+ * The Source Address in the tunnel packet is the primary care-of
+ address as registered with the home agent.
+
+ * The Destination Address in the tunnel packet is the home
+ agent's address.
+
+ Then, the home agent will pass the encapsulated packet to the
+ correspondent node.
+
+11.3.2. Interaction with Outbound IPsec Processing
+
+ This section sketches the interaction between outbound Mobile IPv6
+ processing and outbound IP Security (IPsec) processing for packets
+ sent by a mobile node while away from home. Any specific
+ implementation MAY use algorithms and data structures other than
+ those suggested here, but its processing MUST be consistent with the
+ effect of the operation described here and with the relevant IPsec
+ specifications. In the steps described below, it is assumed that
+ IPsec is being used in transport mode [4] and that the mobile node is
+ using its home address as the source for the packet (from the point
+ of view of higher protocol layers or applications, as described in
+ Section 11.3.1):
+
+
+
+
+
+Johnson, et al. Standard Track [Page 110]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o The packet is created by higher layer protocols and applications
+ (e.g., by TCP) as if the mobile node were at home and Mobile IPv6
+ were not being used.
+
+ o Determine the outgoing interface for the packet. (Note that the
+ selection between reverse tunneling and route optimization may
+ imply different interfaces, particularly if tunnels are considered
+ interfaces as well.)
+
+ o As part of outbound packet processing in IP, the packet is
+ compared against the IPsec security policy database to determine
+ what processing is required for the packet [4].
+
+ o If IPsec processing is required, the packet is either mapped to an
+ existing Security Association (or SA bundle), or a new SA (or SA
+ bundle) is created for the packet, according to the procedures
+ defined for IPsec.
+
+ o Since the mobile node is away from home, the mobile is either
+ using reverse tunneling or route optimization to reach the
+ correspondent node.
+
+ If reverse tunneling is used, the packet is constructed in the
+ normal manner and then tunneled through the home agent.
+
+ If route optimization is in use, the mobile node inserts a Home
+ Address destination option into the packet, replacing the Source
+ Address in the packet's IP header with the care-of address used
+ with this correspondent node, as described in Section 11.3.1. The
+ Destination Options header in which the Home Address destination
+ option is inserted MUST appear in the packet after the routing
+ header, if present, and before the IPsec (AH [5] or ESP [6])
+ header, so that the Home Address destination option is processed
+ by the destination node before the IPsec header is processed.
+
+ Finally, once the packet is fully assembled, the necessary IPsec
+ authentication (and encryption, if required) processing is
+ performed on the packet, initializing the Authentication Data in
+ the IPsec header.
+
+ RFC 2402 treatment of destination options is extended as follows.
+ The AH authentication data MUST be calculated as if the following
+ were true:
+
+ * the IPv6 source address in the IPv6 header contains the mobile
+ node's home address,
+
+
+
+
+
+Johnson, et al. Standard Track [Page 111]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ * the Home Address field of the Home Address destination option
+ (Section 6.3) contains the new care-of address.
+
+ o This allows, but does not require, the receiver of the packet
+ containing a Home Address destination option to exchange the two
+ fields of the incoming packet to reach the above situation,
+ simplifying processing for all subsequent packet headers.
+ However, such an exchange is not required, as long as the result
+ of the authentication calculation remains the same.
+
+ When an automated key management protocol is used to create new
+ security associations for a peer, it is important to ensure that the
+ peer can send the key management protocol packets to the mobile node.
+ This may not be possible if the peer is the home agent of the mobile
+ node and the purpose of the security associations would be to send a
+ Binding Update to the home agent. Packets addressed to the home
+ address of the mobile node cannot be used before the Binding Update
+ has been processed. For the default case of using IKE [9] as the
+ automated key management protocol, such problems can be avoided by
+ the following requirements when communicating with its home agent:
+
+ o When the mobile node is away from home, it MUST use its care-of
+ address as the Source Address of all packets it sends as part of
+ the key management protocol (without use of Mobile IPv6 for these
+ packets, as suggested in Section 11.3.1).
+
+ o In addition, for all security associations bound to the mobile
+ node's home address established by IKE, the mobile node MUST
+ include an ISAKMP Identification Payload [8] in the IKE phase 2
+ exchange, giving the mobile node's home address as the initiator
+ of the Security Association [7].
+
+ The Key Management Mobility Capability (K) bit in Binding Updates and
+ Acknowledgements can be used to avoid the need to rerun IKE upon
+ movements.
+
+11.3.3. Receiving Packets While Away from Home
+
+ While away from home, a mobile node will receive packets addressed to
+ its home address, by one of two methods:
+
+ o Packets sent by a correspondent node, that does not have a Binding
+ Cache entry for the mobile node, will be sent to the home address,
+ captured by the home agent and tunneled to the mobile node.
+
+ o Packets sent by a correspondent node that has a Binding Cache
+ entry for the mobile node that contains the mobile node's current
+ care-of address, will be sent by the correspondent node using a
+
+
+
+Johnson, et al. Standard Track [Page 112]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ type 2 routing header. The packet will be addressed to the mobile
+ node's care-of address, with the final hop in the routing header
+ directing the packet to the mobile node's home address; the
+ processing of this last hop of the routing header is entirely
+ internal to the mobile node, since the care-of address and home
+ address are both addresses within the mobile node.
+
+ For packets received by the first method, the mobile node MUST check
+ that the IPv6 source address of the tunneled packet is the IP address
+ of its home agent. In this method, the mobile node may also send a
+ Binding Update to the original sender of the packet as described in
+ Section 11.7.2 and subject to the rate limiting defined in Section
+ 11.8. The mobile node MUST also process the received packet in the
+ manner defined for IPv6 encapsulation [15], which will result in the
+ encapsulated (inner) packet being processed normally by upper-layer
+ protocols within the mobile node as if it had been addressed (only)
+ to the mobile node's home address.
+
+ For packets received by the second method, the following rules will
+ result in the packet being processed normally by upper-layer
+ protocols within the mobile node as if it had been addressed to the
+ mobile node's home address.
+
+ A node receiving a packet addressed to itself (i.e., one of the
+ node's addresses is in the IPv6 destination field) follows the next
+ header chain of headers and processes them. When it encounters a
+ type 2 routing header during this processing, it performs the
+ following checks. If any of these checks fail, the node MUST
+ silently discard the packet.
+
+ o The length field in the routing header is exactly 2.
+
+ o The segments left field in the routing header is 1 on the wire.
+ (But implementations may process the routing header so that the
+ value may become 0 after the routing header has been processed,
+ but before the rest of the packet is processed.)
+
+ o The Home Address field in the routing header is one of the node's
+ home addresses, if the segments left field was 1. Thus, in
+ particular the address field is required to be a unicast routable
+ address.
+
+ Once the above checks have been performed, the node swaps the IPv6
+ destination field with the Home Address field in the routing header,
+ decrements segments left by one from the value it had on the wire,
+ and resubmits the packet to IP for processing the next header.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 113]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Conceptually, this follows the same model as in RFC 2460. However,
+ in the case of type 2 routing header this can be simplified since it
+ is known that the packet will not be forwarded to a different node.
+
+ The definition of AH requires the sender to calculate the AH
+ integrity check value of a routing header in the same way it appears
+ in the receiver after it has processed the header. Since IPsec
+ headers follow the routing header, any IPsec processing will operate
+ on the packet with the home address in the IP destination field and
+ segments left being zero. Thus, the AH calculations at the sender
+ and receiver will have an identical view of the packet.
+
+11.3.4. Routing Multicast Packets
+
+ A mobile node that is connected to its home link functions in the
+ same way as any other (stationary) node. Thus, when it is at home, a
+ mobile node functions identically to other multicast senders and
+ receivers. Therefore, this section describes the behavior of a
+ mobile node that is not on its home link.
+
+ In order to receive packets sent to some multicast group, a mobile
+ node must join that multicast group. One method, in which a mobile
+ node MAY join the group, is via a (local) multicast router on the
+ foreign link being visited. In this case, the mobile node MUST use
+ its care-of address and MUST NOT use the Home Address destination
+ option when sending MLD packets [17].
+
+ Alternatively, a mobile node MAY join multicast groups via a bi-
+ directional tunnel to its home agent. The mobile node tunnels its
+ multicast group membership control packets (such as those defined in
+ [17] or in [37]) to its home agent, and the home agent forwards
+ multicast packets down the tunnel to the mobile node. A mobile node
+ MUST NOT tunnel multicast group membership control packets until (1)
+ the mobile node has a binding in place at the home agent, and (2) the
+ latter sends at least one multicast group membership control packet
+ via the tunnel. Once this condition is true, the mobile node SHOULD
+ assume it does not change as long as the binding does not expire.
+
+ A mobile node that wishes to send packets to a multicast group also
+ has two options:
+
+ 1. Send directly on the foreign link being visited.
+
+ The application is aware of the care-of address and uses it as a
+ source address for multicast traffic, just like it would use a
+ stationary address. The mobile node MUST NOT use Home Address
+ destination option in such traffic.
+
+
+
+
+Johnson, et al. Standard Track [Page 114]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ 2. Send via a tunnel to its home agent.
+
+ Because multicast routing in general depends upon the Source
+ Address used in the IPv6 header of the multicast packet, a mobile
+ node that tunnels a multicast packet to its home agent MUST use
+ its home address as the IPv6 Source Address of the inner
+ multicast packet.
+
+ Note that direct sending from the foreign link is only applicable
+ while the mobile node is at that foreign link. This is because the
+ associated multicast tree is specific to that source location and any
+ change of location and source address will invalidate the source
+ specific tree or branch and the application context of the other
+ multicast group members.
+
+ This specification does not provide mechanisms to enable such local
+ multicast session to survive hand-off and to seamlessly continue from
+ a new care-of address on each new foreign link. Any such mechanism,
+ developed as an extension to this specification, needs to take into
+ account the impact of fast moving mobile nodes on the Internet
+ multicast routing protocols and their ability to maintain the
+ integrity of source specific multicast trees and branches.
+
+ While the use of bidirectional tunneling can ensure that multicast
+ trees are independent of the mobile nodes movement, in some case such
+ tunneling can have adverse affects. The latency of specific types of
+ multicast applications (such as multicast based discovery protocols)
+ will be affected when the round-trip time between the foreign subnet
+ and the home agent is significant compared to that of the topology to
+ be discovered. In addition, the delivery tree from the home agent in
+ such circumstances relies on unicast encapsulation from the agent to
+ the mobile node. Therefore, bandwidth usage is inefficient compared
+ to the native multicast forwarding in the foreign multicast system.
+
+11.3.5. Receiving ICMP Error Messages
+
+ Any node that does not recognize the Mobility header will return an
+ ICMP Parameter Problem, Code 1, message to the sender of the packet.
+ If the mobile node receives such an ICMP error message in response to
+ a return routability procedure or Binding Update, it SHOULD record in
+ its Binding Update List that future Binding Updates SHOULD NOT be
+ sent to this destination. Such Binding Update List entries SHOULD be
+ removed after a period of time in order to allow for retrying route
+ optimization.
+
+ New Binding Update List entries MUST NOT be created as a result of
+ receiving ICMP error messages.
+
+
+
+
+Johnson, et al. Standard Track [Page 115]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Correspondent nodes that have participated in the return routability
+ procedure MUST implement the ability to correctly process received
+ packets containing a Home Address destination option. Therefore,
+ correctly implemented correspondent nodes should always be able to
+ recognize Home Address options. If a mobile node receives an ICMP
+ Parameter Problem, Code 2, message from some node indicating that it
+ does not support the Home Address option, the mobile node SHOULD log
+ the error and then discard the ICMP message.
+
+11.3.6. Receiving Binding Error Messages
+
+ When a mobile node receives a packet containing a Binding Error
+ message, it should first check if the mobile node has a Binding
+ Update List entry for the source of the Binding Error message. If
+ the mobile node does not have such an entry, it MUST ignore the
+ message. This is necessary to prevent a waste of resources on, e.g.,
+ return routability procedure due to spoofed Binding Error messages.
+
+ Otherwise, if the message Status field was 1 (unknown binding for
+ Home Address destination option), the mobile node should perform one
+ of the following two actions:
+
+ o If the mobile node has recent upper layer progress information,
+ which indicates that communications with the correspondent node
+ are progressing, it MAY ignore the message. This can be done in
+ order to limit the damage that spoofed Binding Error messages can
+ cause to ongoing communications.
+
+ o If the mobile node has no upper layer progress information, it
+ MUST remove the entry and route further communications through the
+ home agent. It MAY also optionally start a return routability
+ procedure (see Section 5.2).
+
+ If the message Status field was 2 (unrecognized MH Type value), the
+ mobile node should perform one of the following two actions:
+
+ o If the mobile node is not expecting an acknowledgement or response
+ from the correspondent node, the mobile node SHOULD ignore this
+ message.
+
+ o Otherwise, the mobile node SHOULD cease the use of any extensions
+ to this specification. If no extensions had been used, the mobile
+ node should cease the attempt to use route optimization.
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 116]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+11.4. Home Agent and Prefix Management
+
+11.4.1. Dynamic Home Agent Address Discovery
+
+ Sometimes when the mobile node needs to send a Binding Update to its
+ home agent to register its new primary care-of address, as described
+ in Section 11.7.1, the mobile node may not know the address of any
+ router on its home link that can serve as a home agent for it. For
+ example, some nodes on its home link may have been reconfigured while
+ the mobile node has been away from home, such that the router that
+ was operating as the mobile node's home agent has been replaced by a
+ different router serving this role.
+
+ In this case, the mobile node MAY attempt to discover the address of
+ a suitable home agent on its home link. To do so, the mobile node
+ sends an ICMP Home Agent Address Discovery Request message to the
+ Mobile IPv6 Home-Agents anycast address [16] for its home subnet
+ prefix. As described in Section 10.5, the home agent on its home
+ link that receives this Request message will return an ICMP Home
+ Agent Address Discovery Reply message. This message gives the
+ addresses for the home agents operating on the home link.
+
+ The mobile node, upon receiving this Home Agent Address Discovery
+ Reply message, MAY then send its home registration Binding Update to
+ any of the unicast IP addresses listed in the Home Agent Addresses
+ field in the Reply. For example, the mobile node MAY attempt its
+ home registration to each of these addresses, in turn, until its
+ registration is accepted. The mobile node sends a Binding Update to
+ an address and waits for the matching Binding Acknowledgement, moving
+ on to the next address if there is no response. The mobile node
+ MUST, however, wait at least InitialBindackTimeoutFirstReg seconds
+ (see Section 13) before sending a Binding Update to the next home
+ agent. In trying each of the returned home agent addresses, the
+ mobile node SHOULD try each of them in the order they appear in the
+ Home Agent Addresses field in the received Home Agent Address
+ Discovery Reply message.
+
+ If the mobile node has a current registration with some home agent
+ (the Lifetime for that registration has not yet expired), then the
+ mobile node MUST attempt any new registration first with that home
+ agent. If that registration attempt fails (e.g., timed out or
+ rejected), the mobile node SHOULD then reattempt this registration
+ with another home agent. If the mobile node knows of no other
+ suitable home agent, then it MAY attempt the dynamic home agent
+ address discovery mechanism described above.
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 117]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ If, after a mobile node transmits a Home Agent Address Discovery
+ Request message to the Home Agents Anycast address, it does not
+ receive a corresponding Home Agent Address Discovery Reply message
+ within INITIAL_DHAAD_TIMEOUT (see Section 12) seconds, the mobile
+ node MAY retransmit the same Request message to the same anycast
+ address. This retransmission MAY be repeated up to a maximum of
+ DHAAD_RETRIES (see Section 12) attempts. Each retransmission MUST be
+ delayed by twice the time interval of the previous retransmission.
+
+11.4.2. Sending Mobile Prefix Solicitations
+
+ When a mobile node has a home address that is about to become
+ invalid, it SHOULD send a Mobile Prefix Solicitation to its home
+ agent in an attempt to acquire fresh routing prefix information. The
+ new information also enables the mobile node to participate in
+ renumbering operations affecting the home network, as described in
+ Section 10.6.
+
+ The mobile node MUST use the Home Address destination option to carry
+ its home address. The mobile node MUST support and SHOULD use IPsec
+ to protect the solicitation. The mobile node MUST set the Identifier
+ field in the ICMP header to a random value.
+
+ As described in Section 11.7.2, Binding Updates sent by the mobile
+ node to other nodes MUST use a lifetime no greater than the remaining
+ lifetime of its home registration of its primary care-of address.
+ The mobile node SHOULD further limit the lifetimes that it sends on
+ any Binding Updates to be within the remaining valid lifetime (see
+ Section 10.6.2) for the prefix in its home address.
+
+ When the lifetime for a changed prefix decreases, and the change
+ would cause cached bindings at correspondent nodes in the Binding
+ Update List to be stored past the newly shortened lifetime, the
+ mobile node MUST issue a Binding Update to all such correspondent
+ nodes.
+
+ These limits on the binding lifetime serve to prohibit use of a
+ mobile node's home address after it becomes invalid.
+
+11.4.3. Receiving Mobile Prefix Advertisements
+
+ Section 10.6 describes the operation of a home agent to support boot
+ time configuration and renumbering a mobile node's home subnet while
+ the mobile node is away from home. The home agent sends Mobile
+ Prefix Advertisements to the mobile node while away from home, giving
+ "important" Prefix Information options that describe changes in the
+ prefixes in use on the mobile node's home link.
+
+
+
+
+Johnson, et al. Standard Track [Page 118]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ The Mobile Prefix Solicitation is similar to the Router Solicitation
+ used in Neighbor Discovery [12], except it is routed from the mobile
+ node on the visited network to the home agent on the home network by
+ usual unicast routing rules.
+
+ When a mobile node receives a Mobile Prefix Advertisement, it MUST
+ validate it according to the following test:
+
+ o The Source Address of the IP packet carrying the Mobile Prefix
+ Advertisement is the same as the home agent address to which the
+ mobile node last sent an accepted home registration Binding Update
+ to register its primary care-of address. Otherwise, if no such
+ registrations have been made, it SHOULD be the mobile node's
+ stored home agent address, if one exists. Otherwise, if the
+ mobile node has not yet discovered its home agent's address, it
+ MUST NOT accept Mobile Prefix Advertisements.
+
+ o The packet MUST have a type 2 routing header and SHOULD be
+ protected by an IPsec header as described in Section 5.4 and
+ Section 6.8.
+
+ o If the ICMP Identifier value matches the ICMP Identifier value of
+ the most recently sent Mobile Prefix Solicitation and no other
+ advertisement has yet been received for this value, then the
+ advertisement is considered to be solicited and will be processed
+ further.
+
+ Otherwise, the advertisement is unsolicited, and MUST be
+ discarded. In this case the mobile node SHOULD send a Mobile
+ Prefix Solicitation.
+
+ Any received Mobile Prefix Advertisement not meeting these tests MUST
+ be silently discarded.
+
+ For an accepted Mobile Prefix Advertisement, the mobile node MUST
+ process Managed Address Configuration (M), Other Stateful
+ Configuration (O), and the Prefix Information Options as if they
+ arrived in a Router Advertisement [12] on the mobile node's home
+ link. (This specification does not, however, describe how to acquire
+ home addresses through stateful protocols.) Such processing may
+ result in the mobile node configuring a new home address, although
+ due to separation between preferred lifetime and valid lifetime, such
+ changes should not affect most communications by the mobile node, in
+ the same way as for nodes that are at home.
+
+ This specification assumes that any security associations and
+ security policy entries that may be needed for new prefixes have been
+ pre-configured in the mobile node. Note that while dynamic key
+
+
+
+Johnson, et al. Standard Track [Page 119]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ management avoids the need to create new security associations, it is
+ still necessary to add policy entries to protect the communications
+ involving the home address(es). Mechanisms for automatic set-up of
+ these entries are outside the scope of this specification.
+
+11.5. Movement
+
+11.5.1. Movement Detection
+
+ The primary goal of movement detection is to detect L3 handovers.
+ This section does not attempt to specify a fast movement detection
+ algorithm which will function optimally for all types of
+ applications, link-layers and deployment scenarios; instead, it
+ describes a generic method that uses the facilities of IPv6 Neighbor
+ Discovery, including Router Discovery and Neighbor Unreachability
+ Detection. At the time of this writing, this method is considered
+ well enough understood to recommend for standardization, however it
+ is expected that future versions of this specification or other
+ specifications may contain updated versions of the movement detection
+ algorithm that have better performance.
+
+ Generic movement detection uses Neighbor Unreachability Detection to
+ detect when the default router is no longer bi-directionally
+ reachable, in which case the mobile node must discover a new default
+ router (usually on a new link). However, this detection only occurs
+ when the mobile node has packets to send, and in the absence of
+ frequent Router Advertisements or indications from the link-layer,
+ the mobile node might become unaware of an L3 handover that occurred.
+ Therefore, the mobile node should supplement this method with other
+ information whenever it is available to the mobile node (e.g., from
+ lower protocol layers).
+
+ When the mobile node detects an L3 handover, it performs Duplicate
+ Address Detection [13] on its link-local address, selects a new
+ default router as a consequence of Router Discovery, and then
+ performs Prefix Discovery with that new router to form new care-of
+ address(es) as described in Section 11.5.2. It then registers its
+ new primary care-of address with its home agent as described in
+ Section 11.7.1. After updating its home registration, the mobile
+ node then updates associated mobility bindings in correspondent nodes
+ that it is performing route optimization with as specified in Section
+ 11.7.2.
+
+ Due to the temporary packet flow disruption and signaling overhead
+ involved in updating mobility bindings, the mobile node should avoid
+ performing an L3 handover until it is strictly necessary.
+ Specifically, when the mobile node receives a Router Advertisement
+ from a new router that contains a different set of on-link prefixes,
+
+
+
+Johnson, et al. Standard Track [Page 120]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ if the mobile node detects that the currently selected default router
+ on the old link is still bi-directionally reachable, it should
+ generally continue to use the old router on the old link rather than
+ switch away from it to use a new default router.
+
+ Mobile nodes can use the information in received Router
+ Advertisements to detect L3 handovers. In doing so the mobile node
+ needs to consider the following issues:
+
+ o There might be multiple routers on the same link, thus hearing a
+ new router does not necessarily constitute an L3 handover.
+
+ o When there are multiple routers on the same link they might
+ advertise different prefixes. Thus even hearing a new router with
+ a new prefix might not be a reliable indication of an L3 handover.
+
+ o The link-local addresses of routers are not globally unique, hence
+ after completing an L3 handover the mobile node might continue to
+ receive Router Advertisements with the same link-local source
+ address. This might be common if routers use the same link-local
+ address on multiple interfaces. This issue can be avoided when
+ routers use the Router Address (R) bit, since that provides a
+ global address of the router.
+
+ In addition, the mobile node should consider the following events as
+ indications that an L3 handover may have occurred. Upon receiving
+ such indications, the mobile node needs to perform Router Discovery
+ to discover routers and prefixes on the new link, as described in
+ Section 6.3.7 of RFC 2461 [12].
+
+ o If Router Advertisements that the mobile node receives include an
+ Advertisement Interval option, the mobile node may use its
+ Advertisement Interval field as an indication of the frequency
+ with which it should expect to continue to receive future
+ Advertisements from that router. This field specifies the minimum
+ rate (the maximum amount of time between successive
+ Advertisements) that the mobile node should expect. If this
+ amount of time elapses without the mobile node receiving any
+ Advertisement from this router, the mobile node can be sure that
+ at least one Advertisement sent by the router has been lost. The
+ mobile node can then implement its own policy to determine how
+ many lost Advertisements from its current default router
+ constitute an L3 handover indication.
+
+ o Neighbor Unreachability Detection determines that the default
+ router is no longer reachable.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 121]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o With some types of networks, notification that an L2 handover has
+ occurred might be obtained from lower layer protocols or device
+ driver software within the mobile node. While further details
+ around handling L2 indications as movement hints is an item for
+ further study, at the time of writing this specification the
+ following is considered reasonable:
+
+ An L2 handover indication may or may not imply L2 movement and L2
+ movement may or may not imply L3 movement; the correlations might
+ be a function of the type of L2 but might also be a function of
+ actual deployment of the wireless topology.
+
+ Unless it is well-known that an L2 handover indication is likely
+ to imply L3 movement, instead of immediately multicasting a router
+ solicitation it may be better to attempt to verify whether the
+ default router is still bi-directionally reachable. This can be
+ accomplished by sending a unicast Neighbor Solicitation and
+ waiting for a Neighbor Advertisement with the solicited flag set.
+ Note that this is similar to Neighbor Unreachability detection but
+ it does not have the same state machine, such as the STALE state.
+
+ If the default router does not respond to the Neighbor
+ Solicitation it makes sense to proceed to multicasting a Router
+ Solicitation.
+
+11.5.2. Forming New Care-of Addresses
+
+ After detecting that it has moved a mobile node SHOULD generate a new
+ primary care-of address using normal IPv6 mechanisms. This SHOULD
+ also be done when the current primary care-of address becomes
+ deprecated. A mobile node MAY form a new primary care-of address at
+ any time, but a mobile node MUST NOT send a Binding Update about a
+ new care-of address to its home agent more than MAX_UPDATE_RATE times
+ within a second.
+
+ In addition, a mobile node MAY form new non-primary care-of addresses
+ even when it has not switched to a new default router. A mobile node
+ can have only one primary care-of address at a time (which is
+ registered with its home agent), but it MAY have an additional care-
+ of address for any or all of the prefixes on its current link.
+ Furthermore, since a wireless network interface may actually allow a
+ mobile node to be reachable on more than one link at a time (i.e.,
+ within wireless transmitter range of routers on more than one
+ separate link), a mobile node MAY have care-of addresses on more than
+ one link at a time. The use of more than one care-of address at a
+ time is described in Section 11.5.3.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 122]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ As described in Section 4, in order to form a new care-of address, a
+ mobile node MAY use either stateless [13] or stateful (e.g., DHCPv6
+ [29]) Address Autoconfiguration. If a mobile node needs to use a
+ source address (other than the unspecified address) in packets sent
+ as a part of address autoconfiguration, it MUST use an IPv6 link-
+ local address rather than its own IPv6 home address.
+
+ RFC 2462 [13] specifies that in normal processing for Duplicate
+ Address Detection, the node SHOULD delay sending the initial Neighbor
+ Solicitation message by a random delay between 0 and
+ MAX_RTR_SOLICITATION_DELAY. Since delaying DAD can result in
+ significant delays in configuring a new care-of address when the
+ Mobile Node moves to a new link, the Mobile Node preferably SHOULD
+ NOT delay DAD when configuring a new care-of address. The Mobile
+ Node SHOULD delay according to the mechanisms specified in RFC 2462
+ unless the implementation has a behavior that desynchronizes the
+ steps that happen before the DAD in the case that multiple nodes
+ experience handover at the same time. Such desynchronizing behaviors
+ might be due to random delays in the L2 protocols or device drivers,
+ or due to the movement detection mechanism that is used.
+
+11.5.3. Using Multiple Care-of Addresses
+
+ As described in Section 11.5.2, a mobile node MAY use more than one
+ care-of address at a time. Particularly in the case of many wireless
+ networks, a mobile node effectively might be reachable through
+ multiple links at the same time (e.g., with overlapping wireless
+ cells), on which different on-link subnet prefixes may exist. The
+ mobile node MUST ensure that its primary care-of address always has a
+ prefix that is advertised by its current default router. After
+ selecting a new primary care-of address, the mobile node MUST send a
+ Binding Update containing that care-of address to its home agent.
+ The Binding Update MUST have the Home Registration (H) and
+ Acknowledge (A) bits set its home agent, as described on Section
+ 11.7.1.
+
+ To assist with smooth handovers, a mobile node SHOULD retain its
+ previous primary care-of address as a (non-primary) care-of address,
+ and SHOULD still accept packets at this address, even after
+ registering its new primary care-of address with its home agent.
+ This is reasonable, since the mobile node could only receive packets
+ at its previous primary care-of address if it were indeed still
+ connected to that link. If the previous primary care-of address was
+ allocated using stateful Address Autoconfiguration [29], the mobile
+ node may not wish to release the address immediately upon switching
+ to a new primary care-of address.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 123]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Whenever a mobile node determines that it is no longer reachable
+ through a given link, it SHOULD invalidate all care-of addresses
+ associated with address prefixes that it discovered from routers on
+ the unreachable link which are not in the current set of address
+ prefixes advertised by the (possibly new) current default router.
+
+11.5.4. Returning Home
+
+ A mobile node detects that it has returned to its home link through
+ the movement detection algorithm in use (Section 11.5.1), when the
+ mobile node detects that its home subnet prefix is again on-link.
+ The mobile node SHOULD then send a Binding Update to its home agent,
+ to instruct its home agent to no longer intercept or tunnel packets
+ for it. In this home registration, the mobile node MUST set the
+ Acknowledge (A) and Home Registration (H) bits, set the Lifetime
+ field to zero, and set the care-of address for the binding to the
+ mobile node's own home address. The mobile node MUST use its home
+ address as the source address in the Binding Update.
+
+ When sending this Binding Update to its home agent, the mobile node
+ must be careful in how it uses Neighbor Solicitation [12] (if needed)
+ to learn the home agent's link-layer address, since the home agent
+ will be currently configured to intercept packets to the mobile
+ node's home address using Duplicate Address Detection (DAD). In
+ particular, the mobile node is unable to use its home address as the
+ Source Address in the Neighbor Solicitation until the home agent
+ stops defending the home address.
+
+ Neighbor Solicitation by the mobile node for the home agent's address
+ will normally not be necessary, since the mobile node has already
+ learned the home agent's link-layer address from a Source Link-Layer
+ Address option in a Router Advertisement. However, if there are
+ multiple home agents it may still be necessary to send a
+ solicitation. In this special case of the mobile node returning
+ home, the mobile node MUST multicast the packet, and in addition set
+ the Source Address of this Neighbor Solicitation to the unspecified
+ address (0:0:0:0:0:0:0:0). The target of the Neighbor Solicitation
+ MUST be set to the mobile node's home address. The destination IP
+ address MUST be set to the Solicited-Node multicast address [3]. The
+ home agent will send a multicast Neighbor Advertisement back to the
+ mobile node with the Solicited flag (S) set to zero. In any case,
+ the mobile node SHOULD record the information from the Source Link-
+ Layer Address option or from the advertisement, and set the state of
+ the Neighbor Cache entry for the home agent to REACHABLE.
+
+ The mobile node then sends its Binding Update to the home agent's
+ link-layer address, instructing its home agent to no longer serve as
+ a home agent for it. By processing this Binding Update, the home
+
+
+
+Johnson, et al. Standard Track [Page 124]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ agent will cease defending the mobile node's home address for
+ Duplicate Address Detection and will no longer respond to Neighbor
+ Solicitations for the mobile node's home address. The mobile node is
+ then the only node on the link receiving packets at the mobile node's
+ home address. In addition, when returning home prior to the
+ expiration of a current binding for its home address, and configuring
+ its home address on its network interface on its home link, the
+ mobile node MUST NOT perform Duplicate Address Detection on its own
+ home address, in order to avoid confusion or conflict with its home
+ agent's use of the same address. This rule also applies to the
+ derived link-local address of the mobile node, if the Link Local
+ Address Compatibility (L) bit was set when the binding was created.
+ If the mobile node returns home after the bindings for all of its
+ care-of addresses have expired, then it SHOULD perform DAD.
+
+ After the Mobile Node sends the Binding Update, it MUST be prepared
+ to reply to Neighbor Solicitations for its home address. Such
+ replies MUST be sent using a unicast Neighbor Advertisement to the
+ sender's link-layer address. It is necessary to reply, since sending
+ the Binding Acknowledgement from the home agent may require
+ performing Neighbor Discovery, and the mobile node may not be able to
+ distinguish Neighbor Solicitations coming from the home agent from
+ other Neighbor Solicitations. Note that a race condition exists
+ where both the mobile node and the home agent respond to the same
+ solicitations sent by other nodes; this will be only temporary,
+ however, until the Binding Update is accepted.
+
+ After receiving the Binding Acknowledgement for its Binding Update to
+ its home agent, the mobile node MUST multicast onto the home link (to
+ the all-nodes multicast address) a Neighbor Advertisement [12], to
+ advertise the mobile node's own link-layer address for its own home
+ address. The Target Address in this Neighbor Advertisement MUST be
+ set to the mobile node's home address, and the Advertisement MUST
+ include a Target Link-layer Address option specifying the mobile
+ node's link-layer address. The mobile node MUST multicast such a
+ Neighbor Advertisement for each of its home addresses, as defined by
+ the current on-link prefixes, including its link-local address and
+ site-local address. The Solicited Flag (S) in these Advertisements
+ MUST NOT be set, since they were not solicited by any Neighbor
+ Solicitation. The Override Flag (O) in these Advertisements MUST be
+ set, indicating that the Advertisements SHOULD override any existing
+ Neighbor Cache entries at any node receiving them.
+
+ Since multicasting on the local link (such as Ethernet) is typically
+ not guaranteed to be reliable, the mobile node MAY retransmit these
+ Neighbor Advertisements [12] up to MAX_NEIGHBOR_ADVERTISEMENT times
+ to increase their reliability. It is still possible that some nodes
+
+
+
+
+Johnson, et al. Standard Track [Page 125]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ on the home link will not receive any of these Neighbor
+ Advertisements, but these nodes will eventually be able to recover
+ through use of Neighbor Unreachability Detection [12].
+
+ Note that the tunnel via the home agent typically stops operating at
+ the same time that the home registration is deleted.
+
+11.6. Return Routability Procedure
+
+ This section defines the rules that the mobile node must follow when
+ performing the return routability procedure. Section 11.7.2
+ describes the rules when the return routability procedure needs to be
+ initiated.
+
+11.6.1. Sending Test Init Messages
+
+ A mobile node that initiates a return routability procedure MUST send
+ (in parallel) a Home Test Init message and a Care-of Test Init
+ messages. However, if the mobile node has recently received (see
+ Section 5.2.7) one or both home or care-of keygen tokens, and
+ associated nonce indices for the desired addresses, it MAY reuse
+ them. Therefore, the return routability procedure may in some cases
+ be completed with only one message pair. It may even be completed
+ without any messages at all, if the mobile node has a recent home
+ keygen token and has previously visited the same care-of address so
+ that it also has a recent care-of keygen token. If the mobile node
+ intends to send a Binding Update with the Lifetime set to zero and
+ the care-of address equal to its home address - such as when
+ returning home - sending a Home Test Init message is sufficient. In
+ this case, generation of the binding management key depends
+ exclusively on the home keygen token (Section 5.2.5).
+
+ A Home Test Init message MUST be created as described in Section
+ 6.1.3.
+
+ A Care-of Test Init message MUST be created as described in Section
+ 6.1.4. When sending a Home Test Init or Care-of Test Init message
+ the mobile node MUST record in its Binding Update List the following
+ fields from the messages:
+
+ o The IP address of the node to which the message was sent.
+
+ o The home address of the mobile node. This value will appear in
+ the Source Address field of the Home Test Init message. When
+ sending the Care-of Test Init message, this address does not
+ appear in the message, but represents the home address for which
+ the binding is desired.
+
+
+
+
+Johnson, et al. Standard Track [Page 126]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o The time at which each of these messages was sent.
+
+ o The cookies used in the messages.
+
+ Note that a single Care-of Test Init message may be sufficient even
+ when there are multiple home addresses. In this case the mobile node
+ MAY record the same information in multiple Binding Update List
+ entries.
+
+11.6.2. Receiving Test Messages
+
+ Upon receiving a packet carrying a Home Test message, a mobile node
+ MUST validate the packet according to the following tests:
+
+ o The Source Address of the packet belongs to a correspondent node
+ for which the mobile node has a Binding Update List entry with a
+ state indicating that return routability procedure is in progress.
+ Note that there may be multiple such entries.
+
+ o The Binding Update List indicates that no home keygen token has
+ been received yet.
+
+ o The Destination Address of the packet has the home address of the
+ mobile node, and the packet has been received in a tunnel from the
+ home agent.
+
+ o The Home Init Cookie field in the message matches the value stored
+ in the Binding Update List.
+
+ Any Home Test message not satisfying all of these tests MUST be
+ silently ignored. Otherwise, the mobile node MUST record the Home
+ Nonce Index and home keygen token in the Binding Update List. If the
+ Binding Update List entry does not have a care-of keygen token, the
+ mobile node SHOULD continue waiting for the Care-of Test message.
+
+ Upon receiving a packet carrying a Care-of Test message, a mobile
+ node MUST validate the packet according to the following tests:
+
+ o The Source Address of the packet belongs to a correspondent node
+ for which the mobile node has a Binding Update List entry with a
+ state indicating that return routability procedure is in progress.
+ Note that there may be multiple such entries.
+
+ o The Binding Update List indicates that no care-of keygen token has
+ been received yet.
+
+ o The Destination Address of the packet is the current care-of
+ address of the mobile node.
+
+
+
+Johnson, et al. Standard Track [Page 127]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o The Care-of Init Cookie field in the message matches the value
+ stored in the Binding Update List.
+
+ Any Care-of Test message not satisfying all of these tests MUST be
+ silently ignored. Otherwise, the mobile node MUST record the Care-of
+ Nonce Index and care-of keygen token in the Binding Update List. If
+ the Binding Update List entry does not have a home keygen token, the
+ mobile node SHOULD continue waiting for the Home Test message.
+
+ If after receiving either the Home Test or the Care-of Test message
+ and performing the above actions, the Binding Update List entry has
+ both the home and the care-of keygen tokens, the return routability
+ procedure is complete. The mobile node SHOULD then proceed with
+ sending a Binding Update as described in Section 11.7.2.
+
+ Correspondent nodes from the time before this specification was
+ published may not support the Mobility Header protocol. These nodes
+ will respond to Home Test Init and Care-of Test Init messages with an
+ ICMP Parameter Problem code 1. The mobile node SHOULD take such
+ messages as an indication that the correspondent node cannot provide
+ route optimization, and revert back to the use of bidirectional
+ tunneling.
+
+11.6.3. Protecting Return Routability Packets
+
+ The mobile node MUST support the protection of Home Test and Home
+ Test Init messages as described in Section 10.4.6.
+
+ When IPsec is used to protect return routability signaling or payload
+ packets, the mobile node MUST set the source address it uses for the
+ outgoing tunnel packets to the current primary care-of address. The
+ mobile node starts to use a new primary care-of address immediately
+ after sending a Binding Update to the home agent to register this new
+ address.
+
+11.7. Processing Bindings
+
+11.7.1. Sending Binding Updates to the Home Agent
+
+ After deciding to change its primary care-of address as described in
+ Section 11.5.1 and Section 11.5.2, a mobile node MUST register this
+ care-of address with its home agent in order to make this its primary
+ care-of address.
+
+ Also, if the mobile node wants the services of the home agent beyond
+ the current registration period, the mobile node should send a new
+ Binding Update to it well before the expiration of this period, even
+ if it is not changing its primary care-of address. However, if the
+
+
+
+Johnson, et al. Standard Track [Page 128]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ home agent returned a Binding Acknowledgement for the current
+ registration with Status field set to 1 (accepted but prefix
+ discovery necessary), the mobile node should not try to register
+ again before it has learned the validity of its home prefixes through
+ mobile prefix discovery. This is typically necessary every time this
+ Status value is received, because information learned earlier may
+ have changed.
+
+ To register a care-of address or to extend the lifetime of an
+ existing registration, the mobile node sends a packet to its home
+ agent containing a Binding Update, with the packet constructed as
+ follows:
+
+ o The Home Registration (H) bit MUST be set in the Binding Update.
+
+ o The Acknowledge (A) bit MUST be set in the Binding Update.
+
+ o The packet MUST contain a Home Address destination option, giving
+ the mobile node's home address for the binding.
+
+ o The care-of address for the binding MUST be used as the Source
+ Address in the packet's IPv6 header, unless an Alternate Care-of
+ Address mobility option is included in the Binding Update. This
+ option MUST be included in all home registrations, as the ESP
+ protocol will not be able to protect care-of addresses in the IPv6
+ header. (Mobile IPv6 implementations that know they are using
+ IPsec AH to protect a particular message might avoid this option.
+ For brevity the usage of AH is not discussed in this document.)
+
+ o If the mobile node's link-local address has the same interface
+ identifier as the home address for which it is supplying a new
+ care-of address, then the mobile node SHOULD set the Link-Local
+ Address Compatibility (L) bit.
+
+ o If the home address was generated using RFC 3041 [18], then the
+ link local address is unlikely to have a compatible interface
+ identifier. In this case, the mobile node MUST clear the Link-
+ Local Address Compatibility (L) bit.
+
+ o If the IPsec security associations between the mobile node and the
+ home agent have been established dynamically, and the mobile node
+ has the capability to update its endpoint in the used key
+ management protocol to the new care-of address every time it
+ moves, the mobile node SHOULD set the Key Management Mobility
+ Capability (K) bit in the Binding Update. Otherwise, the mobile
+ node MUST clear the bit.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 129]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o The value specified in the Lifetime field MUST be non-zero and
+ SHOULD be less than or equal to the remaining valid lifetime of
+ the home address and the care-of address specified for the
+ binding.
+
+ Mobile nodes that use dynamic home agent address discovery should
+ be careful with long lifetimes. If the mobile node loses the
+ knowledge of its binding with a specific home agent, registering a
+ new binding with another home agent may be impossible as the
+ previous home agent is still defending the existing binding.
+ Therefore, to ensure that mobile nodes using home agent address
+ discovery do not lose information about their binding, they SHOULD
+ de-register before losing this information, or use small
+ lifetimes.
+
+ The Acknowledge (A) bit in the Binding Update requests the home agent
+ to return a Binding Acknowledgement in response to this Binding
+ Update. As described in Section 6.1.8, the mobile node SHOULD
+ retransmit this Binding Update to its home agent until it receives a
+ matching Binding Acknowledgement. Once reaching a retransmission
+ timeout period of MAX_BINDACK_TIMEOUT, the mobile node SHOULD restart
+ the process of delivering the Binding Update, but trying instead the
+ next home agent returned during dynamic home agent address discovery
+ (see Section 11.4.1). If there was only one home agent, the mobile
+ node instead SHOULD continue to periodically retransmit the Binding
+ Update at this rate until acknowledged (or until it begins attempting
+ to register a different primary care-of address). See Section 11.8
+ for information about retransmitting Binding Updates.
+
+ With the Binding Update, the mobile node requests the home agent to
+ serve as the home agent for the given home address. Until the
+ lifetime of this registration expires, the home agent considers
+ itself the home agent for this home address.
+
+ Each Binding Update MUST be authenticated as coming from the right
+ mobile node, as defined in Section 5.1. The mobile node MUST use its
+ home address - either in the Home Address destination option or in
+ the Source Address field of the IPv6 header - in Binding Updates sent
+ to the home agent. This is necessary in order to allow the IPsec
+ policies to be matched with the correct home address.
+
+ When sending a Binding Update to its home agent, the mobile node MUST
+ also create or update the corresponding Binding Update List entry, as
+ specified in Section 11.7.2.
+
+ The last Sequence Number value sent to the home agent in a Binding
+ Update is stored by the mobile node. If the sending mobile node has
+ no knowledge of the correct Sequence Number value, it may start at
+
+
+
+Johnson, et al. Standard Track [Page 130]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ any value. If the home agent rejects the value, it sends back a
+ Binding Acknowledgement with a status code 135, and the last accepted
+ sequence number in the Sequence Number field of the Binding
+ Acknowledgement. The mobile node MUST store this information and use
+ the next Sequence Number value for the next Binding Update it sends.
+
+ If the mobile node has additional home addresses, then the mobile
+ node SHOULD send an additional packet containing a Binding Update to
+ its home agent to register the care-of address for each such other
+ home address.
+
+ The home agent will only perform DAD for the mobile node's home
+ address when the mobile node has supplied a valid binding between its
+ home address and a care-of address. If some time elapses during
+ which the mobile node has no binding at the home agent, it might be
+ possible for another node to autoconfigure the mobile node's home
+ address. Therefore, the mobile node MUST treat the creation of a new
+ binding with the home agent using an existing home address, the same
+ as creation of a new home address. In the unlikely event that the
+ mobile node's home address is autoconfigured as the IPv6 address of
+ another network node on the home network, the home agent will reply
+ to the mobile node's subsequent Binding Update with a Binding
+ Acknowledgement containing a Status of 134 (Duplicate Address
+ Detection failed). In this case, the mobile node MUST NOT attempt to
+ re-use the same home address. It SHOULD continue to register the
+ care-of addresses for its other home addresses, if any. (Mechanisms
+ outlined in Appendix B.5 may in the future allow mobile nodes to
+ acquire new home addresses to replace the one for which Status 134
+ was received.)
+
+11.7.2. Correspondent Registration
+
+ When the mobile node is assured that its home address is valid, it
+ can initiate a correspondent registration with the purpose of
+ allowing the correspondent node to cache the mobile node's current
+ care-of address. This procedure consists of the return routability
+ procedure followed by a registration.
+
+ This section defines when the correspondent registration is to be
+ initiated and the rules to follow while it is being performed.
+
+ After the mobile node has sent a Binding Update to its home agent,
+ registering a new primary care-of address (as described in Section
+ 11.7.1), the mobile node SHOULD initiate a correspondent registration
+ for each node that already appears in the mobile node's Binding
+ Update List. The initiated procedures can be used to either update
+ or delete binding information in the correspondent node.
+
+
+
+
+Johnson, et al. Standard Track [Page 131]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ For nodes that do not appear in the mobile node's Binding Update
+ List, the mobile node MAY initiate a correspondent registration at
+ any time after sending the Binding Update to its home agent.
+
+ Considerations regarding when (and if) to initiate the procedure
+ depend on the specific movement and traffic patterns of the mobile
+ node and are outside the scope of this document.
+
+ In addition, the mobile node MAY initiate the correspondent
+ registration in response to receiving a packet that meets all of the
+ following tests:
+
+ o The packet was tunneled using IPv6 encapsulation.
+
+ o The Destination Address in the tunnel (outer) IPv6 header is equal
+ to any of the mobile node's care-of addresses.
+
+ o The Destination Address in the original (inner) IPv6 header is
+ equal to one of the mobile node's home addresses.
+
+ o The Source Address in the tunnel (outer) IPv6 header differs from
+ the Source Address in the original (inner) IPv6 header.
+
+ o The packet does not contain a Home Test, Home Test Init, Care-of
+ Test, or Care-of Test Init message.
+
+ If a mobile node has multiple home addresses, it becomes important to
+ select the right home address to use in the correspondent
+ registration. The used home address MUST be the Destination Address
+ of the original (inner) packet.
+
+ The peer address used in the procedure MUST be determined as follows:
+
+ o If a Home Address destination option is present in the original
+ (inner) packet, the address from this option is used.
+
+ o Otherwise, the Source Address in the original (inner) IPv6 header
+ of the packet is used.
+
+ Note that the validity of the original packet is checked before
+ attempting to initiate a correspondent registration. For instance,
+ if a Home Address destination option appeared in the original packet,
+ then rules in Section 9.3.1 are followed.
+
+ A mobile node MAY also choose to keep its topological location
+ private from certain correspondent nodes, and thus need not initiate
+ the correspondent registration.
+
+
+
+
+Johnson, et al. Standard Track [Page 132]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Upon successfully completing the return routability procedure, and
+ after receiving a successful Binding Acknowledgement from the Home
+ Agent, a Binding Update MAY be sent to the correspondent node.
+
+ In any Binding Update sent by a mobile node, the care-of address
+ (either the Source Address in the packet's IPv6 header or the Care-of
+ Address in the Alternate Care-of Address mobility option of the
+ Binding Update) MUST be set to one of the care-of addresses currently
+ in use by the mobile node or to the mobile node's home address. A
+ mobile node MAY set the care-of address differently for sending
+ Binding Updates to different correspondent nodes.
+
+ A mobile node MAY also send a Binding Update to such a correspondent
+ node, instructing it to delete any existing binding for the mobile
+ node from its Binding Cache, as described in Section 6.1.7. Even in
+ this case a successful completion of the return routability procedure
+ is required first.
+
+ If the care-of address is not set to the mobile node's home address,
+ the Binding Update requests that the correspondent node create or
+ update an entry for the mobile node in the correspondent node's
+ Binding Cache. This is done in order to record a care-of address for
+ use in sending future packets to the mobile node. In this case, the
+ value specified in the Lifetime field sent in the Binding Update
+ SHOULD be less than or equal to the remaining lifetime of the home
+ registration and the care-of address specified for the binding. The
+ care-of address given in the Binding Update MAY differ from the
+ mobile node's primary care-of address.
+
+ If the Binding Update is sent to the correspondent node, requesting
+ the deletion of any existing Binding Cache entry it has for the
+ mobile node, the care-of address is set to the mobile node's home
+ address and the Lifetime field set to zero. In this case, generation
+ of the binding management key depends exclusively on the home keygen
+ token (Section 5.2.5). The care-of nonce index SHOULD be set to zero
+ in this case. In keeping with the Binding Update creation rules
+ below, the care-of address MUST be set to the home address if the
+ mobile node is at home, or to the current care-of address if it is
+ away from home.
+
+ If the mobile node wants to ensure that its new care-of address has
+ been entered into a correspondent node's Binding Cache, the mobile
+ node needs to request an acknowledgement by setting the Acknowledge
+ (A) bit in the Binding Update.
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 133]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ A Binding Update is created as follows:
+
+ o The current care-of address of the mobile node MUST be sent either
+ in the Source Address of the IPv6 header, or in the Alternate
+ Care-of Address mobility option.
+
+ o The Destination Address of the IPv6 header MUST contain the
+ address of the correspondent node.
+
+ o The Mobility Header is constructed according to rules in Section
+ 6.1.7 and Section 5.2.6, including the Binding Authorization Data
+ (calculated as defined in Section 6.2.7) and possibly the Nonce
+ Indices mobility options.
+
+ o The home address of the mobile node MUST be added to the packet in
+ a Home Address destination option, unless the Source Address is
+ the home address.
+
+ Each Binding Update MUST have a Sequence Number greater than the
+ Sequence Number value sent in the previous Binding Update to the same
+ destination address (if any). The sequence numbers are compared
+ modulo 2**16, as described in Section 9.5.1. There is no
+ requirement, however, that the Sequence Number value strictly
+ increase by 1 with each new Binding Update sent or received, as long
+ as the value stays within the window. The last Sequence Number value
+ sent to a destination in a Binding Update is stored by the mobile
+ node in its Binding Update List entry for that destination. If the
+ sending mobile node has no Binding Update List entry, the Sequence
+ Number SHOULD start at a random value. The mobile node MUST NOT use
+ the same Sequence Number in two different Binding Updates to the same
+ correspondent node, even if the Binding Updates provide different
+ care-of addresses.
+
+ The mobile node is responsible for the completion of the
+ correspondent registration, as well as any retransmissions that may
+ be needed (subject to the rate limitation defined in Section 11.8).
+
+11.7.3. Receiving Binding Acknowledgements
+
+ Upon receiving a packet carrying a Binding Acknowledgement, a mobile
+ node MUST validate the packet according to the following tests:
+
+ o The packet meets the authentication requirements for Binding
+ Acknowledgements defined in Section 6.1.8 and Section 5. That is,
+ if the Binding Update was sent to the home agent, underlying IPsec
+ protection is used. If the Binding Update was sent to the
+ correspondent node, the Binding Authorization Data mobility option
+ MUST be present and have a valid value.
+
+
+
+Johnson, et al. Standard Track [Page 134]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o The Binding Authorization Data mobility option, if present, MUST
+ be the last option and MUST not have trailing padding.
+
+ o The Sequence Number field matches the Sequence Number sent by the
+ mobile node to this destination address in an outstanding Binding
+ Update.
+
+ Any Binding Acknowledgement not satisfying all of these tests MUST be
+ silently ignored.
+
+ When a mobile node receives a packet carrying a valid Binding
+ Acknowledgement, the mobile node MUST examine the Status field as
+ follows:
+
+ o If the Status field indicates that the Binding Update was accepted
+ (the Status field is less than 128), then the mobile node MUST
+ update the corresponding entry in its Binding Update List to
+ indicate that the Binding Update has been acknowledged; the mobile
+ node MUST then stop retransmitting the Binding Update. In
+ addition, if the value specified in the Lifetime field in the
+ Binding Acknowledgement is less than the Lifetime value sent in
+ the Binding Update being acknowledged, the mobile node MUST
+ subtract the difference between these two Lifetime values from the
+ remaining lifetime for the binding as maintained in the
+ corresponding Binding Update List entry (with a minimum value for
+ the Binding Update List entry lifetime of 0). That is, if the
+ Lifetime value sent in the Binding Update was L_update, the
+ Lifetime value received in the Binding Acknowledgement was L_ack,
+ and the current remaining lifetime of the Binding Update List
+ entry is L_remain, then the new value for the remaining lifetime
+ of the Binding Update List entry should be
+
+ max((L_remain - (L_update - L_ack)), 0)
+
+ where max(X, Y) is the maximum of X and Y. The effect of this
+ step is to correctly manage the mobile node's view of the
+ binding's remaining lifetime (as maintained in the corresponding
+ Binding Update List entry) so that it correctly counts down from
+ the Lifetime value given in the Binding Acknowledgement, but with
+ the timer countdown beginning at the time that the Binding Update
+ was sent.
+
+ Mobile nodes SHOULD send a new Binding Update well before the
+ expiration of this period in order to extend the lifetime. This
+ helps to avoid disruptions in communications which might otherwise
+ be caused by network delays or clock drift.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 135]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o Additionally, if the Status field value is 1 (accepted but prefix
+ discovery necessary), the mobile node SHOULD send a Mobile Prefix
+ Solicitation message to update its information about the available
+ prefixes.
+
+ o If the Status field indicates that the Binding Update was rejected
+ (the Status field is greater than or equal to 128), then the
+ mobile node can take steps to correct the cause of the error and
+ retransmit the Binding Update (with a new Sequence Number value),
+ subject to the rate limiting restriction specified in Section
+ 11.8. If this is not done or it fails, then the mobile node
+ SHOULD record in its Binding Update List that future Binding
+ Updates SHOULD NOT be sent to this destination.
+
+ The treatment of a Binding Refresh Advice mobility option within the
+ Binding Acknowledgement depends on where the acknowledgement came
+ from. This option MUST be ignored if the acknowledgement came from a
+ correspondent node. If it came from the home agent, the mobile node
+ uses the Refresh Interval field in the option as a suggestion that it
+ SHOULD attempt to refresh its home registration at the indicated
+ shorter interval.
+
+ If the acknowledgement came from the home agent, the mobile node
+ examines the value of the Key Management Mobility Capability (K) bit.
+ If this bit is not set, the mobile node SHOULD discard key management
+ protocol connections, if any, to the home agent. The mobile node MAY
+ also initiate a new key management connection.
+
+ If this bit is set, the mobile node SHOULD move its own endpoint in
+ the key management protocol connections to the home agent, if any.
+ The mobile node's new endpoint should be the new care-of address.
+ For an IKE phase 1 connection, this means that packets sent to this
+ address with the original ISAKMP cookies are accepted.
+
+11.7.4. Receiving Binding Refresh Requests
+
+ When a mobile node receives a packet containing a Binding Refresh
+ Request message, the mobile node has a Binding Update List entry for
+ the source of the Binding Refresh Request, and the mobile node wants
+ to retain its binding cache entry at the correspondent node, then the
+ mobile node should start a return routability procedure. If the
+ mobile node wants to have its binding cache entry removed, it can
+ either ignore the Binding Refresh Request and wait for the binding to
+ time out, or at any time, it can delete its binding from a
+ correspondent node with an explicit binding update with a zero
+ lifetime and the care-of address set to the home address. If the
+
+
+
+
+
+Johnson, et al. Standard Track [Page 136]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ mobile node does not know if it needs the binding cache entry, it can
+ make the decision in an implementation dependent manner, such as
+ based on available resources.
+
+ Note that the mobile node should be careful to not respond to Binding
+ Refresh Requests for addresses not in the Binding Update List to
+ avoid being subjected to a denial of service attack.
+
+ If the return routability procedure completes successfully, a Binding
+ Update message SHOULD be sent, as described in Section 11.7.2. The
+ Lifetime field in this Binding Update SHOULD be set to a new
+ lifetime, extending any current lifetime remaining from a previous
+ Binding Update sent to this node (as indicated in any existing
+ Binding Update List entry for this node), and the lifetime SHOULD
+ again be less than or equal to the remaining lifetime of the home
+ registration and the care-of address specified for the binding. When
+ sending this Binding Update, the mobile node MUST update its Binding
+ Update List in the same way as for any other Binding Update sent by
+ the mobile node.
+
+11.8. Retransmissions and Rate Limiting
+
+ The mobile node is responsible for retransmissions and rate limiting
+ in the return routability procedure, registrations, and in solicited
+ prefix discovery.
+
+ When the mobile node sends a Mobile Prefix Solicitation, Home Test
+ Init, Care-of Test Init or Binding Update for which it expects a
+ response, the mobile node has to determine a value for the initial
+ retransmission timer:
+
+ o If the mobile node is sending a Mobile Prefix Solicitation, it
+ SHOULD use an initial retransmission interval of
+ INITIAL_SOLICIT_TIMER (see Section 12).
+
+ o If the mobile node is sending a Binding Update and does not have
+ an existing binding at the home agent, it SHOULD use
+ InitialBindackTimeoutFirstReg (see Section 13) as a value for the
+ initial retransmission timer. This long retransmission interval
+ will allow the home agent to complete the Duplicate Address
+ Detection procedure mandated in this case, as detailed in Section
+ 11.7.1.
+
+ o Otherwise, the mobile node should use the specified value of
+ INITIAL_BINDACK_TIMEOUT for the initial retransmission timer.
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 137]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ If the mobile node fails to receive a valid matching response within
+ the selected initial retransmission interval, the mobile node SHOULD
+ retransmit the message until a response is received.
+
+ The retransmissions by the mobile node MUST use an exponential back-
+ off process in which the timeout period is doubled upon each
+ retransmission, until either the node receives a response or the
+ timeout period reaches the value MAX_BINDACK_TIMEOUT. The mobile
+ node MAY continue to send these messages at this slower rate
+ indefinitely.
+
+ The mobile node SHOULD start a separate back-off process for
+ different message types, different home addresses and different
+ care-of addresses. However, in addition an overall rate limitation
+ applies for messages sent to a particular correspondent node. This
+ ensures that the correspondent node has a sufficient amount of time
+ to respond when bindings for multiple home addresses are registered,
+ for instance. The mobile node MUST NOT send Mobility Header messages
+ of a particular type to a particular correspondent node more than
+ MAX_UPDATE_RATE times within a second.
+
+ Retransmitted Binding Updates MUST use a Sequence Number value
+ greater than that used for the previous transmission of this Binding
+ Update. Retransmitted Home Test Init and Care-of Test Init messages
+ MUST use new cookie values.
+
+12. Protocol Constants
+
+ DHAAD_RETRIES 4 retransmissions
+ INITIAL_BINDACK_TIMEOUT 1 second
+ INITIAL_DHAAD_TIMEOUT 3 seconds
+ INITIAL_SOLICIT_TIMER 3 seconds
+ MAX_BINDACK_TIMEOUT 32 seconds
+ MAX_NONCE_LIFETIME 240 seconds
+ MAX_TOKEN_LIFETIME 210 seconds
+ MAX_RR_BINDING_LIFETIME 420 seconds
+ MAX_UPDATE_RATE 3 times
+ PREFIX_ADV_RETRIES 3 retransmissions
+ PREFIX_ADV_TIMEOUT 3 seconds
+
+13. Protocol Configuration Variables
+
+ MaxMobPfxAdvInterval Default: 86,400 seconds
+ MinDelayBetweenRAs Default: 3 seconds,
+ Min: 0.03 seconds
+ MinMobPfxAdvInterval Default: 600 seconds
+ InitialBindackTimeoutFirstReg Default: 1.5 seconds
+
+
+
+
+Johnson, et al. Standard Track [Page 138]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Home agents MUST allow the first three variables to be configured by
+ system management, and mobile nodes MUST allow the last variable to
+ be configured by system management.
+
+ The default value for InitialBindackTimeoutFirstReg has been
+ calculated as 1.5 times the default value of RetransTimer [12] times
+ the default value of DupAddrDetectTransmits [13].
+
+ The value MinDelayBetweenRAs overrides the value of the protocol
+ constant MIN_DELAY_BETWEEN_RAS, as specified in RFC 2461 [12]. This
+ variable SHOULD be set to MinRtrAdvInterval, if MinRtrAdvInterval is
+ less than 3 seconds.
+
+14. IANA Considerations
+
+ This document defines a new IPv6 protocol, the Mobility Header,
+ described in Section 6.1. This protocol has been assigned protocol
+ number 135.
+
+ This document also creates a new name space "Mobility Header Type",
+ for the MH Type field in the Mobility Header. The current message
+ types are described starting from Section 6.1.2, and are the
+ following:
+
+ 0 Binding Refresh Request
+
+ 1 Home Test Init
+
+ 2 Care-of Test Init
+
+ 3 Home Test
+
+ 4 Care-of Test
+
+ 5 Binding Update
+
+ 6 Binding Acknowledgement
+
+ 7 Binding Error
+
+ Future values of the MH Type can be allocated using Standards Action
+ or IESG Approval [10].
+
+ Furthermore, each mobility message may contain mobility options as
+ described in Section 6.2. This document defines a new name space
+ "Mobility Option" to identify these options. The current mobility
+ options are defined starting from Section 6.2.2 and are the
+ following:
+
+
+
+Johnson, et al. Standard Track [Page 139]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ 0 Pad1
+
+ 1 PadN
+
+ 2 Binding Refresh Advice
+
+ 3 Alternate Care-of Address
+
+ 4 Nonce Indices
+
+ 5 Authorization Data
+
+ Future values of the Option Type can be allocated using Standards
+ Action or IESG Approval [10].
+
+ Finally, this document creates a third new name space "Status Code"
+ for the Status field in the Binding Acknowledgement message. The
+ current values are described in Section 6.1.8, and are the following:
+
+ 0 Binding Update accepted
+
+ 1 Accepted but prefix discovery necessary
+
+ 128 Reason unspecified
+
+ 129 Administratively prohibited
+
+ 130 Insufficient resources
+
+ 131 Home registration not supported
+
+ 132 Not home subnet
+
+ 133 Not home agent for this mobile node
+
+ 134 Duplicate Address Detection failed
+
+ 135 Sequence number out of window
+
+ 136 Expired home nonce index
+
+ 137 Expired care-of nonce index
+
+ 138 Expired nonces
+
+ 139 Registration type change disallowed
+
+
+
+
+
+Johnson, et al. Standard Track [Page 140]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Future values of the Status field can be allocated using Standards
+ Action or IESG Approval [10].
+
+ All fields labeled "Reserved" are only to be assigned through
+ Standards Action or IESG Approval.
+
+ This document also defines a new IPv6 destination option, the Home
+ Address option, described in Section 6.3. This option has been
+ assigned the Option Type value 0xC9.
+
+ This document also defines a new IPv6 type 2 routing header,
+ described in Section 6.4. The value 2 has been allocated by IANA.
+
+ In addition, this document defines four ICMP message types, two used
+ as part of the dynamic home agent address discovery mechanism, and
+ two used in lieu of Router Solicitations and Advertisements when the
+ mobile node is away from the home link. These messages have been
+ assigned ICMPv6 type numbers from the informational message range:
+
+ o The Home Agent Address Discovery Request message, described in
+ Section 6.5;
+
+ o The Home Agent Address Discovery Reply message, described in
+ Section 6.6;
+
+ o The Mobile Prefix Solicitation, described in Section 6.7; and
+
+ o The Mobile Prefix Advertisement, described in Section 6.8.
+
+ This document also defines two new Neighbor Discovery [12] options,
+ which have been assigned Option Type values within the option
+ numbering space for Neighbor Discovery messages:
+
+ o The Advertisement Interval option, described in Section 7.3; and
+
+ o The Home Agent Information option, described in Section 7.4.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 141]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+15. Security Considerations
+
+15.1. Threats
+
+ Any mobility solution must protect itself against misuses of the
+ mobility features and mechanisms. In Mobile IPv6, most of the
+ potential threats are concerned with false Bindings, usually
+ resulting in Denial-of-Service attacks. Some of the threats also
+ pose potential for Man-in-the-Middle, Hijacking, Confidentiality, and
+ Impersonation attacks. The main threats this protocol protects
+ against are the following:
+
+ o Threats involving Binding Updates sent to home agents and
+ correspondent nodes. For instance, an attacker might claim that a
+ certain mobile node is currently at a different location than it
+ really is. If a home agent accepts such spoofed information sent
+ to it, the mobile node might not get traffic destined to it.
+ Similarly, a malicious (mobile) node might use the home address of
+ a victim node in a forged Binding Update sent to a correspondent
+ node.
+
+ These pose threats against confidentiality, integrity, and
+ availability. That is, an attacker might learn the contents of
+ packets destined to another node by redirecting the traffic to
+ itself. Furthermore, an attacker might use the redirected packets
+ in an attempt to set itself as a Man-in-the-Middle between a
+ mobile and a correspondent node. This would allow the attacker to
+ impersonate the mobile node, leading to integrity and availability
+ problems.
+
+ A malicious (mobile) node might also send Binding Updates in which
+ the care-of address is set to the address of a victim node. If
+ such Binding Updates were accepted, the malicious node could lure
+ the correspondent node into sending potentially large amounts of
+ data to the victim; the correspondent node's replies to messages
+ sent by the malicious mobile node will be sent to the victim host
+ or network. This could be used to cause a Distributed Denial-of-
+ Service attack. For example, the correspondent node might be a
+ site that will send a high-bandwidth stream of video to anyone who
+ asks for it. Note that the use of flow-control protocols such as
+ TCP does not necessarily defend against this type of attack,
+ because the attacker can fake the acknowledgements. Even keeping
+ TCP initial sequence numbers secret does not help, because the
+ attacker can receive the first few segments (including the ISN) at
+ its own address, and only then redirect the stream to the victim's
+ address. These types of attacks may also be directed to networks
+ instead of nodes. Further variations of this threat are described
+ elsewhere [27, 34].
+
+
+
+Johnson, et al. Standard Track [Page 142]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ An attacker might also attempt to disrupt a mobile node's
+ communications by replaying a Binding Update that the node had
+ sent earlier. If the old Binding Update was accepted, packets
+ destined for the mobile node would be sent to its old location as
+ opposed to its current location.
+
+ In conclusion, there are Denial-of-Service, Man-in-the-Middle,
+ Confidentiality, and Impersonation threats against the parties
+ involved in sending legitimate Binding Updates, and Denial-of-
+ Service threats against any other party.
+
+ o Threats associated with payload packets: Payload packets exchanged
+ with mobile nodes are exposed to similar threats as that of
+ regular IPv6 traffic. However, Mobile IPv6 introduces the Home
+ Address destination option, a new routing header type (type 2),
+ and uses tunneling headers in the payload packets. The protocol
+ must protect against potential new threats involving the use of
+ these mechanisms.
+
+ Third parties become exposed to a reflection threat via the Home
+ Address destination option, unless appropriate security
+ precautions are followed. The Home Address destination option
+ could be used to direct response traffic toward a node whose IP
+ address appears in the option. In this case, ingress filtering
+ would not catch the forged "return address" [36, 32].
+
+ A similar threat exists with the tunnels between the mobile node
+ and the home agent. An attacker might forge tunnel packets
+ between the mobile node and the home agent, making it appear that
+ the traffic is coming from the mobile node when it is not. Note
+ that an attacker who is able to forge tunnel packets would
+ typically also be able to forge packets that appear to come
+ directly from the mobile node. This is not a new threat as such.
+ However, it may make it easier for attackers to escape detection
+ by avoiding ingress filtering and packet tracing mechanisms.
+ Furthermore, spoofed tunnel packets might be used to gain access
+ to the home network.
+
+ Finally, a routing header could also be used in reflection
+ attacks, and in attacks designed to bypass firewalls. The
+ generality of the regular routing header would allow circumvention
+ of IP-address based rules in firewalls. It would also allow
+ reflection of traffic to other nodes. These threats exist with
+ routing headers in general, even if the usage that Mobile IPv6
+ requires is safe.
+
+ o Threats associated with dynamic home agent and mobile prefix
+ discovery.
+
+
+
+Johnson, et al. Standard Track [Page 143]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o Threats against the Mobile IPv6 security mechanisms themselves: An
+ attacker might, for instance, lure the participants into executing
+ expensive cryptographic operations or allocating memory for the
+ purpose of keeping state. The victim node would have no resources
+ left to handle other tasks.
+
+ As a fundamental service in an IPv6 stack, Mobile IPv6 is expected to
+ be deployed in most nodes of the IPv6 Internet. The above threats
+ should therefore be considered as being applicable to the whole
+ Internet.
+
+ It should also be noted that some additional threats result from
+ movements as such, even without the involvement of mobility
+ protocols. Mobile nodes must be capable to defend themselves in the
+ networks that they visit, as typical perimeter defenses applied in
+ the home network no longer protect them.
+
+15.2. Features
+
+ This specification provides a series of features designed to mitigate
+ the risk introduced by the threats listed above. The main security
+ features are the following:
+
+ o Reverse Tunneling as a mandatory feature.
+
+ o Protection of Binding Updates sent to home agents.
+
+ o Protection of Binding Updates sent to correspondent nodes.
+
+ o Protection against reflection attacks that use the Home Address
+ destination option.
+
+ o Protection of tunnels between the mobile node and the home agent.
+
+ o Closing routing header vulnerabilities.
+
+ o Mitigating Denial-of-Service threats to the Mobile IPv6 security
+ mechanisms themselves.
+
+ The support for encrypted reverse tunneling (see Section 11.3.1)
+ allows mobile nodes to defeat certain kinds of traffic analysis.
+
+ Protecting those Binding Updates that are sent to home agents and
+ those that are sent to arbitrary correspondent nodes requires very
+ different security solutions due to the different situations. Mobile
+ nodes and home agents are naturally expected to be subject to the
+ network administration of the home domain.
+
+
+
+
+Johnson, et al. Standard Track [Page 144]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Thus, they can and are supposed to have a security association that
+ can be used to reliably authenticate the exchanged messages. See
+ Section 5.1 for the description of the protocol mechanisms, and
+ Section 15.3 below for a discussion of the resulting level of
+ security.
+
+ It is expected that Mobile IPv6 route optimization will be used on a
+ global basis between nodes belonging to different administrative
+ domains. It would be a very demanding task to build an
+ authentication infrastructure on this scale. Furthermore, a
+ traditional authentication infrastructure cannot be easily used to
+ authenticate IP addresses because IP addresses can change often. It
+ is not sufficient to just authenticate the mobile nodes;
+ Authorization to claim the right to use an address is needed as well.
+ Thus, an "infrastructureless" approach is necessary. The chosen
+ infrastructureless method is described in Section 5.2, and Section
+ 15.4 discusses the resulting security level and the design rationale
+ of this approach.
+
+ Specific rules guide the use of the Home Address destination option,
+ the routing header, and the tunneling headers in the payload packets.
+ These rules are necessary to remove the vulnerabilities associated
+ with their unrestricted use. The effect of the rules is discussed in
+ Section 15.7, Section 15.8, and Section 15.9.
+
+ Denial-of-Service threats against Mobile IPv6 security mechanisms
+ themselves concern mainly the Binding Update procedures with
+ correspondent nodes. The protocol has been designed to limit the
+ effects of such attacks, as will be described in Section 15.4.5.
+
+15.3. Binding Updates to Home Agent
+
+ Signaling between the mobile node and the home agent requires message
+ integrity. This is necessary to assure the home agent that a Binding
+ Update is from a legitimate mobile node. In addition, correct
+ ordering and anti-replay protection are optionally needed.
+
+ IPsec ESP protects the integrity of the Binding Updates and Binding
+ Acknowledgements by securing mobility messages between the mobile
+ node and the home agent.
+
+ IPsec can provide anti-replay protection only if dynamic keying is
+ used (which may not always be the case). IPsec does not guarantee
+ correct ordering of packets, only that they have not been replayed.
+ Because of this, sequence numbers within the Mobile IPv6 messages are
+ used to ensure correct ordering (see Section 5.1). However, if the
+ 16 bit Mobile IPv6 sequence number space is cycled through, or the
+ home agent reboots and loses its state regarding the sequence
+
+
+
+Johnson, et al. Standard Track [Page 145]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ numbers, replay and reordering attacks become possible. The use of
+ dynamic keying, IPsec anti-replay protection, and the Mobile IPv6
+ sequence numbers can together prevent such attacks. It is also
+ recommended that use of non-volatile storage be considered for home
+ agents, to avoid losing their state.
+
+ A sliding window scheme is used for the sequence numbers. The
+ protection against replays and reordering attacks without a key
+ management mechanism works when the attacker remembers up to a
+ maximum of 2**15 Binding Updates.
+
+ The above mechanisms do not show that the care-of address given in
+ the Binding Update is correct. This opens the possibility for
+ Denial-of-Service attacks against third parties. However, since the
+ mobile node and home agent have a security association, the home
+ agent can always identify an ill-behaving mobile node. This allows
+ the home agent operator to discontinue the mobile node's service, and
+ possibly take further actions based on the business relationship with
+ the mobile node's owner.
+
+ Note that the use of a single pair of manually keyed security
+ associations conflicts with the generation of a new home address [18]
+ for the mobile node, or with the adoption of a new home subnet
+ prefix. This is because IPsec security associations are bound to the
+ used addresses. While certificate-based automatic keying alleviates
+ this problem to an extent, it is still necessary to ensure that a
+ given mobile node cannot send Binding Updates for the address of
+ another mobile node. In general, this leads to the inclusion of home
+ addresses in certificates in the Subject AltName field. This again
+ limits the introduction of new addresses without either manual or
+ automatic procedures to establish new certificates. Therefore, this
+ specification restricts the generation of new home addresses (for any
+ reason) to those situations where a security association or
+ certificate for the new address already exists. (Appendix B.4 lists
+ the improvement of security for new addresses as one of the future
+ developments for Mobile IPv6.)
+
+ Support for IKE has been specified as optional. The following should
+ be observed about the use of manual keying:
+
+ o As discussed above, with manually keyed IPsec, only a limited form
+ of protection exists against replay and reordering attacks. A
+ vulnerability exists if either the sequence number space is cycled
+ through, or if the home agent reboots and forgets its sequence
+ numbers (and uses volatile memory to store the sequence numbers).
+ Assuming the mobile node moves continuously every 10 minutes, it
+
+
+
+
+
+Johnson, et al. Standard Track [Page 146]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ takes roughly 455 days before the sequence number space has been
+ cycled through. Typical movement patterns rarely reach this high
+ frequency today.
+
+ o A mobile node and its home agent belong to the same domain. If
+ this were not the case, manual keying would not be possible [28],
+ but in Mobile IPv6 only these two parties need to know the
+ manually configured keys. Similarly, we note that Mobile IPv6
+ employs standard block ciphers in IPsec, and is not vulnerable to
+ problems associated with stream ciphers and manual keying.
+
+ o It is expected that the owner of the mobile node and the
+ administrator of the home agent agree on the used keys and other
+ parameters with some off-line mechanism.
+
+ The use of IKEv1 with Mobile IPv6 is documented in more detail in
+ [21]. The following should be observed from the use of IKEv1:
+
+ o It is necessary to prevent a mobile node from claiming another
+ mobile node's home address. The home agent must verify that the
+ mobile node trying to negotiate the SA for a particular home
+ address is authorized for that home address. This implies that
+ even with the use of IKE, a policy entry needs to be configured
+ for each home address served by the home agent.
+
+ It may be possible to include home addresses in the Subject
+ AltName field of certificate to avoid this. However,
+ implementations are not guaranteed to support the use of a
+ particular IP address (care-of address) while another address
+ (home address) appears in the certificate. In any case, even this
+ approach would require user-specific tasks in the certificate
+ authority.
+
+ o If preshared secret authentication is used, IKEv1 main mode cannot
+ be used. Aggressive mode or group preshared secrets need to be
+ used with corresponding security implications instead.
+
+ Note that, like many other issues, this is a general IKEv1 issue
+ related to the ability to use different IP addresses, and not
+ specifically related to Mobile IPv6. For further information, see
+ Section 4.4 in [21].
+
+ o Due to the problems outlined in Section 11.3.2, IKE phase 1
+ between the mobile node and its home agent is established using
+ the mobile node's current care-of address. This implies that when
+ the mobile node moves to a new location, it may have to re-
+ establish phase 1. A Key Management Mobility Capability (K) flag
+
+
+
+
+Johnson, et al. Standard Track [Page 147]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ is provided for implementations that can update the IKE phase 1
+ endpoints without re-establishing phase 1, but the support for
+ this behavior is optional.
+
+ o When certificates are used, IKE fragmentation can occur as
+ discussed in Section 7 in [21].
+
+ o Nevertheless, even if per-mobile node configuration is required
+ with IKE, an important benefit of IKE is that it automates the
+ negotiation of cryptographic parameters, including the SPIs,
+ cryptographic algorithms, and so on. Thus, less configuration
+ information is needed.
+
+ o The frequency of movements in some link layers or deployment
+ scenarios may be high enough to make replay and reordering attacks
+ possible, if only manual keying is used. IKE SHOULD be used in
+ such cases. Potentially vulnerable scenarios involve continuous
+ movement through small cells, or uncontrolled alternation between
+ available network attachment points.
+
+ o Similarly, in some deployment scenarios the number of mobile nodes
+ may be very large. In these cases, it can be necessary to use
+ automatic mechanisms to reduce the management effort in the
+ administration of cryptographic parameters, even if some per-
+ mobile node configuration is always needed. IKE SHOULD also be
+ used in such cases.
+
+ o Other automatic key management mechanisms exist beyond IKEv1, but
+ this document does not address the issues related to them. We
+ note, however, that most of the above discussion applies to IKEv2
+ [30] as well, at least as it is currently specified.
+
+15.4. Binding Updates to Correspondent Nodes
+
+ The motivation for designing the return routability procedure was to
+ have sufficient support for Mobile IPv6, without creating significant
+ new security problems. The goal for this procedure was not to
+ protect against attacks that were already possible before the
+ introduction of Mobile IPv6.
+
+ The next sections will describe the security properties of the used
+ method, both from the point of view of possible on-path attackers who
+ can see those cryptographic values that have been sent in the clear
+ (Section 15.4.2 and Section 15.4.3) and from the point of view of
+ other attackers (Section 15.4.6).
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 148]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+15.4.1. Overview
+
+ The chosen infrastructureless method verifies that the mobile node is
+ "live" (that is, it responds to probes) at its home and care-of
+ addresses. Section 5.2 describes the return routability procedure in
+ detail. The procedure uses the following principles:
+
+ o A message exchange verifies that the mobile node is reachable at
+ its addresses, i.e., is at least able to transmit and receive
+ traffic at both the home and care-of addresses.
+
+ o The eventual Binding Update is cryptographically bound to the
+ tokens supplied in the exchanged messages.
+
+ o Symmetric exchanges are employed to avoid the use of this protocol
+ in reflection attacks. In a symmetric exchange, the responses are
+ always sent to the same address the request was sent from.
+
+ o The correspondent node operates in a stateless manner until it
+ receives a fully authorized Binding Update.
+
+ o Some additional protection is provided by encrypting the tunnels
+ between the mobile node and home agent with IPsec ESP. As the
+ tunnel also transports the nonce exchanges, the ability of
+ attackers to see these nonces is limited. For instance, this
+ prevents attacks from being launched from the mobile node's
+ current foreign link, even when no link-layer confidentiality is
+ available.
+
+ The resulting level of security is in theory the same even without
+ this additional protection: the return routability tokens are
+ still exposed only to one path within the whole Internet.
+ However, the mobile nodes are often found on an insecure link,
+ such as a public access Wireless LAN. Thus, in many cases, this
+ addition makes a practical difference.
+
+ For further information about the design rationale of the return
+ routability procedure, see [27, 34, 33, 32]. The mechanisms used
+ have been adopted from these documents.
+
+15.4.2. Achieved Security Properties
+
+ The return routability procedure protects Binding Updates against all
+ attackers who are unable to monitor the path between the home agent
+ and the correspondent node. The procedure does not defend against
+ attackers who can monitor this path. Note that such attackers are in
+ any case able to mount an active attack against the mobile node when
+
+
+
+
+Johnson, et al. Standard Track [Page 149]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ it is at its home location. The possibility of such attacks is not
+ an impediment to the deployment of Mobile IPv6 because these attacks
+ are possible regardless of whether or not Mobile IPv6 is in use.
+
+ This procedure also protects against Denial-of-Service attacks in
+ which the attacker pretends to be mobile, but uses the victim's
+ address as the care-of address. This would cause the correspondent
+ node to send the victim some unexpected traffic. This procedure
+ defends against these attacks by requiring at least the passive
+ presence of the attacker at the care-of address or on the path from
+ the correspondent to the care-of address. Normally, this will be the
+ mobile node.
+
+15.4.3. Comparison to Regular IPv6 Communications
+
+ This section discusses the protection offered by the return
+ routability method by comparing it to the security of regular IPv6
+ communications. We will divide vulnerabilities into three classes:
+ (1) those related to attackers on the local network of the mobile
+ node, home agent, or the correspondent node, (2) those related to
+ attackers on the path between the home network and the correspondent
+ node, and (3) off-path attackers, i.e., the rest of the Internet.
+
+ We will now discuss the vulnerabilities of regular IPv6
+ communications. The on-link vulnerabilities of IPv6 communications
+ include Denial-of-Service, Masquerading, Man-in-the-Middle,
+ Eavesdropping, and other attacks. These attacks can be launched
+ through spoofing Router Discovery, Neighbor Discovery and other IPv6
+ mechanisms. Some of these attacks can be prevented with the use of
+ cryptographic protection in the packets.
+
+ A similar situation exists with on-path attackers. That is, without
+ cryptographic protection, the traffic is completely vulnerable.
+
+ Assuming that attackers have not penetrated the security of the
+ Internet routing protocols, attacks are much harder to launch from
+ off-path locations. Attacks that can be launched from these
+ locations are mainly Denial-of-Service attacks, such as flooding and/
+ or reflection attacks. It is not possible for an off-path attacker
+ to become a Man-in-the-Middle.
+
+ Next, we will consider the vulnerabilities that exist when IPv6 is
+ used together with Mobile IPv6 and the return routability procedure.
+ On the local link, the vulnerabilities are the same as those in IPv6,
+ but Masquerade and Man-in-the-Middle attacks can now also be launched
+ against future communications, and not just against current
+ communications. If a Binding Update was sent while the attacker was
+ present on the link, its effects remain for the lifetime of the
+
+
+
+Johnson, et al. Standard Track [Page 150]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ binding. This happens even if the attacker moves away from the link.
+ In contrast, an attacker who uses only plain IPv6 generally has to
+ stay on the link in order to continue the attack. Note that in order
+ to launch these new attacks, the IP address of the victim must be
+ known. This makes this attack feasible, mainly in the context of
+ well-known interface IDs, such as those already appearing in the
+ traffic on the link or registered in the DNS.
+
+ On-path attackers can exploit similar vulnerabilities as in regular
+ IPv6. There are some minor differences, however. Masquerade, Man-
+ in-the-Middle, and Denial-of-Service attacks can be launched with
+ just the interception of a few packets, whereas in regular IPv6 it is
+ necessary to intercept every packet. The effect of the attacks is
+ the same regardless of the method, however. In any case, the most
+ difficult task an attacker faces in these attacks is getting on the
+ right path.
+
+ The vulnerabilities for off-path attackers are the same as in regular
+ IPv6. Those nodes that are not on the path between the home agent
+ and the correspondent node will not be able to receive the home
+ address probe messages.
+
+ In conclusion, we can state the following main results from this
+ comparison:
+
+ o Return routability prevents any off-path attacks beyond those that
+ are already possible in regular IPv6. This is the most important
+ result, preventing attackers on the Internet from exploiting any
+ vulnerabilities.
+
+ o Vulnerabilities to attackers on the home agent link, the
+ correspondent node link, and the path between them are roughly the
+ same as in regular IPv6.
+
+ o However, one difference is that in basic IPv6 an on-path attacker
+ must be constantly present on the link or the path, whereas with
+ Mobile IPv6, an attacker can leave a binding behind after moving
+ away.
+
+ For this reason, this specification limits the creation of
+ bindings to at most MAX_TOKEN_LIFETIME seconds after the last
+ routability check has been performed, and limits the duration of a
+ binding to at most MAX_RR_BINDING_LIFETIME seconds. With these
+ limitations, attackers cannot take any practical advantages of
+ this vulnerability.
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 151]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ o There are some other minor differences, such as an effect to the
+ Denial-of-Service vulnerabilities. These can be considered to be
+ insignificant.
+
+ o The path between the home agent and a correspondent node is
+ typically easiest to attack on the links at either end, in
+ particular if these links are publicly accessible wireless LANs.
+
+ Attacks against the routers or switches on the path are typically
+ harder to accomplish. The security on layer 2 of the links plays
+ then a major role in the resulting overall network security.
+ Similarly, security of IPv6 Neighbor and Router Discovery on these
+ links has a large impact. If these were secured using some new
+ technology in the future, this could change the situation
+ regarding the easiest point of attack.
+
+ For a more in-depth discussion of these issues, see [32].
+
+15.4.4. Replay Attacks
+
+ The return routability procedure also protects the participants
+ against replayed Binding Updates. The attacker is unable replay the
+ same message due to the sequence number which is a part of the
+ Binding Update. It is also unable to modify the Binding Update since
+ the MAC verification would fail after such a modification.
+
+ Care must be taken when removing bindings at the correspondent node,
+ however. If a binding is removed while the nonce used in its
+ creation is still valid, an attacker could replay the old Binding
+ Update. Rules outlined in Section 5.2.8 ensure that this cannot
+ happen.
+
+15.4.5. Denial-of-Service Attacks
+
+ The return routability procedure has protection against resource
+ exhaustion Denial-of-Service attacks. The correspondent nodes do not
+ retain any state about individual mobile nodes until an authentic
+ Binding Update arrives. This is achieved through the construct of
+ keygen tokens from the nonces and node keys that are not specific to
+ individual mobile nodes. The keygen tokens can be reconstructed by
+ the correspondent node, based on the home and care-of address
+ information that arrives with the Binding Update. This means that
+ the correspondent nodes are safe against memory exhaustion attacks
+ except where on-path attackers are concerned. Due to the use of
+ symmetric cryptography, the correspondent nodes are relatively safe
+ against CPU resource exhaustion attacks as well.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 152]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Nevertheless, as [27] describes, there are situations in which it is
+ impossible for the mobile and correspondent nodes to determine if
+ they actually need a binding or whether they just have been fooled
+ into believing so by an attacker. Therefore, it is necessary to
+ consider situations where such attacks are being made.
+
+ Even if route optimization is a very important optimization, it is
+ still only an optimization. A mobile node can communicate with a
+ correspondent node even if the correspondent refuses to accept any
+ Binding Updates. However, performance will suffer because packets
+ from the correspondent node to the mobile node will be routed via the
+ mobile's home agent rather than a more direct route. A correspondent
+ node can protect itself against some of these resource exhaustion
+ attacks as follows. If the correspondent node is flooded with a
+ large number of Binding Updates that fail the cryptographic integrity
+ checks, it can stop processing Binding Updates. If a correspondent
+ node finds that it is spending more resources on checking bogus
+ Binding Updates than it is likely to save by accepting genuine
+ Binding Updates, then it may silently discard some or all Binding
+ Updates without performing any cryptographic operations.
+
+ Layers above IP can usually provide additional information to help
+ decide if there is a need to establish a binding with a specific
+ peer. For example, TCP knows if the node has a queue of data that it
+ is trying to send to a peer. An implementation of this specification
+ is not required to make use of information from higher protocol
+ layers, but some implementations are likely to be able to manage
+ resources more effectively by making use of such information.
+
+ We also require that all implementations be capable of
+ administratively disabling route optimization.
+
+15.4.6. Key Lengths
+
+ Attackers can try to break the return routability procedure in many
+ ways. Section 15.4.2 discusses the situation where the attacker can
+ see the cryptographic values sent in the clear, and Section 15.4.3
+ discusses the impact this has on IPv6 communications. This section
+ discusses whether attackers can guess the correct values without
+ seeing them.
+
+ While the return routability procedure is in progress, 64 bit cookies
+ are used to protect spoofed responses. This is believed to be
+ sufficient, given that to blindly spoof a response a very large
+ number of messages would have to be sent before success would be
+ probable.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 153]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ The tokens used in the return routability procedure provide together
+ 128 bits of information. This information is used internally as
+ input to a hash function to produce a 160 bit quantity suitable for
+ producing the keyed hash in the Binding Update using the HMAC_SHA1
+ algorithm. The final keyed hash length is 96 bits. The limiting
+ factors in this case are the input token lengths and the final keyed
+ hash length. The internal hash function application does not reduce
+ the entropy.
+
+ The 96 bit final keyed hash is of typical size and is believed to be
+ secure. The 128 bit input from the tokens is broken in two pieces,
+ the home keygen token and the care-of keygen token. An attacker can
+ try to guess the correct cookie value, but again this would require a
+ large number of messages (an the average 2**63 messages for one or
+ 2**127 for two). Furthermore, given that the cookies are valid only
+ for a short period of time, the attack has to keep a high constant
+ message rate to achieve a lasting effect. This does not appear
+ practical.
+
+ When the mobile node is returning home, it is allowed to use just the
+ home keygen token of 64 bits. This is less than 128 bits, but
+ attacking it blindly would still require a large number of messages
+ to be sent. If the attacker is on the path and capable of seeing the
+ Binding Update, it could conceivably break the keyed hash with brute
+ force. However, in this case the attacker has to be on the path,
+ which appears to offer easier ways for denial-of-service than
+ preventing route optimization.
+
+15.5. Dynamic Home Agent Address Discovery
+
+ The dynamic home agent address discovery function could be used to
+ learn the addresses of home agents in the home network.
+
+ The ability to learn addresses of nodes may be useful to attackers
+ because brute-force scanning of the address space is not practical
+ with IPv6. Thus, they could benefit from any means which make
+ mapping the networks easier. For example, if a security threat
+ targeted at routers or even home agents is discovered, having a
+ simple ICMP mechanism to easily find out possible targets may prove
+ to be an additional (though minor) security risk.
+
+ Apart from discovering the address(es) of home agents, attackers will
+ not be able to learn much from this information, and mobile nodes
+ cannot be tricked into using wrong home agents, as all other
+ communication with the home agents is secure.
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 154]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+15.6. Mobile Prefix Discovery
+
+ The mobile prefix discovery function may leak interesting information
+ about network topology and prefix lifetimes to eavesdroppers; for
+ this reason, requests for this information has to be authenticated.
+ Responses and unsolicited prefix information needs to be
+ authenticated to prevent the mobile nodes from being tricked into
+ believing false information about the prefixes and possibly
+ preventing communications with the existing addresses. Optionally,
+ encryption may be applied to prevent leakage of the prefix
+ information.
+
+15.7. Tunneling via the Home Agent
+
+ Tunnels between the mobile node and the home agent can be protected
+ by ensuring proper use of source addresses, and optional
+ cryptographic protection. These procedures are discussed in Section
+ 5.5.
+
+ Binding Updates to the home agents are secure. When receiving
+ tunneled traffic, the home agent verifies that the outer IP address
+ corresponds to the current location of the mobile node. This acts as
+ a weak form of protection against spoofing packets that appear to
+ come from the mobile node. This is particularly useful, if no end-
+ to-end security is being applied between the mobile and correspondent
+ nodes. The outer IP address check prevents attacks where the
+ attacker is controlled by ingress filtering. It also prevents
+ attacks when the attacker does not know the current care-of address
+ of the mobile node. Attackers who know the care-of address and are
+ not controlled by ingress filtering could still send traffic through
+ the home agent. This includes attackers on the same local link as
+ the mobile node is currently on. But such attackers could send
+ packets that appear to come from the mobile node without attacking
+ the tunnel; the attacker could simply send packets with the source
+ address set to the mobile node's home address. However, this attack
+ does not work if the final destination of the packet is in the home
+ network, and some form of perimeter defense is being applied for
+ packets sent to those destinations. In such cases it is recommended
+ that either end-to-end security or additional tunnel protection be
+ applied, as is usual in remote access situations.
+
+ Home agents and mobile nodes may use IPsec ESP to protect payload
+ packets tunneled between themselves. This is useful for protecting
+ communications against attackers on the path of the tunnel.
+
+ When site local home addresses are used, reverse tunneling can be
+ used to send site local traffic from another location.
+ Administrators should be aware of this when allowing such home
+
+
+
+Johnson, et al. Standard Track [Page 155]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ addresses. In particular, the outer IP address check described above
+ is not sufficient against all attackers. The use of encrypted
+ tunnels is particularly useful for these kinds of home addresses.
+
+15.8. Home Address Option
+
+ When the mobile node sends packets directly to the correspondent
+ node, the Source Address field of the packet's IPv6 header is the
+ care-of address. Therefore, ingress filtering [26] works in the
+ usual manner even for mobile nodes, as the Source Address is
+ topologically correct. The Home Address option is used to inform the
+ correspondent node of the mobile node's home address.
+
+ However, the care-of address in the Source Address field does not
+ survive in replies sent by the correspondent node unless it has a
+ binding for this mobile node. Also, not all attacker tracing
+ mechanisms work when packets are being reflected through
+ correspondent nodes using the Home Address option. For these
+ reasons, this specification restricts the use of the Home Address
+ option. It may only be used when a binding has already been
+ established with the participation of the node at the home address,
+ as described in Section 5.5 and Section 6.3. This prevents
+ reflection attacks through the use of the Home Address option. It
+ also ensures that the correspondent nodes reply to the same address
+ that the mobile node sends traffic from.
+
+ No special authentication of the Home Address option is required
+ beyond the above, but note that if the IPv6 header of a packet is
+ covered by IPsec Authentication Header, then that authentication
+ covers the Home Address option as well. Thus, even when
+ authentication is used in the IPv6 header, the security of the Source
+ Address field in the IPv6 header is not compromised by the presence
+ of a Home Address option. Without authentication of the packet, any
+ field in the IPv6 header, including the Source Address field or any
+ other part of the packet and the Home Address option can be forged or
+ modified in transit. In this case, the contents of the Home Address
+ option is no more suspect than any other part of the packet.
+
+15.9. Type 2 Routing Header
+
+ The definition of the type 2 routing header is described in Section
+ 6.4. This definition and the associated processing rules have been
+ chosen so that the header cannot be used for what is traditionally
+ viewed as source routing. In particular, the Home Address in the
+ routing header will always have to be assigned to the home address of
+ the receiving node; otherwise the packet will be dropped.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 156]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Generally, source routing has a number of security concerns. These
+ include the automatic reversal of unauthenticated source routes
+ (which is an issue for IPv4, but not for IPv6). Another concern is
+ the ability to use source routing to "jump" between nodes inside, as
+ well as outside a firewall. These security concerns are not issues
+ in Mobile IPv6, due to the rules mentioned above.
+
+ In essence the semantics of the type 2 routing header is the same as
+ a special form of IP-in-IP tunneling where the inner and outer source
+ addresses are the same.
+
+ This implies that a device which implements the filtering of packets
+ should be able to distinguish between a type 2 routing header and
+ other routing headers, as required in Section 8.3. This is necessary
+ in order to allow Mobile IPv6 traffic while still having the option
+ of filtering out other uses of routing headers.
+
+16. Contributors
+
+ Tuomas Aura, Mike Roe, Greg O'Shea, Pekka Nikander, Erik Nordmark,
+ and Michael Thomas worked on the return routability protocols
+ eventually led to the procedures used in this protocol. The
+ procedures described in [34] were adopted in the protocol.
+
+ Significant contributions were made by members of the Mobile IPv6
+ Security Design Team, including (in alphabetical order) Gabriel
+ Montenegro, Erik Nordmark and Pekka Nikander.
+
+17. Acknowledgements
+
+ We would like to thank the members of the Mobile IP and IPng Working
+ Groups for their comments and suggestions on this work. We would
+ particularly like to thank (in alphabetical order) Fred Baker, Josh
+ Broch, Samita Chakrabarti, Robert Chalmers, Noel Chiappa, Greg Daley,
+ Vijay Devarapalli, Rich Draves, Francis Dupont, Thomas Eklund, Jun-
+ Ichiro Itojun Hagino, Brian Haley, Marc Hasson, John Ioannidis, James
+ Kempf, Rajeev Koodli, Krishna Kumar, T.J. Kniveton, Joe Lau, Jiwoong
+ Lee, Aime Le Rouzic, Vesa-Matti Mantyla, Kevin Miles, Glenn Morrow,
+ Thomas Narten, Karen Nielsen, Simon Nybroe, David Oran, Brett
+ Pentland, Lars Henrik Petander, Basavaraj Patil, Mohan Parthasarathy,
+ Alexandru Petrescu, Mattias Petterson, Ken Powell, Phil Roberts, Ed
+ Remmell, Patrice Romand, Luis A. Sanchez, Jeff Schiller, Pekka
+ Savola, Arvind Sevalkar, Keiichi Shima, Tom Soderlund, Hesham
+ Soliman, Jim Solomon, Tapio Suihko, Dave Thaler, Benny Van Houdt,
+ Jon-Olov Vatn, Carl E. Williams, Vladislav Yasevich, Alper Yegin, and
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 157]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ Xinhua Zhao, for their detailed reviews of earlier versions of this
+ document. Their suggestions have helped to improve both the design
+ and presentation of the protocol.
+
+ We would also like to thank the participants of the Mobile IPv6
+ testing event (1999), implementors who participated in Mobile IPv6
+ interoperability testing at Connectathons (2000, 2001, 2002, and
+ 2003), and the participants at the ETSI interoperability testing
+ (2000, 2002). Finally, we would like to thank the TAHI project who
+ has provided test suites for Mobile IPv6.
+
+18. References
+
+18.1. Normative References
+
+ [1] Eastlake 3rd., D., Crocker, S. and J. Schiller, "Randomness
+ Recommendations for Security", RFC 1750, December 1994.
+
+ [2] Bradner, S., "Key words for use in RFCs to Indicate Requirement
+ Levels", BCP 14, RFC 2119, March 1997.
+
+ [3] Hinden, R. and S. Deering, "Internet Protocol Version 6 (IPv6)
+ Addressing Architecture", RFC 3513, April 2003.
+
+ [4] Kent, S. and R. Atkinson, "Security Architecture for the
+ Internet Protocol", RFC 2401, November 1998.
+
+ [5] Kent, S. and R. Atkinson, "IP Authentication Header", RFC 2402,
+ November 1998.
+
+ [6] Kent, S. and R. Atkinson, "IP Encapsulating Security Payload
+ (ESP)", RFC 2406, November 1998.
+
+ [7] Piper, D., "The Internet IP Security Domain of Interpretation
+ for ISAKMP", RFC 2407, November 1998.
+
+ [8] Maughan, D., Schertler, M., Schneider, M. and J. Turner,
+ "Internet Security Association and Key Management Protocol
+ (ISAKMP)", RFC 2408, November 1998.
+
+ [9] Harkins, D. and D. Carrel, "The Internet Key Exchange (IKE)",
+ RFC 2409, November 1998.
+
+ [10] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA
+ Considerations Section in RFCs", BCP 26, RFC 2434, October
+ 1998.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 158]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ [11] Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6)
+ Specification", RFC 2460, December 1998.
+
+ [12] Narten, T., Nordmark, E. and W. Simpson, "Neighbor Discovery
+ for IP Version 6 (IPv6)", RFC 2461, December 1998.
+
+ [13] Thomson, S. and T. Narten, "IPv6 Stateless Address
+ Autoconfiguration", RFC 2462, December 1998.
+
+ [14] Conta, A. and S. Deering, "Internet Control Message Protocol
+ (ICMPv6) for the Internet Protocol Version 6 (IPv6)
+ Specification", RFC 2463, December 1998.
+
+ [15] Conta, A. and S. Deering, "Generic Packet Tunneling in IPv6
+ Specification", RFC 2473, December 1998.
+
+ [16] Johnson, D. and S. Deering, "Reserved IPv6 Subnet Anycast
+ Addresses", RFC 2526, March 1999.
+
+ [17] Deering, S., Fenner, W. and B. Haberman, "Multicast Listener
+ Discovery (MLD) for IPv6", RFC 2710, October 1999.
+
+ [18] Narten, T. and R. Draves, "Privacy Extensions for Stateless
+ Address Autoconfiguration in IPv6", RFC 3041, January 2001.
+
+ [19] Reynolds, J., Ed., "Assigned Numbers: RFC 1700 is Replaced by
+ an On-line Database", RFC 3232, January 2002.
+
+ [20] National Institute of Standards and Technology, "Secure Hash
+ Standard", FIPS PUB 180-1, April 1995, <http://
+ www.itl.nist.gov/fipspubs/fip180-1.htm>.
+
+ [21] Arkko, J., Devarapalli, V. and F. Dupont, "Using IPsec to
+ Protect Mobile IPv6 Signaling Between Mobile Nodes and Home
+ Agents", RFC 3776, June 2004.
+
+18.2. Informative References
+
+ [22] Perkins, C., Ed., "IP Mobility Support for IPv4", RFC 3344,
+ August 2002.
+
+ [23] Perkins, C., "IP Encapsulation within IP", RFC 2003, October
+ 1996.
+
+ [24] Perkins, C., "Minimal Encapsulation within IP", RFC 2004,
+ October 1996.
+
+
+
+
+
+Johnson, et al. Standard Track [Page 159]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+ [25] Krawczyk, H., Bellare, M. and R. Canetti, "HMAC: Keyed-Hashing
+ for Message Authentication", RFC 2104, February 1997.
+
+ [26] Ferguson, P. and D. Senie, "Network Ingress Filtering:
+ Defeating Denial of Service Attacks which employ IP Source
+ Address Spoofing", BCP 38, RFC 2827, May 2000.
+
+ [27] Aura, T. and J. Arkko, "MIPv6 BU Attacks and Defenses", Work in
+ Progress, March 2002.
+
+ [28] Bellovin, S., "Guidelines for Mandating Automated Key
+ Management", Work in Progress, August 2003.
+
+ [29] Droms, R., Ed., Bound, J., Volz, B., Lemon, T., Perkins, C. and
+ M. Carney, "Dynamic Host Configuration Protocol for IPv6
+ (DHCPv6)", RFC 3315, July 2003.
+
+ [30] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol", Work in
+ Progress, April 2003.
+
+ [31] Draves, R., "Default Address Selection for Internet Protocol
+ version 6 (IPv6)", RFC 3484, February 2003.
+
+ [32] Nikander, P., Aura, T., Arkko, J., Montenegro, G. and E.
+ Nordmark, "Mobile IP version 6 Route Optimization Security
+ Design Background", Work in Progress, April 2003.
+
+ [33] Nordmark, E., "Securing MIPv6 BUs using return routability
+ (BU3WAY)", Work in Progress, November 2001.
+
+ [34] Roe, M., Aura, T., O'Shea, G. and J. Arkko, "Authentication of
+ Mobile IPv6 Binding Updates and Acknowledgments", Work in
+ Progress, March 2002.
+
+ [35] Savola, P., "Use of /127 Prefix Length Between Routers
+ Considered Harmful", RFC 3627, September 2003.
+
+ [36] Savola, P., "Security of IPv6 Routing Header and Home Address
+ Options", Work in Progress, December 2002.
+
+ [37] Vida, R. and L. Costa, Eds., "Multicast Listener Discovery
+ Version 2 (MLDv2) for IPv6", RFC 3810, June 2004.
+
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 160]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+Appendix A. Future Extensions
+
+A.1. Piggybacking
+
+ This document does not specify how to piggyback payload packets on
+ the binding related messages. However, it is envisioned that this
+ can be specified in a separate document when issues such as the
+ interaction between piggybacking and IPsec are fully resolved (see
+ also Appendix A.3). The return routability messages can indicate
+ support for piggybacking with a new mobility option.
+
+A.2. Triangular Routing
+
+ Due to the concerns about opening reflection attacks with the Home
+ Address destination option, this specification requires that this
+ option be verified against the Binding Cache, i.e., there must be a
+ Binding Cache entry for the Home Address and Care-of Address.
+
+ Future extensions may be specified that allow the use of unverified
+ Home Address destination options in ways that do not introduce
+ security issues.
+
+A.3. New Authorization Methods
+
+ While the return routability procedure provides a good level of
+ security, there exist methods that have even higher levels of
+ security. Secondly, as discussed in Section 15.4, future
+ enhancements of IPv6 security may cause a need to also improve the
+ security of the return routability procedure. Using IPsec as the
+ sole method for authorizing Binding Updates to correspondent nodes is
+ also possible. The protection of the Mobility Header for this
+ purpose is easy, though one must ensure that the IPsec SA was created
+ with appropriate authorization to use the home address referenced in
+ the Binding Update. For instance, a certificate used by IKE to
+ create the security association might contain the home address. A
+ future specification may specify how this is done.
+
+A.4. Dynamically Generated Home Addresses
+
+ A future version of this specification may include functionality that
+ allows the generation of new home addresses without requiring pre-
+ arranged security associations or certificates even for the new
+ addresses.
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 161]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+A.5. Remote Home Address Configuration
+
+ The method for initializing a mobile node's home address upon power-
+ up or after an extended period of being disconnected from the network
+ is beyond the scope of this specification. Whatever procedure is
+ used should result in the mobile node having the same stateless or
+ stateful (e.g., DHCPv6) home address autoconfiguration information it
+ would have if it were attached to the home network. Due to the
+ possibility that the home network could be renumbered while the
+ mobile node is disconnected, a robust mobile node would not rely
+ solely on storing these addresses locally.
+
+ Such a mobile node could be initialized by using the following
+ procedure:
+
+ 1. Generate a care-of address.
+
+ 2. Query DNS for an anycast address associated with the FQDN of the
+ home agent(s).
+
+ 3. Perform home agent address discovery, and select a home agent.
+
+ 4. Configure one home address based on the selected home agent's
+ subnet prefix and the interface identifier of the mobile node.
+
+ 5. Create security associations and security policy database entries
+ for protecting the traffic between the selected home address and
+ home agent.
+
+ 6. Perform a home registration on the selected home agent.
+
+ 7. Perform mobile prefix discovery.
+
+ 8. Make a decision if further home addresses need to be configured.
+
+ This procedure is restricted to those situations where the home
+ prefix is 64 bits and the mobile node knows its own interface
+ identifier, which is also 64 bits.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 162]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+A.6. Neighbor Discovery Extensions
+
+ Future specifications may improve the efficiency of Neighbor
+ Discovery tasks, which could be helpful for fast movements. One
+ factor is currently being looked at: the delays caused by the
+ Duplicate Address Detection mechanism. Currently, Duplicate Address
+ Detection needs to be performed for every new care-of address as the
+ mobile node moves, and for the mobile node's link-local address on
+ every new link. In particular, the need and the trade-offs of re-
+ performing Duplicate Address Detection for the link-local address
+ every time the mobile node moves on to new links will need to be
+ examined. Improvements in this area are, however, generally
+ applicable and progress independently from the Mobile IPv6
+ specification.
+
+ Future functional improvements may also be relevant for Mobile IPv6
+ and other applications. For instance, mechanisms that would allow
+ recovery from a Duplicate Address Detection collision would be useful
+ for link-local, care-of, and home addresses.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 163]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+Authors' Addresses
+
+ David B. Johnson
+ Rice University
+ Dept. of Computer Science, MS 132
+ 6100 Main Street
+ Houston TX 77005-1892
+ USA
+
+ EMail: dbj@cs.rice.edu
+
+
+ Charles E. Perkins
+ Nokia Research Center
+ 313 Fairchild Drive
+ Mountain View CA 94043
+ USA
+
+ EMail: charliep@iprg.nokia.com
+
+
+ Jari Arkko
+ Ericsson
+ 02420 Jorvas
+ Finland
+
+ EMail: jari.arkko@ericsson.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 164]
+
+RFC 3775 Mobility Support in IPv6 June 2004
+
+
+Full Copyright Statement
+
+ Copyright (C) The Internet Society (2004). This document is subject
+ to the rights, licenses and restrictions contained in BCP 78, and
+ except as set forth therein, the authors retain all their rights.
+
+ This document and the information contained herein are provided on an
+ "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
+ OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
+ ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
+ INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
+ INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+ WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+Intellectual Property
+
+ The IETF takes no position regarding the validity or scope of any
+ Intellectual Property Rights or other rights that might be claimed to
+ pertain to the implementation or use of the technology described in
+ this document or the extent to which any license under such rights
+ might or might not be available; nor does it represent that it has
+ made any independent effort to identify any such rights. Information
+ on the procedures with respect to rights in RFC documents can be
+ found in BCP 78 and BCP 79.
+
+ Copies of IPR disclosures made to the IETF Secretariat and any
+ assurances of licenses to be made available, or the result of an
+ attempt made to obtain a general license or permission for the use of
+ such proprietary rights by implementers or users of this
+ specification can be obtained from the IETF on-line IPR repository at
+ http://www.ietf.org/ipr.
+
+ The IETF invites any interested party to bring to its attention any
+ copyrights, patents or patent applications, or other proprietary
+ rights that may cover technology that may be required to implement
+ this standard. Please address the information to the IETF at ietf-
+ ipr@ietf.org.
+
+Acknowledgement
+
+ Funding for the RFC Editor function is currently provided by the
+ Internet Society.
+
+
+
+
+
+
+
+
+
+Johnson, et al. Standard Track [Page 165]
+