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]