idnits 2.17.1 draft-ietf-netlmm-pmipv6-heartbeat-01.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.1 on line 23. -- Found old boilerplate from RFC 3978, Section 5.5, updated by RFC 4748 on line 422. -- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 433. -- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 440. -- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 446. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust Copyright Line does not match the current year == 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: This variable is used to set the time interval in seconds between two consecutive Heartbeat Request messages. The default value is 60 seconds. It SHOULD not be set to less than 30 seconds. -- 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 (September 30, 2008) is 5687 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) == Outdated reference: A later version (-18) exists of draft-ietf-netlmm-pmip6-ipv4-support-04 ** Obsolete normative reference: RFC 4306 (ref. '5') (Obsoleted by RFC 5996) -- Obsolete informational reference (is this intentional?): RFC 3775 (ref. '6') (Obsoleted by RFC 6275) Summary: 2 errors (**), 0 flaws (~~), 3 warnings (==), 8 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 NETLMM Working Group V. Devarapalli (ed.) 3 Internet-Draft WiChorus 4 Intended status: Standards Track R. Koodli (ed.) 5 Expires: April 3, 2009 Starent Networks 6 H. Lim 7 N. Kant 8 Stoke 9 S. Krishnan 10 Ericsson 11 J. Laganier 12 DOCOMO Euro-Labs 13 September 30, 2008 15 Heartbeat Mechanism for Proxy Mobile IPv6 16 draft-ietf-netlmm-pmipv6-heartbeat-01.txt 18 Status of this Memo 20 By submitting this Internet-Draft, each author represents that any 21 applicable patent or other IPR claims of which he or she is aware 22 have been or will be disclosed, and any of which he or she becomes 23 aware will be disclosed, in accordance with Section 6 of BCP 79. 25 Internet-Drafts are working documents of the Internet Engineering 26 Task Force (IETF), its areas, and its working groups. Note that 27 other groups may also distribute working documents as Internet- 28 Drafts. 30 Internet-Drafts are draft documents valid for a maximum of six months 31 and may be updated, replaced, or obsoleted by other documents at any 32 time. It is inappropriate to use Internet-Drafts as reference 33 material or to cite them other than as "work in progress." 35 The list of current Internet-Drafts can be accessed at 36 http://www.ietf.org/ietf/1id-abstracts.txt. 38 The list of Internet-Draft Shadow Directories can be accessed at 39 http://www.ietf.org/shadow.html. 41 This Internet-Draft will expire on April 3, 2009. 43 Abstract 45 Proxy Mobile IPv6 is a network-based mobility management protocol. 46 The mobility entities involved in the Proxy Mobile IPv6 protocol, the 47 Mobile Access Gateway (MAG) and the Local Mobility Anchor (LMA), 48 setup tunnels dynamically to manage mobility for a mobile node within 49 the Proxy Mobile IPv6 domain. This document describes a heartbeat 50 mechanism between the MAG and the LMA to detect failures quickly and 51 take appropriate action. 53 Table of Contents 55 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 56 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 57 3. Heartbeat Mechanism . . . . . . . . . . . . . . . . . . . . . 3 58 3.1. Failure Detection . . . . . . . . . . . . . . . . . . . . 4 59 3.2. Restart Detection . . . . . . . . . . . . . . . . . . . . 4 60 3.3. Heartbeat Message . . . . . . . . . . . . . . . . . . . . 5 61 3.4. Restart Counter Mobility Option . . . . . . . . . . . . . 6 62 4. Exchanging Heartbeat Messages over an IPv4 Transport 63 Network . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 64 5. Configuration Variables . . . . . . . . . . . . . . . . . . . 7 65 6. Security Considerations . . . . . . . . . . . . . . . . . . . 7 66 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 67 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 8 68 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 8 69 9.1. Normative References . . . . . . . . . . . . . . . . . . . 8 70 9.2. Informative References . . . . . . . . . . . . . . . . . . 8 71 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 9 72 Intellectual Property and Copyright Statements . . . . . . . . . . 11 74 1. Introduction 76 Proxy Mobile IPv6 [2] enables network-based mobility for IPv6 hosts 77 that do not implement any mobility protocols. The protocol is 78 described in detail in [2]. In order to facilitate the network-based 79 mobility, the PMIPv6 protocol defines a Mobile Access Gateway (MAG), 80 which acts as a proxy for the Mobile IPv6 [6] signaling, and the 81 Local Mobility Anchor (LMA) which acts similar to a Home Agent, 82 anchoring a Mobile Node's sessions within a Proxy Mobile IPv6 83 (PMIPv6) domain. The LMA and the MAG establish a bidirectional 84 tunnel for forwarding all data traffic belonging to the Mobile Nodes. 86 In a distributed environment such as a PMIPv6 domain consisting of 87 LMA and MAGs, it is necessary for the nodes to 1) have a consistent 88 state about each others reachability, and 2) quickly inform peers in 89 the event of recovery from node failures. So, when the LMA restarts 90 after a failure, the MAG should (quickly) learn about the restart so 91 that it could take appropriate actions (such as releasing any 92 resources). When there are no failures, a MAG should know about 93 LMA's reachability (and vice versa) so that the path can be assumed 94 to be functioning. 96 This document specifies a heartbeat mechanism between the MAG and the 97 LMA to detect the status of reachability between them. This document 98 also specifies a mechanism to indicate node restarts; the mechanism 99 could be used to quickly inform peers of such restarts. The 100 heartbeat message is a mobility header message (protocol type 135) 101 which is periodically exchanged at a configurable threshold of time 102 or sent unsolicited soon after a node restart. This document does 103 not specify the specific actions (such as releasing resources) that a 104 node takes as a response to processing the heartbeat messages. 106 2. Terminology 108 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 109 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 110 document are to be interpreted as described in [1]. 112 3. Heartbeat Mechanism 114 The MAG and the LMA exchange heartbeat messages every 115 HEARTBEAT_INTERVAL seconds to detect the current status of 116 reachability between them. The MAG initiates the heartbeat exchange 117 to test if the LMA is reachable by sending a Heartbeat Request 118 message to the LMA. Each Heartbeat Request contains a sequence 119 number that is incremented monotonically. The sequence number on the 120 last Heartbeat Request message is always recorded by the MAG, and is 121 used to match the corresponding Heartbeat Response. Similarly, the 122 LMA also initiates a heartbeat exchange with the MAG, by sending a 123 Heartbeat Request message, to check if the MAG is reachable. The 124 format of the Heartbeat message is described in Section 3.3. 126 A Heartbeat Request message can be sent only if the MAG has at least 127 one proxy binding cache entry at the LMA for a mobile node attached 128 to the MAG. If there are no proxy binding cache entries at the LMA 129 for any of the mobile nodes attached to the MAG, then the heartbeat 130 message MUST NOT be sent. Similarly, the LMA MUST NOT send a 131 Heartbeat Request message to a MAG if there is no active binding 132 cache entry created by the MAG. A PMIPv6 node SHOULD always respond 133 to a Heartbeat Request message with a Heartbeat Response message, 134 irrespective of whether there is an active binding cache entry. 136 The HEARTBEAT_INTERVAL SHOULD NOT be configured to a value less than 137 30 seconds. Sending heartbeat messages too often may become an 138 overhead on the path between the MAG and the LMA. The 139 HEARTBEAT_INTERVAL can be set to a much larger value on the LMA, if 140 required, to reduce of burden of sending periodic heartbeat messages. 142 If the LMA or the MAG do not support the heartbeat messages, they 143 should respond with an ICMP Parameter Problem, Code 0, message to the 144 initiator. The 'Pointer' field in the ICMP Parameter Problem message 145 SHOULD point to the 'MH Type' field, indicating that the particular 146 Mobility Header message is not supported. When the ICMP Parameter 147 Problem message is received in response to Heartbeat Request message, 148 the initiating MAG or the LMA MUST NOT use heartbeat messages with 149 the other end again. 151 3.1. Failure Detection 153 A PMIPv6 node, (MAG or LMA) matches every received Heartbeat Response 154 to the Heartbeat Request sent using the sequence number. Before 155 sending the next Heartbeat Request, it increments a local variable 156 MISSING_HEARTBEAT if it has not received a Heartbeat Response for the 157 previous request. When this local variable MISSING_HEARTBEAT exceeds 158 a configurable parameter MISSING_HEARTBEATS_ALLOWED, the PMIPv6 node 159 concludes that the peer PMIPv6 node is not reachable. The PMIPv6 160 node may then take appropriate actions which are outside the scope of 161 this document. If a Heartbeat Response message is received, the 162 MISSING_HEARTBEATS counter is reset. 164 3.2. Restart Detection 166 The section describes a mechanism for detecting failure recovery 167 without session persistence. In case the LMA or the MAG crashes and 168 re-boots and loses all state with respect to the PMIPv6 sessions, it 169 would be beneficial for the peer PMIPv6 node to discover the failure 170 and the loss of session state and establish the sessions again. 172 Each PMIPv6 node (both the MAG and LMA) MUST maintain a monotonically 173 increasing Restart Counter that is incremented every time the node 174 re-boots and looses PMIPv6 session state. The counter MUST NOT be 175 incremented if the recovery happens without losing state for the 176 PMIPv6 sessions active at the time of failure. This counter MUST be 177 stored in non-volatile memory. A PMIPv6 node includes a Restart 178 Counter mobility option, described in Section 3.4 in an Heartbeat 179 Response message to indicate the current value of the Restart 180 Counter. Each PMIPv6 node MUST also store the Restart Counter for 181 all the peer PMIPv6 nodes that it has sessions with currently. 182 Storing the Restart Counter values for peer PMIPv6 nodes does not 183 require non-volatile memory. 185 The PMIPv6 node that receives the Heartbeat Response message compares 186 the Restart Counter value with the previously received value. If the 187 value is different, the receiving node assumes that the peer PMIPv6 188 node had crashed and recovered. If the Restart Counter value changes 189 or if there was no previously stored value, the new value is stored 190 by the receiving PMIPv6 node. 192 If a PMIPv6 node restarts and looses PMIPv6 session state, it SHOULD 193 send an unsolicited Heartbeat Response message with an incremented 194 Restart Counter to all the PMIPv6 nodes that had previously 195 established PMIPv6 sessions. This allows the peer PMIPv6 nodes to 196 quickly discover the restart. The sequence number field in the 197 unsolicited Heartbeat Response is ignored and no response to 198 necessary; the nodes will synchronize during the next Request and 199 Response exchange. 201 3.3. Heartbeat Message 203 The following illustrates the message format for the Heartbeat 204 Mobility Header message. The 'MH Type' field in the Mobility Header 205 indicates that it is a Heartbeat message. 207 0 1 2 3 208 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 209 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 210 | Reserved |U|R| 211 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 212 | Sequence Number | 213 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 215 Reserved 217 Set to 0 and ignored by the receiver. 219 'R' 221 A 1-bit flag that indicates whether the message is a request or a 222 response. When the 'R' flag is set to 0, it indicates that the 223 Heartbeat message is a request. When the 'R' flag is set to 1, it 224 indicates that the Heartbeat message is a response. 226 'U' 228 Set to 1 in Unsolicited Heartbeat Response. Otherwise set to 0. 230 Sequence Number 232 A 32-bit sequence number used for matching the request to the 233 reply. 235 3.4. Restart Counter Mobility Option 237 The following shows the message format for a new mobility option for 238 carrying the Restart Counter Value in the Heartbeat message. The 239 Restart Counter Mobility Option is only valid in a Heartbeat Response 240 message. It has an alignment requirement of 4n+2. 242 0 1 2 3 243 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 244 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 245 | Type | Length | 246 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 247 | Restart Counter | 248 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 250 Type 252 A 8-bit field that indicates that it is a Restart Counter mobility 253 option. 255 Length 257 A 8-bit field that indicates the length of the option in octets 258 excluding the 'Type' and 'Length' fields. It is set to '4'. 260 Restart Counter 262 A 32-bit field that indicates the current Restart Counter value. 264 4. Exchanging Heartbeat Messages over an IPv4 Transport Network 266 In some deployments, the network between the MAG and the LMA may not 267 be capable of transporting IPv6 packets. In this case, the Heartbeat 268 messages are tunneled over IPv4. If the Proxy Binding Update and 269 Proxy Binding Acknowledgment messages are sent using UDP 270 encapsulation to traverse NATs, then the Heartbeat messages are also 271 sent with UDP encapsulation. The UDP port used would be the same as 272 the port used for the Proxy Binding Update and Proxy Binding 273 Acknowledgement messages. For more details on tunneling Proxy Mobile 274 IPv6 signaling messages over IPv4, see [3]. 276 5. Configuration Variables 278 The LMA and the MAG must allow the following variables to be 279 configurable. 281 HEARTBEAT_INTERVAL 283 This variable is used to set the time interval in seconds between 284 two consecutive Heartbeat Request messages. The default value is 285 60 seconds. It SHOULD not be set to less than 30 seconds. 287 MISSING_HEARTBEATS_ALLOWED 289 This variable indicates the maximum number of consecutive 290 Heartbeat Request messages that a PMIPv6 node can miss before 291 concluding that the peer PMIPv6 node is not reachable. The 292 default value for this variable is 3. 294 6. Security Considerations 296 The heartbeat messages are just used for checking reachability 297 between the MAG and the LMA. They do not carry information that is 298 useful for eavesdroppers on the path. Therefore, confidentiality 299 protection is not required. Integrity protection using IPsec [4] for 300 the heartbeat messages MUST be supported on the MAG and the LMA. 302 If dynamic key negotiation between the MAG and the LMA is required, 303 IKEv2 [5] should be used. 305 7. IANA Considerations 307 The Heartbeat message defined in Section 3.3 must have the type value 308 allocated from the same space as the 'MH Type' field in the Mobility 309 Header defined in RFC 3775 [6]. 311 The Restart Counter mobility option defined in Section 3.4 must have 312 the type value allocated from the same space as the Mobility Options 313 defined in RFC 3775 [6]. 315 8. Acknowledgments 317 A heartbeat mechanism for a network-based mobility management 318 protocol was first described in [7]. The authors would like to thank 319 the members of a NETLMM design team that produced that document. The 320 mechanism described in this document also derives from the path 321 management mechanism described in [8]. 323 We would like to thank Alessio Casati for first suggesting a fault 324 handling mechanism for Proxy Mobile IPv6. 326 9. References 328 9.1. Normative References 330 [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement 331 Levels", BCP 14, RFC 2119, March 1997. 333 [2] Gundavelli, S., Leung, K., Devarapalli, V., Chowdhury, K., and 334 B. Patil, "Proxy Mobile IPv6", RFC 5213, August 2008. 336 [3] Wakikawa, R. and S. Gundavelli, "IPv4 Support for Proxy Mobile 337 IPv6", draft-ietf-netlmm-pmip6-ipv4-support-04 (work in 338 progress), July 2008. 340 [4] Kent, S. and K. Seo, "Security Architecture for the Internet 341 Protocol", RFC 4301, December 2005. 343 [5] Kaufman, C., "Internet Key Exchange (IKEv2) Protocol", RFC 4306, 344 December 2005. 346 9.2. Informative References 348 [6] Johnson, D., Perkins, C., and J. Arkko, "Mobility Support in 349 IPv6", RFC 3775, June 2004. 351 [7] Giaretta, G., "The NetLMM Protocol", 352 draft-giaretta-netlmm-dt-protocol-02 (work in progress), 353 October 2006. 355 [8] 3rd Generation Partnership Project, "3GPP Technical 356 Specification 29.060 V7.6.0: "Technical Specification Group Core 357 Network and Terminals; General Packet Radio Service (GPRS); GPRS 358 Tunnelling Protocol (GTP) across the Gn and Gp interface 359 (Release 7)"", July 2007. 361 Authors' Addresses 363 Vijay Devarapalli 364 WiChorus 365 3950 North First Street 366 San Jose, CA 95134 367 USA 369 Email: vijay@wichorus.com 371 Rajeev Koodli 372 Starent Networks 373 USA 375 Email: rkoodli@starentnetworks.com 377 Heeseon Lim 378 Stoke 379 5403 Betsy Ross Drve 380 Santa Clara, CA 95054 381 USA 383 Email: hlim@stoke.com 385 Nishi Kant 386 Stoke 387 5403 Betsy Ross Drive 388 Santa Clara, CA 95054 389 USA 391 Email: nishi@stoke.com 392 Suresh Krishnan 393 Ericsson 394 8400 Decarie Blvd. 395 Town of Mount Royal, QC 396 Canada 398 Email: suresh.krishnan@ericsson.com 400 Julien Laganier 401 DOCOMO Euro-Labs 402 Landsbergerstrasse 312 403 Munich, D-80687 404 Germany 406 Email: julien.IETF@laposte.net 408 Full Copyright Statement 410 Copyright (C) The IETF Trust (2008). 412 This document is subject to the rights, licenses and restrictions 413 contained in BCP 78, and except as set forth therein, the authors 414 retain all their rights. 416 This document and the information contained herein are provided on an 417 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS 418 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND 419 THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS 420 OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF 421 THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED 422 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 424 Intellectual Property 426 The IETF takes no position regarding the validity or scope of any 427 Intellectual Property Rights or other rights that might be claimed to 428 pertain to the implementation or use of the technology described in 429 this document or the extent to which any license under such rights 430 might or might not be available; nor does it represent that it has 431 made any independent effort to identify any such rights. Information 432 on the procedures with respect to rights in RFC documents can be 433 found in BCP 78 and BCP 79. 435 Copies of IPR disclosures made to the IETF Secretariat and any 436 assurances of licenses to be made available, or the result of an 437 attempt made to obtain a general license or permission for the use of 438 such proprietary rights by implementers or users of this 439 specification can be obtained from the IETF on-line IPR repository at 440 http://www.ietf.org/ipr. 442 The IETF invites any interested party to bring to its attention any 443 copyrights, patents or patent applications, or other proprietary 444 rights that may cover technology that may be required to implement 445 this standard. Please address the information to the IETF at 446 ietf-ipr@ietf.org.