RFC 2290
Mobile-IPv4 Configuration Option for PPP IPCP
RFC 2290: Mobile-IPv4 Configuration Option for PPP IPCP π
Part 1 of 4, more coming bestie! π
Network Working Group πΈ Request for Comments: 2290 β¨ Updates: 2002 (Mobile IP, [RFC 2002]) π¦ Category: Standards Track π Date: February 1998 π Authors: J. Solomon (Motorola) and S. Glass (FTP Software) π
Status of this Memo π
okay so this document is an Internet standards track protocol for the Internet community, and it's basically asking everyone for discussion and suggestions for improvements π«Ά If you want to check where this protocol is at in standardization, look at the current edition of the "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited, so share away! π
Copyright Notice βοΈ
Copyright (C) The Internet Society (1998). All Rights Reserved. π
Abstract π¦
okay here's the tea β Mobile IP [RFC 2002] lets a Mobile Node keep its existing transport and application-layer connections alive even when it switches where it's plugged into the Internet, and it doesn't have to change its IP address either. Iconic! β¨ PPP [RFC 1661] is the standard way to send multi-protocol packets over point-to-point links π₯
Now the problem π As things stand, Mobile IP Foreign Agents that support Mobile Nodes connected over PPP can only do it by first giving those Mobile Nodes unique addresses. That kills one of the biggest perks of Foreign Agents! This document fixes that by defining the Mobile-IPv4 Configuration Option for the Internet Protocol Control Protocol (IPCP) [RFC 1332]. With this option, two peers can tell each other they support Mobile IP during the IPCP phase of PPP π You'll need to already know Mobile IP [RFC 2002], IPCP [RFC 1332], and PPP [RFC 1661] for this one, babe π§
Table of Contents ποΈ
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Specification Language . . . . . . . . . . . . . . . . . 2
1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . 2
1.3. Problem Statement . . . . . . . . . . . . . . . . . . . 3
1.4. Requirements . . . . . . . . . . . . . . . . . . . . . . 5
2. Mobile-IPv4 Configuration Option . . . . . . . . . . . . . . . 6
2.1. Option Format . . . . . . . . . . . . . . . . . . . . . 6
2.2. Overview . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3. High-Level Requirements for Non-Mobile-Nodes . . . . . . 7
2.4. High-Level Requirements for Mobile Nodes . . . . . . . . 8
2.5. Detailed Description . . . . . . . . . . . . . . . . . . 8
2.6. Example Scenarios . . . . . . . . . . . . . . . . . . . 12
3. Additional Requirements . . . . . . . . . . . . . . . . . . . 14
3.1. Other IPCP Options . . . . . . . . . . . . . . . . . . . 14
3.2. Move Detection . . . . . . . . . . . . . . . . . . . . . 14
4. Security Considerations . . . . . . . . . . . . . . . . . . . 15
5. References . . . . . . . . . . . . . . . . . . . . . . . . . . 15
6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 16
7. Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 16
8. Full Copyright Statement . . . . . . . . . . . . . . . . . . . 17
1. Introduction π
Okay so Mobile IP [RFC 2002] defines the protocols and procedures that let packets reach a mobile node wherever it currently is on the Internet, all without it changing its IP address πΊοΈ Mobile IP is designed to run over any type of media and any type of data link layer. BUT (and this is a big but π€) the way Mobile IP and PPP interact is currently underspecified, and that usually ends up applying Mobile IP in a not-great way when mobile nodes connect to the Internet via PPP π
So this document defines the proper interaction between a mobile node [RFC 2002] and the peer it connects through over PPP π«Ά To make that happen we need a brand new option for IPCP [RFC 1332], called the "Mobile-IPv4" Configuration Option, which this document defines. The mobile node and the peer use this option to negotiate how Mobile IP should be used over the PPP link π
The Mobile-IPv4 option here is meant to work alongside the existing IP-Address option [RFC 1332] π
1.1. Specification Language π£οΈ
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 π (these are the ones with the real force, so read them carefully bestie π)
1.2. Terminology π
This document uses the following terms as defined in [RFC 2002]:
Mobile Node π±
A host or router that changes its point-of-attachment from one link to another. A mobile node may change its location without changing its IP address. It can keep talking to other Internet nodes from any location, using its (permanent) home IP address, as long as it has link-layer connectivity where it currently is. π¦
Home Agent π
A router with at least one interface on a mobile node's home link. When the mobile node is connected to a foreign link, a home agent intercepts packets destined for the mobile node's home address and tunnels them to the mobile node's care-of address. A mobile node tells its home agent about its current care-of address through an authenticated registration protocol defined by Mobile IP π
Foreign Agent π
A router with at least one interface on a mobile node's (current) foreign link. When a mobile node uses a foreign agent's care-of address, the foreign agent detunnels packets that were tunneled by the mobile node's home agent and delivers them to the mobile node. A foreign agent might also act as a default router for packets sent by a registered mobile node π
Peer π€
The PPP peer of a mobile node. The mobile node's peer might support home agent functionality, foreign agent functionality, both, or neither πΈ
1.3. Problem Statement π§©
Here's the setup π In Mobile IP, packets sent to a mobile node's home address first get routed to its home agent. The home agent is a router on the mobile node's home link, and it intercepts packets sent to that home address. Then the home agent tunnels those packets to the mobile node's care-of address, where they get pulled out of the tunnel and delivered to the mobile node. There are two types of care-of addresses:
Co-located Care-of Address π
An address temporarily assigned to a mobile node itself. In this case the mobile node is the exit point of the tunnel, and it decapsulates the packets its home agent encapsulated for delivery. At any point in time, a Co-located Care-of Address may be used by exactly one mobile node π ββοΈ
Foreign Agent Care-of Address π·
An address of a foreign agent that has at least one interface on a mobile node's visited, foreign link. In this case, the foreign agent decapsulates packets that the home agent tunneled and delivers them to the mobile node over the visited link. At any point in time, a Foreign Agent Care-of Address may be used simultaneously by many mobile nodes π₯³
In Appendix B, Mobile IP [RFC 2002] currently only specifies the following about PPP π
"The Point-to-Point-Protocol (PPP) [RFC 1661] and its Internet Protocol Control Protocol (IPCP) [RFC 1332], negotiates [sic] the use of IP addresses. "The mobile node SHOULD first attempt to specify its home address, so that if the mobile node is attaching to its home [link], the unrouted link will function correctly. When the home address is not accepted by the peer, but a transient IP address is dynamically assigned to the mobile node, and the mobile node is capable of supporting a co-located care-of address, the mobile node MAY register that address as a co-located care-of address. When the peer specifies its own IP address, that address MUST NOT be assumed to be a foreign agent care-of address or the IP address of a home agent."
So here's the problem π€ Looking at that text, there's currently no way for the mobile node to use a foreign agent care-of address without first being assigned a unique IP address, EVEN IF the peer also supports foreign agent functionality. Let's walk through IPCP negotiation to see why π΅οΈββοΈ
- A mobile node connects to a peer via PPP and proposes its home address in an IPCP Configure-Request containing the IP-Address option. In this scenario, we assume the mobile node is connecting to some foreign link π
- The peer has no way of knowing whether this Configure-Request came from: (a) a mobile node proposing its home address; or (b) a conventional node proposing some topologically non-routable address. So in this case, the peer must (conservatively) send a Configure-Nak of the IP-Address option, supplying a topologically appropriate address for use by the node at the other end of the PPP link π¬
- The mobile node, in turn, has no way of knowing whether this Configure-Nak was received because the peer is a foreign agent being conservative, or because the peer doesn't implement Mobile IP at all. Therefore, the mobile node must (conservatively) assume that the peer does not implement Mobile IP, and continue negotiating an IP address in IPCP. After that point, the mobile node can use the assigned address as a co-located care-of address π
Here's the kicker π Even if the mobile node's peer is a foreign agent and sends an Agent Advertisement to the mobile node after IPCP reaches the Opened state, the mobile node will still have negotiated a routable address in step 3. It's likely already using that address as a co-located care-of address. This defeats the whole point of foreign agent care-of addresses, which are designed to be shared by multiple mobile nodes and to eliminate the need to give each mobile node its own unique address π
1.4. Requirements π
The purpose of this document is to specify how both ends of the PPP link behave when one or more of the PPP peers supports Mobile IP. Specifically, the design of the option and protocol in this document is based on these requirements:
- The option and protocol described in this document must be backwards compatible with conventional nodes and their potential peers that don't implement this option or any Mobile IP functionality π«Ά
- The option and protocol described in this document must accommodate a variety of scenarios, minimally those provided in the examples of Section 2.6 π
- The option and protocol described in this document must not duplicate any functionality already defined in other IPCP options; specifically, the IP-Address option π ββοΈ
- A unique address must not be assigned to a mobile node unless absolutely necessary. Specifically, no such address is assigned to a mobile node that connects via PPP to its home link, or to a mobile node that connects via PPP to a foreign agent (and uses that foreign agent's care-of address) π
2. Mobile-IPv4 Configuration Option β¨
This section defines the Mobile-IPv4 Configuration Option and gives several examples of how to use it. Let's get into it! π§
2.1. Option Format β¨
okay so the Mobile-IPv4 Configuration Option for IPCP has its own little layout π here's how it looks:
0 1 2 3
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Mobile Node's ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
... Home Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type π§ is 4 (Mobile-IPv4), so that's how you know it's this option.
Length π is 6, which is the length of this entire extension in bytes.
Mobile Node's Home Address π is the main event, bestie π. In a Configure-Request, it's the IP home address of the mobile node that's sending this Configuration Option. In a Configure-Ack or Configure-Reject, it's the (unmodified) IP home address of the mobile node. Configure-Nak'ing this option is undefined, so you MUST NOT send it if you're following this version of the spec π ββοΈ And this field MUST NOT be zero, no exceptions π
Default Value π is pretty chill: the Mobile-IPv4 Configuration Option defaults to the sending mobile node's home address.
Now, when we talk about how this option works with the IP-Address Configuration Option, we use some shorthand. It's giving cheat sheet energy π
PPP Message Types:
Request = Configure-Request
Reject = Configure-Reject
Ack = Configure-Ack
Nak = Configure-Nak
IPCP Configuration Options:
MIPv4 = Mobile-IPv4
IP = IP-Address
IP addresses:
a.b.c.d = some non-zero IP address
w.x.y.z = some non-zero IP address other than a.b.c.d
home = a mobile node's IP Home address
coa = an IP Care-Of Address
0 = the all-zeroes IP address (0.0.0.0)
2.2. Overview π¦
The Mobile-IPv4 Configuration Option is designed to be used alongside the IP-Address Configuration Option, so they're basically besties π―ββοΈ To make life easier for implementors, the detailed description in section 2.5 covers every possible combo of these two options that a PPP peer might send during IPCP. For each combo, you get a description of how the receiver should read the contents, plus a suggested plan of action πΈ
2.3. High-Level Requirements for Non-Mobile-Nodes π
Okay, this one's for nodes that aren't doing mobile node stuff. That includes non-Mobile-IP-aware nodes, plus nodes that only do home agent stuff, foreign agent stuff, or both π«Ά These nodes MUST NOT put a Mobile-IPv4 Configuration Option in any Configure-Request message. Like, never π ββοΈ
As per [RFC 1332], a node like this SHOULD send a Configure-Request with an IP-Address Configuration Option, where the IP-Address field is set to a non-zero IP address that the node has assigned to one of its interfaces. If an explicit IP address has been assigned to the node's PPP interface, then that address SHOULD be sent first, before any of the node's other addresses π
A node MUST NOT send a Configure-Nak that contains a Mobile-IPv4 Configuration Option. Doing so is currently "undefined" and might cause interoperability problems once a useful meaning for Configure-Nak is finally defined for the Mobile-IPv4 Configuration Option π And a node that sends a Configure-Ack containing a Mobile-IPv4 Configuration Option SHOULD send an Agent Advertisement [RFC 2002] right away, as soon as IPCP for that link enters the Opened state β¨
2.4. High-Level Requirements for Mobile Nodes π
Mobile nodes, listen up π£ A mobile node SHOULD start its IPCP negotiation by sending the Configure-Request described in either item #1 or item #4 in Section 2.5. It MAY start with one of the other numbered items in Section 2.5, but only under extenuating circumstances, so be careful π§
Here's the big one. A mobile node that receives a Configure-Ack containing a Mobile-IPv4 Configuration Option MUST receive an Agent Advertisement before sending a Registration Request [RFC 2002], and it might get that advertisement in response to an Agent Solicitation. This applies if the mobile node is connecting to a foreign link. Why? Because the peer might be a foreign agent that enforces a policy requiring the mobile node to register with that foreign agent, even when the mobile node is using a co-located care-of address π¨ If the mobile node is connecting to its home link, though, it doesn't need to wait for an advertisement. See item 7a in section 2.5 for one way to figure out whether you've connected to your home link. Another way is getting an explicit notification from the peer, like receiving the messages in items 1b, 2c, and 3a in section 2.5 π
A mobile node that receives a Configure-Reject containing a Mobile-IPv4 Configuration Option SHOULD fall back to IPCP negotiation using the IP-Address option [RFC 1332]. It SHOULD begin this negotiation with Request(IP=home) or Request(IP=0), depending on whether or not it's connecting to its home link. A mobile node MAY figure that out by looking at an IP-Address option inside a Configure-Request sent by its peer. If the prefix of the peer's stated IP address equals the prefix of the mobile node's home address, then the mobile node MAY conclude that it's connecting to its home link π‘ Otherwise, if the mobile node is connecting to a foreign link, it SHOULD send Request(IP=0), because its peer might have no way to assign addresses except through IPCP. This specification therefore updates this behavior as described in [RFC 2002]. That one recommends that a mobile node begin IP-Address negotiation with Request(IP=Home) under all circumstances, so yeah, this is a glow-up π
A peer that's doing neither home agent nor foreign agent functionality SHOULD send a Reject in response to any Request it receives from its peer that contains a Mobile-IPv4 Configuration Option π
2.5. Detailed Description π
okay so this is the part where the spec lays out every single combo of Mobile-IPv4 and IP-Address Configuration Options a mobile node (or a regular node) could send to its peer π The numbered items are the requests, and the lettered items are the replies the peer could send back. A mobile node SHOULD start its IPCP negotiation with item #1 or item #4, depending on whether it prefers a co-located or a foreign agent care-of address. Each item gets an interpretation and a suggested next move, and the authors think this format is more concise and precise than writing it all out as prose π
Request(IP=0,MIPv4=home)means "I prefer a co-located care-of address to a foreign agent care-of address." Peer MUST respond with one of the following: β¨- a.
Nak(IP=coa)means "use coa as your co-located care-of address". Goto 2. - b.
Nak(IP=home)means "you're at home and don't need a care-of address". Goto 3. - c.
Reject(IP=0)means "I cannot assign a co-located care-of address but you're welcome to use me as a foreign agent". Goto 4. - d.
Reject(MIPv4=home)means "I do not implement the Mobile-IPv4 option". If the peer also sentRequest(IP=address)and the prefix of the peer's assigned address is equal to that of the mobile node's home address, then goto 6 with a.b.c.d=home; otherwise, goto 5. - e.
Reject(IP=0,MIPv4=home)means "use the default". Goto 7. - =>
Ack(IP=0, ...),Nak(MIPv4=any, ...)MUST NOT be sent. π
- a.
Request(IP=coa,MIPv4=home)means "I want to use coa as my co-located care-of address." Peer MUST respond with one of the following: π- a.
Ack(IP=coa,MIPv4=home)means "ok, use coa as your co-located care-of address; be sure to wait for an advertisement." Opened. - b.
Nak(IP=alternate-coa)means "no, use alternate-coa as your co-located care-of address". Goto 2. - c.
Nak(IP=home)means "you're at home and don't need a co-located care-of address". Goto 3. - d.
Reject(IP=coa)means "coa is not a useful value for a co-located care-of address on this link and I cannot assign a useful one (or I will not negotiate the IP-Address option) -- you may use me as a foreign agent". Goto 4. - e.
Reject(MIPv4=home)means "I do not implement the Mobile-IPv4 option". If the peer also sentRequest(IP=address)and the prefix of the peer's address is equal to that of the mobile node's home address, then goto 6 with a.b.c.d=home; otherwise, goto 5. - f.
Reject(IP=coa,MIPv4=home)means "use the default". Goto 7. - =>
Nak(MIPv4=any, ...)MUST NOT be sent. π«Ά
- a.
Request(IP=home,MIPv4=home)means "I think I'm at home but if I'm wrong then I prefer a co-located care-of address to a foreign agent care-of address." Peer MUST respond with one of the following: πΈ- a.
Ack(IP=home,MIPv4=home)means "yes, you're at home". Opened. - b.
Nak(IP=coa)means "you're not at home, use coa as your co-located care-of address". Goto 2. - c.
Reject(IP=home)means "you're not at home and I cannot assign a co-located care-of address (or I will not negotiate the IP-Address option) -- you may use me as a foreign agent". Goto 4. - d.
Reject(MIPv4=home)means "I do not implement the Mobile-IPv4 option". If the peer also sentRequest(IP=address)and the prefix of the peer's address is equal to that of the mobile node's home address, then goto 6 with a.b.c.d=home; otherwise, goto 5. - e.
Reject(IP=home,MIPv4=home)means "use the default". Goto 7. - =>
Nak(MIPv4=any, ...)MUST NOT be sent.
- a.
Request(MIPv4=home)means "I want to run Mobile IP over this link and I don't want a co-located care-of address." Peer MUST respond with one of the following: π¦- a.
Ack(MIPv4=home)means "ok, wait for an advertisement to figure out where you are." Opened. - b.
Reject(MIPv4=home)means "I do not implement the Mobile-IPv4 option". If the peer also sentRequest(IP=address)and the prefix of the peer's address is equal to that of the mobile node's home address, then goto 6 with a.b.c.d=home; otherwise, goto 5. - =>
Nak(MIPv4=any, ...)MUST NOT be sent.
- a.
Request(IP=0)means "Please assign an address/co-located-care-of-address". Peer MUST respond with one of the following: π§- a.
Nak(IP=a.b.c.d)means "use a.b.c.d as your address/co-located-care-of-address". Goto 6. - b.
Reject(IP=0)means "I cannot assign an address (for the Mobile Node to use as a co-located-care-of-address), or I do not implement the IP-Address option". Goto 7. - =>
Ack(IP=0)MUST NOT be sent and historically means "I don't know your address either". Opened. An implementation MUST NOT use 0 as its IP address upon receivingAck(IP=0)but MAY use some other, non-zero, interface address for packets sent on its PPP interface. β οΈ
- a.
Request(IP=a.b.c.d)means "I want to use a.b.c.d as my address/home-address/co-located-care-of-address". Peer MUST respond with one of the following: π- a.
Ack(IP=a.b.c.d)means "ok, a.b.c.d is your address/home-address/co-located-care-of-address". Opened. - b.
Nak(IP=w.x.y.z)means "no, use w.x.y.z as your address/home-address/co-located-care-of-address". Goto 6. - c.
Reject(IP=a.b.c.d)means "a.b.c.d is a bad address to use, but I cannot give you a good one" or "I do not implement the IP-Address option". Goto 7.
- a.
Request()means "I want to use the default". Peer MUST respond with one of the following: π- a.
Ack()means "ok, use the default". Opened.- In this case the mobile node will use the "default" values of the IP-Address option (no address configured by IPCP) and the Mobile-IPv4 option (the mobile node's IP home address). The mobile node SHOULD send Agent Solicitations to see if there are any agents present on the current link. (Note that the current "link" might also include a shared medium if the mobile node's PPP peer is a bridge.) If an agent is present and the mobile node receives an Agent Advertisement, then the mobile node employs its move-detection algorithm(s) and registers accordingly. π
- In any case, if the mobile node's peer supplied an IP-Address option containing a non-zero value within an IPCP Configure-Request, the mobile node MAY use this address to determine whether or not it is connected to its home link. This can be accomplished by comparing the stated IP address with the mobile node's home address under the prefix-length associated with the home link. If the mobile node is connected to its home link then it SHOULD de-register with its home agent. π
- Otherwise, the mobile node MAY attempt to obtain a topologically routable address through any of its supported means (e.g., DHCP, manual configuration, etc.) for use as a co-located care-of address. If the mobile node is successful in obtaining such an address then it SHOULD register this address with its home agent. π
- =>
Nak(IP=0)MUST NOT be sent. Goto 6. - =>
Nak()MUST NOT be sent. - =>
Reject()MUST NOT be sent.
- a.
2.6. Example Scenarios π§
this section is the fun part where we actually watch the option and protocol in action π In the examples below, a Configure-Request from a mobile node and the peer's reply sit on the same line. The number and letter to the left of each request/response point back to the numbered and lettered items in Section 2.5, so you can always check the rulebook π
A. A mobile node prefers a co-located care-of address and the peer is a foreign agent that is capable of assigning such an address:
(1)(a) Request(IP=0,MIPv4=Home) / Nak(IP=coa)
(2)(a) Request(IP=coa,MIPv4=Home) / Ack(IP=coa,MIPv4=Home)
- Mobile node waits to receive an Agent Advertisement.
- If (Advertisement has R-bit set) then
Mobile node registers using co-located care-of address via
the foreign agent;
else
Mobile node registers using co-located care-of address
directly with its home agent.
B. A mobile node prefers a co-located care-of address and the peer is a foreign agent that cannot assign a co-located care-of address (e.g., it has no pool of addresses from which to allocate for the purpose of assignment):
(1)(c) Request(IP=0,MIPv4=Home) / Reject(IP=0)
(4)(a) Request(MIPv4=Home) / Ack(MIPv4=Home)
- IPCP completes.
- Mobile node waits to receive an Agent Advertisement.
- Mobile node registers using the peer's foreign agent care-of
address with its home agent.
C. A mobile node prefers a co-located care-of address and the peer determines that the mobile node's home address is such that the mobile node is connecting to its home link:
(1)(b) Request(IP=0,MIPv4=Home) / Nak(IP=Home)
(3)(a) Request(IP=Home,MIPv4=Home) / Ack(IP=Home,MIPv4=Home)
- IPCP completes.
- Mobile node de-registers with its home agent.
D. A mobile node prefers a foreign agent care-of address and the peer is a foreign agent which finds this state of affairs satisfactory:
(4)(a) Request(MIPv4=Home) / Ack(MIPv4=Home)
- IPCP completes.
- Mobile node waits to receive an Agent Advertisement.
- Mobile node registers using the peer's foreign agent care-of
or de-registers at home, depending on the values in the Agent
Advertisement.
E. A mobile node prefers a co-located care-of address and the peer does not implement the Mobile-IPv4 Configuration Option. The peer is, however, capable of assigning dynamic addresses:
(1)(d) Request(IP=0,MIPv4=Home) / Reject(MIPv4=Home)
(5)(a) Request(IP=0) / Nak(IP=a.b.c.d)
(6)(a) Request(IP=a.b.c.d) / Ack(IP=a.b.c.d)
- IPCP completes.
- Mobile node registers using a.b.c.d as a co-located care-of
address with its home agent.
F. A mobile node prefers a co-located care-of address and the peer does not implement the Mobile-IPv4 Configuration Option. The peer is not capable of assigning dynamic addresses:
(1)(e) Request(IP=0,MIPv4=Home) / Reject(IP=0,MIPv4=Home)
(7)(a) Request() / Ack()
- IPCP completes.
- Mobile node sends an Agent Solicitation and/or attempts to
obtain a co-located care-of address via means outside IPCP
(e.g., DHCP or manual configuration), or it gives up.
3. Additional Requirements β¨
3.1. Other IPCP Options
Okay bestie, let's talk about what a mobile node is allowed to put in its IPCP stuff π The deprecated IP-Addresses option is a hard no π ββοΈ A mobile node MUST NOT include the deprecated IP-Addresses option in any Configure-Request that contains a Mobile-IPv4 option, an IP-Address option, or both.
Now the plot twist π¦ A mobile node MAY include an IP-Compression-Protocol option and any other options that do not involve the negotiation of IP addresses. So anything that doesn't touch IP address negotiation is totally fair game β¨
Now for VJ header compression πΈ If a mobile node and a foreign agent or a home agent agree in IPCP to use Van Jacobson Header Compression [RFC 1144], then the mobile node MUST NOT set the 'V' bit in its ensuing Mobile IP Registration Request [RFC 2002]. Ngl this one is very iykyk π If the PPP peer entities are already using VJ header compression, there is no gain for the mobile IP entities to ask for it too, and requesting it is likely to cause confusion.
3.2. Move Detection
This section is my absolute fave π¦ Mobile nodes that connect via PPP MUST correctly implement PPP's IPCP, because moving around will likely change its PPP peer π§ Specifically, mobile nodes MUST be prepared to renegotiate IPCP at any time, including the renegotiation of the IP-Address Configuration Option and the Mobile-IPv4 Configuration Option described in this document. As per [RFC 1661], a mobile node in the Opened state MUST renegotiate IPCP upon receiving an IPCP Configure-Request from its peer.
Also, this is lowkey the important part π Certain wireless links can employ handoff and proxying mechanisms that don't necessarily bring down a PPP link, but still mean a mobile node has to register with a new foreign agent. Therefore, mobile nodes which connect to an agent via PPP MUST employ their move detection algorithms (see section 2.4.2 in [RFC 2002]) and register whenever they detect a change in connectivity.
Specifically, a mobile node that fails to receive an Agent Advertisement within the Lifetime advertised by its current foreign agent MUST assume that it has lost contact with that foreign agent (see Section 2.4.2.1, [RFC 2002]). If, in the mean time, the mobile node has received Agent Advertisements from another foreign agent, the mobile node SHOULD immediately register with that foreign agent upon timing out with its current foreign agent πββοΈπ¨
Likewise, a mobile node that implements move detection based upon the Prefix-Length Extension MUST compare the prefix of any advertising agents with that of its current foreign agent (see Section 2.4.2.2, [RFC 2002]). If such a mobile node receives an Agent Advertisement from a foreign agent specifying a different prefix than that of its current foreign agent, then the mobile node that employs this method of move detection MUST register with that new foreign agent.
A mobile node MAY treat PPP link-establishment as a sufficient reason to proceed with a new Mobile IP registration. Section 2 defines the circumstances under which mobile nodes MUST wait for an Agent Advertisement before registering. Accordingly, foreign agents and home agents SHOULD send an Agent Advertisement over a PPP link immediately after IPCP for that link enters the Opened state π
4. Security Considerations π¨
Okay, serious moment, so pay attention π«Ά This document introduces no known security threats over and above those facing any node on the Internet that either connects via PPP or implements Mobile IP or both. Specifically, service providers should use cryptographically strong authentication (e.g., CHAP [RFC 1994]) to prevent theft-of-service. Additionally, users requiring confidentiality should use PPP link encryption [RFC 1968], IP-layer encryption [RFC 1827], or application-layer encryption, depending upon their individual requirements. Finally, Mobile IP authentication [RFC 2002] protects against trivial denial-of-service attacks that could otherwise be waged against a mobile node and its home agent π
5. References π
- [RFC 2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
- [RFC 1144] Jacobson, V., "Compressing TCP/IP Headers for Low-Speed Serial Links", RFC 1144, January 1990.
- [RFC 1332] McGregor, G., "The PPP Internet Protocol Control Protocol (IPCP)," RFC 1332, May 1992.
- [RFC 1661] Simpson, W., Editor, "The Point-to-Point Protocol (PPP) for the Transmission of Multi-protocol Datagrams over Point-to-Point Links", STD 51, RFC 1661, July 1994.
- [RFC 1827] Atkinson, R., "IP Encapsulating Security Payload (ESP)", RFC 1827, August 1995.
- [RFC 1994] Simpson, W., "PPP Challenge Handshake Authentication Protocol (CHAP)", RFC 1994, August 1996.
- [RFC 1968] Meyer, G., "The PPP Encryption Control Protocol (ECP)", RFC 1968, June 1996.
- [RFC 2002] Perkins, C., Editor, "IP Mobility Support", RFC 2002, October 1996.
6. Acknowledgments π
The design of this protocol and option was inspired by an earlier submission by B. Patel and C. Perkins, then of IBM, in a now expired internet draft. Also, some of William Simpson's text was copied verbatim from [RFC 1661] to keep the terminology and specification consistent. The same goes for some of Charlie Perkins' definitions, and other relevant text, from [RFC 2002].
Tim Wilson and Chris Stanaway (Motorola) contributed significantly to the design of this Configuration Option and protocol specification. Special thanks to Vernon Schryver (SGI), Craig Fox (Cisco), Karl Fox (Ascend), and John Bray (FTP) for their helpful suggestions, comments, and patience π«Άβ¨
7. Authors' Addresses π
Jim Solomon
Motorola, Inc.
1301 E. Algonquin Rd. - Rm 2240
Schaumburg, IL 60196
Phone: +1-847-576-2753
Fax: +1-847-576-3240
EMail: solomon@comm.mot.com
Steven Glass
FTP Software, Inc.
2 High Street
North Andover, MA 01845
Phone: +1-508-685-4000
Fax: +1-508-684-6105
EMail: glass@ftp.com
8. Full Copyright Statement π
Copyright (C) The Internet Society (1998). All Rights Reserved.
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.
The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. π¦
π¦ where this page comes from
- ietf: rfc2290 1998-02
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms