idnits 2.17.00 (12 Aug 2021) /tmp/idnits51461/draft-ietf-mip4-rfc3344bis-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** It looks like you're using RFC 3978 boilerplate. You should update this to the boilerplate described in the IETF Trust License Policy document (see https://trustee.ietf.org/license-info), which is required now. -- Found old boilerplate from RFC 3978, Section 5.5 on line 4577. -- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 4548. -- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 4555. -- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 4561. ** Found boilerplate matching RFC 3979, Section 5, paragraph 1 (on line 4548), which is fine, but *also* found old RFC 2026, Section 10.4A text on line 3792. ** Found boilerplate matching RFC 3979, Section 5, paragraph 3 (on line 4561), which is fine, but *also* found old RFC 2026, Section 10.4B text on line 3798. ** The document claims conformance with section 10 of RFC 2026, but uses some RFC 3978/3979 boilerplate. As RFC 3978/3979 replaces section 10 of RFC 2026, you should not claim conformance with it if you have changed to using RFC 3978/3979 boilerplate. ** The document seems to lack an RFC 3978 Section 5.1 IPR Disclosure Acknowledgement. ** This document has an original RFC 3978 Section 5.4 Copyright Line, instead of the newer IETF Trust Copyright according to RFC 4748. ** The document seems to lack an RFC 3978 Section 5.4 Reference to BCP 78 -- however, there's a paragraph with a matching beginning. Boilerplate error? ** This document has an original RFC 3978 Section 5.5 Disclaimer, instead of the newer disclaimer which includes the IETF Trust according to RFC 4748. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. == No 'Intended status' indicated for this document; assuming Proposed Standard Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an Authors' Addresses Section. ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. == There are 3 instances of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. == There are 2 instances of lines with multicast IPv4 addresses in the document. If these are generic example addresses, they should be changed to use the 233.252.0.x range defined in RFC 5771 Miscellaneous warnings: ---------------------------------------------------------------------------- == In addition to RFC 3979, Section 5, paragraph 1 boilerplate, a section with a similar start was also found: The IETF takes no position regarding the validity or scope of any intellectual property 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; neither does it represent that it has made any effort to identify any such rights. Information on the IETF's procedures with respect to rights in standards-track and standards-related documentation can be found in BCP-11. Copies of claims of rights made available for publication 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 implementors or users of this specification can be obtained from the IETF Secretariat. == In addition to RFC 3979, Section 5, paragraph 3 boilerplate, a section with a similar start was also found: The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this standard. Please address the information to the IETF Executive Director. == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year == Line 738 has weird spacing: '... Length indi...' == Line 4339 has weird spacing: '...ensions used ...' == Using lowercase 'not' together with uppercase 'MUST', 'SHALL', 'SHOULD', or 'RECOMMENDED' is not an accepted usage according to RFC 2119. Please use uppercase 'NOT' together with RFC 2119 keywords (if that is what you mean). Found 'SHOULD not' in this paragraph: The second method uses network prefixes. The Prefix-Lengths Extension MAY be used in some cases by a mobile node to determine whether or not a newly received Agent Advertisement was received on the same subnet as the mobile node's current care-of address. If the prefixes differ, the mobile node MAY assume that it has moved. If a mobile node is currently using a foreign agent care-of address, the mobile node SHOULD NOT use this method of move detection unless both the current agent and the new agent include the Prefix-Lengths Extension in their respective Agent Advertisements; if this Extension is missing from one or both of the advertisements, this method of move detection SHOULD NOT be used. Similarly, if a mobile node is using a co-located care-of address, it SHOULD not use this method of move detection unless the new agent includes the Prefix-Lengths Extension in its Advertisement and the mobile node knows the network prefix of its current co-located care-of address. On the expiration of its current registration, if this method indicates that the mobile node has moved, rather than re-registering with its current care-of address, a mobile node MAY choose instead to register with a the foreign agent sending the new Advertisement with the different network prefix. The Agent Advertisement on which the new registration is based MUST NOT have expired according to its Lifetime field. -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (11 June 2004) is 6552 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Looks like a reference, but probably isn't: 'M' on line 3646 ** Obsolete normative reference: RFC 3012 (ref. '3') (Obsoleted by RFC 4721) ** Obsolete normative reference: RFC 1750 (ref. '8') (Obsoleted by RFC 4086) ** Obsolete normative reference: RFC 2402 (ref. '9') (Obsoleted by RFC 4302, RFC 4305) ** Downref: Normative reference to an Informational RFC: RFC 2104 (ref. '10') ** Obsolete normative reference: RFC 1305 (ref. '11') (Obsoleted by RFC 5905) ** Downref: Normative reference to an Informational RFC: RFC 1701 (ref. '13') ** Obsolete normative reference: RFC 2434 (ref. '14') (Obsoleted by RFC 5226) ** Downref: Normative reference to an Unknown state RFC: RFC 925 (ref. '20') ** Obsolete normative reference: RFC 1700 (ref. '21') (Obsoleted by RFC 3232) ** Downref: Normative reference to an Informational RFC: RFC 1321 (ref. '22') ** Downref: Normative reference to an Informational RFC: RFC 2757 (ref. '25') ** Obsolete normative reference: RFC 2988 (ref. '27') (Obsoleted by RFC 6298) -- Possible downref: Non-RFC (?) normative reference: ref. '28' ** Downref: Normative reference to an Informational RFC: RFC 3135 (ref. '29') -- Possible downref: Non-RFC (?) normative reference: ref. '30' ** Obsolete normative reference: RFC 2267 (ref. '33') (Obsoleted by RFC 2827) -- Possible downref: Non-RFC (?) normative reference: ref. '35' -- Possible downref: Non-RFC (?) normative reference: ref. '36' -- Possible downref: Non-RFC (?) normative reference: ref. '37' -- Possible downref: Non-RFC (?) normative reference: ref. '38' ** Obsolete normative reference: RFC 1573 (ref. '39') (Obsoleted by RFC 2233) ** Downref: Normative reference to an Informational RFC: RFC 2356 (ref. '41') ** Obsolete normative reference: RFC 2002 (ref. '42') (Obsoleted by RFC 3220) ** Obsolete normative reference: RFC 3344 (ref. '43') (Obsoleted by RFC 5944) -- Possible downref: Non-RFC (?) normative reference: ref. '44' -- Possible downref: Non-RFC (?) normative reference: ref. '45' Summary: 29 errors (**), 0 flaws (~~), 9 warnings (==), 15 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Internet Engineering Task Force C. Perkins, Ed. 2 INTERNET DRAFT Nokia Research Center 3 11 June 2004 5 IP Mobility Support for IPv4, revised 6 draft-ietf-mip4-rfc3344bis-00.txt 8 Status of This Memo 10 This document is a submission by the mobile-ip Working Group of the 11 Internet Engineering Task Force (IETF). Comments should be submitted 12 to the mobile-ip@sunroof.eng.sun.com mailing list. 14 Distribution of this memo is unlimited. 16 This document is an Internet-Draft and is in full conformance with 17 all provisions of Section 10 of RFC2026. Internet-Drafts are working 18 documents of the Internet Engineering Task Force (IETF), its areas, 19 and its working groups. Note that other groups may also distribute 20 working documents as Internet-Drafts. 22 Internet-Drafts are draft documents valid for a maximum of six months 23 and may be updated, replaced, or obsoleted by other documents at 24 any time. It is inappropriate to use Internet-Drafts as reference 25 material or to cite them other than as "work in progress." 27 The list of current Internet-Drafts can be accessed at: 28 http://www.ietf.org/ietf/1id-abstracts.txt 29 The list of Internet-Draft Shadow Directories can be accessed at: 30 http://www.ietf.org/shadow.html. 32 Abstract 34 This document specifies protocol enhancements that allow transparent 35 routing of IP datagrams to mobile nodes in the Internet. Each 36 mobile node is always identified by its home address, regardless of 37 its current point of attachment to the Internet. While situated 38 away from its home, a mobile node is also associated with a 39 care-of address, which provides information about its current 40 point of attachment to the Internet. The protocol provides for 41 registering the care-of address with a home agent. The home agent 42 sends datagrams destined for the mobile node through a tunnel to 43 the care-of address. After arriving at the end of the tunnel, each 44 datagram is then delivered to the mobile node. 46 Contents 48 Status of This Memo i 50 Abstract i 52 1. Introduction 1 53 1.1. Protocol Requirements . . . . . . . . . . . . . . . . . . 1 54 1.2. Goals . . . . . . . . . . . . . . . . . . . . . . . . . . 2 55 1.3. Assumptions . . . . . . . . . . . . . . . . . . . . . . . 2 56 1.4. Applicability . . . . . . . . . . . . . . . . . . . . . . 2 57 1.5. New Architectural Entities . . . . . . . . . . . . . . . 3 58 1.6. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 59 1.7. Protocol Overview . . . . . . . . . . . . . . . . . . . . 6 60 1.8. Message Format and Protocol Extensibility . . . . . . . . 10 61 1.9. Type-Length-Value Extension Format for Mobile IP 62 Extensions . . . . . . . . . . . . . . . . . . . . . . 12 63 1.10. Long Extension Format . . . . . . . . . . . . . . . . . . 12 64 1.11. Short Extension Format . . . . . . . . . . . . . . . . . 14 66 2. Agent Discovery 14 67 2.1. Agent Advertisement . . . . . . . . . . . . . . . . . . . 15 68 2.1.1. Mobility Agent Advertisement Extension . . . . . 17 69 2.1.2. Prefix-Lengths Extension . . . . . . . . . . . . 19 70 2.1.3. One-byte Padding Extension . . . . . . . . . . . 19 71 2.2. Agent Solicitation . . . . . . . . . . . . . . . . . . . 20 72 2.3. Foreign Agent and Home Agent Considerations . . . . . . . 20 73 2.3.1. Advertised Router Addresses . . . . . . . . . . . 21 74 2.3.2. Sequence Numbers and Rollover Handling . . . . . 21 75 2.4. Mobile Node Considerations . . . . . . . . . . . . . . . 22 76 2.4.1. Registration Required . . . . . . . . . . . . . . 23 77 2.4.2. Move Detection . . . . . . . . . . . . . . . . . 23 78 2.4.3. Returning Home . . . . . . . . . . . . . . . . . 24 79 2.4.4. Sequence Numbers and Rollover Handling . . . . . 25 81 3. Registration 26 82 3.1. Registration Overview . . . . . . . . . . . . . . . . . . 26 83 3.2. Authentication . . . . . . . . . . . . . . . . . . . . . 28 84 3.3. Registration Request . . . . . . . . . . . . . . . . . . 28 85 3.4. Registration Reply . . . . . . . . . . . . . . . . . . . 30 86 3.5. Registration Extensions . . . . . . . . . . . . . . . . . 34 87 3.5.1. Computing Authentication Extension Values . . . . 34 88 3.5.2. Mobile-Home Authentication Extension . . . . . . 35 89 3.5.3. Mobile-Foreign Authentication Extension . . . . . 35 90 3.5.4. Foreign-Home Authentication Extension . . . . . . 36 91 3.6. Mobile Node Considerations . . . . . . . . . . . . . . . 37 92 3.6.1. Sending Registration Requests . . . . . . . . . . 38 93 3.6.2. Receiving Registration Replies . . . . . . . . . 42 94 3.6.3. Registration Retransmission . . . . . . . . . . . 45 95 3.7. Foreign Agent Considerations . . . . . . . . . . . . . . 45 96 3.7.1. Configuration and Registration Tables . . . . . . 46 97 3.7.2. Receiving Registration Requests . . . . . . . . . 47 98 3.7.3. Receiving Registration Replies . . . . . . . . . 50 99 3.8. Home Agent Considerations . . . . . . . . . . . . . . . . 52 100 3.8.1. Configuration and Registration Tables . . . . . . 52 101 3.8.2. Receiving Registration Requests . . . . . . . . . 53 102 3.8.3. Sending Registration Replies . . . . . . . . . . 57 104 4. Routing Considerations 60 105 4.1. Encapsulation Types . . . . . . . . . . . . . . . . . . . 60 106 4.2. Unicast Datagram Routing . . . . . . . . . . . . . . . . 61 107 4.2.1. Mobile Node Considerations . . . . . . . . . . . 61 108 4.2.2. Foreign Agent Considerations . . . . . . . . . . 62 109 4.2.3. Home Agent Considerations . . . . . . . . . . . . 62 110 4.3. Broadcast Datagrams . . . . . . . . . . . . . . . . . . . 64 111 4.4. Multicast Datagram Routing . . . . . . . . . . . . . . . 65 112 4.5. Mobile Routers . . . . . . . . . . . . . . . . . . . . . 66 113 4.6. ARP, Proxy ARP, and Gratuitous ARP . . . . . . . . . . . 67 115 5. Security Considerations 72 116 5.1. Message Authentication Codes . . . . . . . . . . . . . . 72 117 5.2. Areas of Security Concern in this Protocol . . . . . . . 72 118 5.3. Key Management . . . . . . . . . . . . . . . . . . . . . 72 119 5.4. Picking Good Random Numbers . . . . . . . . . . . . . . . 73 120 5.5. Privacy . . . . . . . . . . . . . . . . . . . . . . . . . 73 121 5.6. Ingress Filtering . . . . . . . . . . . . . . . . . . . . 73 122 5.7. Replay Protection for Registration Requests . . . . . . . 74 123 5.7.1. Replay Protection using Timestamps . . . . . . . 74 124 5.7.2. Replay Protection using Nonces . . . . . . . . . 75 126 6. IANA Considerations 76 127 6.1. Mobile IP Message Types . . . . . . . . . . . . . . . . . 77 128 6.2. Extensions to RFC 1256 Router Advertisement . . . . . . . 77 129 6.3. Extensions to Mobile IP Registration Messages . . . . . . 78 130 6.4. Code Values for Mobile IP Registration Reply Messages . . 78 132 7. Acknowledgments 78 134 A. Patent Issues 80 136 B. Link-Layer Considerations 81 138 C. TCP Considerations 82 139 C.1. TCP Timers . . . . . . . . . . . . . . . . . . . . . . . 82 140 C.2. TCP Congestion Management . . . . . . . . . . . . . . . . 82 142 D. Example Scenarios 83 143 D.1. Registering with a Foreign Agent Care-of Address . . . . 83 144 D.2. Registering with a Co-Located Care-of Address . . . . . . 83 145 D.3. Deregistration . . . . . . . . . . . . . . . . . . . . . 84 147 E. Applicability of Prefix-Lengths Extension 85 149 F. Interoperability Considerations 85 151 G. Changes since RFC 2002 86 152 G.1. Recent Changes . . . . . . . . . . . . . . . . . . . . . 86 153 G.2. Major Changes . . . . . . . . . . . . . . . . . . . . . . 87 154 G.3. Minor Changes . . . . . . . . . . . . . . . . . . . . . . 89 155 G.4. Changes since RFC3344 . . . . . . . . . . . . . . . . . . 90 157 H. Example Messages 91 158 H.1. Example ICMP Agent Advertisement Message Format . . . . . 91 159 H.2. Example Registration Request Message Format . . . . . . . 92 160 H.3. Example Registration Reply Message Format . . . . . . . . 93 162 Intellectual Property 99 164 Full Copyright Statement 99 166 Addresses 100 167 1. Introduction 169 IP version 4 assumes that a node's IP address uniquely identifies the 170 node's point of attachment to the Internet. Therefore, a node must 171 be located on the network indicated by its IP address in order to 172 receive datagrams destined to it; otherwise, datagrams destined to 173 the node would be undeliverable. For a node to change its point of 174 attachment without losing its ability to communicate, currently one 175 of the two following mechanisms must typically be employed: 177 a) the node must change its IP address whenever it changes its 178 point of attachment, or 180 b) host-specific routes must be propagated throughout much of 181 the Internet routing fabric. 183 Both of these alternatives are often unacceptable. The first makes 184 it impossible for a node to maintain transport and higher-layer 185 connections when the node changes location. The second has obvious 186 and severe scaling problems, especially relevant considering the 187 explosive growth in sales of notebook (mobile) computers. 189 A new, scalable, mechanism is required for accommodating node 190 mobility within the Internet. This document defines such a 191 mechanism, which enables nodes to change their point of attachment to 192 the Internet without changing their IP address. 194 Changes between this revised specification for Mobile IP and the 195 original specifications (see [42, 15, 16, 23, 4]) are detailed in the 196 appendix section G. 198 1.1. Protocol Requirements 200 A mobile node must be able to communicate with other nodes after 201 changing its link-layer point of attachment to the Internet, yet 202 without changing its IP address. 204 A mobile node must be able to communicate with other nodes that do 205 not implement these mobility functions. No protocol enhancements are 206 required in hosts or routers that are not acting as any of the new 207 architectural entities introduced in Section 1.5. 209 All messages used to update another node as to the location of a 210 mobile node must be authenticated in order to protect against remote 211 redirection attacks. 213 1.2. Goals 215 The link by which a mobile node is directly attached to the 216 Internet may often be a wireless link. This link may thus have a 217 substantially lower bandwidth and higher error rate than traditional 218 wired networks. Moreover, mobile nodes are likely to be battery 219 powered, and minimizing power consumption is important. Therefore, 220 the number of administrative messages sent over the link by which a 221 mobile node is directly attached to the Internet should be minimized, 222 and the size of these messages should be kept as small as is 223 reasonably possible. 225 1.3. Assumptions 227 The protocols defined in this document place no additional 228 constraints on the assignment of IP addresses. That is, a mobile 229 node can be assigned an IP address by the organization that owns the 230 machine. 232 This protocol assumes that mobile nodes will generally not change 233 their point of attachment to the Internet more frequently than once 234 per second. 236 This protocol assumes that IP unicast datagrams are routed based on 237 the destination address in the datagram header (and not, for example, 238 by source address). 240 1.4. Applicability 242 Mobile IP is intended to enable nodes to move from one IP subnet to 243 another. It is just as suitable for mobility across homogeneous 244 media as it is for mobility across heterogeneous media. That is, 245 Mobile IP facilitates node movement from one Ethernet segment to 246 another as well as it accommodates node movement from an Ethernet 247 segment to a wireless LAN, as long as the mobile node's IP address 248 remains the same after such a movement. 250 One can think of Mobile IP as solving the "macro" mobility management 251 problem. It is less well suited for more "micro" mobility management 252 applications -- for example, handoff amongst wireless transceivers, 253 each of which covers only a very small geographic area. As long 254 as node movement does not occur between points of attachment on 255 different IP subnets, link-layer mechanisms for mobility (i.e., 256 link-layer handoff) may offer faster convergence and far less 257 overhead than Mobile IP. 259 1.5. New Architectural Entities 261 Mobile IP introduces the following new functional entities: 263 Mobile Node 265 A host or router that changes its point of attachment from one 266 network or subnetwork to another. A mobile node may change its 267 location without changing its IP address; it may continue to 268 communicate with other Internet nodes at any location using its 269 (constant) IP address, assuming link-layer connectivity to a 270 point of attachment is available. 272 Home Agent 274 A router on a mobile node's home network which tunnels 275 datagrams for delivery to the mobile node when it is away from 276 home, and maintains current location information for the mobile 277 node. 279 Foreign Agent 281 A router on a mobile node's visited network which provides 282 routing services to the mobile node while registered. The 283 foreign agent detunnels and delivers datagrams to the mobile 284 node that were tunneled by the mobile node's home agent. For 285 datagrams sent by a mobile node, the foreign agent may serve as 286 a default router for registered mobile nodes. 288 A mobile node is given a long-term IP address on a home network. 289 This home address is administered in the same way as a "permanent" IP 290 address is provided to a stationary host. When away from its home 291 network, a "care-of address" is associated with the mobile node and 292 reflects the mobile node's current point of attachment. The mobile 293 node uses its home address as the source address of all IP datagrams 294 that it sends, except where otherwise described in this document for 295 datagrams sent for certain mobility management functions (e.g., as in 296 Section 3.6.1.1). 298 1.6. Terminology 300 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 301 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 302 document are to be interpreted as described in RFC 2119 [1]. 304 In addition, this document frequently uses the following terms: 306 Authorization-enabling extension 307 An authentication which makes a (registration) message 308 acceptable to the ultimate recipient of the registration 309 message. An authorization-enabling extension MUST 310 contain an SPI. 312 In this document, all uses of authorization-enabling 313 extension refer to authentication extensions that enable 314 the Registration Request message to be acceptable to 315 the home agent. Using additional protocol structures 316 specified outside of this document, it may be possible 317 for the mobile node to provide authentication of its 318 registration to the home agent, by way of another 319 authenticating entity within the network that is 320 acceptable to the home agent (for example, see RFC 321 2794 [2]). 323 Agent Advertisement 324 An advertisement message constructed by attaching a 325 special Extension to a router advertisement [5] message. 327 Authentication 328 The process of verifying (using cryptographic techniques, 329 for all applications in this specification) the identity 330 of the originator of a message. 332 Care-of Address 333 The termination point of a tunnel toward a mobile node, 334 for datagrams forwarded to the mobile node while it is 335 away from home. The protocol can use two different types 336 of care-of address: a "foreign agent care-of address" is 337 an address of a foreign agent with which the mobile node 338 is registered, and a "co-located care-of address" is an 339 externally obtained local address which the mobile node 340 has associated with one of its own network interfaces. 342 Correspondent Node 343 A peer with which a mobile node is communicating. A 344 correspondent node may be either mobile or stationary. 346 Foreign Network 347 Any network other than the mobile node's Home Network. 349 Gratuitous ARP 350 An ARP packet sent by a node in order to spontaneously 351 cause other nodes to update an entry in their ARP 352 cache [44]. See section 4.6. 354 Home Address 355 An IP address that is assigned for an extended period of 356 time to a mobile node. It remains unchanged regardless 357 of where the node is attached to the Internet. 359 Home Network 360 A network, possibly virtual, having a network prefix 361 matching that of a mobile node's home address. Note that 362 standard IP routing mechanisms will deliver datagrams 363 destined to a mobile node's Home Address to the mobile 364 node's Home Network. 366 Link A facility or medium over which nodes can communicate at 367 the link layer. A link underlies the network layer. 369 Link-Layer Address 370 The address used to identify an endpoint of some 371 communication over a physical link. Typically, the 372 Link-Layer address is an interface's Media Access Control 373 (MAC) address. 375 Mobility Agent 376 Either a home agent or a foreign agent. 378 Mobility Binding 379 The association of a home address with a care-of address, 380 along with the remaining lifetime of that association. 382 Mobility Security Association 383 A collection of security contexts, between a pair 384 of nodes, which may be applied to Mobile IP protocol 385 messages exchanged between them. Each context indicates 386 an authentication algorithm and mode (Section 5.1), a 387 secret (a shared key, or appropriate public/private 388 key pair), and a style of replay protection in use 389 (Section 5.7). 391 Node A host or a router. 393 Nonce A randomly chosen value, different from previous choices, 394 inserted in a message to protect against replays. 396 Security Parameter Index (SPI) 397 An index identifying a security context between a pair 398 of nodes among the contexts available in the Mobility 399 Security Association. SPI values 0 through 255 are 400 reserved and MUST NOT be used in any Mobility Security 401 Association. 403 Tunnel The path followed by a datagram while it is encapsulated. 404 The model is that, while it is encapsulated, a datagram 405 is routed to a knowledgeable decapsulating agent, which 406 decapsulates the datagram and then correctly delivers it 407 to its ultimate destination. 409 Virtual Network 410 A network with no physical instantiation beyond a router 411 (with a physical network interface on another network). 412 The router (e.g., a home agent) generally advertises 413 reachability to the virtual network using conventional 414 routing protocols. 416 Visited Network 417 A network other than a mobile node's Home Network, to 418 which the mobile node is currently connected. 420 Visitor List 421 The list of mobile nodes visiting a foreign agent. 423 1.7. Protocol Overview 425 The following support services are defined for Mobile IP: 427 Agent Discovery 428 Home agents and foreign agents may advertise their 429 availability on each link for which they provide service. 430 A newly arrived mobile node can send a solicitation on 431 the link to learn if any prospective agents are present. 433 Registration 434 When the mobile node is away from home, it registers 435 its care-of address with its home agent. Depending on 436 its method of attachment, the mobile node will register 437 either directly with its home agent, or through a foreign 438 agent which forwards the registration to the home agent. 440 silently discard 441 The implementation discards the datagram without further 442 processing, and without indicating an error to the 443 sender. The implementation SHOULD provide the capability 444 of logging the error, including the contents of the 445 discarded datagram, and SHOULD record the event in a 446 statistics counter. 448 The following steps provide a rough outline of operation of the 449 Mobile IP protocol: 451 - Mobility agents (i.e., foreign agents and home agents) advertise 452 their presence via Agent Advertisement messages (Section 2). A 453 mobile node may optionally solicit an Agent Advertisement message 454 from any locally attached mobility agents through an Agent 455 Solicitation message. 457 - A mobile node receives these Agent Advertisements and determines 458 whether it is on its home network or a foreign network. 460 - When the mobile node detects that it is located on its home 461 network, it operates without mobility services. If returning 462 to its home network from being registered elsewhere, the mobile 463 node deregisters with its home agent, through exchange of a 464 Registration Request and Registration Reply message with it. 466 - When a mobile node detects that it has moved to a foreign 467 network, it obtains a care-of address on the foreign network. 468 The care-of address can either be determined from a foreign 469 agent's advertisements (a foreign agent care-of address), or 470 by some external assignment mechanism such as DHCP [32] (a 471 co-located care-of address). 473 - The mobile node operating away from home then registers its 474 new care-of address with its home agent through exchange of a 475 Registration Request and Registration Reply message with it, 476 possibly via a foreign agent (Section 3). 478 - Datagrams sent to the mobile node's home address are intercepted 479 by its home agent, tunneled by the home agent to the mobile 480 node's care-of address, received at the tunnel endpoint (either 481 at a foreign agent or at the mobile node itself), and finally 482 delivered to the mobile node (Section 4.2.3). 484 - In the reverse direction, datagrams sent by the mobile node 485 are generally delivered to their destination using standard IP 486 routing mechanisms, not necessarily passing through the home 487 agent. 489 When away from home, Mobile IP uses protocol tunneling to hide a 490 mobile node's home address from intervening routers between its 491 home network and its current location. The tunnel terminates at 492 the mobile node's care-of address. The care-of address must be an 493 address to which datagrams can be delivered via conventional IP 494 routing. At the care-of address, the original datagram is removed 495 from the tunnel and delivered to the mobile node. 497 Mobile IP provides two alternative modes for the acquisition of a 498 care-of address: 500 a) A "foreign agent care-of address" is a care-of address provided 501 by a foreign agent through its Agent Advertisement messages. In 502 this case, the care-of address is an IP address of the foreign 503 agent. In this mode, the foreign agent is the endpoint of the 504 tunnel and, upon receiving tunneled datagrams, decapsulates them 505 and delivers the inner datagram to the mobile node. This mode 506 of acquisition is preferred because it allows many mobile nodes 507 to share the same care-of address and therefore does not place 508 unnecessary demands on the already limited IPv4 address space. 510 b) A "co-located care-of address" is a care-of address acquired 511 by the mobile node as a local IP address through some external 512 means, which the mobile node then associates with one of its own 513 network interfaces. The address may be dynamically acquired as a 514 temporary address by the mobile node such as through DHCP [32], 515 or may be owned by the mobile node as a long-term address for its 516 use only while visiting some foreign network. Specific external 517 methods of acquiring a local IP address for use as a co-located 518 care-of address are beyond the scope of this document. When 519 using a co-located care-of address, the mobile node serves as the 520 endpoint of the tunnel and itself performs decapsulation of the 521 datagrams tunneled to it. 523 The mode of using a co-located care-of address has the advantage 524 that it allows a mobile node to function without a foreign agent, 525 for example, in networks that have not yet deployed a foreign agent. 526 It does, however, place additional burden on the IPv4 address space 527 because it requires a pool of addresses within the foreign network 528 to be made available to visiting mobile nodes. It is difficult to 529 efficiently maintain pools of addresses for each subnet that may 530 permit mobile nodes to visit. 532 It is important to understand the distinction between the care-of 533 address and the foreign agent functions. The care-of address is 534 simply the endpoint of the tunnel. It might indeed be an address 535 of a foreign agent (a foreign agent care-of address), but it might 536 instead be an address temporarily acquired by the mobile node (a 537 co-located care-of address). A foreign agent, on the other hand, 538 is a mobility agent that provides services to mobile nodes. See 539 Sections 3.7 and 4.2.2 for additional details. 541 A home agent MUST be able to attract and intercept datagrams that 542 are destined to the home address of any of its registered mobile 543 nodes. Using the proxy and gratuitous ARP mechanisms described in 544 Section 4.6, this requirement can be satisfied if the home agent has 545 a network interface on the link indicated by the mobile node's home 546 address. Other placements of the home agent relative to the mobile 547 node's home location MAY also be possible using other mechanisms for 548 intercepting datagrams destined to the mobile node's home address. 549 Such placements are beyond the scope of this document. 551 Similarly, a mobile node and a prospective or current foreign agent 552 MUST be able to exchange datagrams without relying on standard IP 553 routing mechanisms; that is, those mechanisms which make forwarding 554 decisions based upon the network-prefix of the destination address 555 in the IP header. This requirement can be satisfied if the foreign 556 agent and the visiting mobile node have an interface on the same 557 link. In this case, the mobile node and foreign agent simply 558 bypass their normal IP routing mechanism when sending datagrams to 559 each other, addressing the underlying link-layer packets to their 560 respective link-layer addresses. Other placements of the foreign 561 agent relative to the mobile node MAY also be possible using other 562 mechanisms to exchange datagrams between these nodes, but such 563 placements are beyond the scope of this document. 565 2) Datagram is intercepted 3) Datagram is 566 by home agent and detunneled and 567 is tunneled to the delivered to the 568 care-of address. mobile node. 570 +-----+ +-------+ +------+ 571 |home | =======> |foreign| ------> |mobile| 572 |agent| | agent | <------ | node | 573 +-----+ +-------+ +------+ 574 1) Datagram to /|\ / 575 mobile node | / 4) For datagrams sent by the 576 arrives on | / mobile node, standard IP 577 home network | / routing delivers each to its 578 via standard | |_ destination. In this figure, 579 IP routing. +----+ the foreign agent is the 580 |host| mobile node's default router. 581 +----+ 583 Figure 1: Operation of Mobile IPv4 585 If a mobile node is using a co-located care-of address (as described 586 in (b) above), the mobile node MUST be located on the link identified 587 by the network prefix of this care-of address. Otherwise, datagrams 588 destined to the care-of address would be undeliverable. 590 For example, figure 1 illustrates the routing of datagrams to 591 and from a mobile node away from home, once the mobile node has 592 registered with its home agent. In figure 1, the mobile node is 593 using a foreign agent care-of address, not a co-located care-of 594 address. 596 1.8. Message Format and Protocol Extensibility 598 Mobile IP defines a set of new control messages, sent with UDP [18] 599 using well-known port number 434. The following two message types 600 are defined in this document: 602 1 Registration Request 603 3 Registration Reply 605 Up-to-date values for the message types for Mobile IP control 606 messages are specified in the most recent "Assigned Numbers" [21]. 608 In addition, for Agent Discovery, Mobile IP makes use of the existing 609 Router Advertisement and Router Solicitation messages defined for 610 ICMP Router Discovery [5]. 612 Mobile IP defines a general Extension mechanism to allow optional 613 information to be carried by Mobile IP control messages or by ICMP 614 Router Discovery messages. Some extensions have been specified 615 to be encoded in the simple Type-Length-Value format described in 616 Section 1.9. 618 Extensions allow variable amounts of information to be carried within 619 each datagram. The end of the list of Extensions is indicated by the 620 total length of the IP datagram. 622 Two separately maintained sets of numbering spaces, from which 623 Extension Type values are allocated, are used in Mobile IP: 625 - The first set consists of those Extensions which may appear only 626 in Mobile IP control messages (those sent to and from UDP port 627 number 434). In this document, the following Types are defined 628 for Extensions appearing in Mobile IP control messages: 630 32 Mobile-Home Authentication 631 33 Mobile-Foreign Authentication 632 34 Foreign-Home Authentication 634 - The second set consists of those extensions which may appear 635 only in ICMP Router Discovery messages [5]. In this document, 636 the following Types are defined for Extensions appearing in ICMP 637 Router Discovery messages: 639 0 One-byte Padding (encoded with no Length nor Data field) 640 16 Mobility Agent Advertisement 641 19 Prefix-Lengths 643 Each individual Extension is described in detail in a separate 644 section later in this document. Up-to-date values for these 645 Extension Type numbers are specified in the most recent "Assigned 646 Numbers" [21]. 648 Due to the separation (orthogonality) of these sets, it is 649 conceivable that two Extensions that are defined at a later date 650 could have identical Type values, so long as one of the Extensions 651 may be used only in Mobile IP control messages and the other may be 652 used only in ICMP Router Discovery messages. 654 The type field in the Mobile IP extension structure can support up to 655 255 (skippable and not skippable) uniquely identifiable extensions. 656 When an Extension numbered in either of these sets within the range 0 657 through 127 is encountered but not recognized, the message containing 658 that Extension MUST be silently discarded. When an Extension 659 numbered in the range 128 through 255 is encountered which is not 660 recognized, that particular Extension is ignored, but the rest of 661 the Extensions and message data MUST still be processed. The Length 662 field of the Extension is used to skip the Data field in searching 663 for the next Extension. 665 Unless additional structure is utilized for the extension types, 666 new developments or additions to Mobile IP might require so many 667 new extensions that the available space for extension types might 668 run out. Two new extension structures are proposed to solve this 669 problem. Certain types of extensions can be aggregated, using 670 subtypes to identify the precise extension, for example as has been 671 done with the Generic Authentication Keys extensions [45]. In many 672 cases, this may reduce the rate of allocation for new values of the 673 type field. 675 Since the new extension structures will cause an efficient usage 676 of the extension type space, it is recommended that new Mobile IP 677 extensions follow one of the two new extension formats whenever there 678 may be the possibility to group related extensions together. 680 The following subsections provide details about three distinct 681 structures for Mobile IP extensions: 683 - The simple extension format 684 - The long extension format 685 - The short extension format 687 1.9. Type-Length-Value Extension Format for Mobile IP Extensions 689 The Type-Length-Value format illustrated in figure 2 is used for 690 extensions which are specified in this document. Since this simple 691 extension structure does not encourage the most efficient usage 692 of the extension type space, it is recommended that new Mobile IP 693 extensions follow one of the two new extension formats specified in 694 sections 1.10 or 1.11 whenever there may be the possibility to group 695 related extensions together. 697 0 1 2 698 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 699 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- 700 | Type | Length | Data ... 701 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- 703 Figure 2: Type-Length-Value extension format for Mobile IPv4 705 Type Indicates the particular type of Extension. 707 Length Indicates the length (in bytes) of the data field within 708 this Extension. The length does NOT include the Type and 709 Length bytes. 711 Data The particular data associated with this Extension. This 712 field may be zero or more bytes in length. The format 713 and length of the data field is determined by the type 714 and length fields. 716 1.10. Long Extension Format 718 This format is applicable for non-skippable extensions which carry 719 information more than 256 bytes. 721 0 1 2 3 722 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 723 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 724 | Type | Sub-Type | Length | 725 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 726 | Data ..... 727 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 729 The Long Extension format requires that the following fields be 730 specified as the first fields of the extension. 732 Type is the type, which describes a collection of extensions 733 having a common data type. 735 Sub-Type is a unique number given to each member in the aggregated 736 type. 738 Length indicates the length (in bytes) of the data field within 739 this Extension. It does NOT include the Type, Length and 740 Sub-Type bytes. 742 Data is the data associated with the subtype of this 743 extension. This specification does not place any 744 additional structure on the subtype data. 746 Since the length field is 16 bits wide, a the extension data can 747 exceed 256 bytes in length. 749 1.11. Short Extension Format 751 This format is compatible with the skippable extensions defined in 752 section 1.9. It is not applicable for extensions which require more 753 than 256 bytes of data; for such extensions, use the format described 754 in section 1.10. 756 0 1 2 3 757 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 758 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 759 | Type | Length | Sub-Type | Data .... 760 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 762 The Short Extension format requires that the following fields be 763 specified as the first fields of the extension: 765 Type is the type, which describes a collection of extensions 766 having a common data type. 768 Sub-Type is a unique number given to each member in the aggregated 769 type. 771 Length 8-bit unsigned integer. Length of the extension, in 772 bytes, excluding the extension Type and the extension 773 Length fields. This field MUST be set to 1 plus the 774 total length of the data field. 776 Data is the data associated with this extension. This 777 specification does not place any additional structure on 778 the subtype data. 780 2. Agent Discovery 782 Agent Discovery is the method by which a mobile node determines 783 whether it is currently connected to its home network or to a foreign 784 network, and by which a mobile node can detect when it has moved 785 from one network to another. When connected to a foreign network, 786 the methods specified in this section also allow the mobile node to 787 determine the foreign agent care-of address being offered by each 788 foreign agent on that network. 790 Mobile IP extends ICMP Router Discovery [5] as its primary 791 mechanism for Agent Discovery. An Agent Advertisement is formed by 792 including a Mobility Agent Advertisement Extension in an ICMP Router 793 Advertisement message (Section 2.1). An Agent Solicitation message 794 is identical to an ICMP Router Solicitation, except that its IP TTL 795 MUST be set to 1 (Section 2.2). This section describes the message 796 formats and procedures by which mobile nodes, foreign agents, and 797 home agents cooperate to realize Agent Discovery. 799 Agent Advertisement and Agent Solicitation may not be necessary 800 for link layers that already provide this functionality. The 801 method by which mobile nodes establish link-layer connections 802 with prospective agents is outside the scope of this document (but 803 see Appendix B). The procedures described below assume that such 804 link-layer connectivity has already been established. 806 No authentication is required for Agent Advertisement and Agent 807 Solicitation messages. They MAY be authenticated using the IP 808 Authentication Header [9], which is unrelated to the messages 809 described in this document. Further specification of the way in 810 which Advertisement and Solicitation messages may be authenticated is 811 outside of the scope of this document. 813 2.1. Agent Advertisement 815 Agent Advertisements are transmitted by a mobility agent to advertise 816 its services on a link. Mobile nodes use these advertisements to 817 determine their current point of attachment to the Internet. An 818 Agent Advertisement is an ICMP Router Advertisement that has been 819 extended to also carry an Mobility Agent Advertisement Extension 820 (Section 2.1.1) and, optionally, a Prefix-Lengths Extension 821 (Section 2.1.2), One-byte Padding Extension (Section 2.1.3), or other 822 Extensions that might be defined in the future. 824 Within an Agent Advertisement message, ICMP Router Advertisement 825 fields of the message are required to conform to the following 826 additional specifications: 828 - Link-Layer Fields 830 Destination Address 831 The link-layer destination address of a unicast 832 Agent Advertisement MUST be the same as the source 833 link-layer address of the Agent Solicitation which 834 prompted the Advertisement. 836 - IP Fields 838 TTL The TTL for all Agent Advertisements MUST be set 839 to 1. 841 Destination Address 842 As specified for ICMP Router Discovery [5], the 843 IP destination address of an multicast Agent 844 Advertisement MUST be either the "all systems on 845 this link" multicast address (224.0.0.1) [6] or 846 the "limited broadcast" address (255.255.255.255). 847 The subnet-directed broadcast address of the form 848 .<-1> cannot be used since mobile nodes will 849 not generally know the prefix of the foreign network. 850 When the Agent Advertisement is unicast to a mobile 851 node, the IP home address of the mobile node SHOULD 852 be used as the Destination Address. 854 - ICMP Fields 856 Code The Code field of the agent advertisement is 857 interpreted as follows: 859 0 The mobility agent handles common traffic -- that 860 is, it acts as a router for IP datagrams not 861 necessarily related to mobile nodes. 862 16 The mobility agent does not route common traffic. 863 However, all foreign agents MUST (minimally) 864 forward to a default router any datagrams received 865 from a registered mobile node (Section 4.2.2). 867 Lifetime 868 The maximum length of time that the Advertisement 869 is considered valid in the absence of further 870 Advertisements. 872 Router Address(es) 873 See Section 2.3.1 for a discussion of the addresses 874 that may appear in this portion of the Agent 875 Advertisement. 877 Num Addrs 878 The number of Router Addresses advertised in this 879 message. Note that in an Agent Advertisement 880 message, the number of router addresses specified in 881 the ICMP Router Advertisement portion of the message 882 MAY be set to 0. See Section 2.3.1 for details. 884 If sent periodically, the nominal interval at which Agent 885 Advertisements are sent SHOULD be no longer than 1/3 of the 886 advertisement Lifetime given in the ICMP header. This interval MAY 887 be shorter than 1/3 the advertised Lifetime. This allows a mobile 888 node to miss three successive advertisements before deleting the 889 agent from its list of valid agents. The actual transmission time 890 for each advertisement SHOULD be slightly randomized [5] in order 891 to avoid synchronization and subsequent collisions with other Agent 892 Advertisements that may be sent by other agents (or with other Router 893 Advertisements sent by other routers). Note that this field has no 894 relation to the "Registration Lifetime" field within the Mobility 895 Agent Advertisement Extension defined below. 897 2.1.1. Mobility Agent Advertisement Extension 899 The Mobility Agent Advertisement Extension follows the ICMP Router 900 Advertisement fields. It is used to indicate that an ICMP Router 901 Advertisement message is also an Agent Advertisement being sent by 902 a mobility agent. The Mobility Agent Advertisement Extension is 903 defined as follows: 905 0 1 2 3 906 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 907 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 908 | Type | Length | Sequence Number | 909 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 910 | Registration Lifetime |R|B|H|F|M|G|r|T| reserved | 911 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 912 | zero or more Care-of Addresses | 913 | ... | 915 Type 16 917 Length (6 + 4*N), where 6 accounts for the number of bytes in 918 the Sequence Number, Registration Lifetime, flags, and 919 reserved fields, and N is the number of care-of addresses 920 advertised. 922 Sequence Number 923 The count of Agent Advertisement messages sent since the 924 agent was initialized (Section 2.3.2). 926 Registration Lifetime 927 The longest lifetime (measured in seconds) that this 928 agent is willing to accept in any Registration Request. 929 A value of 0xffff indicates infinity. This field has no 930 relation to the "Lifetime" field within the ICMP Router 931 Advertisement portion of the Agent Advertisement. 933 R Registration required. Registration with this foreign 934 agent (or another foreign agent on this link) is required 935 even when using a co-located care-of address. 937 B Busy. The foreign agent will not accept registrations 938 from additional mobile nodes. 940 H Home agent. This agent offers service as a home agent 941 on the link on which this Agent Advertisement message is 942 sent. 944 F Foreign agent. This agent offers service as a foreign 945 agent on the link on which this Agent Advertisement 946 message is sent. 948 M Minimal encapsulation. This agent implements receiving 949 tunneled datagrams that use minimal encapsulation [16]. 951 G GRE encapsulation. This agent implements receiving 952 tunneled datagrams that use GRE encapsulation [13]. 954 r Sent as zero; ignored on reception. SHOULD NOT be 955 allocated for any other uses. 957 T Foreign agent supports reverse tunneling [12]. 959 reserved 960 Sent as zero; ignored on reception. 962 Care-of Address(es) 963 The advertised foreign agent care-of address(es) provided 964 by this foreign agent. An Agent Advertisement MUST 965 include at least one care-of address if the 'F' bit 966 is set. The number of care-of addresses present is 967 determined by the Length field in the Extension. 969 A home agent MUST always be prepared to serve the mobile nodes for 970 which it is the home agent. A foreign agent may at times be too busy 971 to serve additional mobile nodes; even so, it must continue to send 972 Agent Advertisements, so that any mobile nodes already registered 973 with it will know that they have not moved out of range of the 974 foreign agent and that the foreign agent has not failed. A foreign 975 agent may indicate that it is "too busy" to allow new mobile nodes to 976 register with it, by setting the 'B' bit in its Agent Advertisements. 977 An Agent Advertisement message MUST NOT have the 'B' bit set if the 978 'F' bit is not also set. Furthermore, at least one of the 'F' bit 979 and the 'H' bit MUST be set in any Agent Advertisement message sent. 981 When a foreign agent wishes to require registration even from those 982 mobile nodes which have acquired a co-located care-of address, it 983 sets the 'R' bit to one. Because this bit applies only to foreign 984 agents, an agent MUST NOT set the 'R' bit to one unless the 'F' bit 985 is also set to one. 987 2.1.2. Prefix-Lengths Extension 989 The Prefix-Lengths Extension MAY follow the Mobility Agent 990 Advertisement Extension. It is used to indicate the number of bits 991 of network prefix that applies to each Router Address listed in the 992 ICMP Router Advertisement portion of the Agent Advertisement. Note 993 that the prefix lengths given DO NOT apply to care-of address(es) 994 listed in the Mobility Agent Advertisement Extension. The 995 Prefix-Lengths Extension is defined as follows: 997 0 1 2 3 998 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 999 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1000 | Type | Length | Prefix Length | .... 1001 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1003 Type 19 (Prefix-Lengths Extension) 1005 Length N, where N is the value (possibly zero) of the Num Addrs 1006 field in the ICMP Router Advertisement portion of the 1007 Agent Advertisement. 1009 Prefix Length(s) 1010 The number of leading bits that define the network number 1011 of the corresponding Router Address listed in the ICMP 1012 Router Advertisement portion of the message. The prefix 1013 length for each Router Address is encoded as a separate 1014 byte, in the order that the Router Addresses are listed 1015 in the ICMP Router Advertisement portion of the message. 1017 See Section 2.4.2 for information about how the Prefix-Lengths 1018 Extension MAY be used by a mobile node when determining whether it 1019 has moved. See Appendix E for implementation details about the use 1020 of this Extension. 1022 2.1.3. One-byte Padding Extension 1024 Some IP protocol implementations insist upon padding ICMP messages 1025 to an even number of bytes. If the ICMP length of an Agent 1026 Advertisement is odd, this Extension MAY be included in order to make 1027 the ICMP length even. Note that this Extension is NOT intended to 1028 be a general-purpose Extension to be included in order to word- or 1029 long-align the various fields of the Agent Advertisement. An Agent 1030 Advertisement SHOULD NOT include more than one One-byte Padding 1031 Extension and if present, this Extension SHOULD be the last Extension 1032 in the Agent Advertisement. 1034 Note that unlike other Extensions used in Mobile IP, the One-byte 1035 Padding Extension is encoded as a single byte, with no "Length" nor 1036 "Data" field present. The One-byte Padding Extension is defined as 1037 follows: 1039 0 1 2 3 4 5 6 7 1040 +-+-+-+-+-+-+-+-+ 1041 | Type | 1042 +-+-+-+-+-+-+-+-+ 1044 Type 0 (One-byte Padding Extension) 1046 2.2. Agent Solicitation 1048 An Agent Solicitation is identical to an ICMP Router Solicitation 1049 with the further restriction that the IP TTL Field MUST be set to 1. 1051 2.3. Foreign Agent and Home Agent Considerations 1053 Any mobility agent which cannot be discovered by a link-layer 1054 protocol MUST send Agent Advertisements. An agent which can be 1055 discovered by a link-layer protocol SHOULD also implement Agent 1056 Advertisements. However, the Advertisements need not be sent, 1057 except when the site policy requires registration with the agent 1058 (i.e., when the 'R' bit is set), or as a response to a specific 1059 Agent Solicitation. All mobility agents MUST process packets that 1060 they receive addressed to the Mobile-Agents multicast group, at 1061 address 224.0.0.11. A mobile node MAY send an Agent Solicitation 1062 to 224.0.0.11. All mobility agents SHOULD respond to Agent 1063 Solicitations. 1065 The same procedures, defaults, and constants are used in Agent 1066 Advertisement messages and Agent Solicitation messages as specified 1067 for ICMP Router Discovery [5], except that: 1069 - a mobility agent MUST limit the rate at which it sends broadcast 1070 or multicast Agent Advertisements; the maximum rate SHOULD be 1071 chosen so that the Advertisements do not consume a significant 1072 amount of network bandwidth, AND 1074 - a mobility agent that receives a Router Solicitation MUST NOT 1075 require that the IP Source Address is the address of a neighbor 1076 (i.e., an address that matches one of the router's own addresses 1077 on the arrival interface, under the subnet mask associated with 1078 that address of the router). 1080 - a mobility agent MAY be configured to send Agent Advertisements 1081 only in response to an Agent Solicitation message. 1083 If the home network is not a virtual network, then the home agent 1084 for any mobile node SHOULD be located on the link identified by the 1085 mobile node's home address, and Agent Advertisement messages sent by 1086 the home agent on this link MUST have the 'H' bit set. In this way, 1087 mobile nodes on their own home network will be able to determine that 1088 they are indeed at home. Any Agent Advertisement messages sent by 1089 the home agent on another link to which it may be attached (if it is 1090 a mobility agent serving more than one link), MUST NOT have the 'H' 1091 bit set unless the home agent also serves as a home agent (to other 1092 mobile nodes) on that other link. A mobility agent MAY use different 1093 settings for each of the 'R', 'H', and 'F' bits on different network 1094 interfaces. 1096 If the home network is a virtual network, the home network has no 1097 physical realization external to the home agent itself. In this 1098 case, there is no physical network link on which to send Agent 1099 Advertisement messages advertising the home agent. Mobile nodes for 1100 which this is the home network are always treated as being away from 1101 home. 1103 On a particular subnet, either all mobility agents MUST include 1104 the Prefix-Lengths Extension or all of them MUST NOT include this 1105 Extension. Equivalently, it is prohibited for some agents on a given 1106 subnet to include the Extension but for others not to include it. 1107 Otherwise, one of the move detection algorithms designed for mobile 1108 nodes will not function properly (Section 2.4.2). 1110 2.3.1. Advertised Router Addresses 1112 The ICMP Router Advertisement portion of the Agent Advertisement MAY 1113 contain one or more router addresses. An agent SHOULD only put its 1114 own addresses, if any, in the advertisement. Whether or not its own 1115 address appears in the Router Addresses, a foreign agent MUST route 1116 datagrams it receives from registered mobile nodes (Section 4.2.2). 1118 2.3.2. Sequence Numbers and Rollover Handling 1120 The sequence number in Agent Advertisements ranges from 0 to 1121 0xffff. After booting, an agent MUST use the number 0 for its first 1122 advertisement. Each subsequent advertisement MUST use the sequence 1123 number one greater, with the exception that the sequence number 1124 0xffff MUST be followed by sequence number 256. In this way, mobile 1125 nodes can distinguish a reduction in the sequence number that occurs 1126 after a reboot from a reduction that results in rollover of the 1127 sequence number after it attains the value 0xffff. 1129 2.4. Mobile Node Considerations 1131 Every mobile node MUST implement Agent Solicitation. Solicitations 1132 SHOULD only be sent in the absence of Agent Advertisements and when a 1133 care-of address has not been determined through a link-layer protocol 1134 or other means. The mobile node uses the same procedures, defaults, 1135 and constants for Agent Solicitation as specified for ICMP Router 1136 Solicitation messages [5], except that the mobile node MAY solicit 1137 more often than once every three seconds, and that a mobile node that 1138 is currently not connected to any foreign agent MAY solicit more 1139 times than MAX_SOLICITATIONS. 1141 The rate at which a mobile node sends Solicitations MUST be 1142 limited by the mobile node. The mobile node MAY send three initial 1143 Solicitations at a maximum rate of one per second while searching for 1144 an agent. After this, the rate at which Solicitations are sent MUST 1145 be reduced so as to limit the overhead on the local link. Subsequent 1146 Solicitations MUST be sent using a binary exponential backoff 1147 mechanism, doubling the interval between consecutive Solicitations, 1148 up to a maximum interval. The maximum interval SHOULD be chosen 1149 appropriately based upon the characteristics of the media over which 1150 the mobile node is soliciting. This maximum interval SHOULD be at 1151 least one minute between Solicitations. 1153 While still searching for an agent, the mobile node MUST NOT increase 1154 the rate at which it sends Solicitations unless it has received 1155 a positive indication that it has moved to a new link. After 1156 successfully registering with an agent, the mobile node SHOULD 1157 also increase the rate at which it will send Solicitations when it 1158 next begins searching for a new agent with which to register. The 1159 increased solicitation rate MAY revert to the maximum rate, but then 1160 MUST be limited in the manner described above. In all cases, the 1161 recommended solicitation intervals are nominal values. Mobile nodes 1162 MUST randomize their solicitation times around these nominal values 1163 as specified for ICMP Router Discovery [5]. 1165 Mobile nodes MUST process received Agent Advertisements. A mobile 1166 node can distinguish an Agent Advertisement message from other uses 1167 of the ICMP Router Advertisement message by examining the number 1168 of advertised addresses and the IP Total Length field. When the 1169 IP total length indicates that the ICMP message is longer than 1170 needed for the number of advertised addresses, the remaining data is 1171 interpreted as one or more Extensions. The presence of a Mobility 1172 Agent Advertisement Extension identifies the advertisement as an 1173 Agent Advertisement. 1175 If there is more than one advertised address, the mobile node SHOULD 1176 pick the first address for its initial registration attempt. If the 1177 registration attempt fails with a status Code indicating rejection by 1178 the foreign agent, the mobile node MAY retry the attempt with each 1179 subsequent advertised address in turn. 1181 When multiple methods of agent discovery are in use, the mobile node 1182 SHOULD first attempt registration with agents including Mobility 1183 Agent Advertisement Extensions in their advertisements, in preference 1184 to those discovered by other means. This preference maximizes 1185 the likelihood that the registration will be recognized, thereby 1186 minimizing the number of registration attempts. 1188 A mobile node MUST ignore reserved bits in Agent Advertisements, as 1189 opposed to discarding such advertisements. In this way, new bits 1190 can be defined later, without affecting the ability for mobile nodes 1191 to use the advertisements even when the newly defined bits are not 1192 understood. 1194 2.4.1. Registration Required 1196 When the mobile node receives an Agent Advertisement with the 'R' 1197 bit set, the mobile node SHOULD register through the foreign agent, 1198 even when the mobile node might be able to acquire its own co-located 1199 care-of address. This feature is intended to allow sites to enforce 1200 visiting policies (such as accounting) which require exchanges of 1201 authorization. 1203 If formerly reserved bits require some kind of monitoring/enforcement 1204 at the foreign link, foreign agents implementing the new 1205 specification for the formerly reserved bits can set the 'R' bit. 1206 This has the effect of forcing the mobile node to register through 1207 the foreign agent, so the foreign agent could then monitor/enforce 1208 the policy. 1210 2.4.2. Move Detection 1212 Two primary mechanisms are provided for mobile nodes to detect when 1213 they have moved from one subnet to another. Other mechanisms MAY 1214 also be used. When the mobile node detects that it has moved, it 1215 SHOULD register (Section 3) with a suitable care-of address on the 1216 new foreign network. However, the mobile node MUST NOT register 1217 more frequently than once per second on average, as specified in 1218 Section 3.6.3. 1220 2.4.2.1. Algorithm 1 1222 The first method of move detection is based upon the Lifetime field 1223 within the main body of the ICMP Router Advertisement portion of 1224 the Agent Advertisement. A mobile node SHOULD record the Lifetime 1225 received in any Agent Advertisements, until that Lifetime expires. 1226 If the mobile node fails to receive another advertisement from the 1227 same agent within the specified Lifetime, it SHOULD assume that it 1228 has lost contact with that agent. If the mobile node has previously 1229 received an Agent Advertisement from another agent for which the 1230 Lifetime field has not yet expired, the mobile node MAY immediately 1231 attempt registration with that other agent. Otherwise, the mobile 1232 node SHOULD attempt to discover a new agent with which to register. 1234 2.4.2.2. Algorithm 2 1236 The second method uses network prefixes. The Prefix-Lengths 1237 Extension MAY be used in some cases by a mobile node to determine 1238 whether or not a newly received Agent Advertisement was received on 1239 the same subnet as the mobile node's current care-of address. If the 1240 prefixes differ, the mobile node MAY assume that it has moved. If 1241 a mobile node is currently using a foreign agent care-of address, 1242 the mobile node SHOULD NOT use this method of move detection unless 1243 both the current agent and the new agent include the Prefix-Lengths 1244 Extension in their respective Agent Advertisements; if this Extension 1245 is missing from one or both of the advertisements, this method of 1246 move detection SHOULD NOT be used. Similarly, if a mobile node is 1247 using a co-located care-of address, it SHOULD not use this method 1248 of move detection unless the new agent includes the Prefix-Lengths 1249 Extension in its Advertisement and the mobile node knows the network 1250 prefix of its current co-located care-of address. On the expiration 1251 of its current registration, if this method indicates that the 1252 mobile node has moved, rather than re-registering with its current 1253 care-of address, a mobile node MAY choose instead to register 1254 with a the foreign agent sending the new Advertisement with the 1255 different network prefix. The Agent Advertisement on which the new 1256 registration is based MUST NOT have expired according to its Lifetime 1257 field. 1259 2.4.3. Returning Home 1261 A mobile node can detect that it has returned to its home network 1262 when it receives an Agent Advertisement from its own home agent. If 1263 so, it SHOULD deregister with its home agent (Section 3). Before 1264 attempting to deregister, the mobile node SHOULD configure its 1265 routing table appropriately for its home network (Section 4.2.1). In 1266 addition, if the home network is using ARP [17], the mobile node MUST 1267 follow the procedures described in Section 4.6 with regard to ARP, 1268 proxy ARP, and gratuitous ARP. 1270 2.4.4. Sequence Numbers and Rollover Handling 1272 If a mobile node detects two successive values of the sequence number 1273 in the Agent Advertisements from the foreign agent with which it is 1274 registered, the second of which is less than the first and inside the 1275 range 0 to 255, the mobile node SHOULD register again. If the second 1276 value is less than the first but is greater than or equal to 256, 1277 the mobile node SHOULD assume that the sequence number has rolled 1278 over past its maximum value (0xffff), and that reregistration is not 1279 necessary (Section 2.3). 1281 3. Registration 1283 Mobile IP registration provides a flexible mechanism for mobile nodes 1284 to communicate their current reachability information to their home 1285 agent. It is the method by which mobile nodes: 1287 - request forwarding services when visiting a foreign network, 1289 - inform their home agent of their current care-of address, 1291 - renew a registration which is due to expire, and/or 1293 - deregister when they return home. 1295 Registration messages exchange information between a mobile node, 1296 (optionally) a foreign agent, and the home agent. Registration 1297 creates or modifies a mobility binding at the home agent, associating 1298 the mobile node's home address with its care-of address for the 1299 specified Lifetime. 1301 Several other (optional) capabilities are available through the 1302 registration procedure, which enable a mobile node to: 1304 - discover its home address, if the mobile node is not configured 1305 with this information. 1307 - maintain multiple simultaneous registrations, so that a copy of 1308 each datagram will be tunneled to each active care-of address 1310 - deregister specific care-of addresses while retaining other 1311 mobility bindings, and 1313 - discover the address of a home agent if the mobile node is not 1314 configured with this information. 1316 3.1. Registration Overview 1318 Mobile IP defines two different registration procedures, one via 1319 a foreign agent that relays the registration to the mobile node's 1320 home agent, and one directly with the mobile node's home agent. The 1321 following rules determine which of these two registration procedures 1322 to use in any particular circumstance: 1324 - If a mobile node is registering a foreign agent care-of address, 1325 the mobile node MUST register via that foreign agent. 1327 - If a mobile node is using a co-located care-of address, and 1328 receives an Agent Advertisement from a foreign agent on the 1329 link on which it is using this care-of address, the mobile node 1330 SHOULD register via that foreign agent (or via another foreign 1331 agent on this link) if the 'R' bit is set in the received Agent 1332 Advertisement message. 1334 - If a mobile node is otherwise using a co-located care-of address, 1335 the mobile node MUST register directly with its home agent. 1337 - If a mobile node has returned to its home network and is 1338 (de)registering with its home agent, the mobile node MUST 1339 register directly with its home agent. 1341 Both registration procedures involve the exchange of Registration 1342 Request and Registration Reply messages (Sections 3.3 and 3.4). When 1343 registering via a foreign agent, the registration procedure requires 1344 the following four messages: 1346 a) The mobile node sends a Registration Request to the 1347 prospective foreign agent to begin the registration process. 1349 b) The foreign agent processes the Registration Request and then 1350 relays it to the home agent. 1352 c) The home agent sends a Registration Reply to the foreign 1353 agent to grant or deny the Request. 1355 d) The foreign agent processes the Registration Reply and then 1356 relays it to the mobile node to inform it of the disposition 1357 of its Request. 1359 When the mobile node instead registers directly with its home agent, 1360 the registration procedure requires only the following two messages: 1362 a) The mobile node sends a Registration Request to the home 1363 agent. 1365 b) The home agent sends a Registration Reply to the mobile node, 1366 granting or denying the Request. 1368 The registration messages defined in Sections 3.3 and 3.4 use the 1369 User Datagram Protocol (UDP) [18]. A nonzero UDP checksum SHOULD 1370 be included in the header, and MUST be checked by the recipient. A 1371 zero UDP checksum SHOULD be accepted by the recipient. The behavior 1372 of the mobile node and the home agent with respect to their mutual 1373 acceptance of packets with zero UDP checksums SHOULD be defined as 1374 part of the mobility security association which exists between them. 1376 3.2. Authentication 1378 Each mobile node, foreign agent, and home agent MUST be able to 1379 support a mobility security association for mobile entities, indexed 1380 by their SPI and IP address. In the case of the mobile node, 1381 this must be its Home Address. See Section 5.1 for requirements 1382 for support of authentication algorithms. Registration messages 1383 between a mobile node and its home agent MUST be authenticated 1384 with an authorization-enabling extension, e.g. the Mobile-Home 1385 Authentication Extension (Section 3.5.2). This extension MUST be 1386 the first authentication extension; other foreign agent-specific 1387 extensions MAY be added to the message after the mobile node computes 1388 the authentication. 1390 3.3. Registration Request 1392 A mobile node registers with its home agent using a Registration 1393 Request message so that its home agent can create or modify a 1394 mobility binding for that mobile node (e.g., with a new lifetime). 1395 The Request may be relayed to the home agent by the foreign agent 1396 through which the mobile node is registering, or it may be sent 1397 directly to the home agent in the case in which the mobile node is 1398 registering a co-located care-of address. 1400 IP fields: 1402 Source Address Typically the interface address from which the 1403 message is sent. 1405 Destination Address Typically that of the foreign agent or the 1406 home agent. 1408 See Sections 3.6.1.1 and 3.7.2.2 for details. 1410 UDP fields: 1412 Source Port variable 1414 Destination Port 434 1416 The UDP header is followed by the Mobile IP fields shown below: 1418 0 1 2 3 1419 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 1420 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1421 | Type |S|B|D|M|G|r|T|x| Lifetime | 1422 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1423 | Home Address | 1424 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1425 | Home Agent | 1426 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1427 | Care-of Address | 1428 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1429 | | 1430 + Identification + 1431 | | 1432 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1433 | Extensions ... 1434 +-+-+-+-+-+-+-+- 1436 Type 1 (Registration Request) 1438 S Simultaneous bindings. If the 'S' bit is set, the mobile 1439 node is requesting that the home agent retain its prior 1440 mobility bindings, as described in Section 3.6.1.2. 1442 B Broadcast datagrams. If the 'B' bit is set, the mobile 1443 node requests that the home agent tunnel to it any 1444 broadcast datagrams that it receives on the home network, 1445 as described in Section 4.3. 1447 D Decapsulation by mobile node. If the 'D' bit is set, the 1448 mobile node will itself decapsulate datagrams which are 1449 sent to the care-of address. That is, the mobile node is 1450 using a co-located care-of address. 1452 M Minimal encapsulation. If the 'M' bit is set, the 1453 mobile node requests that its home agent use minimal 1454 encapsulation [16] for datagrams tunneled to the mobile 1455 node. 1457 G GRE encapsulation. If the 'G' bit is set, the 1458 mobile node requests that its home agent use GRE 1459 encapsulation [13] for datagrams tunneled to the mobile 1460 node. 1462 r Sent as zero; ignored on reception. SHOULD NOT be 1463 allocated for any other uses. 1465 T Reverse Tunneling requested; see [12]. 1467 x Sent as zero; ignored on reception. 1469 Lifetime 1470 The number of seconds remaining before the registration 1471 is considered expired. A value of zero indicates a 1472 request for deregistration. A value of 0xffff indicates 1473 infinity. 1475 Home Address 1476 The IP address of the mobile node. 1478 Home Agent 1479 The IP address of the mobile node's home agent. 1481 Care-of Address 1482 The IP address for the end of the tunnel. 1484 Identification 1485 A 64-bit number, constructed by the mobile node, used for 1486 matching Registration Requests with Registration Replies, 1487 and for protecting against replay attacks of registration 1488 messages. See Sections 5.4 and 5.7. 1490 Extensions 1491 The fixed portion of the Registration Request is followed 1492 by one or more of the Extensions listed in Section 3.5. 1493 An authorization-enabling extension MUST be included 1494 in all Registration Requests. See Sections 3.6.1.3 1495 and 3.7.2.2 for information on the relative order in 1496 which different extensions, when present, MUST be placed 1497 in a Registration Request message. 1499 3.4. Registration Reply 1501 A mobility agent typically returns a Registration Reply message to 1502 a mobile node which has sent a Registration Request (Section 3.3) 1503 message. If the mobile node is requesting service from a foreign 1504 agent, that foreign agent will typically receive the Reply from the 1505 home agent and subsequently relay it to the mobile node. Reply 1506 messages contain the necessary codes to inform the mobile node about 1507 the status of its Request, along with the lifetime granted by the 1508 home agent, which MAY be smaller than the original Request. 1510 The foreign agent MUST NOT increase the Lifetime selected by the 1511 mobile node in the Registration Request, since the Lifetime is 1512 covered by an authentication extension which enables authorization by 1513 the home agent. Such an extension contains authentication data which 1514 cannot be correctly (re)computed by the foreign agent. The home 1515 agent MUST NOT increase the Lifetime selected by the mobile node in 1516 the Registration Request, since doing so could increase it beyond the 1517 maximum Registration Lifetime allowed by the foreign agent. If the 1518 Lifetime received in the Registration Reply is greater than that in 1519 the Registration Request, the Lifetime in the Request MUST be used. 1520 When the Lifetime received in the Registration Reply is less than 1521 that in the Registration Request, the Lifetime in the Reply MUST be 1522 used. 1524 IP fields: 1526 Source Address Typically copied from the destination 1527 address of the Registration Request to which 1528 the agent is replying. See Sections 3.7.2.3 1529 and 3.8.3.1 for complete details. 1531 Destination Address Copied from the source address of the 1532 Registration Request to which the agent is 1533 replying 1535 UDP fields: 1537 Source Port 1539 Destination Port Copied from the source port of the 1540 corresponding Registration Request 1541 (Section 3.7.1). 1543 The UDP header is followed by the Mobile IP fields shown below: 1545 0 1 2 3 1546 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 1547 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1548 | Type | Code | Lifetime | 1549 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1550 | Home Address | 1551 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1552 | Home Agent | 1553 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1554 | | 1555 + Identification + 1556 | | 1557 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1558 | Extensions ... 1559 +-+-+-+-+-+-+-+- 1561 Type 3 (Registration Reply) 1563 Code A value indicating the result of the Registration 1564 Request. See below for a list of currently defined Code 1565 values. 1567 Lifetime 1568 If the Code field indicates that the registration was 1569 accepted, the Lifetime field is set to the number of 1570 seconds remaining before the registration is considered 1571 expired. A value of zero indicates that the mobile node 1572 has been deregistered. A value of 0xffff indicates 1573 infinity. If the Code field indicates that the 1574 registration was denied, the contents of the Lifetime 1575 field are unspecified and MUST be ignored on reception. 1577 Home Address 1578 The IP address of the mobile node. 1580 Home Agent 1581 The IP address of the mobile node's home agent. 1583 Identification 1584 A 64-bit number used for matching Registration Requests 1585 with Registration Replies, and for protecting against 1586 replay attacks of registration messages. The value is 1587 based on the Identification field from the Registration 1588 Request message from the mobile node, and on the style of 1589 replay protection used in the security context between 1590 the mobile node and its home agent (defined by the 1591 mobility security association between them, and SPI 1592 value in the authorization-enabling extension). See 1593 Sections 5.4 and 5.7. 1595 Extensions 1596 The fixed portion of the Registration Reply is followed 1597 by one or more of the Extensions listed in Section 3.5. 1598 An authorization-enabling extension MUST be included in 1599 all Registration Replies returned by the home agent. See 1600 Sections 3.7.2.2 and 3.8.3.3 for rules on placement of 1601 extensions to Reply messages. 1603 The following values are defined for use within the Code field. 1604 Registration successful: 1606 0 registration accepted 1607 1 registration accepted, but simultaneous mobility 1608 bindings unsupported 1610 Registration denied by the foreign agent: 1612 64 reason unspecified 1613 65 administratively prohibited 1614 66 insufficient resources 1615 67 mobile node failed authentication 1616 69 requested Lifetime too long 1617 70 poorly formed Request 1618 71 poorly formed Reply 1619 72 requested encapsulation unavailable 1620 73 reserved and unavailable 1621 TBD-IANA Invalid Home Agent address 1622 77 invalid care-of address 1623 78 registration timeout 1624 80 home network unreachable (ICMP error received) 1625 81 home agent host unreachable (ICMP error received) 1626 82 home agent port unreachable (ICMP error received) 1627 88 home agent unreachable (other ICMP error received) 1629 Registration denied by the home agent: 1631 128 reason unspecified 1632 129 administratively prohibited 1633 130 insufficient resources 1634 131 mobile node failed authentication 1635 132 foreign agent failed authentication 1636 133 registration Identification mismatch 1637 134 poorly formed Request 1638 135 too many simultaneous mobility bindings 1639 136 unknown home agent address 1641 Up-to-date values of the Code field are specified in the most recent 1642 "Assigned Numbers" [21]. 1644 3.5. Registration Extensions 1646 3.5.1. Computing Authentication Extension Values 1648 The Authenticator value computed for each authentication Extension 1649 MUST protect the following fields from the registration message: 1651 - the UDP payload (that is, the Registration Request or 1652 Registration Reply data), 1654 - all prior Extensions in their entirety, and 1656 - the Type, Length, and SPI of this Extension. 1658 The default authentication algorithm uses HMAC-MD5 [10] to compute a 1659 128-bit "message digest" of the registration message. The data over 1660 which the HMAC is computed is defined as: 1662 - the UDP payload (that is, the Registration Request or 1663 Registration Reply data), 1665 - all prior Extensions in their entirety, and 1667 - the Type, Length, and SPI of this Extension. 1669 Note that the Authenticator field itself and the UDP header are NOT 1670 included in the computation of the default Authenticator value. 1671 See Section 5.1 for information about support requirements for 1672 message authentication codes, which are to be used with the various 1673 authentication Extensions. 1675 The Security Parameter Index (SPI) within any of the authentication 1676 Extensions defines the security context which is used to compute 1677 the Authenticator value and which MUST be used by the receiver to 1678 check that value. In particular, the SPI selects the authentication 1679 algorithm and mode (Section 5.1) and secret (a shared key, or 1680 appropriate public/private key pair) used in computing the 1681 Authenticator. In order to ensure interoperability between different 1682 implementations of the Mobile IP protocol, an implementation MUST be 1683 able to associate any SPI value with any authentication algorithm 1684 and mode which it implements. In addition, all implementations 1685 of Mobile IP MUST implement the default authentication algorithm 1686 (HMAC-MD5) specified above. 1688 3.5.2. Mobile-Home Authentication Extension 1690 At least one authorization-enabling extension MUST be present in 1691 all Registration Requests, and also in all Registration Replies 1692 generated by the Home Agent. The Mobile-Home Authentication 1693 Extension is always an authorization-enabling for registration 1694 messages specified in this document. This requirement is intended 1695 to eliminate problems [28] which result from the uncontrolled 1696 propagation of remote redirects in the Internet. The location of 1697 the authorization-enabling extension marks the end of the data to 1698 be authenticated by the authorizatizing agent interpreting that 1699 authorization-enabling extension. 1701 0 1 2 3 1702 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 1703 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1704 | Type | Length | SPI .... 1705 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1706 ... SPI (cont.) | Authenticator ... 1707 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1709 Type 32 1711 Length 4 plus the number of bytes in the Authenticator. 1713 SPI Security Parameter Index (4 bytes). An opaque 1714 identifier (see Section 1.6). 1716 Authenticator (variable length) (See Section 3.5.1.) 1718 3.5.3. Mobile-Foreign Authentication Extension 1720 This Extension MAY be included in Registration Requests and Replies 1721 in cases in which a mobility security association exists between the 1722 mobile node and the foreign agent. See Section 5.1 for information 1723 about support requirements for message authentication codes. 1725 0 1 2 3 1726 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 1727 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1728 | Type | Length | SPI .... 1729 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1730 ... SPI (cont.) | Authenticator ... 1731 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1733 Type 33 1735 Length 4 plus the number of bytes in the Authenticator. 1737 SPI Security Parameter Index (4 bytes). An opaque 1738 identifier (see Section 1.6). 1740 Authenticator (variable length) (See Section 3.5.1.) 1742 3.5.4. Foreign-Home Authentication Extension 1744 This Extension MAY be included in Registration Requests and Replies 1745 in cases in which a mobility security association exists between the 1746 foreign agent and the home agent. See Section 5.1 for information 1747 about support requirements for message authentication codes. 1749 0 1 2 3 1750 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 1751 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1752 | Type | Length | SPI .... 1753 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1754 ... SPI (cont.) | Authenticator ... 1755 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1757 Type 34 1759 Length 4 plus the number of bytes in the Authenticator. 1761 SPI Security Parameter Index (4 bytes). An opaque 1762 identifier (see Section 1.6). 1764 Authenticator (variable length) (See Section 3.5.1.) 1766 In order to perform the authentication, the Home Agent and the 1767 Foreign Agent have to have configured a security association that 1768 is able to be indexed by use of the SPI and the care-of address 1769 assocated with the Foreign Agent. This care-of address MUST be used 1770 as the Source IP address of the Registration Request containing the 1771 Foreign-Home Authentication Extension. When the extension is used 1772 with a Registration Reply message, the foreign agent address MUST be 1773 used as the Destination IP address in the IP header. 1775 3.6. Mobile Node Considerations 1777 A mobile node MUST be configured with a netmask and a mobility 1778 security association for each of its home agents. In addition, a 1779 mobile node MAY be configured with its home address, and the IP 1780 address of one or more of its home agents; otherwise, the mobile 1781 node MAY discover a home agent using the procedures described in 1782 Section 3.6.1.2. 1784 If the mobile node is not configured with a home address, it MAY use 1785 the Mobile Node NAI extension [2] to identify itself, and set the 1786 Home Address field of the Registration Request to 0.0.0.0. In this 1787 case, the mobile node MUST be able to assign its home address after 1788 extracting this information from the Registration Reply from the home 1789 agent. 1791 For each pending registration, the mobile node maintains the 1792 following information: 1794 - the link-layer address of the foreign agent to which the 1795 Registration Request was sent, if applicable, 1796 - the IP destination address of the Registration Request, 1797 - the care-of address used in the registration, 1798 - the Identification value sent in the registration, 1799 - the originally requested Lifetime, and 1800 - the remaining Lifetime of the pending registration. 1802 A mobile node SHOULD initiate a registration whenever it detects a 1803 change in its network connectivity. See Section 2.4.2 for methods by 1804 which mobile nodes MAY make such a determination. When it is away 1805 from home, the mobile node's Registration Request allows its home 1806 agent to create or modify a mobility binding for it. When it is at 1807 home, the mobile node's (de)Registration Request allows its home 1808 agent to delete any previous mobility binding(s) for it. A mobile 1809 node operates without the support of mobility functions when it is at 1810 home. 1812 There are other conditions under which the mobile node SHOULD 1813 (re)register with its foreign agent, such as when the mobile 1814 node detects that the foreign agent has rebooted (as specified in 1815 Section 2.4.4) and when the current registration's Lifetime is near 1816 expiration. 1818 In the absence of link-layer indications of changes in point 1819 of attachment, Agent Advertisements from new agents SHOULD NOT 1820 cause a mobile node to attempt a new registration, if its current 1821 registration has not expired and it is still also receiving Agent 1822 Advertisements from the foreign agent with which it is currently 1823 registered. In the absence of link-layer indications, a mobile node 1824 MUST NOT attempt to register more often than once per second. 1826 A mobile node MAY register with a different agent when 1827 transport-layer protocols indicate excessive retransmissions. 1828 A mobile node MUST NOT consider reception of an ICMP Redirect from 1829 a foreign agent that is currently providing service to it as reason 1830 to register with a new foreign agent. Within these constraints, the 1831 mobile node MAY register again at any time. 1833 Appendix D shows some examples of how the fields in registration 1834 messages would be set up in some typical registration scenarios. 1836 3.6.1. Sending Registration Requests 1838 The following sections specify details for the values the mobile node 1839 MUST supply in the fields of Registration Request messages. 1841 3.6.1.1. IP Fields 1843 This section provides the specific rules by which mobile nodes pick 1844 values for the IP header fields of a Registration Request. 1846 IP Source Address: 1848 - When registering on a foreign network with a co-located care-of 1849 address, the IP source address MUST be the care-of address. 1851 - Otherwise, if the mobile node does not have a home address, the 1852 IP source address MUST be 0.0.0.0. 1854 - In all other circumstances, the IP source address MUST be the 1855 mobile node's home address. 1857 IP Destination Address: 1859 - When the mobile node has discovered the agent with which it is 1860 registering, through some means (e.g., link-layer) that does not 1861 provide the IP address of the agent (the IP address of the agent 1862 is unknown to the mobile node), then the "All Mobility Agents" 1863 multicast address (224.0.0.11) MUST be used. In this case, the 1864 mobile node MUST use the agent's link-layer unicast address in 1865 order to deliver the datagram to the correct agent. 1867 - When registering with a foreign agent, the address of the agent 1868 as learned from the IP source address of the corresponding 1869 Agent Advertisement MUST be used. This MAY be an address 1870 which does not appear as an advertised care-of address in 1871 the Agent Advertisement. In addition, when transmitting 1872 this Registration Request message, the mobile node MUST use a 1873 link-layer destination address copied from the link-layer source 1874 address of the Agent Advertisement message in which it learned 1875 this foreign agent's IP address. 1877 - When the mobile node is registering directly with its home 1878 agent and knows the (unicast) IP address of its home agent, the 1879 destination address MUST be set to this address. 1881 - If the mobile node is registering directly with its home 1882 agent, but does not know the IP address of its home agent, 1883 the mobile node may use dynamic home agent address resolution 1884 to automatically determine the IP address of its home agent 1885 (Section 3.6.1.2). In this case, the IP destination address is 1886 set to the subnet-directed broadcast address of the mobile node's 1887 home network. This address MUST NOT be used as the destination 1888 IP address if the mobile node is registering via a foreign agent, 1889 although it MAY be used as the Home Agent address in the body of 1890 the Registration Request when registering via a foreign agent. 1892 IP Time to Live: 1894 - The IP TTL field MUST be set to 1 if the IP destination address 1895 is set to the "All Mobility Agents" multicast address as 1896 described above. Otherwise a suitable value should be chosen in 1897 accordance with standard IP practice [19]. 1899 3.6.1.2. Registration Request Fields 1901 This section provides specific rules by which mobile nodes pick 1902 values for the fields within the fixed portion of a Registration 1903 Request. 1905 A mobile node MAY set the 'S' bit in order to request that the 1906 home agent maintain prior mobility binding(s). Otherwise, the 1907 home agent deletes any previous binding(s) and replaces them with 1908 the new binding specified in the Registration Request. Multiple 1909 simultaneous mobility bindings are likely to be useful when a mobile 1910 node using at least one wireless network interface moves within 1911 wireless transmission range of more than one foreign agent. IP 1912 explicitly allows duplication of datagrams. When the home agent 1913 allows simultaneous bindings, it will tunnel a separate copy of each 1914 arriving datagram to each care-of address, and the mobile node will 1915 receive multiple copies of datagrams destined to it. 1917 The mobile node SHOULD set the 'D' bit if it is registering with a 1918 co-located care-of address. Otherwise, the 'D' bit MUST NOT be set. 1920 A mobile node MAY set the 'B' bit to request its home agent to 1921 forward to it, a copy of broadcast datagrams received by its home 1922 agent from the home network. The method used by the home agent to 1923 forward broadcast datagrams depends on the type of care-of address 1924 registered by the mobile node, as determined by the 'D' bit in the 1925 mobile node's Registration Request: 1927 - If the 'D' bit is set, then the mobile node has indicated that it 1928 will decapsulate any datagrams tunneled to this care-of address 1929 itself (the mobile node is using a co-located care-of address). 1930 In this case, to forward such a received broadcast datagram to 1931 the mobile node, the home agent MUST tunnel it to this care-of 1932 address. The mobile node de-tunnels the received datagram in the 1933 same way as any other datagram tunneled directly to it. 1935 - If the 'D' bit is NOT set, then the mobile node has indicated 1936 that it is using a foreign agent care-of address, and that the 1937 foreign agent will thus decapsulate arriving datagrams before 1938 forwarding them to the mobile node. In this case, to forward 1939 such a received broadcast datagram to the mobile node, the home 1940 agent MUST first encapsulate the broadcast datagram in a unicast 1941 datagram addressed to the mobile node's home address, and then 1942 MUST tunnel this resulting datagram to the mobile node's care-of 1943 address. 1945 When decapsulated by the foreign agent, the inner datagram will 1946 thus be a unicast IP datagram addressed to the mobile node, 1947 identifying to the foreign agent the intended destination of the 1948 encapsulated broadcast datagram, and will be delivered to the 1949 mobile node in the same way as any tunneled datagram arriving 1950 for the mobile node. The foreign agent MUST NOT decapsulate the 1951 encapsulated broadcast datagram and MUST NOT use a local network 1952 broadcast to transmit it to the mobile node. The mobile node 1953 thus MUST decapsulate the encapsulated broadcast datagram itself, 1954 and thus MUST NOT set the 'B' bit in its Registration Request in 1955 this case unless it is capable of decapsulating datagrams. 1957 The mobile node MAY request alternative forms of encapsulation by 1958 setting the 'M' bit and/or the 'G' bit, but only if the mobile node 1959 is decapsulating its own datagrams (the mobile node is using a 1960 co-located care-of address) or if its foreign agent has indicated 1961 support for these forms of encapsulation by setting the corresponding 1962 bits in the Mobility Agent Advertisement Extension of an Agent 1963 Advertisement received by the mobile node. Otherwise, the mobile 1964 node MUST NOT set these bits. 1966 The Lifetime field is chosen as follows: 1968 - If the mobile node is registering with a foreign agent, the 1969 Lifetime SHOULD NOT exceed the value in the Registration Lifetime 1970 field of the Agent Advertisement message received from the 1971 foreign agent. When the method by which the care-of address is 1972 learned does not include a Lifetime, the default ICMP Router 1973 Advertisement Lifetime (1800 seconds) MAY be used. 1975 - The mobile node MAY ask a home agent to delete a particular 1976 mobility binding, by sending a Registration Request with the 1977 care-of address for this binding, with the Lifetime field set to 1978 zero (Section 3.8.2). 1980 - Similarly, a Lifetime of zero is used when the mobile node 1981 deregisters all care-of addresses, such as upon returning home. 1983 The Home Address field MUST be set to the mobile node's home address, 1984 if this information is known. Otherwise, the Home Address MUST be 1985 set to zeroes. 1987 The Home Agent field MUST be set to the address of the mobile node's 1988 home agent, if the mobile node knows this address. Otherwise, the 1989 mobile node MAY use dynamic home agent address resolution to learn 1990 the address of its home agent. In this case, the mobile node MUST 1991 set the Home Agent field to the subnet-directed broadcast address 1992 of the mobile node's home network. Each home agent receiving such 1993 a Registration Request with a broadcast destination address MUST 1994 reject the mobile node's registration and SHOULD return a rejection 1995 Registration Reply indicating its unicast IP address for use by the 1996 mobile node in a future registration attempt. 1998 The Care-of Address field MUST be set to the value of the particular 1999 care-of address that the mobile node wishes to (de)register. In the 2000 special case in which a mobile node wishes to deregister all care-of 2001 addresses, it MUST set this field to its home address. 2003 The mobile node chooses the Identification field in accordance with 2004 the style of replay protection it uses with its home agent. This is 2005 part of the mobility security association the mobile node shares with 2006 its home agent. See Section 5.7 for the method by which the mobile 2007 node computes the Identification field. 2009 3.6.1.3. Extensions 2011 This section describes the ordering of any mandatory and any optional 2012 Extensions that a mobile node appends to a Registration Request. 2013 This ordering is REQUIRED: 2015 a) The IP header, followed by the UDP header, followed by the 2016 fixed-length portion of the Registration Request, followed by 2018 b) If present, any non-authentication Extensions expected to be 2019 used by the home agent or other authorizing agent (which may 2020 or may not also be useful to the foreign agent), followed by 2022 c) All authorization-enabling extensions (see section 1.6), 2023 followed by 2025 d) If present, any non-authentication Extensions used only by 2026 the foreign agent, followed by 2028 e) The Mobile-Foreign Authentication Extension, if present. 2030 Note that items (a) and (c) MUST appear in every Registration Request 2031 sent by the mobile node. Items (b), (d), and (e) are optional. 2032 However, item (e) MUST be included when the mobile node and the 2033 foreign agent share a mobility security association. 2035 3.6.2. Receiving Registration Replies 2037 Registration Replies will be received by the mobile node in response 2038 to its Registration Requests. Registration Replies generally fall 2039 into three categories: 2041 - the registration was accepted, 2042 - the registration was denied by the foreign agent, or 2043 - the registration was denied by the home agent. 2045 The remainder of this section describes the Registration Reply 2046 handling by a mobile node in each of these three categories. 2048 3.6.2.1. Validity Checks 2050 Registration Replies with an invalid, non-zero UDP checksum MUST be 2051 silently discarded. 2053 In addition, the low-order 32 bits of the Identification field in the 2054 Registration Reply MUST be compared to the low-order 32 bits of the 2055 Identification field in the most recent Registration Request sent to 2056 the replying agent. If they do not match, the Reply MUST be silently 2057 discarded. 2059 Also, the Registration Reply MUST be checked for presence of an 2060 authorization-enabling extension. For all Registration Reply 2061 messages containing a Status Code indicating status from the 2062 Home Agent, the mobile node MUST check for the presence of an 2063 authorization-enabling extension, acting in accordance with the Code 2064 field in the Reply. The rules are as follows: 2066 a) If the mobile node and the foreign agent share a 2067 mobility security association, exactly one Mobile-Foreign 2068 Authentication Extension MUST be present in the Registration 2069 Reply, and the mobile node MUST check the Authenticator 2070 value in the Extension. If no Mobile-Foreign Authentication 2071 Extension is found, or if more than one Mobile-Foreign 2072 Authentication Extension is found, or if the Authenticator is 2073 invalid, the mobile node MUST silently discard the Reply and 2074 SHOULD log the event as a security exception. 2076 b) If the Code field indicates that service is denied by 2077 the home agent, or if the Code field indicates that the 2078 registration was accepted by the home agent, exactly one 2079 Mobile-Home Authentication Extension MUST be present in 2080 the Registration Reply, and the mobile node MUST check the 2081 Authenticator value in the Extension. If the Registration 2082 Reply was generated by the home agent but no Mobile-Home 2083 Authentication Extension is found, or if more than one 2084 Mobile-Home Authentication Extension is found, or if the 2085 Authenticator is invalid, the mobile node MUST silently 2086 discard the Reply and SHOULD log the event as a security 2087 exception. 2089 If the Code field indicates an authentication failure, either at the 2090 foreign agent or the home agent, then it is quite possible that any 2091 authenticators in the Registration Reply will also be in error. This 2092 could happen, for example, if the shared secret between the mobile 2093 node and home agent was erroneously configured. The mobile node 2094 SHOULD log such errors as security exceptions. 2096 3.6.2.2. Registration Request Accepted 2098 If the Code field indicates that the request has been accepted, the 2099 mobile node SHOULD configure its routing table appropriately for its 2100 current point of attachment (Section 4.2.1). 2102 If the mobile node is returning to its home network and that 2103 network is one which implements ARP, the mobile node MUST follow the 2104 procedures described in Section 4.6 with regard to ARP, proxy ARP, 2105 and gratuitous ARP. 2107 If the mobile node has registered on a foreign network, it 2108 SHOULD re-register before the expiration of the Lifetime of its 2109 registration. As described in Section 3.6, for each pending 2110 Registration Request, the mobile node MUST maintain the remaining 2111 lifetime of this pending registration, as well as the original 2112 Lifetime from the Registration Request. When the mobile node 2113 receives a valid Registration Reply, the mobile node MUST decrease 2114 its view of the remaining lifetime of the registration by the amount 2115 by which the home agent decreased the originally requested Lifetime. 2116 This procedure is equivalent to the mobile node starting a timer for 2117 the granted Lifetime at the time it sent the Registration Request, 2118 even though the granted Lifetime is not known to the mobile node 2119 until the Registration Reply is received. Since the Registration 2120 Request is certainly sent before the home agent begins timing the 2121 registration Lifetime (also based on the granted Lifetime), this 2122 procedure ensures that the mobile node will re-register before the 2123 home agent expires and deletes the registration, in spite of possibly 2124 non-negligible transmission delays for the original Registration 2125 Request and Reply that started the timing of the Lifetime at the 2126 mobile node and its home agent. 2128 3.6.2.3. Registration Request Denied 2130 If the Code field indicates that service is being denied, the mobile 2131 node SHOULD log the error. In certain cases the mobile node may be 2132 able to "repair" the error. These include: 2134 Code 69: (Denied by foreign agent, Lifetime too long) 2136 In this case, the Lifetime field in the Registration Reply will 2137 contain the maximum Lifetime value which that foreign agent is 2138 willing to accept in any Registration Request. The mobile node 2139 MAY attempt to register with this same agent, using a Lifetime 2140 in the Registration Request that MUST be less than or equal to 2141 the value specified in the Reply. 2143 Code 133: (Denied by home agent, Identification mismatch) 2145 In this case, the Identification field in the Registration 2146 Reply will contain a value that allows the mobile node to 2147 synchronize with the home agent, based upon the style of replay 2148 protection in effect (Section 5.7). The mobile node MUST 2149 adjust the parameters it uses to compute the Identification 2150 field based upon the information in the Registration Reply, 2151 before issuing any future Registration Requests. 2153 Code 136: (Denied by home agent, Unknown home agent address) 2155 This code is returned by a home agent when the mobile node is 2156 performing dynamic home agent address resolution as described 2157 in Sections 3.6.1.1 and 3.6.1.2. In this case, the Home Agent 2158 field within the Reply will contain the unicast IP address of 2159 the home agent returning the Reply. The mobile node MAY then 2160 attempt to register with this home agent in future Registration 2161 Requests. In addition, the mobile node SHOULD adjust the 2162 parameters it uses to compute the Identification field based 2163 upon the corresponding field in the Registration Reply, before 2164 issuing any future Registration Requests. 2166 3.6.3. Registration Retransmission 2168 When no Registration Reply has been received within a reasonable 2169 time, another Registration Request MAY be transmitted. When 2170 timestamps are used, a new registration Identification is chosen for 2171 each retransmission; thus it counts as a new registration. When 2172 nonces are used, the unanswered Request is retransmitted unchanged; 2173 thus the retransmission does not count as a new registration 2174 (Section 5.7). In this way a retransmission will not require the 2175 home agent to resynchronize with the mobile node by issuing another 2176 nonce in the case in which the original Registration Request (rather 2177 than its Registration Reply) was lost by the network. 2179 The maximum time until a new Registration Request is sent SHOULD be 2180 no greater than the requested Lifetime of the Registration Request. 2181 The minimum value SHOULD be large enough to account for the size 2182 of the messages, twice the round trip time for transmission to the 2183 home agent, and at least an additional 100 milliseconds to allow for 2184 processing the messages before responding. The round trip time for 2185 transmission to the home agent will be at least as large as the time 2186 required to transmit the messages at the link speed of the mobile 2187 node's current point of attachment. Some circuits add another 200 2188 milliseconds of satellite delay in the total round trip time to the 2189 home agent. The minimum time between Registration Requests MUST NOT 2190 be less than 1 second. Each successive retransmission timeout period 2191 SHOULD be at least twice the previous period, as long as that is less 2192 than the maximum as specified above. 2194 3.7. Foreign Agent Considerations 2196 The foreign agent plays a mostly passive role in Mobile IP 2197 registration. It relays Registration Requests between mobile 2198 nodes and home agents, and, when it provides the care-of address, 2199 decapsulates datagrams for delivery to the mobile node. It SHOULD 2200 also send periodic Agent Advertisement messages to advertise its 2201 presence as described in Section 2.3, if not detectable by link-layer 2202 means. 2204 A foreign agent MUST NOT transmit a Registration Request except when 2205 relaying a Registration Request received from a mobile node, to 2206 the mobile node's home agent. A foreign agent MUST NOT transmit a 2207 Registration Reply except when relaying a Registration Reply received 2208 from a mobile node's home agent, or when replying to a Registration 2209 Request received from a mobile node in the case in which the foreign 2210 agent is denying service to the mobile node. In particular, a 2211 foreign agent MUST NOT generate a Registration Request or Reply 2212 because a mobile node's registration Lifetime has expired. A foreign 2213 agent also MUST NOT originate a Registration Request message that 2214 asks for deregistration of a mobile node; however, it MUST relay 2215 valid (de)Registration Requests originated by a mobile node. 2217 3.7.1. Configuration and Registration Tables 2219 Each foreign agent MUST be configured with a care-of address. In 2220 addition, for each pending or current registration the foreign 2221 agent MUST maintain a visitor list entry containing the following 2222 information obtained from the mobile node's Registration Request: 2224 - the link-layer source address of the mobile node 2225 - the IP Source Address (the mobile node's Home Address) or its 2226 co-located care-of address (see description of the 'R' bit in 2227 section 2.1.1) 2228 - the IP Destination Address (as specified in 3.6.1.1) 2229 - the UDP Source Port 2230 - the Home Agent address 2231 - the Identification field 2232 - the requested registration Lifetime, and 2233 - the remaining Lifetime of the pending or current registration. 2235 If the mobile node's Home Address is zero in the Registration Request 2236 message, then the foreign agent MUST follow the procedures specified 2237 in RFC 2794 [2]. In particular, if the foreign agent cannot manage 2238 pending registration request records with such a zero Home Address 2239 for the mobile node, the foreign agent MUST return a Registration 2240 Reply with Code indicating NONZERO_HOMEADDR_REQD (see [2]). 2242 The foreign agent MAY configure a maximum number of pending 2243 registrations that it is willing to maintain (typically 5). 2244 Additional registrations SHOULD then be rejected by the foreign agent 2245 with code 66. The foreign agent MAY delete any pending Registration 2246 Request after the request has been pending for more than 7 seconds; 2247 in this case, the foreign agent SHOULD reject the Request with code 2248 78 (registration timeout). 2250 As with any node on the Internet, a foreign agent MAY also share 2251 mobility security associations with any other nodes. When relaying 2252 a Registration Request from a mobile node to its home agent, if the 2253 foreign agent shares a mobility security association with the home 2254 agent, it MUST add a Foreign-Home Authentication Extension to the 2255 Request and MUST check the required Foreign-Home Authentication 2256 Extension in the Registration Reply from the home agent (Sections 3.3 2257 and 3.4). Similarly, when receiving a Registration Request from 2258 a mobile node, if the foreign agent shares a mobility security 2259 association with the mobile node, it MUST check the required 2260 Mobile-Foreign Authentication Extension in the Request and MUST add a 2261 Mobile-Foreign Authentication Extension to the Registration Reply to 2262 the mobile node. 2264 3.7.2. Receiving Registration Requests 2266 If the foreign agent accepts a Registration Request from a mobile 2267 node, it checks to make sure that the indicated home agent address 2268 does not belong to any network interface of the foreign agent. If 2269 not, the foreign agent then MUST relay the Request to the indicated 2270 home agent. Otherwise, if the foreign agent denies the Request, it 2271 MUST send a Registration Reply to the mobile node with an appropriate 2272 denial Code, except in cases where the foreign agent would be 2273 required to send out more than one such denial per second to the same 2274 mobile node. The following sections describe this behavior in more 2275 detail. 2277 If the foreign agent has configured one of its network interfaces 2278 with the IP address specified by the mobile node as its home agent 2279 address, the foreign agent MUST NOT forward the request again. If 2280 the foreign agent serves the mobile node as a home agent, the foreign 2281 agent follows the procedures specified in section 3.8.2. Otherwise, 2282 if the foreign agent does not serve the mobile node as a home agent, 2283 the foreign agent rejects the Registration Request with code TBD-IANA 2284 (Invalid Home Agent Address). 2286 If a foreign agent receives a Registration Request from a mobile 2287 node in its visitor list, the existing visitor list entry for the 2288 mobile node SHOULD NOT be deleted or modified until the foreign 2289 agent receives a valid Registration Reply from the home agent with 2290 a Code indicating success. The foreign agent MUST record the new 2291 pending Request as a separate part of the existing visitor list 2292 entry for the mobile node. If the Registration Request requests 2293 deregistration, the existing visitor list entry for the mobile 2294 node SHOULD NOT be deleted until the foreign agent has received a 2295 successful Registration Reply. If the Registration Reply indicates 2296 that the Request (for registration or deregistration) was denied by 2297 the home agent, the existing visitor list entry for the mobile node 2298 MUST NOT be modified as a result of receiving the Registration Reply. 2300 3.7.2.1. Validity Checks 2302 Registration Requests with an invalid, non-zero UDP checksum MUST be 2303 silently discarded. Requests with non-zero bits in reserved fields 2304 MUST be rejected with code 70 (poorly formed request). Requests with 2305 the 'D' bit set to 0, nonzero lifetime, and specifying a care-of 2306 address not offered by the foreign agent, MUST be rejected with code 2307 77 (invalid care-of address). 2309 Also, the authentication in the Registration Request MUST be checked. 2310 If the foreign agent and the mobile node share a mobility security 2311 association, exactly one Mobile-Foreign Authentication Extension MUST 2312 be present in the Registration Request, and the foreign agent MUST 2313 check the Authenticator value in the Extension. If no Mobile-Foreign 2314 Authentication Extension is found, or if more than one Mobile-Foreign 2315 Authentication Extension is found, or if the Authenticator is 2316 invalid, the foreign agent MUST silently discard the Request and 2317 SHOULD log the event as a security exception. The foreign agent also 2318 SHOULD send a Registration Reply to the mobile node with Code 67. 2320 3.7.2.2. Forwarding a Valid Request to the Home Agent 2322 If the foreign agent accepts the mobile node's Registration Request, 2323 it MUST relay the Request to the mobile node's home agent as 2324 specified in the Home Agent field of the Registration Request. The 2325 foreign agent MUST NOT modify any of the fields beginning with the 2326 fixed portion of the Registration Request up through and including 2327 the Mobile-Home Authentication Extension or other authentication 2328 extension supplied by the mobile node as an authorization-enabling 2329 extension for the home agent. Otherwise, an authentication failure 2330 is very likely to occur at the home agent. In addition, the foreign 2331 agent proceeds as follows: 2333 - It MUST process and remove any extensions which do not precede any 2334 authorization-enabling extension. 2335 - It MAY append any of its own non-authentication Extensions of 2336 relevance to the home agent, if applicable, and 2337 - It MUST append the Foreign-Home Authentication Extension, if the 2338 foreign agent shares a mobility security association with the home 2339 agent. 2341 Specific fields within the IP header and the UDP header of the 2342 relayed Registration Request MUST be set as follows: 2344 IP Source Address 2345 The care-of address offered by the foreign agent for the 2346 mobile node sending the Registration Request. 2348 IP Destination Address 2349 Copied from the Home Agent field within the Registration 2350 Request. 2352 UDP Source Port 2353 2355 UDP Destination Port 2356 434 2358 After forwarding a valid Registration Request to the home agent, the 2359 foreign agent MUST begin timing the remaining lifetime of the pending 2360 registration based on the Lifetime in the Registration Request. If 2361 this lifetime expires before receiving a valid Registration Reply, 2362 the foreign agent MUST delete its visitor list entry for this pending 2363 registration. 2365 3.7.2.3. Denying Invalid Requests 2367 If the foreign agent denies the mobile node's Registration Request 2368 for any reason, it SHOULD send the mobile node a Registration Reply 2369 with a suitable denial Code. In such a case, the Home Address, Home 2370 Agent, and Identification fields within the Registration Reply are 2371 copied from the corresponding fields of the Registration Request. 2373 If the Reserved field is nonzero, the foreign agent MUST deny the 2374 Request and SHOULD return a Registration Reply with status code 70 2375 to the mobile node. If the Request is being denied because the 2376 requested Lifetime is too long, the foreign agent sets the Lifetime 2377 in the Reply to the maximum Lifetime value it is willing to accept in 2378 any Registration Request, and sets the Code field to 69. Otherwise, 2379 the Lifetime SHOULD be copied from the Lifetime field in the Request. 2381 Specific fields within the IP header and the UDP header of the 2382 Registration Reply MUST be set as follows: 2384 IP Source Address 2385 Copied from the IP Destination Address of Registration 2386 Request, unless the "All Agents Multicast" address was 2387 used. In this case, the foreign agent's address (on the 2388 interface from which the message will be sent) MUST be 2389 used. 2391 IP Destination Address 2393 If the Registration Reply is generated by the Foreign 2394 Agent in order to reject a mobile node's Registration 2395 Request, and the Registration Request contains a Home 2396 Address which is not 0.0.0.0, then the IP Destination 2397 Address is copied from the Home Address field of the 2398 Registration Request. Otherwise, if the Registration 2399 Reply is received from the Home Agent, and contains 2400 a Home Address which is not 0.0.0.0, then the IP 2401 Destination Address is copied from the Home Address 2402 field of the Registration Reply. Otherwise, the IP 2403 Destination Address of the Registration Reply is set to 2404 be 255.255.255.255. 2406 UDP Source Port 2407 434 2409 UDP Destination Port 2410 Copied from the UDP Source Port of the Registration 2411 Request. 2413 3.7.3. Receiving Registration Replies 2415 The foreign agent updates its visitor list when it receives a 2416 valid Registration Reply from a home agent. It then relays the 2417 Registration Reply to the mobile node. The following sections 2418 describe this behavior in more detail. 2420 If upon relaying a Registration Request to a home agent, the foreign 2421 agent receives an ICMP error message instead of a Registration Reply, 2422 then the foreign agent SHOULD send to the mobile node a Registration 2423 Reply with an appropriate "Home Agent Unreachable" failure Code 2424 (within the range 80-95, inclusive). See Section 3.7.2.3 for details 2425 on building the Registration Reply. 2427 3.7.3.1. Validity Checks 2429 Registration Replies with an invalid, non-zero UDP checksum MUST be 2430 silently discarded. 2432 When a foreign agent receives a Registration Reply message, it MUST 2433 search its visitor list for a pending Registration Request with the 2434 same mobile node home address as indicated in the Reply. If no 2435 such pending Request is found, and if the Registration Reply does 2436 not correspond with any pending Registration Request with a zero 2437 mobile node home address (see section 3.7.1), the foreign agent MUST 2438 silently discard the Reply. The foreign agent MUST also silently 2439 discard the Reply if the low-order 32 bits of the Identification 2440 field in the Reply do not match those in the Request. 2442 Also, the authentication in the Registration Reply MUST be checked. 2443 If the foreign agent and the home agent share a mobility security 2444 association, exactly one Foreign-Home Authentication Extension MUST 2445 be present in the Registration Reply, and the foreign agent MUST 2446 check the Authenticator value in the Extension. If no Foreign-Home 2447 Authentication Extension is found, or if more than one Foreign-Home 2448 Authentication Extension is found, or if the Authenticator is 2449 invalid, the foreign agent MUST silently discard the Reply and SHOULD 2450 log the event as a security exception. The foreign agent also MUST 2451 reject the mobile node's registration and SHOULD send a Registration 2452 Reply to the mobile node with Code 68. 2454 3.7.3.2. Forwarding Replies to the Mobile Node 2456 A Registration Reply which satisfies the validity checks of 2457 Section 3.8.2.1 is relayed to the mobile node. The foreign agent 2458 MUST also update its visitor list entry for the mobile node to 2459 reflect the results of the Registration Request, as indicated by the 2460 Code field in the Reply. If the Code indicates that the home agent 2461 has accepted the registration and the Lifetime field is nonzero, the 2462 foreign agent SHOULD set the Lifetime in the visitor list entry to 2463 the minimum of the following two values: 2465 - the value specified in the Lifetime field of the Registration 2466 Reply, and 2468 - the foreign agent's own maximum value for allowable registration 2469 lifetime. 2471 If, instead, the Code indicates that the Lifetime field is zero, 2472 the foreign agent MUST delete its visitor list entry for the mobile 2473 node. Finally, if the Code indicates that the registration was 2474 denied by the home agent, the foreign agent MUST delete its pending 2475 registration list entry, but not its visitor list entry, for the 2476 mobile node. 2478 The foreign agent MUST NOT modify any of the fields beginning 2479 with the fixed portion of the Registration Reply up through and 2480 including the Mobile-Home Authentication Extension. Otherwise, 2481 an authentication failure is very likely to occur at the mobile 2482 node. In addition, the foreign agent SHOULD perform the following 2483 additional procedures: 2485 - It MUST process and remove any Extensions which are not covered by 2486 any authorization-enabling extension. 2487 - It MAY append its own non-authentication Extensions that supply 2488 information to the mobile node, if applicable, and 2489 - It MUST append the Mobile-Foreign Authentication Extension, if 2490 the foreign agent shares a mobility security association with the 2491 mobile node. 2493 Specific fields within the IP header and the UDP header of the 2494 relayed Registration Reply are set according to the same rules 2495 specified in Section 3.7.2.3. 2497 After forwarding a valid Registration Reply to the mobile node, 2498 the foreign agent MUST update its visitor list entry for this 2499 registration as follows. If the Registration Reply indicates that 2500 the registration was accepted by the home agent, the foreign agent 2501 resets its timer of the lifetime of the registration to the Lifetime 2502 granted in the Registration Reply; unlike the mobile node's timing 2503 of the registration lifetime as described in Section 3.6.2.2, the 2504 foreign agent considers this lifetime to begin when it forwards the 2505 Registration Reply message, ensuring that the foreign agent will not 2506 expire the registration before the mobile node does. On the other 2507 hand, if the Registration Reply indicates that the registration was 2508 rejected by the home agent, the foreign agent deletes its visitor 2509 list entry for this attempted registration. 2511 3.8. Home Agent Considerations 2513 Home agents play a reactive role in the registration process. The 2514 home agent receives Registration Requests from the mobile node 2515 (perhaps relayed by a foreign agent), updates its record of the 2516 mobility bindings for this mobile node, and issues a suitable 2517 Registration Reply in response to each. 2519 A home agent MUST NOT transmit a Registration Reply except when 2520 replying to a Registration Request received from a mobile node. In 2521 particular, the home agent MUST NOT generate a Registration Reply to 2522 indicate that the Lifetime has expired. 2524 3.8.1. Configuration and Registration Tables 2526 Each home agent MUST be configured with an IP address and with the 2527 prefix size for the home network. The home agent MUST be configured 2528 with the mobility security association of each authorized mobile node 2529 that it is serving as a home agent. 2531 When the home agent accepts a valid Registration Request from a 2532 mobile node that it serves as a home agent, the home agent MUST 2533 create or modify the entry for this mobile node in its mobility 2534 binding list containing: 2536 - the mobile node's home address 2537 - the mobile node's care-of address 2538 - the Identification field from the Registration Reply 2539 - the remaining Lifetime of the registration 2541 The home agent MAY optionally offer the capability to dynamically 2542 associate a home address to a mobile node upon receiving a 2543 Registration Request from that mobile node. The method by which a 2544 home address is allocated to the mobile node is beyond the scope 2545 of this document, but see [2]. After the home agent makes the 2546 association of the home address to the mobile node, the home agent 2547 MUST put that home address into the Home Address field of the 2548 Registration Reply. 2550 The home agent MAY also maintain mobility security associations 2551 with various foreign agents. When receiving a Registration Request 2552 from a foreign agent, if the home agent shares a mobility security 2553 association with the foreign agent, the home agent MUST check the 2554 Authenticator in the required Foreign-Home Authentication Extension 2555 in the message, based on this mobility security association. 2556 Similarly, when sending a Registration Reply to a foreign agent, 2557 if the home agent shares a mobility security association with 2558 the foreign agent, the home agent MUST include a Foreign-Home 2559 Authentication Extension in the message, based on this mobility 2560 security association. 2562 3.8.2. Receiving Registration Requests 2564 If the home agent accepts an incoming Registration Request, it MUST 2565 update its record of the the mobile node's mobility binding(s) and 2566 SHOULD send a Registration Reply with a suitable Code. Otherwise 2567 (the home agent denies the Request), it SHOULD send a Registration 2568 Reply with an appropriate Code specifying the reason the Request 2569 was denied. The following sections describe this behavior in 2570 more detail. If the home agent does not support broadcasts (see 2571 section 4.3), it MUST ignore the 'B' bit (as opposed to rejecting the 2572 Registration Request). 2574 3.8.2.1. Validity Checks 2576 Registration Requests with an invalid, non-zero UDP checksum MUST be 2577 silently discarded by the home agent. 2579 The authentication in the Registration Request MUST be checked. This 2580 involves the following operations: 2582 a) The home agent MUST check for the presence of at least 2583 one authorization-enabling extension, and ensure that 2584 all indicated authentications are carried out. At least 2585 one authorization-enabling extension MUST be present in 2586 the Registration Request; and the home agent MUST either 2587 check the Authenticator value in the extension or verify 2588 that the authenticator value has been checked by another 2589 agent with which it has a security association. If no 2590 authorization-enabling extension is found, or if the 2591 Authenticator is invalid, the home agent MUST reject the 2592 mobile node's registration and SHOULD send a Registration 2593 Reply to the mobile node with Code 131. The home agent 2594 MUST then discard the Request and SHOULD log the error 2595 as a security exception. If the home agent receives a 2596 Registration Request without a Mobile-Home Authentication 2597 extension from a Mobile Node that has a security association 2598 with this home agent, the home agent MUST discard the Mobile 2599 Node's Registration Request. 2601 b) The home agent MUST check that the registration 2602 Identification field is correct using the context selected 2603 by the SPI within the authorization-enabling extension 2604 that the home agent used to authenticate the Mobile Node's 2605 Registration Request. See Section 5.7 for a description of 2606 how this is performed. If incorrect, the home agent MUST 2607 reject the Request and SHOULD send a Registration Reply to 2608 the mobile node with Code 133, including an Identification 2609 field computed in accordance with the rules specified in 2610 Section 5.7. The home agent MUST do no further processing 2611 with such a Request, though it SHOULD log the error as a 2612 security exception. 2614 c) If the home agent shares a mobility security association 2615 with the foreign agent, and this is a registration request 2616 (has non-zero lifetime), the home agent MUST check for the 2617 presence of a valid Foreign-Home Authentication Extension. 2618 Exactly one Foreign-Home Authentication Extension MUST 2619 be present in the Registration Request in this case, and 2620 the home agent MUST check the Authenticator value in the 2621 Extension. If no Foreign-Home Authentication Extension 2622 is found, or if more than one Foreign-Home Authentication 2623 Extension is found, or if the Authenticator is invalid, the 2624 home agent MUST reject the mobile node's registration and 2625 SHOULD send a Registration Reply to the mobile node with 2626 Code 132. The home agent MUST then discard the Request and 2627 SHOULD log the error as a security exception. 2629 In addition to checking the authentication in the Registration 2630 Request, home agents MUST deny Registration Requests that are sent to 2631 the subnet-directed broadcast address of the home network (as opposed 2632 to being unicast to the home agent). The home agent MUST discard 2633 the Request and SHOULD returning a Registration Reply with a Code 2634 of 136. In this case, the Registration Reply will contain the home 2635 agent's unicast address, so that the mobile node can re-issue the 2636 Registration Request with the correct home agent address. 2638 Note that some routers change the IP destination address of a 2639 datagram from a subnet-directed broadcast address to 255.255.255.255 2640 before injecting it into the destination subnet. In this case, home 2641 agents that attempt to pick up dynamic home agent discovery requests 2642 by binding a socket explicitly to the subnet-directed broadcast 2643 address will not see such packets. Home agent implementors should 2644 be prepared for both the subnet-directed broadcast address and 2645 255.255.255.255 if they wish to support dynamic home agent discovery. 2647 3.8.2.2. Accepting a Valid Request 2649 If the Registration Request satisfies the validity checks in 2650 Section 3.8.2.1, and the home agent is able to accommodate the 2651 Request, the home agent MUST update its mobility binding list for 2652 the requesting mobile node and MUST return a Registration Reply to 2653 the mobile node. In this case, the Reply Code will be either 0 if 2654 the home agent supports simultaneous mobility bindings, or 1 if it 2655 does not. See Section 3.8.3 for details on building the Registration 2656 Reply message. 2658 The home agent updates its record of the mobile node's mobility 2659 bindings as follows, based on the fields in the Registration Request: 2661 - If the Lifetime is zero and the Care-of Address equals the mobile 2662 node's home address, the home agent deletes all of the entries in 2663 the mobility binding list for the requesting mobile node. This 2664 is how a mobile node requests that its home agent cease providing 2665 mobility services. 2667 - If the Lifetime is zero and the Care-of Address does not equal 2668 the mobile node's home address, the home agent deletes only the 2669 entry containing the specified Care-of Address from the mobility 2670 binding list for the requesting mobile node. Any other active 2671 entries containing other care-of addresses will remain active. 2673 - If the Lifetime is nonzero, the home agent adds an entry 2674 containing the requested Care-of Address to the mobility binding 2675 list for the mobile node. If the 'S' bit is set and the home 2676 agent supports simultaneous mobility bindings, the previous 2677 mobility binding entries are retained. Otherwise, the home agent 2678 removes all previous entries in the mobility binding list for the 2679 mobile node. 2681 In all cases, the home agent MUST send a Registration Reply to 2682 the source of the Registration Request, which might indeed be a 2683 different foreign agent than that whose care-of address is being 2684 (de)registered. If the home agent shares a mobility security 2685 association with the foreign agent whose care-of address is being 2686 deregistered, and that foreign agent is different from the one which 2687 relayed the Registration Request, the home agent MAY additionally 2688 send a Registration Reply to the foreign agent whose care-of address 2689 is being deregistered. The home agent MUST NOT send such a Reply if 2690 it does not share a mobility security association with the foreign 2691 agent. If no Reply is sent, the foreign agent's visitor list will 2692 expire naturally when the original Lifetime expires. 2694 A deregistration which is passed through a foreign agent which 2695 is different from the the one whose care-of address is being 2696 deregistered MAY add a Foreign-Home Authentication Extension to 2697 such a deregistration. However, as this deregistration concerns a 2698 different foreign agent than the one whose authentication extension, 2699 the home agent MUST disregard the Foreign-Home Authentication 2700 Extension of such a deregistration. The remaining validity checks, 2701 as described in Section 3.8.2.1, are required in full. 2703 The home agent MUST NOT increase the Lifetime above that specified 2704 by the mobile node in the Registration Request. However, it is not 2705 an error for the mobile node to request a Lifetime longer than the 2706 home agent is willing to accept. In this case, the home agent simply 2707 reduces the Lifetime to a permissible value and returns this value in 2708 the Registration Reply. The Lifetime value in the Registration Reply 2709 informs the mobile node of the granted lifetime of the registration, 2710 indicating when it SHOULD re-register in order to maintain continued 2711 service. After the expiration of this registration lifetime, 2712 the home agent MUST delete its entry for this registration in its 2713 mobility binding list. 2715 If the Registration Request duplicates an accepted current 2716 Registration Request, the new Lifetime MUST NOT extend beyond the 2717 Lifetime originally granted. A Registration Request is a duplicate 2718 if the home address, care-of address, and Identification fields all 2719 equal those of an accepted current registration. 2721 In addition, if the home network implements ARP [17], and the 2722 Registration Request asks the home agent to create a mobility binding 2723 for a mobile node which previously had no binding (the mobile node 2724 was previously assumed to be at home), then the home agent MUST 2725 follow the procedures described in Section 4.6 with regard to ARP, 2726 proxy ARP, and gratuitous ARP. If the mobile node already had a 2727 previous mobility binding, the home agent MUST continue to follow the 2728 rules for proxy ARP described in Section 4.6. 2730 3.8.2.3. Denying an Invalid Request 2732 If the Registration Request does not satisfy all of the validity 2733 checks in Section 3.8.2.1, or the home agent is unable to accommodate 2734 the Request, the home agent SHOULD return a Registration Reply to the 2735 mobile node with a Code that indicates the reason for the error. If 2736 a foreign agent was involved in relaying the Request, this allows the 2737 foreign agent to delete its pending visitor list entry. Also, this 2738 informs the mobile node of the reason for the error such that it may 2739 attempt to fix the error and issue another Request. 2741 This section lists a number of reasons the home agent might reject a 2742 Request, and provides the Code value it should use in each instance. 2743 See Section 3.8.3 for additional details on building the Registration 2744 Reply message. 2746 Many reasons for rejecting a registration are administrative 2747 in nature. For example, a home agent can limit the number of 2748 simultaneous registrations for a mobile node, by rejecting any 2749 registrations that would cause its limit to be exceeded, and 2750 returning a Registration Reply with error code 135. Similarly, a 2751 home agent may refuse to grant service to mobile nodes which have 2752 entered unauthorized service areas by returning a Registration Reply 2753 with a Code of 129. 2755 Requests with non-zero bits in reserved fields MUST be rejected with 2756 code 134 (poorly formed request). 2758 3.8.3. Sending Registration Replies 2760 If the home agent accepts a Registration Request, it then MUST update 2761 its record of the mobile node's mobility binding(s) and SHOULD send a 2762 Registration Reply with a suitable Code. Otherwise (the home agent 2763 has denied the Request), it SHOULD send a Registration Reply with an 2764 appropriate Code specifying the reason the Request was denied. The 2765 following sections provide additional detail for the values the home 2766 agent MUST supply in the fields of Registration Reply messages. 2768 3.8.3.1. IP/UDP Fields 2770 This section provides the specific rules by which home agents pick 2771 values for the IP and UDP header fields of a Registration Reply. 2773 IP Source Address 2774 Copied from the IP Destination Address of Registration 2775 Request, unless a multicast or broadcast address was 2776 used. If the IP Destination Address of the Registration 2777 Request was a broadcast or multicast address, the IP 2778 Source Address of the Registration Reply MUST be set to 2779 the home agent's (unicast) IP address. 2781 IP Destination Address 2782 Copied from the IP Source Address of the Registration 2783 Request. 2785 UDP Source Port 2786 Copied from the UDP Destination Port of the Registration 2787 Request. 2789 UDP Destination Port 2790 Copied from the UDP Source Port of the Registration 2791 Request. 2793 When sending a Registration Reply in response to a Registration 2794 Request that requested deregistration of the mobile node (the 2795 Lifetime is zero and the Care-of Address equals the mobile node's 2796 home address) and in which the IP Source Address was also set to 2797 the mobile node's home address (this is the normal method used by a 2798 mobile node to deregister when it returns to its home network), the 2799 IP Destination Address in the Registration Reply will be set to the 2800 mobile node's home address, as copied from the IP Source Address of 2801 the Request. 2803 In this case, when transmitting the Registration Reply, the home 2804 agent MUST transmit the Reply directly onto the home network as if 2805 the mobile node were at home, bypassing any mobility binding list 2806 entry that may still exist at the home agent for the destination 2807 mobile node. In particular, for a mobile node returning home 2808 after being registered with a care-of address, if the mobile node's 2809 new Registration Request is not accepted by the home agent, the 2810 mobility binding list entry for the mobile node will still indicate 2811 that datagrams addressed to the mobile node should be tunneled to 2812 the mobile node's registered care-of address; when sending the 2813 Registration Reply indicating the rejection of this Request, this 2814 existing binding list entry MUST be ignored, and the home agent MUST 2815 transmit this Reply as if the mobile node were at home. 2817 3.8.3.2. Registration Reply Fields 2819 This section provides the specific rules by which home agents pick 2820 values for the fields within the fixed portion of a Registration 2821 Reply. 2823 The Code field of the Registration Reply is chosen in accordance with 2824 the rules specified in the previous sections. When replying to an 2825 accepted registration, a home agent SHOULD respond with Code 1 if it 2826 does not support simultaneous registrations. 2828 The Lifetime field MUST be copied from the corresponding field in 2829 the Registration Request, unless the requested value is greater than 2830 the maximum length of time the home agent is willing to provide the 2831 requested service. In such a case, the Lifetime MUST be set to the 2832 length of time that service will actually be provided by the home 2833 agent. This reduced Lifetime SHOULD be the maximum Lifetime allowed 2834 by the home agent (for this mobile node and care-of address). 2836 If the Home Address field of the Registration Request is nonzero, 2837 it MUST be copied into the Home Address field of the Registration 2838 Reply message. If the Home Agent cannot support the specified 2839 nonzero unicast address in the Home Address field of the Registration 2840 Request, then the Home Agent MUST reject the Registration Request 2841 with an error code of 129. 2843 Otherwise, if the Home Address field of the Registration Request is 2844 zero as specified in section 3.6, the home agent SHOULD arrange for 2845 the selection of a home address for the mobile node, and insert the 2846 selected address into the Home Address field of the Registration 2847 Reply message. See [2] for further relevant details in the case 2848 where mobile nodes identify themselves using an NAI instead of their 2849 IP home address. 2851 If the Home Agent field in the Registration Request contains a 2852 unicast address of this home agent, then that field MUST be copied 2853 into the Home Agent field of the Registration Reply. Otherwise, the 2854 home agent MUST set the Home Agent field in the Registration Reply to 2855 its unicast address. In this latter case, the home agent MUST reject 2856 the registration with a suitable code (e.g., Code 136) to prevent the 2857 mobile node from possibly being simultaneously registered with two or 2858 more home agents. 2860 3.8.3.3. Extensions 2862 This section describes the ordering of any required and any optional 2863 Mobile IP Extensions that a home agent appends to a Registration 2864 Reply. The following ordering MUST be followed: 2866 a) The IP header, followed by the UDP header, followed by the 2867 fixed-length portion of the Registration Reply, 2869 b) If present, any non-authentication Extensions used by the 2870 mobile node (which may or may not also be used by the foreign 2871 agent), 2873 c) The Mobile-Home Authentication Extension, 2875 d) If present, any non-authentication Extensions used only by 2876 the foreign agent, and 2878 e) The Foreign-Home Authentication Extension, if present. 2880 Note that items (a) and (c) MUST appear in every Registration Reply 2881 sent by the home agent. Items (b), (d), and (e) are optional. 2882 However, item (e) MUST be included when the home agent and the 2883 foreign agent share a mobility security association. 2885 4. Routing Considerations 2887 This section describes how mobile nodes, home agents, and (possibly) 2888 foreign agents cooperate to route datagrams to/from mobile nodes that 2889 are connected to a foreign network. The mobile node informs its 2890 home agent of its current location using the registration procedure 2891 described in Section 3. See the protocol overview in Section 1.7 for 2892 the relative locations of the mobile node's home address with respect 2893 to its home agent, and the mobile node itself with respect to any 2894 foreign agent with which it might attempt to register. 2896 4.1. Encapsulation Types 2898 Home agents and foreign agents MUST support tunneling datagrams 2899 using IP in IP encapsulation [15]. Any mobile node that uses a 2900 co-located care-of address MUST support receiving datagrams tunneled 2901 using IP in IP encapsulation. Minimal encapsulation [16] and GRE 2902 encapsulation [13] are alternate encapsulation methods which MAY 2903 optionally be supported by mobility agents and mobile nodes. The use 2904 of these alternative forms of encapsulation, when requested by the 2905 mobile node, is otherwise at the discretion of the home agent. 2907 4.2. Unicast Datagram Routing 2909 4.2.1. Mobile Node Considerations 2911 When connected to its home network, a mobile node operates without 2912 the support of mobility services. That is, it operates in the same 2913 way as any other (fixed) host or router. The method by which a 2914 mobile node selects a default router when connected to its home 2915 network, or when away from home and using a co-located care-of 2916 address, is outside the scope of this document. ICMP Router 2917 Advertisement [5] is one such method. 2919 When registered on a foreign network, the mobile node chooses a 2920 default router by the following rules: 2922 - If the mobile node is registered using a foreign agent care-of 2923 address, it MAY use its foreign agent as a first-hop router. 2924 The foreign agent's MAC address can be learned from Agent 2925 Advertisement. Otherwise, the mobile node MUST choose its 2926 default router from among the Router Addresses advertised in the 2927 ICMP Router Advertisement portion of that Agent Advertisement 2928 message. 2930 - If the mobile node is registered directly with its home agent 2931 using a co-located care-of address, then the mobile node SHOULD 2932 choose its default router from among those advertised in any 2933 ICMP Router Advertisement message that it receives for which 2934 its externally obtained care-of address and the Router Address 2935 match under the network prefix. If the mobile node's externally 2936 obtained care-of address matches the IP source address of the 2937 Agent Advertisement under the network prefix, the mobile node MAY 2938 also consider that IP source address as another possible choice 2939 for the IP address of a default router. The network prefix MAY 2940 be obtained from the Prefix-Lengths Extension in the Router 2941 Advertisement, if present. The prefix MAY also be obtained 2942 through other mechanisms beyond the scope of this document. 2944 While they are away from the home network, mobile nodes MUST NOT 2945 broadcast ARP packets to find the MAC address of another Internet 2946 node. Thus, the (possibly empty) list of Router Addresses from the 2947 ICMP Router Advertisement portion of the message is not useful for 2948 selecting a default router, unless the mobile node has some means 2949 not involving broadcast ARP and not specified within this document 2950 for obtaining the MAC address of one of the routers in the list. 2951 Similarly, in the absence of unspecified mechanisms for obtaining MAC 2952 addresses on foreign networks, the mobile node MUST ignore redirects 2953 to other routers on foreign networks. 2955 4.2.2. Foreign Agent Considerations 2957 Upon receipt of an encapsulated datagram sent to its advertised 2958 care-of address, a foreign agent MUST compare the inner destination 2959 address to those entries in its visitor list. When the destination 2960 does not match the address of any mobile node currently in the 2961 visitor list, the foreign agent MUST NOT forward the datagram without 2962 modifications to the original IP header, because otherwise a routing 2963 loop is likely to result. The datagram SHOULD be silently discarded. 2964 ICMP Destination Unreachable MUST NOT be sent when a foreign agent 2965 is unable to forward an incoming tunneled datagram. Otherwise, the 2966 foreign agent forwards the decapsulated datagram to the mobile node. 2968 The foreign agent MUST NOT advertise to other routers in its routing 2969 domain, nor to any other mobile node, the presence of a mobile router 2970 (Section 4.5) or mobile node in its visitor list. 2972 The foreign agent MUST route datagrams it receives from registered 2973 mobile nodes. At a minimum, this means that the foreign agent 2974 must verify the IP Header Checksum, decrement the IP Time To Live, 2975 recompute the IP Header Checksum, and forward such datagrams to a 2976 default router. 2978 A foreign agent MUST NOT use broadcast ARP for a mobile node's MAC 2979 address on a foreign network. It may obtain the MAC address by 2980 copying the information from an Agent Solicitation or a Registration 2981 Request transmitted from a mobile node. A foreign agent's ARP cache 2982 for the mobile node's IP address MUST NOT be allowed to expire before 2983 the mobile node's visitor list entry expires, unless the foreign 2984 agent has some way other than broadcast ARP to refresh its MAC 2985 address associated with the mobile node's IP address. 2987 Each foreign agent SHOULD support the mandatory features for reverse 2988 tunneling [12]. 2990 4.2.3. Home Agent Considerations 2992 The home agent MUST be able to intercept any datagrams on the 2993 home network addressed to the mobile node while the mobile node is 2994 registered away from home. Proxy and gratuitous ARP MAY be used in 2995 enabling this interception, as specified in Section 4.6. 2997 The home agent must examine the IP Destination Address of all 2998 arriving datagrams to see if it is equal to the home address of any 2999 of its mobile nodes registered away from home. If so, the home 3000 agent tunnels the datagram to the mobile node's currently registered 3001 care-of address or addresses. If the home agent supports the 3002 optional capability of multiple simultaneous mobility bindings, it 3003 tunnels a copy to each care-of address in the mobile node's mobility 3004 binding list. If the mobile node has no current mobility bindings, 3005 the home agent MUST NOT attempt to intercept datagrams destined for 3006 the mobile node, and thus will not in general receive such datagrams. 3007 However, if the home agent is also a router handling common IP 3008 traffic, it is possible that it will receive such datagrams for 3009 forwarding onto the home network. In this case, the home agent MUST 3010 assume the mobile node is at home and simply forward the datagram 3011 directly onto the home network. 3013 For multihomed home agents, the source address in the outer IP header 3014 of the encapsulated datagram MUST be the address sent to the mobile 3015 node in the home agent field of the registration reply. That is, the 3016 home agent cannot use the the address of some other network interface 3017 as the source address. 3019 See Section 4.1 regarding methods of encapsulation that may be used 3020 for tunneling. Nodes implementing tunneling SHOULD also implement 3021 the "tunnel soft state" mechanism [15], which allows ICMP error 3022 messages returned from the tunnel to correctly be reflected back to 3023 the original senders of the tunneled datagrams. 3025 Home agents MUST decapsulate packets addressed to themselves, sent 3026 by a mobile node for the purpose of maintaining location privacy, as 3027 described in Section 5.5. This feature is also required for support 3028 of reverse tunneling [12]. 3030 If the Lifetime for a given mobility binding expires before the 3031 home agent has received another valid Registration Request for that 3032 mobile node, then that binding is deleted from the mobility binding 3033 list. The home agent MUST NOT send any Registration Reply message 3034 simply because the mobile node's binding has expired. The entry in 3035 the visitor list of the mobile node's current foreign agent will 3036 expire naturally, probably at the same time as the binding expired 3037 at the home agent. When a mobility binding's lifetime expires, the 3038 home agent MUST delete the binding, but it MUST retain any other 3039 (non-expired) simultaneous mobility bindings that it holds for the 3040 mobile node. 3042 When a home agent receives a datagram, intercepted for one of its 3043 mobile nodes registered away from home, the home agent MUST examine 3044 the datagram to check if it is already encapsulated. If so, special 3045 rules apply in the forwarding of that datagram to the mobile node: 3047 - If the inner (encapsulated) Destination Address is the same 3048 as the outer Destination Address (the mobile node), then the 3049 home agent MUST also examine the outer Source Address of the 3050 encapsulated datagram (the source address of the tunnel). If 3051 this outer Source Address is the same as the mobile node's 3052 current care-of address, the home agent MUST silently discard 3053 that datagram in order to prevent a likely routing loop. If, 3054 instead, the outer Source Address is NOT the same as the mobile 3055 node's current care-of address, then the home agent SHOULD 3056 forward the datagram to the mobile node. In order to forward 3057 the datagram in this case, the home agent MAY simply alter the 3058 outer Destination Address to the care-of address, rather than 3059 re-encapsulating the datagram. 3061 - Otherwise (the inner Destination Address is NOT the same as the 3062 outer Destination Address), the home agent SHOULD encapsulate 3063 the datagram again (nested encapsulation), with the new outer 3064 Destination Address set equal to the mobile node's care-of 3065 address. That is, the home agent forwards the entire datagram 3066 to the mobile node in the same way as any other datagram 3067 (encapsulated already or not). 3069 4.3. Broadcast Datagrams 3071 When a home agent receives a broadcast datagram, it MUST NOT forward 3072 the datagram to any mobile nodes in its mobility binding list other 3073 than those that have requested forwarding of broadcast datagrams. A 3074 mobile node MAY request forwarding of broadcast datagrams by setting 3075 the 'B' bit in its Registration Request message (Section 3.3). For 3076 each such registered mobile node, the home agent SHOULD forward 3077 received broadcast datagrams to the mobile node, although it is 3078 a matter of configuration at the home agent as to which specific 3079 categories of broadcast datagrams will be forwarded to such mobile 3080 nodes. 3082 If the 'D' bit was set in the mobile node's Registration Request 3083 message, indicating that the mobile node is using a co-located 3084 care-of address, the home agent simply tunnels appropriate broadcast 3085 IP datagrams to the mobile node's care-of address. Otherwise (the 3086 'D' bit was NOT set), the home agent first encapsulates the broadcast 3087 datagram in a unicast datagram addressed to the mobile node's home 3088 address, and then tunnels this encapsulated datagram to the foreign 3089 agent. This extra level of encapsulation is required so that the 3090 foreign agent can determine which mobile node should receive the 3091 datagram after it is decapsulated. When received by the foreign 3092 agent, the unicast encapsulated datagram is detunneled and delivered 3093 to the mobile node in the same way as any other datagram. In either 3094 case, the mobile node must decapsulate the datagram it receives in 3095 order to recover the original broadcast datagram. 3097 4.4. Multicast Datagram Routing 3099 As mentioned previously, a mobile node that is connected to its 3100 home network functions in the same way as any other (fixed) host 3101 or router. Thus, when it is at home, a mobile node functions 3102 identically to other multicast senders and receivers. This section 3103 therefore describes the behavior of a mobile node that is visiting a 3104 foreign network. 3106 In order to receive multicasts, a mobile node MUST join the multicast 3107 group in one of two ways. First, a mobile node MAY join the group 3108 via a (local) multicast router on the visited subnet. This option 3109 assumes that there is a multicast router present on the visited 3110 subnet. If the mobile node is using a co-located care-of address, 3111 it SHOULD use this address as the source IP address of its IGMP [6] 3112 messages. Otherwise, it MAY use its home address. 3114 Alternatively, a mobile node which wishes to receive multicasts MAY 3115 join groups via a bi-directional tunnel to its home agent, assuming 3116 that its home agent is a multicast router. The mobile node tunnels 3117 IGMP messages to its home agent and the home agent forwards multicast 3118 datagrams down the tunnel to the mobile node. For packets tunneled 3119 to the home agent, the source address in the IP header SHOULD be the 3120 mobile node's home address. 3122 The rules for multicast datagram delivery to mobile nodes in this 3123 case are identical to those for broadcast datagrams (Section 4.3). 3124 Namely, if the mobile node is using a co-located care-of address (the 3125 'D' bit was set in the mobile node's Registration Request), then 3126 the home agent SHOULD tunnel the datagram to this care-of address; 3127 otherwise, the home agent MUST first encapsulate the datagram in a 3128 unicast datagram addressed to the mobile node's home address and then 3129 MUST tunnel the resulting datagram (nested tunneling) to the mobile 3130 node's care-of address. For this reason, the mobile node MUST be 3131 capable of decapsulating packets sent to its home address in order to 3132 receive multicast datagrams using this method. 3134 A mobile node that wishes to send datagrams to a multicast group 3135 also has two options: (1) send directly on the visited network; or 3136 (2) send via a tunnel to its home agent. Because multicast routing 3137 in general depends upon the IP source address, a mobile node which 3138 sends multicast datagrams directly on the visited network MUST use a 3139 co-located care-of address as the IP source address. Similarly, a 3140 mobile node which tunnels a multicast datagram to its home agent MUST 3141 use its home address as the IP source address of both the (inner) 3142 multicast datagram and the (outer) encapsulating datagram. This 3143 second option assumes that the home agent is a multicast router. 3145 4.5. Mobile Routers 3147 A mobile node can be a router that is responsible for the mobility of 3148 one or more entire networks moving together, perhaps on an airplane, 3149 a ship, a train, an automobile, a bicycle, or a kayak. The nodes 3150 connected to a network served by the mobile router may themselves 3151 be fixed nodes or mobile nodes or routers. In this document, such 3152 networks are called "mobile networks". 3154 A mobile router MAY act as a foreign agent and provide a foreign 3155 agent care-of address to mobile nodes connected to the mobile 3156 network. Typical routing to a mobile node via a mobile router in 3157 this case is illustrated by the following example: 3159 a) A laptop computer is disconnected from its home network and 3160 later attached to a network port in the seat back of an 3161 aircraft. The laptop computer uses Mobile IP to register on 3162 this foreign network, using a foreign agent care-of address 3163 discovered through an Agent Advertisement from the aircraft's 3164 foreign agent. 3166 b) The aircraft network is itself mobile. Suppose the node 3167 serving as the foreign agent on the aircraft also serves as 3168 the default router that connects the aircraft network to the 3169 rest of the Internet. When the aircraft is at home, this 3170 router is attached to some fixed network at the airline's 3171 headquarters, which is the router's home network. While 3172 the aircraft is in flight, this router registers from time 3173 to time over its radio link with a series of foreign agents 3174 below it on the ground. This router's home agent is a node 3175 on the fixed network at the airline's headquarters. 3177 c) Some correspondent node sends a datagram to the laptop 3178 computer, addressing the datagram to the laptop's home 3179 address. This datagram is initially routed to the laptop's 3180 home network. 3182 d) The laptop's home agent intercepts the datagram on the home 3183 network and tunnels it to the laptop's care-of address, which 3184 in this example is an address of the node serving as router 3185 and foreign agent on the aircraft. Normal IP routing will 3186 route the datagram to the fixed network at the airline's 3187 headquarters. 3189 e) The aircraft router and foreign agent's home agent there 3190 intercepts the datagram and tunnels it to its current care-of 3191 address, which in this example is some foreign agent on the 3192 ground below the aircraft. The original datagram from the 3193 correspondent node has now been encapsulated twice: once 3194 by the laptop's home agent and again by the aircraft's home 3195 agent. 3197 f) The foreign agent on the ground decapsulates the datagram, 3198 yielding a datagram still encapsulated by the laptop's home 3199 agent, with a destination address of the laptop's care-of 3200 address. The ground foreign agent sends the resulting 3201 datagram over its radio link to the aircraft. 3203 g) The foreign agent on the aircraft decapsulates the datagram, 3204 yielding the original datagram from the correspondent node, 3205 with a destination address of the laptop's home address. 3206 The aircraft foreign agent delivers the datagram over the 3207 aircraft network to the laptop's link-layer address. 3209 This example illustrated the case in which a mobile node is attached 3210 to a mobile network. That is, the mobile node is mobile with respect 3211 to the network, which itself is also mobile (here with respect to 3212 the ground). If, instead, the node is fixed with respect to the 3213 mobile network (the mobile network is the fixed node's home network), 3214 then either of two methods may be used to cause datagrams from 3215 correspondent nodes to be routed to the fixed node. 3217 A home agent MAY be configured to have a permanent registration for 3218 the fixed node, that indicates the mobile router's address as the 3219 fixed host's care-of address. The mobile router's home agent will 3220 usually be used for this purpose. The home agent is then responsible 3221 for advertising connectivity using normal routing protocols to the 3222 fixed node. Any datagrams sent to the fixed node will thus use 3223 nested tunneling as described above. 3225 Alternatively, the mobile router MAY advertise connectivity to the 3226 entire mobile network using normal IP routing protocols through a 3227 bi-directional tunnel to its own home agent. This method avoids the 3228 need for nested tunneling of datagrams. 3230 4.6. ARP, Proxy ARP, and Gratuitous ARP 3232 The use of ARP [17] requires special rules for correct operation when 3233 wireless or mobile nodes are involved. The requirements specified 3234 in this section apply to all home networks in which ARP is used for 3235 address resolution. 3237 In addition to the normal use of ARP for resolving a target node's 3238 link-layer address from its IP address, this document distinguishes 3239 two special uses of ARP: 3241 - A Proxy ARP [20] is an ARP Reply sent by one node on behalf 3242 of another node which is either unable or unwilling to answer 3243 its own ARP Requests. The sender of a Proxy ARP reverses the 3244 Sender and Target Protocol Address fields as described in [17], 3245 but supplies some configured link-layer address (generally, its 3246 own) in the Sender Hardware Address field. The node receiving 3247 the Reply will then associate this link-layer address with the 3248 IP address of the original target node, causing it to transmit 3249 future datagrams for this target node to the node with that 3250 link-layer address. 3252 - A Gratuitous ARP [44] is an ARP packet sent by a node in order to 3253 spontaneously cause other nodes to update an entry in their ARP 3254 cache. A gratuitous ARP MAY use either an ARP Request or an ARP 3255 Reply packet. In either case, the ARP Sender Protocol Address 3256 and ARP Target Protocol Address are both set to the IP address 3257 of the cache entry to be updated, and the ARP Sender Hardware 3258 Address is set to the link-layer address to which this cache 3259 entry should be updated. When using an ARP Reply packet, the 3260 Target Hardware Address is also set to the link-layer address to 3261 which this cache entry should be updated (this field is not used 3262 in an ARP Request packet). 3264 In either case, for a gratuitous ARP, the ARP packet MUST be 3265 transmitted as a local broadcast packet on the local link. As 3266 specified in [17], any node receiving any ARP packet (Request or 3267 Reply) MUST update its local ARP cache with the Sender Protocol 3268 and Hardware Addresses in the ARP packet, if the receiving node 3269 has an entry for that IP address already in its ARP cache. This 3270 requirement in the ARP protocol applies even for ARP Request 3271 packets, and for ARP Reply packets that do not match any ARP 3272 Request transmitted by the receiving node [17]. 3274 While a mobile node is registered on a foreign network, its home 3275 agent uses proxy ARP [20] to reply to ARP Requests it receives that 3276 seek the mobile node's link-layer address. When receiving an ARP 3277 Request, the home agent MUST examine the target IP address of the 3278 Request, and if this IP address matches the home address of any 3279 mobile node for which it has a registered mobility binding, the home 3280 agent MUST transmit an ARP Reply on behalf of the mobile node. After 3281 exchanging the sender and target addresses in the packet [20], the 3282 home agent MUST set the sender link-layer address in the packet to 3283 the link-layer address of its own interface over which the Reply will 3284 be sent. 3286 When a mobile node leaves its home network and registers a binding on 3287 a foreign network, its home agent uses gratuitous ARP to update the 3288 ARP caches of nodes on the home network. This causes such nodes to 3289 associate the link-layer address of the home agent with the mobile 3290 node's home (IP) address. When registering a binding for a mobile 3291 node for which the home agent previously had no binding (the mobile 3292 node was assumed to be at home), the home agent MUST transmit a 3293 gratuitous ARP on behalf of the mobile node. This gratuitous ARP 3294 packet MUST be transmitted as a broadcast packet on the link on which 3295 the mobile node's home address is located. Since broadcasts on the 3296 local link (such as Ethernet) are typically not guaranteed to be 3297 reliable, the gratuitous ARP packet SHOULD be retransmitted a small 3298 number of times to increase its reliability. 3300 When a mobile node returns to its home network, the mobile node 3301 and its home agent use gratuitous ARP to cause all nodes on the 3302 mobile node's home network to update their ARP caches to once again 3303 associate the mobile node's own link-layer address with the mobile 3304 node's home (IP) address. Before transmitting the (de)Registration 3305 Request message to its home agent, the mobile node MUST transmit this 3306 gratuitous ARP on its home network as a local broadcast on this link. 3307 The gratuitous ARP packet SHOULD be retransmitted a small number of 3308 times to increase its reliability, but these retransmissions SHOULD 3309 proceed in parallel with the transmission and processing of its 3310 (de)Registration Request. 3312 When the mobile node's home agent receives and accepts this 3313 (de)Registration Request, the home agent MUST also transmit a 3314 gratuitous ARP on the mobile node's home network. This gratuitous 3315 ARP also is used to associate the mobile node's home address with 3316 the mobile node's own link-layer address. A gratuitous ARP is 3317 transmitted by both the mobile node and its home agent, since in the 3318 case of wireless network interfaces, the area within transmission 3319 range of the mobile node will likely differ from that within range 3320 of its home agent. The ARP packet from the home agent MUST be 3321 transmitted as a local broadcast on the mobile node's home link, 3322 and SHOULD be retransmitted a small number of times to increase 3323 its reliability; these retransmissions, however, SHOULD proceed in 3324 parallel with the transmission and processing of its (de)Registration 3325 Reply. 3327 While the mobile node is away from home, it MUST NOT transmit any 3328 broadcast ARP Request or ARP Reply messages. Finally, while the 3329 mobile node is away from home, it MUST NOT reply to ARP Requests 3330 in which the target IP address is its own home address unless the 3331 ARP Request is unicast by a foreign agent with which the mobile 3332 node is attempting to register or a foreign agent with which the 3333 mobile node has an unexpired registration. In the latter case, the 3334 mobile node MUST use a unicast ARP Reply to respond to the foreign 3335 agent. Note that if the mobile node is using a co-located care-of 3336 address and receives an ARP Request in which the target IP address is 3337 this care-of address, then the mobile node SHOULD reply to this ARP 3338 Request. Note also that, when transmitting a Registration Request on 3339 a foreign network, a mobile node may discover the link-layer address 3340 of a foreign agent by storing the address as it is received from the 3341 Agent Advertisement from that foreign agent, but not by transmitting 3342 a broadcast ARP Request message. 3344 The specific order in which each of the above requirements for the 3345 use of ARP, proxy ARP, and gratuitous ARP are applied, relative to 3346 the transmission and processing of the mobile node's Registration 3347 Request and Registration Reply messages when leaving home or 3348 returning home, are important to the correct operation of the 3349 protocol. 3351 To summarize the above requirements, when a mobile node leaves its 3352 home network, the following steps, in this order, MUST be performed: 3354 - The mobile node decides to register away from home, perhaps 3355 because it has received an Agent Advertisement from a foreign 3356 agent and has not recently received one from its home agent. 3358 - Before transmitting the Registration Request, the mobile node 3359 disables its own future processing of any ARP Requests it 3360 may subsequently receive requesting the link-layer address 3361 corresponding to its home address, except insofar as necessary to 3362 communicate with foreign agents on visited networks. 3364 - The mobile node transmits its Registration Request. 3366 - When the mobile node's home agent receives and accepts the 3367 Registration Request, it performs a gratuitous ARP on behalf 3368 of the mobile node, and begins using proxy ARP to reply to ARP 3369 Requests that it receives requesting the mobile node's link-layer 3370 address. In the gratuitous ARP, the ARP Sender Hardware 3371 Address is set to the link-layer address of the home agent. If, 3372 instead, the home agent rejects the Registration Request, no ARP 3373 processing (gratuitous nor proxy) is performed by the home agent. 3375 When a mobile node later returns to its home network, the following 3376 steps, in this order, MUST be performed: 3378 - The mobile node decides to register at home, perhaps because it 3379 has received an Agent Advertisement from its home agent. 3381 - Before transmitting the Registration Request, the mobile node 3382 re-enables its own future processing of any ARP Requests it may 3383 subsequently receive requesting its link-layer address. 3385 - The mobile node performs a gratuitous ARP for itself. In this 3386 gratuitous ARP, the ARP Sender Hardware Address is set to the 3387 link-layer address of the mobile node. 3389 - The mobile node transmits its Registration Request. 3391 - When the mobile node's home agent receives and accepts the 3392 Registration Request, it stops using proxy ARP to reply to ARP 3393 Requests that it receives requesting the mobile node's link-layer 3394 address, and then performs a gratuitous ARP on behalf of the 3395 mobile node. In this gratuitous ARP, the ARP Sender Hardware 3396 Address is set to the link-layer address of the mobile node. 3397 If, instead, the home agent rejects the Registration Request, 3398 the home agent MUST NOT make any change to the way it performs 3399 ARP processing (gratuitous nor proxy) for the mobile node. In 3400 this latter case, the home agent should operate as if the mobile 3401 node has not returned home, and continue to perform proxy ARP on 3402 behalf of the mobile node. 3404 5. Security Considerations 3406 The mobile computing environment is potentially very different from 3407 the ordinary computing environment. In many cases, mobile computers 3408 will be connected to the network via wireless links. Such links 3409 are particularly vulnerable to passive eavesdropping, active replay 3410 attacks, and other active attacks. 3412 5.1. Message Authentication Codes 3414 Home agents and mobile nodes MUST be able to perform authentication. 3415 The default algorithm is HMAC-MD5 [10], with a key size of 128 bits. 3416 The foreign agent MUST also support authentication using HMAC-MD5 and 3417 key sizes of 128 bits or greater, with manual key distribution. Keys 3418 with arbitrary binary values MUST be supported. 3420 The "prefix+suffix" use of MD5 to protect data and a shared secret 3421 is considered vulnerable to attack by the cryptographic community. 3422 Where backward compatibility with existing Mobile IP implementations 3423 that use this mode is needed, new implementations SHOULD include 3424 keyed MD5 [22] as one of the additional authentication algorithms 3425 for use when producing and verifying the authentication data that is 3426 supplied with Mobile IP registration messages, for instance in the 3427 extensions specified in sections 3.5.2, 3.5.3, and 3.5.4. 3429 More authentication algorithms, algorithm modes, key distribution 3430 methods, and key sizes MAY also be supported for all of these 3431 extensions. 3433 5.2. Areas of Security Concern in this Protocol 3435 The registration protocol described in this document will result 3436 in a mobile node's traffic being tunneled to its care-of address. 3437 This tunneling feature could be a significant vulnerability if the 3438 registration were not authenticated. Such remote redirection, for 3439 instance as performed by the mobile registration protocol, is widely 3440 understood to be a security problem in the current Internet if not 3441 authenticated [28]. Moreover, the Address Resolution Protocol (ARP) 3442 is not authenticated, and can potentially be used to steal another 3443 host's traffic. The use of "Gratuitous ARP" (Section 4.6) brings 3444 with it all of the risks associated with the use of ARP. 3446 5.3. Key Management 3448 This specification requires a strong authentication mechanism 3449 (keyed MD5) which precludes many potential attacks based on the 3450 Mobile IP registration protocol. However, because key distribution 3451 is difficult in the absence of a network key management protocol, 3452 messages with the foreign agent are not all required to be 3453 authenticated. In a commercial environment it might be important 3454 to authenticate all messages between the foreign agent and the home 3455 agent, so that billing is possible, and service providers do not 3456 provide service to users that are not legitimate customers of that 3457 service provider. 3459 5.4. Picking Good Random Numbers 3461 The strength of any authentication mechanism depends on several 3462 factors, including the innate strength of the authentication 3463 algorithm, the secrecy of the key used, the strength of the key used, 3464 and the quality of the particular implementation. This specification 3465 requires implementation of keyed MD5 for authentication, but does not 3466 preclude the use of other authentication algorithms and modes. For 3467 keyed MD5 authentication to be useful, the 128-bit key must be both 3468 secret (that is, known only to authorized parties) and pseudo-random. 3469 If nonces are used in connection with replay protection, they must 3470 also be selected carefully. Eastlake, et al. [8] provides more 3471 information on generating pseudo-random numbers. 3473 5.5. Privacy 3475 Users who have sensitive data that they do not wish others to see 3476 should use mechanisms outside the scope of this document (such as 3477 encryption) to provide appropriate protection. Users concerned about 3478 traffic analysis should consider appropriate use of link encryption. 3479 If absolute location privacy is desired, the mobile node can create a 3480 tunnel to its home agent. Then, datagrams destined for correspondent 3481 nodes will appear to emanate from the home network, and it may be 3482 more difficult to pinpoint the location of the mobile node. Such 3483 mechanisms are all beyond the scope of this document. 3485 5.6. Ingress Filtering 3487 Many routers implement security policies such as "ingress 3488 filtering" [33] that do not allow forwarding of packets that 3489 have a Source Address which appears topologically incorrect. In 3490 environments where this is a problem, mobile nodes may use reverse 3491 tunneling [12] with the foreign agent supplied care-of address as 3492 the Source Address. Reverse tunneled packets will be able to pass 3493 normally through such routers, while ingress filtering rules will 3494 still be able to locate the true topological source of the packet in 3495 the same way as packets from non-mobile nodes. 3497 5.7. Replay Protection for Registration Requests 3499 The Identification field is used to let the home agent verify that a 3500 registration message has been freshly generated by the mobile node, 3501 not replayed by an attacker from some previous registration. Two 3502 methods are described in this section: timestamps (mandatory) and 3503 "nonces" (optional). All mobile nodes and home agents MUST implement 3504 timestamp-based replay protection. These nodes MAY also implement 3505 nonce-based replay protection (but see Appendix A). 3507 The style of replay protection in effect between a mobile node 3508 and its home agent is part of the mobile security association. A 3509 mobile node and its home agent MUST agree on which method of replay 3510 protection will be used. The interpretation of the Identification 3511 field depends on the method of replay protection as described in the 3512 subsequent subsections. 3514 Whatever method is used, the low-order 32 bits of the Identification 3515 MUST be copied unchanged from the Registration Request to the 3516 Reply. The foreign agent uses those bits (and the mobile node's 3517 home address) to match Registration Requests with corresponding 3518 replies. The mobile node MUST verify that the low-order 32 bits 3519 of any Registration Reply are identical to the bits it sent in the 3520 Registration Request. 3522 The Identification in a new Registration Request MUST NOT be the same 3523 as in an immediately preceding Request, and SHOULD NOT repeat while 3524 the same security context is being used between the mobile node and 3525 the home agent. Retransmission as in Section 3.6.3 is allowed. 3527 5.7.1. Replay Protection using Timestamps 3529 The basic principle of timestamp replay protection is that the node 3530 generating a message inserts the current time of day, and the node 3531 receiving the message checks that this timestamp is sufficiently 3532 close to its own time of day. Unless specified differently in 3533 the security association between the nodes, a default value of 3534 7 seconds MAY be used to limit the time difference. This value 3535 SHOULD be greater than 3 seconds. Obviously the two nodes must have 3536 adequately synchronized time-of-day clocks. As with any messages, 3537 time synchronization messages may be protected against tampering 3538 by an authentication mechanism determined by the security context 3539 between the two nodes. 3541 If timestamps are used, the mobile node MUST set the Identification 3542 field to a 64-bit value formatted as specified by the Network Time 3543 Protocol [11]. The low-order 32 bits of the NTP format represent 3544 fractional seconds, and those bits which are not available from a 3545 time source SHOULD be generated from a good source of randomness. 3546 Note, however, that when using timestamps, the 64-bit Identification 3547 used in a Registration Request from the mobile node MUST be greater 3548 than that used in any previous Registration Request, as the home 3549 agent uses this field also as a sequence number. Without such a 3550 sequence number, it would be possible for a delayed duplicate of an 3551 earlier Registration Request to arrive at the home agent (within 3552 the clock synchronization required by the home agent), and thus be 3553 applied out of order, mistakenly altering the mobile node's current 3554 registered care-of address. 3556 Upon receipt of a Registration Request with an authorization-enabling 3557 extension, the home agent MUST check the Identification field for 3558 validity. In order to be valid, the timestamp contained in the 3559 Identification field MUST be close enough to the home agent's time 3560 of day clock and the timestamp MUST be greater than all previously 3561 accepted timestamps for the requesting mobile node. Time tolerances 3562 and resynchronization details are specific to a particular mobility 3563 security association. 3565 If the timestamp is valid, the home agent copies the entire 3566 Identification field into the Registration Reply it returns the Reply 3567 to the mobile node. If the timestamp is not valid, the home agent 3568 copies only the low-order 32 bits into the Registration Reply, and 3569 supplies the high-order 32 bits from its own time of day. In this 3570 latter case, the home agent MUST reject the registration by returning 3571 Code 133 (identification mismatch) in the Registration Reply. 3573 As described in Section 3.6.2.1, the mobile node MUST verify that the 3574 low-order 32 bits of the Identification in the Registration Reply are 3575 identical to those in the rejected registration attempt, before using 3576 the high-order bits for clock resynchronization. 3578 5.7.2. Replay Protection using Nonces 3580 The basic principle of nonce replay protection is that node A 3581 includes a new random number in every message to node B, and 3582 checks that node B returns that same number in its next message to 3583 node A. Both messages use an authentication code to protect against 3584 alteration by an attacker. At the same time node B can send its own 3585 nonces in all messages to node A (to be echoed by node A), so that it 3586 too can verify that it is receiving fresh messages. 3588 The home agent may be expected to have resources for computing 3589 pseudo-random numbers useful as nonces [8]. It inserts a new nonce 3590 as the high-order 32 bits of the identification field of every 3591 Registration Reply. The home agent copies the low-order 32 bits 3592 of the Identification from the Registration Request message into 3593 the low-order 32 bits of the Identification in the Registration 3594 Reply. When the mobile node receives an authenticated Registration 3595 Reply from the home agent, it saves the high-order 32 bits of 3596 the identification for use as the high-order 32 bits of its next 3597 Registration Request. 3599 The mobile node is responsible for generating the low-order 32 bits 3600 of the Identification in each Registration Request. Ideally it 3601 should generate its own random nonces. However it may use any 3602 expedient method, including duplication of the random value sent by 3603 the home agent. The method chosen is of concern only to the mobile 3604 node, because it is the node that checks for valid values in the 3605 Registration Reply. The high-order and low-order 32 bits of the 3606 identification chosen SHOULD both differ from their previous values. 3607 The home agent uses a new high-order value and the mobile node uses 3608 a new low-order value for each registration message. The foreign 3609 agent uses the low-order value (and the mobile host's home address) 3610 to correctly match registration replies with pending Requests 3611 (Section 3.7.1). 3613 If a registration message is rejected because of an invalid nonce, 3614 the Reply always provides the mobile node with a new nonce to 3615 be used in the next registration. Thus the nonce protocol is 3616 self-synchronizing. 3618 6. IANA Considerations 3620 Mobile IP specifies several new number spaces for values to be 3621 used in various message fields. These number spaces include the 3622 following: 3624 - Mobile IP message types sent to UDP port 434, as defined in 3625 section 1.8. 3627 - types of extensions to Registration Request and Registration 3628 Reply messages (see sections 3.3 and 3.4, and also 3629 consult [12, 41, 2, 3, 7]) 3631 - values for the Code in the Registration Reply message (see 3632 section 3.4, and also consult [12, 41, 2, 3, 7]) 3634 - Mobile IP defines so-called Agent Solicitation and Agent 3635 Advertisement messages. These messages are in fact Router 3636 Discovery messages [5] augmented with mobile-IP specific 3637 extensions. Thus, they do not define a new name space, but do 3638 define additional Router Discovery extensions as described below 3639 in Section 6.2. Also see Section 2.1 and consult [3, 7]. 3641 There are additional Mobile IP numbering spaces specified in [3]. 3643 Information about assignment of mobile-ip numbers derived from 3644 specifications external to this document is given by IANA at 3645 http://www.iana.org/numbers.html. From that URL, follow the 3646 hyperlinks to [M] within the "Directory of General Assigned Numbers", 3647 and subsequently to the specific section for "Mobile IP Numbers". 3649 In this revised specification, a new Code value (for the field in the 3650 Registration Reply message) is needed within the range typically used 3651 for Foreign Agent messages. This error code is needed to indicate 3652 the status "Invalid Home Agent Address". See section 3.7.2 for 3653 details. 3655 6.1. Mobile IP Message Types 3657 Mobile IP messages are defined to be those that are sent to a 3658 message recipient at port 434 (UDP or TCP). The number space for 3659 Mobile IP messages is specified in Section 1.8. Approval of new 3660 extension numbers is subject to Expert Review, and a specification 3661 is required [14]. The currently standardized message types have the 3662 following numbers, and are specified in the indicated sections. 3664 Type Name Section 3665 ---- -------------------------------------------- --------- 3666 1 Registration Request 3.3 3667 3 Registration Reply 3.4 3669 6.2. Extensions to RFC 1256 Router Advertisement 3671 RFC 1256 defines two ICMP message types, Router Advertisement and 3672 Router Solicitation. Mobile IP defines a number space for extensions 3673 to Router Advertisement, which could be used by protocols other than 3674 Mobile IP. The extension types currently standardized for use with 3675 Mobile IP have the following numbers. 3676 Type Name Reference 3677 ---- -------------------------------------------- --------- 3678 0 One-byte Padding 2.1.3 3679 16 Mobility Agent Advertisement 2.1.1 3680 19 Prefix-Lengths 2.1.2 3682 Approval of new extension numbers for use with Mobile IP is subject 3683 to Expert Review, and a specification is required [14]. 3685 6.3. Extensions to Mobile IP Registration Messages 3687 The Mobile IP messages, specified within this document, and listed 3688 in sections 1.8 and 6.1, may have extensions. Mobile IP message 3689 extensions all share the same number space, even if they are to 3690 be applied to different Mobile IP messages. The number space for 3691 Mobile IP message extensions is specified within this document. 3692 Approval of new extension numbers is subject to Expert Review, and a 3693 specification is required [14]. 3695 Type Name Reference 3696 ---- -------------------------------------------- --------- 3697 0 One-byte Padding 3698 32 Mobile-Home Authentication 3.5.2 3699 33 Mobile-Foreign Authentication 3.5.3 3700 34 Foreign-Home Authentication 3.5.4 3702 6.4. Code Values for Mobile IP Registration Reply Messages 3704 The Mobile IP Registration Reply message, specified in section 3.4, 3705 has a Code field. The number space for the Code field values is 3706 also specified in Section 3.4. The Code number space is structured 3707 according to whether the registration was successful, or whether the 3708 foreign agent denied the registration request, or lastly whether the 3709 home agent denied the registration request, as follows: 3710 0-8 Success Codes 3711 9-63 No allocation guidelines currently exist 3712 64-127 Error Codes from the Foreign Agent 3713 128-192 Error Codes from the Home Agent 3714 193-255 No allocation guidelines currently exist 3716 Approval of new Code values requires Expert Review [14]. 3718 7. Acknowledgments 3720 Special thanks to Steve Deering (Xerox PARC), along with Dan Duchamp 3721 and John Ioannidis (JI) (Columbia University), for forming the 3722 working group, chairing it, and putting so much effort into its 3723 early development. Columbia's early Mobile IP work can be found 3724 in [35, 36, 37]. 3726 Thanks also to Kannan Alaggapan, Greg Minshall, Tony Li, Jim 3727 Solomon, Erik Nordmark, Basavaraj Patil, and Phil Roberts for 3728 their contributions to the group while performing the duties of 3729 chairperson, as well as for their many useful comments. 3731 Thanks to the active members of the Mobile IP Working Group, 3732 particularly those who contributed text, including (in alphabetical 3733 order) 3735 - Ran Atkinson (Naval Research Lab), 3736 - Samita Chakrabarti (Sun Microsystems) 3737 - Ken Imboden (Candlestick Networks, Inc.) 3738 - Dave Johnson (Carnegie Mellon University), 3739 - Frank Kastenholz (FTP Software), 3740 - Anders Klemets (KTH), 3741 - Chip Maguire (KTH), 3742 - Alison Mankin (ISI) 3743 - Andrew Myles (Macquarie University), 3744 - Thomas Narten (IBM) 3745 - Al Quirt (Bell Northern Research), 3746 - Yakov Rekhter (IBM), and 3747 - Fumio Teraoka (Sony). 3748 - Alper Yegin (NTT DoCoMo) 3750 Thanks to Charlie Kunzinger and to Bill Simpson, the editors who 3751 produced the first drafts for of this document, reflecting the 3752 discussions of the Working Group. Much of the new text in the later 3753 revisions preceding RFC 2002 is due to Jim Solomon and Dave Johnson. 3755 Thanks to Greg Minshall (Novell), Phil Karn (Qualcomm), Frank 3756 Kastenholz (FTP Software), and Pat Calhoun (Sun Microsystems) for 3757 their generous support in hosting interim Working Group meetings. 3759 Sections 1.10 and 1.11, which specify new extension formats 3760 to be used with aggregatable extension types, were included 3761 from a specification document (entitled "Mobile IP Extensions 3762 Rationalization (MIER)", which was written by 3764 - Mohamed M.Khalil, Nortel Networks 3765 - Raja Narayanan, nVisible Networks 3766 - Haseeb Akhtar, Nortel Networks 3767 - Emad Qaddoura, Nortel Networks 3769 Thanks to these authors, and also for the additional work on 3770 MIER, which was contributed by Basavaraj Patil, Pat Calhoun, Neil 3771 Justusson, N. Asokan, and Jouni Malinen. 3773 A. Patent Issues 3775 The IETF has been notified of intellectual property rights claimed 3776 in regard to some or all of the specification contained in this 3777 document. For more information consult the online list of claimed 3778 rights. 3780 The IETF takes no position regarding the validity or scope of any 3781 intellectual property or other rights that might be claimed to 3782 pertain to the implementation or use of the technology described in 3783 this document or the extent to which any license under such rights 3784 might or might not be available; neither does it represent that it 3785 has made any effort to identify any such rights. Information on 3786 the IETF's procedures with respect to rights in standards-track and 3787 standards-related documentation can be found in BCP-11. Copies of 3788 claims of rights made available for publication and any assurances 3789 of licenses to be made available, or the result of an attempt 3790 made to obtain a general license or permission for the use of such 3791 proprietary rights by implementors or users of this specification can 3792 be obtained from the IETF Secretariat. 3794 The IETF invites any interested party to bring to its attention any 3795 copyrights, patents or patent applications, or other proprietary 3796 rights which may cover technology that may be required to practice 3797 this standard. Please address the information to the IETF Executive 3798 Director. 3800 B. Link-Layer Considerations 3802 The mobile node MAY use link-layer mechanisms to decide that its 3803 point of attachment has changed. Such indications include the 3804 Down/Testing/Up interface status [39], and changes in cell or 3805 administration. The mechanisms will be specific to the particular 3806 link-layer technology, and are outside the scope of this document. 3808 The Point-to-Point-Protocol (PPP) [46] and its Internet Protocol 3809 Control Protocol (IPCP) [40], negotiates the use of IP addresses. 3811 The mobile node SHOULD first attempt to specify its home address, 3812 so that if the mobile node is attaching to its home network, the 3813 unrouted link will function correctly. When the home address is 3814 not accepted by the peer, but a transient IP address is dynamically 3815 assigned to the mobile node, and the mobile node is capable of 3816 supporting a co-located care-of address, the mobile node MAY 3817 register that address as a co-located care-of address. When the peer 3818 specifies its own IP address, that address MUST NOT be assumed to be 3819 a foreign agent care-of address or the IP address of a home agent. 3820 PPP extensions for Mobile IP have been specified in RFC 2290 [24]. 3821 Please consult that document for additional details for how to handle 3822 care-of address assignment from PPP in a more efficient manner. 3824 C. TCP Considerations 3826 C.1. TCP Timers 3828 When high-delay (e.g. SATCOM) or low-bandwidth (e.g. High-Frequency 3829 Radio) links are in use, some TCP stacks may have insufficiently 3830 adaptive (non-standard) retransmission timeouts. There may be 3831 spurious retransmission timeouts, even when the link and network 3832 are actually operating properly, but just with a high delay because 3833 of the medium in use. This can cause an inability to create or 3834 maintain TCP connections over such links, and can also cause unneeded 3835 retransmissions which consume already scarce bandwidth. Vendors 3836 are encouraged to follow the algorithms in RFC 2988 [27] when 3837 implementing TCP retransmission timers. Vendors of systems designed 3838 for low-bandwidth, high-delay links should consult RFCs 2757 and 3839 2488 [25, 26]. Designers of applications targeted to operate on 3840 mobile nodes should be sensitive to the possibility of timer-related 3841 difficulties. 3843 C.2. TCP Congestion Management 3845 Mobile nodes often use media which are more likely to introduce 3846 errors, effectively causing more packets to be dropped. This 3847 introduces a conflict with the mechanisms for congestion management 3848 found in modern versions of TCP [38]. Now, when a packet is dropped, 3849 the correspondent node's TCP implementation is likely to react as 3850 if there were a source of network congestion, and initiate the 3851 slow-start mechanisms [38] designed for controlling that problem. 3852 However, those mechanisms are inappropriate for overcoming errors 3853 introduced by the links themselves, and have the effect of magnifying 3854 the discontinuity introduced by the dropped packet. This problem has 3855 been analyzed by Caceres, et al. [30]. TCP approaches to the problem 3856 of handling errors that might interfere with congestion management 3857 are discussed in documents from the [pilc] working group [29, 31]. 3858 While such approaches are beyond the scope of this document, 3859 they illustrate that providing performance transparency to mobile 3860 nodes involves understanding mechanisms outside the network layer. 3861 Problems introduced by higher media error rates also indicate the 3862 need to avoid designs which systematically drop packets; such designs 3863 might otherwise be considered favorably when making engineering 3864 tradeoffs. 3866 D. Example Scenarios 3868 This section shows example Registration Requests for several common 3869 scenarios. 3871 D.1. Registering with a Foreign Agent Care-of Address 3873 The mobile node receives an Agent Advertisement from a foreign 3874 agent and wishes to register with that agent using the advertised 3875 foreign agent care-of address. The mobile node wishes only 3876 IP-in-IP encapsulation, does not want broadcasts, and does not want 3877 simultaneous mobility bindings: 3879 IP fields: 3880 Source Address = mobile node's home address 3881 Destination Address = copied from the IP source address of the 3882 Agent Advertisement 3883 Time to Live = 1 3884 UDP fields: 3885 Source Port = 3886 Destination Port = 434 3887 Registration Request fields: 3888 Type = 1 3889 S=0,B=0,D=0,M=0,G=0 3890 Lifetime = the Registration Lifetime copied from the 3891 Mobility Agent Advertisement Extension of the 3892 Router Advertisement message 3893 Home Address = the mobile node's home address 3894 Home Agent = IP address of mobile node's home agent 3895 Care-of Address = the Care-of Address copied from the 3896 Mobility Agent Advertisement Extension of the 3897 Router Advertisement message 3898 Identification = Network Time Protocol timestamp or Nonce 3899 Extensions: 3900 An authorization-enabling extension (e.g., the 3901 Mobile-Home Authentication Extension) 3903 D.2. Registering with a Co-Located Care-of Address 3905 The mobile node enters a foreign network that contains no foreign 3906 agents. The mobile node obtains an address from a DHCP server [32] 3907 for use as a co-located care-of address. The mobile node supports 3908 all forms of encapsulation (IP-in-IP, minimal encapsulation, and 3909 GRE), desires a copy of broadcast datagrams on the home network, and 3910 does not want simultaneous mobility bindings: 3912 IP fields: 3913 Source Address = care-of address obtained from DHCP server 3914 Destination Address = IP address of home agent 3915 Time to Live = 64 3916 UDP fields: 3917 Source Port = 3918 Destination Port = 434 3919 Registration Request fields: 3920 Type = 1 3921 S=0,B=1,D=1,M=1,G=1 3922 Lifetime = 1800 (seconds) 3923 Home Address = the mobile node's home address 3924 Home Agent = IP address of mobile node's home agent 3925 Care-of Address = care-of address obtained from DHCP server 3926 Identification = Network Time Protocol timestamp or Nonce 3927 Extensions: 3928 The Mobile-Home Authentication Extension 3930 D.3. Deregistration 3932 The mobile node returns home and wishes to deregister all care-of 3933 addresses with its home agent. 3935 IP fields: 3936 Source Address = mobile node's home address 3937 Destination Address = IP address of home agent 3938 Time to Live = 1 3939 UDP fields: 3940 Source Port = 3941 Destination Port = 434 3942 Registration Request fields: 3943 Type = 1 3944 S=0,B=0,D=0,M=0,G=0 3945 Lifetime = 0 3946 Home Address = the mobile node's home address 3947 Home Agent = IP address of mobile node's home agent 3948 Care-of Address = the mobile node's home address 3949 Identification = Network Time Protocol timestamp or Nonce 3950 Extensions: 3951 An authorization-enabling extension (e.g., the 3952 Mobile-Home Authentication Extension) 3954 E. Applicability of Prefix-Lengths Extension 3956 Caution is indicated with the use of the Prefix-Lengths Extension 3957 over wireless links, due to the irregular coverage areas provided by 3958 wireless transmitters. As a result, it is possible that two foreign 3959 agents advertising the same prefix might indeed provide different 3960 connectivity to prospective mobile nodes. The Prefix-Lengths 3961 Extension SHOULD NOT be included in the advertisements sent by agents 3962 in such a configuration. 3964 Foreign agents using different wireless interfaces would have to 3965 cooperate using special protocols to provide identical coverage 3966 in space, and thus be able to claim to have wireless interfaces 3967 situated on the same subnetwork. In the case of wired interfaces, 3968 a mobile node disconnecting and subsequently connecting to a new 3969 point of attachment, may well send in a new Registration Request 3970 no matter whether the new advertisement is on the same medium as 3971 the last recorded advertisement. And, finally, in areas with dense 3972 populations of foreign agents it would seem unwise to require the 3973 propagation via routing protocols of the subnet prefixes associated 3974 with each individual wireless foreign agent; such a strategy could 3975 lead to quick depletion of available space for routing tables, 3976 unwarranted increases in the time required for processing routing 3977 updates, and longer decision times for route selection if routes 3978 (which are almost always unnecessary) are stored for wireless 3979 "subnets". 3981 F. Interoperability Considerations 3983 This document specifies revisions to RFC 2002 that are intended to 3984 improve interoperability by resolving ambiguities contained in the 3985 earlier text. Implementations that perform authentication according 3986 to the new more precisely specified algorithm would be interoperable 3987 with earlier implementations that did what was originally expected 3988 for producing authentication data. That was a major source of 3989 non-interoperability before. 3991 However, this specification does have new features that, if used, 3992 would cause interoperability problems with older implementations. 3993 All features specified in RFC 2002 will work with the new 3994 implementations, except for V-J compression [34]. The following list 3995 details some of the possible areas of compatibility problems that may 3996 be experienced by nodes conforming to this revised specification, 3997 when attempting to interoperate with nodes obeying RFC 2002. 3999 - A client that expects some of the newly mandatory features 4000 (like reverse tunneling) from a foreign agent would still be 4001 interoperable as long as it pays attention to the `T' bit. 4003 - Mobile nodes that use the NAI extension to identify themselves 4004 would not work with old mobility agents. 4006 - Mobile nodes that use a zero home address and expect to receive 4007 their home address in the Registration Reply would not work with 4008 old mobility agents. 4010 - Mobile nodes that attempt to authenticate themselves without 4011 using the Mobile-Home authentication extension will be unable to 4012 successful register with their home agent. 4014 In all of these cases, a robust and well-configured mobile node is 4015 very likely to be able to recover if it takes reasonable actions 4016 upon receipt of a Registration Reply with an error code indicating 4017 the cause for rejection. For instance, if a mobile node sends 4018 a registration request that is rejected because it contains the 4019 wrong kind of authentication extension, then the mobile node could 4020 retry the registration with a mobile-home authentication extension, 4021 since the foreign agent and/or home agent in this case will not be 4022 configured to demand the alternative authentication data. 4024 G. Changes since RFC 2002 4026 This section details differences between the original Mobile IP base 4027 specification (RFC 2002 and ff.) that have been made as part of this 4028 revised protocol specification for Mobile IP. 4030 G.1. Recent Changes 4032 The following changes have been made since RFC 3344 was 4033 published. For items marked with issue numbers, more 4034 information is available by consulting the MIP4 issues web 4035 page, http://www.mip4.org/issues/tracker/mip4/ 4037 - (Issues 9, 18) Created a new error code for use by the foreign 4038 agent, for the case when the foreign agent does not serve the 4039 mobile node as a home agent. Formerly, the foreign agent could 4040 use error code 136 for this case. 4042 - (Issue 17) Specified that, if the Home Agent cannot support 4043 the requested nonzero unicast address in the Home Address 4044 field of the Registration Request, then the it MUST reject the 4045 registration with an error code of 129. See section 3.8.3.2. 4047 - (Issue 19) Specified that multiple authorization-enabling 4048 extensions may be present in the Registration Request message, 4049 but that the home agent has to (somehow) ensure that all have 4050 been checked (section 3.8.2.1). 4052 - (Issue 20) Specified that the foreign agent SHOULD NOT modify any 4053 of the fields of the Registration Reply message that are covered 4054 by the Mobile-Home Authentication Extension, when it relays the 4055 packet to the mobile node. 4057 - (Issue 21) Clarified that the foreign agent removes extensions 4058 that do not precede any authorization-enabling extension, not 4059 just the Mobile-Home Authentication extension (section 3.7.3.2). 4061 - (Issue 44) Specified that the address advertised by the foreign 4062 agent in Agent Advertisements is the care-of address offered 4063 on that network interface, not necessarily the address of the 4064 network interface (section 3.7.2.2). 4066 - (Issue 45) Clarification in section 3.7.2.1 that code 77 can only 4067 apply to a Registration Request with nonzero lifetime. 4069 - (Issue 45) Specification that a home agent MUST NOT invalidate 4070 a mobile node's deregistration message even if the Foreign-Home 4071 authentication extension fails the verification when applied to 4072 a deregistration in section 3.8.2.2. and corresponding slight 4073 modification to section 3.7.2.1. 4075 G.2. Major Changes 4077 - Specification for Destination IP address of Registration 4078 Reply transmitted from Foreign Agent, to avoid any possible 4079 transmission to IP address 0.0.0.0. 4081 - Specification of two new formats for Mobile IP extensions, 4082 according to the ideas contained in MIER. 4084 - Specification that the SPI of the MN-HA authentication extension 4085 is to be used as part of the data over which the authentication 4086 algorithm must be computed. 4088 - Eliminated Van-Jacobson Compression feature 4090 - Specification that foreign agents MAY send advertisements at 4091 a rate faster than once per second, but chosen so that the 4092 advertisements do not burden the capacity of the local link. For 4093 simplicity, the foreign agent now MAY send advertisements at an 4094 interval less than 1/3 the advertised ICMP Lifetime. 4096 - Specification that foreign agents SHOULD support reverse 4097 tunneling, and home agents MUST support decapsulation of reverse 4098 tunnels. 4100 - Changed the preconfiguration requirements in section 3.6 for the 4101 mobile node to reflect the capability, specified in RFC 2794 [2], 4102 for the mobile node to identify itself by using its NAI, and then 4103 getting a home address from the Registration Reply. 4105 - Changed section 3.7.3.1 so that a foreign agent is not required 4106 to discard Registration Replies that have a Home Address field 4107 that does not match any pending Registration Request. 4109 - Allowed registrations to be authenticated by use of a 4110 security association between the mobile node and a suitable 4111 authentication entity acceptable to the home agent. Defined 4112 "Authorization-enabling Extension" to be an authentication 4113 extension that makes a registration message acceptable to the 4114 recipient. This is needed according to specification in [2]. 4116 - Mandated that HMAC-MD5 be used instead of the ``prefix+suffix'' 4117 mode of MD5 as originally mandated in RFC 2002. 4119 - Specified that the mobile node SHOULD take the first care-of 4120 address in a list offered by a foreign agent, and MAY try 4121 each subsequent advertised address in turn if the attempted 4122 registrations are rejected by the foreign agent 4124 - Clarification that a mobility agent SHOULD only put its own 4125 addresses into the initial (i.e., not mobility-related) list of 4126 routers in the mobility advertisement. RFC 2002 suggests that a 4127 mobility agent might advertise other default routers. 4129 - Specification that a mobile node MUST ignore reserved bits 4130 in Agent Advertisements, as opposed to discarding such 4131 advertisements. In this way, new bits can be defined later, 4132 without affecting the ability for mobile nodes to use the 4133 advertisements even when the newly defined bits are not 4134 understood. Furthermore, foreign agents can set the `R' bit to 4135 make sure that new bits are handled by themselves instead of some 4136 legacy mobility agent. 4138 - Specification that the foreign agent checks to make sure that 4139 the indicated home agent address does not belong to any of its 4140 network interfaces before relaying a Registration Request. If 4141 the check fails, and the foreign agent is not the mobile node's 4142 home agent, then the foreign agent rejects the request with code 4143 136 (unknown home agent address). 4145 - Specification that, while they are away from the home network, 4146 mobile nodes MUST NOT broadcast ARP packets to find the MAC 4147 address of another Internet node. Thus, the (possibly empty) 4148 list of Router Addresses from the ICMP Router Advertisement 4149 portion of the message is not useful for selecting a default 4150 router, unless the mobile node has some means not involving 4151 broadcast ARP and not specified within this document for 4152 obtaining the MAC address of one of the routers in the list. 4153 Similarly, in the absence of unspecified mechanisms for obtaining 4154 MAC addresses on foreign networks, the mobile node MUST ignore 4155 redirects to other routers on foreign networks. 4157 - Specification that a foreign agent MUST NOT use broadcast ARP 4158 for a mobile node's MAC address on a foreign network. It may 4159 obtain the MAC address by copying the information from an Agent 4160 Solicitation or a Registration Request transmitted from a mobile 4161 node. 4163 - Specification that a foreign agent's ARP cache for the mobile 4164 node's IP address MUST NOT be allowed to expire before the mobile 4165 node's visitor list entry expires, unless the foreign agent has 4166 some way other than broadcast ARP to refresh its MAC address 4167 associated to the mobile node's IP address. 4169 - At the end of section 4.6, clarified that a home agent MUST 4170 NOT make any changes to the way it performs proxy ARP after it 4171 rejects an invalid deregistration request. 4173 - In section 4.2.3, specification that multihomed home agents MUST 4174 use the the address sent to the mobile node in the home agent 4175 field of the registration reply as the source address in the 4176 outer IP header of the encapsulated datagram. 4178 - Inserted 'T' bit into its proper place in the Registration 4179 Request message format (section 3.3). 4181 G.3. Minor Changes 4183 - Allowed registration replies to be processed by the mobile node, 4184 even in the absence of any Mobile-Home Authentication extension, 4185 when containing rejection code by the foreign agent. 4186 - Specification that the foreign agent MAY configure a maximum 4187 number of pending registrations that it is willing to maintain 4188 (typically 5). Additional registrations SHOULD then be rejected 4189 by the foreign agent with code 66. The foreign agent MAY delete 4190 any pending Registration Request after the request has been 4191 pending for more than 7 seconds; in this case, the foreign agent 4192 SHOULD reject the Request with code 78 (registration timeout). 4194 - Relaxation of the requirement that, when a mobile node has joined 4195 a multicast group at the router on the foreign network, the 4196 mobile node MUST use its home address as the source IP address 4197 for multicast packets, 4198 - Clarification that a mobility agent MAY use different settings 4199 for each of the 'R', 'H', and 'F' bits on different network 4200 interfaces. 4201 - Replacement of the terminology "recursive tunneling" by the 4202 terminology "nested tunneling". 4203 - Specification that the mobile node MAY use the IP source address 4204 of an agent advertisement as its default router address. 4205 - Clarification that keys with arbitrary binary values MUST be 4206 supported as part of mobility security associations. 4207 - Specification that the default value may be chosen as 7 seconds, 4208 for allowable time skews between a home agent and mobile node 4209 using timestamps for replay protection. Further specification 4210 that this value SHOULD be greater than 3 seconds. 4211 - Specification that Registration Requests with the 'D' bit set to 4212 0, and specifying a care-of address not offered by the foreign 4213 agent, MUST be rejected with code 77 (invalid care-of address). 4214 - Clarification that the foreign agent SHOULD consider its 4215 own maximum value when handling the Lifetime field of the 4216 Registration Reply. 4217 - Clarification that the home agent MUST ignore the 'B' bit (as 4218 opposed to rejecting the Registration Request) if it does not 4219 support broadcasts. 4220 - Advice about the impossibility of using dynamic home agent 4221 discovery in the case when routers change the IP destination 4222 address of a datagram from a subnet-directed broadcast address to 4223 255.255.255.255 before injecting it into the destination subnet. 4224 - Clarified that when an Agent Advertisement is unicast to a mobile 4225 node, the specific IP home address of a mobile node MAY be used 4226 as the destination IP address. 4227 - Included a reference to RFC 2290 within appendix B, which deals 4228 with PPP operation. 4229 - Created IANA Considerations section 4230 - In section 3.8.3, clarified that a home agent SHOULD arrange 4231 the selection of a home address for a mobile node when the 4232 Registration Reply contains a zero Home Address. 4234 G.4. Changes since RFC3344 4236 This section lists the changes between this document and the previous 4237 version of the Mobile IPv4 Proposed Standard, RFC 3344 [43]. 4239 - Created a new error code for use when a Foreign Agent can detect 4240 that the Home Agent address field is incorrect. 4242 - Cleaned up some more wording having to do with 4243 authorization-enabling extensions. 4244 - Revamped Changes section 4245 - Updated citations. 4247 H. Example Messages 4249 H.1. Example ICMP Agent Advertisement Message Format 4251 0 1 2 3 4252 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 4253 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4254 | Type | Code | Checksum | 4255 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4256 | Num Addrs |Addr Entry Size| Lifetime | 4257 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4258 | Router Address[1] | 4259 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4260 | Preference Level[1] | 4261 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4262 | Router Address[2] | 4263 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4264 | Preference Level[2] | 4265 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4266 | .... | 4267 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4268 | Type = 16 | Length | Sequence Number | 4269 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4270 | Registration Lifetime |R|B|H|F|M|G|r|T| reserved | 4271 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4272 | Care-of Address[1] | 4273 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4274 | Care-of Address[2] | 4275 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4276 | .... | 4277 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4278 : Optional Extensions : 4279 : .... ...... ...... : 4280 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4282 H.2. Example Registration Request Message Format 4284 The UDP header is followed by the Mobile IP fields shown below: 4286 0 1 2 3 4287 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 4288 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4289 | Type = 1 |S|B|D|M|G|r|T|x| Lifetime | 4290 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4291 | Home Address | 4292 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4293 | Home Agent | 4294 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4295 | Care-of Address | 4296 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4297 | | 4298 + Identification + 4299 | | 4300 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4301 | Optional Non-Auth Extensions for HA ... | 4302 | ( variable length ) | 4303 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4304 | Type =32 | Length | SPI | 4305 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4306 | SPI (cont..) | | 4307 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 4308 : MN-HA Authenticator ( variable length ) : 4309 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4310 : Optional Non-Auth Extensions for FA ......... 4311 : Optional MN-FA Authentication Extension... 4312 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4314 H.3. Example Registration Reply Message Format 4316 The UDP header is followed by the Mobile IP fields shown below: 4318 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 4319 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4320 | Type = 3 | Code | Lifetime | 4321 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4322 | Home Address | 4323 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4324 | Home Agent | 4325 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4326 | | 4327 + Identification + 4328 | | 4329 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4330 | Optional HA Non-Auth Extensions ... | 4331 | ( variable length ) | 4332 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4333 | Type =32 | Length | SPI | 4334 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4335 | SPI (cont...) | | 4336 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 4337 : MN-HA Authenticator ( variable length ) : 4338 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4339 : Optional Extensions used by FA......... 4340 : Optional MN-FA Authentication Extension... 4341 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4343 References 4345 [1] S. Bradner. Key words for use in RFCs to Indicate Requirement 4346 Levels. Request for Comments (Best Current Practice) 2119, 4347 Internet Engineering Task Force, March 1997. 4349 [2] P. Calhoun and C. Perkins. Mobile IP network access identifier 4350 extension for IPv4. Request for Comments (Proposed Standard) 4351 2794, Internet Engineering Task Force, January 2000. 4353 [3] P. Calhoun and C. E. Perkins. Mobile IP Foreign Agent 4354 Challenge/Response Extension. Request for Comments (Proposed 4355 Standard) 3012, Internet Engineering Task Force, December 2000. 4357 [4] D. Cong, M. Hamlen, and C. Perkins. The Definitions of Managed 4358 Objects for IP Mobility Support using SMIv2. Request for 4359 Comments (Proposed Standard) 2006, Internet Engineering Task 4360 Force, October 1996. 4362 [5] S. Deering. ICMP Router Discovery Messages. Request for 4363 Comments (Proposed Standard) 1256, Internet Engineering Task 4364 Force, September 1991. 4366 [6] S. E. Deering. Host extensions for IP multicasting. Request 4367 for Comments (Standard) 1112, Internet Engineering Task Force, 4368 August 1989. 4370 [7] G. Dommety and K. Leung. Mobile IP Vendor/Organization-Specific 4371 Extensions. Request for Comments (Proposed Standard) 3115, 4372 Internet Engineering Task Force, April 2001. 4374 [8] D. Eastlake, 3rd, S. Crocker, and J. Schiller. Randomness 4375 Recommendations for Security. Request for Comments 4376 (Informational) 1750, Internet Engineering Task Force, December 4377 1994. 4379 [9] S. Kent and R. Atkinson. IP Authentication Header. Request for 4380 Comments (Proposed Standard) 2402, Internet Engineering Task 4381 Force, November 1998. 4383 [10] H. Krawczyk, M. Bellare, and R. Canetti. HMAC: Keyed-Hashing 4384 for Message Authentication. Request for Comments 4385 (Informational) 2104, Internet Engineering Task Force, 4386 February 1997. 4388 [11] David L. Mills. Network Time Protocol (version 3) 4389 Specification, Implementation. Request for Comments (Draft 4390 Standard) 1305, Internet Engineering Task Force, March 1992. 4392 [12] Editor G. Montenegro. Reverse Tunneling for Mobile IP, revised. 4393 Request for Comments (Proposed Standard) 3024, Internet 4394 Engineering Task Force, January 2001. 4396 [13] S. Hanks, T. Li, D. Farinacci, and P. Traina. Generic Routing 4397 Encapsulation (GRE). Request for Comments (Informational) 1701, 4398 Internet Engineering Task Force, October 1994. 4400 [14] T. Narten and H. Alvestrand. Guidelines for Writing an IANA 4401 Considerations Section in RFCs. Request for Comments (Best 4402 Current Practice) 2434, Internet Engineering Task Force, October 4403 1998. 4405 [15] C. Perkins. IP Encapsulation within IP. Request for Comments 4406 (Proposed Standard) 2003, Internet Engineering Task Force, 4407 October 1996. 4409 [16] C. Perkins. Minimal Encapsulation within IP. Request for 4410 Comments (Proposed Standard) 2004, Internet Engineering Task 4411 Force, October 1996. 4413 [17] D. C. Plummer. Ethernet Address Resolution Protocol: Or 4414 converting network protocol addresses to 48.bit ethernet address 4415 for transmission on ethernet hardware. Request for Comments 4416 (Standard) 826, Internet Engineering Task Force, November 1982. 4418 [18] J. Postel. User Datagram Protocol. Request for Comments 4419 (Standard) 768, Internet Engineering Task Force, August 1980. 4421 [19] J. Postel. Internet Protocol. Request for Comments (Standard) 4422 791, Internet Engineering Task Force, September 1981. 4424 [20] J. Postel. Multi-LAN address resolution. Request for Comments 4425 925, Internet Engineering Task Force, October 1984. 4427 [21] J. Reynolds and J. Postel. Assigned Numbers. Request for 4428 Comments (Standard) 1700, Internet Engineering Task Force, 4429 October 1994. 4431 [22] R. Rivest. The MD5 Message-Digest Algorithm. Request for 4432 Comments (Informational) 1321, Internet Engineering Task Force, 4433 April 1992. 4435 [23] J. Solomon. Applicability Statement for IP Mobility Support. 4436 Request for Comments (Proposed Standard) 2005, Internet 4437 Engineering Task Force, October 1996. 4439 [24] J. Solomon and S. Glass. Mobile-IPv4 Configuration Option 4440 for PPP IPCP. Request for Comments (Proposed Standard) 2290, 4441 Internet Engineering Task Force, February 1998. 4443 [25] G. Montenegro, S. Dawkins, M. Kojo, V. Magret, and N. Vaidya. 4444 Long thin networks. Request for Comments 2757, Internet 4445 Engineering Task Force, January 2000. 4447 [26] M. Allman, D. Glover, and L. Sanchez. Enhancing TCP Over 4448 Satellite Channels using Standard Mechanisms. Request for 4449 Comments (Best Current Practice) 2488, Internet Engineering Task 4450 Force, January 1999. 4452 [27] V. Paxson and M. Allman. Computing TCP's retransmission timer. 4453 Request for Comments 2988, Internet Engineering Task Force, 4454 November 2000. 4456 [28] S. M. Bellovin. Security Problems in the TCP/IP Protocol Suite. 4457 ACM Computer Communications Review, 19(2), March 1989. 4459 [29] J. Border, M. Kojo, J. Griner, G. Montenegro, and Z. Shelby. 4460 Performance Enhancing Proxies Intended to Mitigate Link-Related 4461 Degradations. Request for Comments (Informational) 3135, 4462 Internet Engineering Task Force, June 2001. 4464 [30] Ramon Caceres and Liviu Iftode. Improving the Performance 4465 of Reliable Transport Protocols in Mobile Computing 4466 Environments. IEEE Journal on Selected Areas in Communications, 4467 13(5):850--857, June 1995. 4469 [31] S. Dawkins, G. Montenegro, M. Kojo, V. Magret, and N. Vaidya. 4470 End-to-end Performance Implications of Links with Errors. 4471 Request for Comments (Best Current Practice) 3155, Internet 4472 Engineering Task Force, August 2001. 4474 [32] R. Droms. Dynamic Host Configuration Protocol. Request for 4475 Comments (Draft Standard) 2131, Internet Engineering Task Force, 4476 March 1997. 4478 [33] P. Ferguson and D. Senie. Network Ingress Filtering: Defeating 4479 Denial of Service Attacks which employ IP source address 4480 spoofing. Request for Comments (Informational) 2267, Internet 4481 Engineering Task Force, January 1998. 4483 [34] V. Jacobson. Compressing TCP/IP headers for low-speed serial 4484 links. Request for Comments (Proposed Standard) 1144, Internet 4485 Engineering Task Force, February 1990. 4487 [35] John Ioannidis, Dan Duchamp, and Gerald Q. Maguire Jr. IP-Based 4488 Protocols for Mobile Internetworking. In Proceedings of 4489 the SIGCOMM '91 Conference: Communications Architectures & 4490 Protocols, pages 235--245, September 1991. 4492 [36] John Ioannidis and Gerald Q. Maguire Jr. The Design and 4493 Implementation of a Mobile Internetworking Architecture. In 4494 Proceedings of the Winter USENIX Technical Conference, pages 4495 489--500, January 1993. 4497 [37] J. Ioannidis. Protocols for Mobile Internetworking. PhD 4498 Dissertation - Columbia University in the City of New York, July 4499 1993. 4501 [38] Van Jacobson. Congestion Avoidance and Control. In 4502 Proceedings, SIGCOMM '88 Workshop, pages 314--329. ACM SIGCOMM, 4503 ACM Press, August 1988. Stanford, CA. 4505 [39] K. McCloghrie and F. Kastenholz. Evolution of the Interfaces 4506 Group of MIB-II. Request for Comments (Proposed Standard) 1573, 4507 Internet Engineering Task Force, January 1994. 4509 [40] G. McGregor. The PPP Internet Protocol Control Protocol 4510 (IPCP). Request for Comments (Proposed Standard) 1332, Internet 4511 Engineering Task Force, May 1992. 4513 [41] G. Montenegro and V. Gupta. Sun's SKIP Firewall Traversal for 4514 Mobile IP. Request for Comments (Informational) 2356, Internet 4515 Engineering Task Force, June 1998. 4517 [42] C. Perkins. IP Mobility Support. Request for Comments 4518 (Proposed Standard) 2002, Internet Engineering Task Force, 4519 October 1996. 4521 [43] C. Perkins. IP Mobility Support. Request for Comments 4522 (Proposed Standard) 3344, Internet Engineering Task Force, 4523 August 2002. 4525 [44] W. Richard Stevens. TCP/IP Illustrated, Volume 1: The 4526 Protocols. Addison-Wesley, Reading, Massachusetts, 1994. 4528 [45] Charles E. Perkins and Pat R. Calhoun. AAA Registration Keys 4529 for Mobile IPv4 (work in progress). Internet Draft, Internet 4530 Engineering Task Force, October 2003. 4532 [46] W. Simpson and Editor. The Point-to-Point Protocol (PPP). 4533 Request for Comments (Standard) 1661, Internet Engineering Task 4534 Force, July 1994. 4536 Normative references are [1] through [24]. Informational references 4537 are [25] through [46]. 4539 Intellectual Property 4541 The IETF takes no position regarding the validity or scope of any 4542 Intellectual Property Rights or other rights that might be claimed to 4543 pertain to the implementation or use of the technology described in 4544 this document or the extent to which any license under such rights 4545 might or might not be available; nor does it represent that it has 4546 made any independent effort to identify any such rights. Information 4547 on the procedures with respect to rights in RFC documents can be 4548 found in BCP 78 and BCP 79. 4550 Copies of IPR disclosures made to the IETF Secretariat and any 4551 assurances of licenses to be made available, or the result of an 4552 attempt made to obtain a general license or permission for the 4553 use of such proprietary rights by implementers or users of this 4554 specification can be obtained from the IETF on-line IPR repository at 4555 http://www.ietf.org/ipr. 4557 The IETF invites any interested party to bring to its attention any 4558 copyrights, patents or patent applications, or other proprietary 4559 rights that may cover technology that may be required to implement 4560 this standard. Please address the information to the IETF at 4561 ietf-ipr@ietf.org. 4563 Full Copyright Statement 4565 Full Copyright Statement 4567 Copyright (C) The Internet Society (2004). This document is subject 4568 to the rights, licenses and restrictions contained in BCP 78 and 4569 except as set forth therein, the authors retain all their rights. 4571 This document and the information contained herein are provided 4572 on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE 4573 REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE 4574 INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR 4575 IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF 4576 THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED 4577 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 4579 Addresses 4581 Questions about this memo can be directed to the editor: 4583 Charles E. Perkins 4584 Communications Systems Lab 4585 Nokia Research Center 4586 313 Fairchild Drive 4587 Mountain View, California 94043 4588 USA 4589 Phone: +1-650 625-2986 4590 EMail: charles.perkins@nokia.com 4591 Fax: +1 650 625-2502