IP Mobility Support for IPv4
obsoleted by
- rfc-5944 — IP Mobility Support for IPv4, Revised
obsoletes
- rfc-3220 — IP Mobility Support for IPv4
updated by
Extracted elements (28)
Agent Advertisement sequence numbers roll over from 0xffff to 256 (not 0), deliberately leaving 0–255 as values only possible after a reboot. This allows mobile nodes to unambiguously distinguish an agent reboot (sequence drops into 0–255) from a normal rollover.
The foreign agent care-of address mode is preferred over co-located because it allows many mobile nodes to share a single care-of address, reducing pressure on the already-limited IPv4 address space. Co-located care-of addresses require a pool of IPv4 addresses per foreign subnet.
The Long and Short Extension formats were introduced because the simple TLV format's 8-bit Type field (supporting only 255 extensions) risked exhaustion as Mobile IP evolved. Aggregating related extensions under a common Type with Sub-Types reduces allocation pressure on the type space.
An implementation MUST be able to associate any SPI value with any authentication algorithm it implements; all Mobile IP implementations MUST implement HMAC-MD5 as the default algorithm to ensure interoperability between different implementations.
A home agent MUST be able to attract and intercept datagrams destined to the home address of any of its registered mobile nodes. A mobile node and a prospective or current foreign agent MUST be able to exchange datagrams without relying on standard IP routing mechanisms.
After booting, an agent MUST use sequence number 0 for its first Agent Advertisement; each subsequent advertisement MUST use the next higher value, except that sequence number 0xffff MUST be followed by 256 (not 0), allowing mobile nodes to distinguish reboot resets from rollover.
All implementations of Mobile IP MUST implement the default authentication algorithm HMAC-MD5, which computes a 128-bit message digest over the UDP payload, all prior extensions, and the Type/Length/SPI of the current authentication extension.
All messages used to update another node as to the location of a mobile node MUST be authenticated in order to protect against remote redirection attacks. Registration messages between a mobile node and its home agent MUST be authenticated with an authorization-enabling extension (e.g., the Mobile-Home Authentication Extension).
An Agent Solicitation's IP TTL field MUST be set to 1. Similarly, the TTL for all Agent Advertisements MUST be set to 1.
Every mobile node MUST implement Agent Solicitation. The rate at which a mobile node sends solicitations MUST be limited; after three initial solicitations at up to one per second, subsequent solicitations MUST use binary exponential backoff with a maximum interval of at least one minute.
Exactly one authorization-enabling extension MUST be present in all Registration Requests and in all Registration Replies generated by the Home Agent. The Mobile-Home Authentication Extension is always authorization-enabling for registration messages in this document.
On a particular subnet, either all mobility agents MUST include the Prefix-Lengths Extension or all MUST NOT include it; mixing inclusion is prohibited because it causes move-detection algorithm failure.
SPI values 0 through 255 are reserved and MUST NOT be used in any Mobility Security Association. An implementation MUST be able to associate any SPI value with any authentication algorithm and mode it implements.
The foreign agent MUST NOT increase the Lifetime selected by the mobile node in the Registration Request, and the home agent MUST NOT increase that Lifetime either. If the Lifetime in the Reply is greater than that in the Request, the Request's Lifetime MUST be used.
When an Extension with Type 0–127 is encountered but not recognized, the message containing that extension MUST be silently discarded. When an Extension with Type 128–255 is not recognized, that extension is ignored but the rest of the message MUST still be processed.
A Mobility Security Association is a collection of security contexts between a pair of nodes, each specifying an authentication algorithm and mode, a secret (shared key or key pair), and a replay protection style (timestamps or nonces). It is indexed by SPI and IP address.
The Registration Reply Code field encodes success (0=accepted, 1=accepted without simultaneous bindings), denial by foreign agent (64–88), and denial by home agent (128–136), with specific values for authentication failure, resource exhaustion, timeout, and malformed messages.
Two care-of address modes are defined: a foreign agent care-of address (IP address of a foreign agent, shared among multiple mobile nodes, preferred) and a co-located care-of address (locally acquired by the mobile node, such as via DHCP, consuming one IPv4 address per mobile node).
Two separate extension type numbering spaces exist: one for Mobile IP control messages (UDP port 434) and one for ICMP Router Discovery messages. Types 32/33/34 are defined for control messages; types 0/16/19 for ICMP Router Discovery. This orthogonality allows identical type values across spaces.
IANA registries updated by this document: (1) Mobile IP Message Types (Registration Request=1, Registration Reply=3); (2) Extensions to RFC 1256 Router Advertisement (One-byte Padding=0, Mobility Agent Advertisement=16, Prefix-Lengths=19); (3) Extensions to Mobile IP Registration Messages (Mobile-Home Auth=32, Mobile-Foreign Auth=33, Foreign-Home Auth=34); (4) Code Values for Registration Reply Messages.
Ingress filtering deployed at some network boundaries may drop tunneled packets whose inner source address (the mobile node's home address) differs from the outer source address (the care-of address). Reverse tunneling (the 'T' flag) is one mitigation, routing return traffic back through the home agent.
Mobile IP does not provide confidentiality (privacy) for user data or control messages by default. IP-layer encryption (e.g., IPsec ESP) can be used independently to provide privacy; such mechanisms are outside the scope of this document.
Replay protection for Registration Requests is required and can be implemented using timestamps (mobile node and home agent clocks synchronized within a tolerance, default 7 seconds) or nonces (home agent challenges with a nonce returned in the mobile node's Identification field).
Long Extension Format: 8-bit Type, 8-bit Sub-Type, 16-bit Length (excludes Type/Sub-Type/Length bytes), variable Data. The 16-bit Length field allows extension data exceeding 256 bytes, solving the 8-bit limit of the simple TLV format.
Mobile-Home Authentication Extension (Type=32): 8-bit Type, 8-bit Length (4 + authenticator bytes), 32-bit SPI, variable-length Authenticator. Default authenticator is HMAC-MD5 over the UDP payload, prior extensions, and Type/Length/SPI of this extension.
Mobility Agent Advertisement Extension (Type=16): 8-bit Type, 8-bit Length (6+4*N), 16-bit Sequence Number, 16-bit Registration Lifetime, 8-bit flags (R/B/H/F/M/G/r/T), 8-bit reserved, followed by N 32-bit Care-of Addresses. Appended to an ICMP Router Advertisement.
Registration Reply (Type=3): 8-bit Type, 8-bit Code, 16-bit Lifetime, 32-bit Home Address, 32-bit Home Agent, 64-bit Identification, followed by extensions. The Code field signals registration success (0–1) or denial by foreign agent (64–88) or home agent (128–136).
Registration Request (Type=1): 8-bit Type, 8-bit flags (S/B/D/M/G/r/T/x), 16-bit Lifetime, 32-bit Home Address, 32-bit Home Agent, 32-bit Care-of Address, 64-bit Identification, followed by extensions including a mandatory authorization-enabling extension. Sent to UDP port 434.