rfc-5847

Heartbeat Mechanism for Proxy Mobile IPv6

V. Devarapalli (Editor), R. Koodli (Editor), H. Lim, N. Kant, S. Krishnan, J. Laganier
date2010-06 streamIETF areaint wgnetlmm statusPROPOSED STANDARD pages11 canonicalhttps://www.rfc-editor.org/rfc/rfc5847 doi10.17487/RFC5847 errataview
Proxy Mobile IPv6 (PMIPv6) is a network-based mobility management protocol. The mobility entities involved in the Proxy Mobile IPv6 protocol, the mobile access gateway (MAG) and the local mobility anchor (LMA), set up tunnels dynamically to manage mobility for a mobile node within the Proxy Mobile IPv6 domain. This document describes a heartbeat mechanism between the MAG and the LMA to detect failures, quickly inform peers in the event of a recovery from node failures, and allow a peer to take appropriate action. [STANDARDS TRACK]

Extracted elements (27)

design-rationale §3.2

An unsolicited Heartbeat Response (U bit set) is sent immediately after restart to allow peers to discover the recovery quickly, rather than waiting up to HEARTBEAT_INTERVAL seconds for the next periodic exchange. The sequence number in such a message is ignored since synchronization occurs in the subsequent request/response cycle.

mobility, ip

design-rationale §6

Heartbeat messages are defined as a subtype of the existing Mobility Header (protocol 135) rather than a new protocol, so the existing IPsec security policy infrastructure for PMIPv6 can protect them by simply adding MH Type 13 as an SPD selector — no new security mechanisms are required.

security, ipsec, mobility

design-rationale §3.2

The Restart Counter is preserved across reboots (as persistent state) so that a restarted node can correctly signal its recovery to peers, even when it has lost all PMIPv6 session state — without persistent storage the counter would reset to a previously seen value and the peer could not detect the restart.

mobility, ip

interoperability-note §3

A PMIPv6 node that does not support Heartbeat messages responds with a Binding Error (status 2, unrecognized MH type), per RFC 3775. The initiating node MUST cease sending Heartbeat messages to that peer upon receiving this error.

mobility, ip

interoperability-note §4

When the network between MAG and LMA is IPv4-only, Heartbeat messages are transported as specified in RFC 5844: the Mobility Header is carried as the UDP payload inside an IPv4 packet (IPv4-UDP-MH encapsulation).

mobility, ip, v6ops

normative-requirement §3 SHOULD NOT

A Heartbeat Request message SHOULD NOT be sent if the MAG has no proxy Binding Cache entries at the LMA for any mobile node attached to it. Similarly, the LMA SHOULD NOT send a Heartbeat Request to a MAG if there is no active Binding Cache entry created by that MAG.

mobility, ip

normative-requirement §3 MUST

A PMIPv6 node MUST respond to a Heartbeat Request message with a Heartbeat Response message, irrespective of whether there is an active Binding Cache entry.

mobility, ip

normative-requirement §3.2 MUST

Each PMIPv6 node (both MAG and LMA) MUST maintain a monotonically increasing Restart Counter that is incremented every time the node reboots and loses PMIPv6 session state. This counter MUST be treated as state preserved across reboots.

mobility, ip

normative-requirement §3.2 MUST

Each PMIPv6 node MUST store the Restart Counter for all peer PMIPv6 nodes with which it currently has sessions; stored values for peer nodes do not need to be preserved across reboots.

mobility, ip

normative-requirement §3.2 SHOULD

If a PMIPv6 node restarts and loses PMIPv6 session state, it SHOULD send an unsolicited Heartbeat Response message with an incremented Restart Counter to all PMIPv6 nodes that had previously established sessions.

mobility, ip

normative-requirement §6 MUST

Integrity protection using IPsec [RFC4301] for the Heartbeat messages MUST be supported on the MAG and the LMA.

security, ipsec, mobility

normative-requirement §3 SHOULD NOT

The HEARTBEAT_INTERVAL SHOULD NOT be configured to a value less than 30 seconds to avoid creating overhead, congestion, or degraded network performance on the path between the MAG and the LMA.

mobility, ip

normative-requirement §3.3 MUST

The MH Type field in the Mobility Header for a Heartbeat message MUST be set to 13.

mobility, ip

normative-requirement §3.2 MUST NOT

The Restart Counter MUST NOT be incremented if recovery happens without losing state for the PMIPv6 sessions active at the time of failure, ensuring the counter only signals stateful restarts.

mobility, ip

normative-requirement §3.4 MUST

The Type field of the Restart Counter mobility option MUST be set to 28.

mobility, ip

normative-requirement §3 MUST NOT

When a Binding Error message with status set to 2 (unrecognized MH type) is received in response to a Heartbeat Request, the initiating MAG or LMA MUST NOT use Heartbeat messages with that peer again.

mobility, ip, interoperability-note

protocol-element §3.1

MISSING_HEARTBEAT is a local counter incremented each time a Heartbeat Response is not received before the next request. When it exceeds MISSING_HEARTBEATS_ALLOWED, the peer is declared unreachable; it resets to zero upon receipt of a valid Heartbeat Response.

mobility, ip

protocol-element §3.3

The Heartbeat message is a Mobility Header message (protocol type 135, MH Type 13) periodically exchanged between MAG and LMA. It contains a Reserved field, a U bit (unsolicited response), an R bit (request=0/response=1), a 32-bit Sequence Number, and variable-length Mobility Options.

mobility, ip

protocol-element §3.4

The Restart Counter Mobility Option is a TLV option valid only in Heartbeat Response messages, with alignment requirement of 4n+2. It carries a 32-bit Restart Counter value, with Type=28 and Length=4.

mobility, ip

registry §7

IANA allocated MH Type value 13 for the Heartbeat message from the Mobility Header MH Type name space originally defined in RFC 3775.

registry, mobility

registry §7

IANA allocated mobility option Type value 28 for the Restart Counter mobility option from the mobility options name space originally defined in RFC 3775.

registry, mobility

security-consideration §6

Heartbeat messages carry no sensitive data useful to eavesdroppers, so confidentiality protection is not required. However, IPsec integrity protection MUST be supported and should be enforced via SPD entries using the new MH Type 13 selector.

security, ipsec, mobility

security-consideration §6

If dynamic key negotiation between the MAG and the LMA is required, IKEv2 [RFC4306] should be used, consistent with the security model already established for PMIPv6 signaling in RFC 5213.

security, ipsec, mobility, crypto

state-machine §3.1

Failure detection: a PMIPv6 node sends Heartbeat Requests every HEARTBEAT_INTERVAL seconds, increments MISSING_HEARTBEAT on each unanswered request, resets it on a valid response, and transitions to 'peer unreachable' state when MISSING_HEARTBEAT exceeds MISSING_HEARTBEATS_ALLOWED.

mobility, ip

state-machine §3.2

Restart detection: upon receiving a Heartbeat Response, the node compares the included Restart Counter to the stored value. If different (or no prior value), it assumes the peer crashed and recovered, stores the new counter, and signals the restart to the local PMIPv6 stack.

mobility, ip

wire-format §3.3

The Heartbeat message body (following the Mobility Header Checksum field) consists of: 14-bit Reserved + U flag (1 bit) + R flag (1 bit) = 16 bits total for the first word, followed by a 32-bit Sequence Number, then variable-length Mobility Options padded to a multiple of 8 octets.

mobility, ip

wire-format §3.4

The Restart Counter Mobility Option encodes: Type (8 bits, value 28), Length (8 bits, value 4), and Restart Counter (32 bits), totaling 6 octets with 4n+2 alignment.

mobility, ip