RFC 8818
Distributed Mobility Anchoring
RFC 8818: Distributed Mobility Anchoring β¨
Okay bestie, so this is RFC 8818, and it's giving Informational vibes. It's published for information, not as a standards track spec π. It came out in October 2020 and has ISSN 2070-1721. The editors are H. Chan (CIHE) and CJ. Bernardos (UC3M), with X. Wei (Huawei Technologies), J. Lee (Sejong University), and S. Jeon (Sungkyunkwan University) π«Ά. It doesn't list anything it obsoletes or updates, so it stands on its own π.
Abstract
okay so this doc is all about distributed mobility anchoring π¦. It explains the different setups and functions that give IP mobility support. A network can be set up with distributed anchoring for either network-based or host-based mobility, whichever fits what the network needs π . In this setup there are several anchors around, so an IP prefix anchor can be switched in the middle of a session π₯.
If a flow is brand new, or it doesn't need IP session continuity, the mobile node can just start or restart it after moving to a new network. It uses an IP address from the new prefix anchored to that network, and honestly that's so clean β¨. If a flow does need to survive the network change, there are solutions for IP address mobility that handle it π. The doc covers the different anchoring approaches for different mobility needs, and how the network deals with that address mobility πΈ.
Status of This Memo
this is not an Internet Standards Track spec, it's just published for information π.
It's a product of the Internet Engineering Task Force (IETF) π, so it represents the consensus of the IETF community. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). Not every IESG-approved doc is a candidate for any level of Internet Standard, so check Section 2 of RFC 7841 if you're curious π§.
For the current status, any errata, and how to give feedback, go to https://www.rfc-editor.org/info/rfc8818 π.
Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the document authors. All rights reserved π.
This doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info), as they stand on the publication date. Please actually read those, bestie, because they spell out your rights and restrictions for this document π. Any Code Components pulled out of this doc have to include Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions. They come with no warranty, per the Simplified BSD License π .
Table of Contents
1. Introduction
2. Conventions and Terminology
3. Distributed Mobility Anchoring
3.1. Configurations for Different Networks
3.1.1. Network-Based DMM
3.1.2. Client-Based DMM
4. IP Mobility Handling in Distributed Anchoring Environments:
Mobility Support Only When Needed
4.1. Nomadic Case
4.2. Mobility Case with Traffic Redirection
4.3. Mobility Case with Anchor Relocation
5. Security Considerations
6. IANA Considerations
7. References
7.1. Normative References
7.2. Informative References
Acknowledgements
Contributors
Authors' Addresses
1. Introduction β¨
okay so the big goal in distributed mobility management (DMM) [RFC7333] is to stop traffic from having to go through one mobility anchor that's way off the optimal route π¦. This doc defines the different configurations, functional operations, and parameters for distributed mobility anchoring. It also explains how to use them so routes don't get unnecessarily long when a mobile node moves π .
Other DMM docs already cover some of this stuff. Source address selection is in [RFC8653], and control-plane and data-plane signaling is in [FPC-DMM-PROTOCOL] π«Ά. There are also a bunch of distributed mobility solutions floating around, like [DMM-DMA], [RFC8885], [DMM-WIFI], [DMM-ENHANCED-ANCHORING], and [STATELESS-UPLANE-VEPC] π.
Distributed mobility anchoring uses multiple anchors in the data plane π₯. Generally, control-plane functions can be split off from data-plane functions and centralized, but they can also be co-located with the data-plane functions at the distributed anchors π§. You can see the different setups in Section 3.1 π.
Here's the flow of it. When a Mobile Node (MN) attaches to an access router and sets up a link with it, a /64 IPv6 prefix anchored to that router may be assigned to the link for the MN's exclusive use [RFC6459] π. The MN can then configure a global IPv6 address from that prefix and use it as the source IP address for a flow talking to its Correspondent Node (CN) π. If there are several mobility anchors assigned to the same MN, it needs to do address selection for a given flow before the flow starts π. Using an anchor in the MN's current network is nice because packets can just get forwarded using the forwarding table π¦. The catch is that after the flow has started, the MN might move to another network that assigns it a new mobility anchor. Since that new anchor sits in a different network, the MN's assigned prefix doesn't belong to the network it's currently attached to π.
So if the MN wants to keep using its assigned prefix for ongoing sessions after moving, the network has to support the MN's IP address and session continuity π. Routing packets to the MN through the new network goes against just using default routes, so it's not automatic π₯. The IP session continuity needs of each flow decide how its IP address has to be anchored π. If an ongoing flow can handle an IP prefix or address change, it can be reinitiated with a new IP address anchored in the new network β¨. But if an ongoing flow can't handle that kind of change, mobility support is needed πΈ. A network that carries a mix of flows, some needing IP mobility support and some not, will need to tell those flows apart π.
Okay bestie, let's get into it π Section 2 is where the document tells us which words are doing the heavy lifting and what all the mobility jargon actually means. Pay attention, because the capital letters matter! π
2. Conventions and Terminology β¨
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. π§
So okay, these words are only "special" when they're written in ALL CAPS. If you see lowercase "must" or "may" it's just regular English, no cap π but when they're in capitals they follow the BCP 14 rules from [RFC2119] and [RFC8174].
All general mobility-related terms and their acronyms used in this document are to be interpreted as defined in the Mobile IPv6 (MIPv6) base specification [RFC6275], the Proxy Mobile IPv6 (PMIPv6) specification [RFC5213], the Mobility Terminology document [RFC3753], and the DMM Current Practices and Gap Analysis document [RFC7429]. These include terms such as Mobile Node (MN), Correspondent Node (CN), Home Agent (HA), Home Address (HoA), Care-of-Address (CoA), Local Mobility Anchor (LMA), and Mobile Access Gateway (MAG). πΈ
Basically the whole mobility vocab family is borrowed from those four docs, so if a term is unfamiliar, go check them. Mobile Node (MN), Correspondent Node (CN), Home Agent (HA), Home Address (HoA), Care-of-Address (CoA), Local Mobility Anchor (LMA), and Mobile Access Gateway (MAG) are all in there, iykyk π
In addition, this document uses the following terms and definitions: π¦
IP session continuity: The ability to maintain an ongoing transport interaction by keeping the same local endpoint IP address throughout the lifetime of the IP socket despite the mobile host changing its point of attachment within the IP network topology. The IP address of the host may change after closing the IP socket and before opening a new one, but that does not jeopardize the ability of applications using these IP sockets to work flawlessly. Session continuity is essential for mobile hosts to maintain ongoing flows without any interruption [RFC8653].
Okay this one is giving "the connection survives the move" energy β¨ Your device can switch where it's plugged into the network, and the same local IP address sticks around for the whole life of the socket. The address is allowed to change between closing one socket and opening the next, and apps still work fine. Session continuity is essential for mobile hosts to keep their flows going with no interruption [RFC8653]. Literally the whole point, periodt π
Higher-layer session continuity: The ability to maintain an ongoing transport- or higher-layer (e.g., application) interaction by keeping the session identifiers throughout the lifetime of the session despite the mobile host changing its point of attachment within the IP network topology. This can be achieved by using mechanisms at the transport or higher layers. π
This is the same vibe but one level up. Instead of the IP address staying put, the session identifiers stay put, even when the host moves around. You can get this with mechanisms at the transport or higher layers, which is lowkey so cool π«Ά
IP address reachability: The ability to maintain the same IP address for an extended period of time. The IP address stays the same across independent sessions, even in the absence of any session. The IP address may be published in a long-term registry (e.g., DNS) and is made available for serving incoming (e.g., TCP) connections. IP address reachability is essential for mobile hosts to use specific/published IP addresses [RFC8653]. π
Reachability is about the address being stable over a long time. It stays the same across sessions, even when there's no session going on at all π It can be published in a long-term registry like DNS and used for incoming connections like TCP. Super essential for mobile hosts who want to use specific or published IP addresses [RFC8653]. Main character address energy, obviously β¨
IP mobility: The combination of IP address reachability and session continuity. π
IP mobility is just reachability plus session continuity, combined. Two powers in one, bestie π₯
Anchoring (of an IP prefix/address): An IP prefix (i.e., Home Network Prefix (HNP)) or address (i.e., HoA) assigned for use by an MN is topologically anchored to an anchor node when the anchor node is able to advertise a route into the routing infrastructure for the assigned IP prefix. The traffic using the assigned IP address/prefix must traverse the anchor node. We can refer to the function performed by the IP anchor node as anchoring, which is a data-plane function. π¦
So anchoring is when an anchor node can advertise a route into the routing infrastructure for the prefix or address given to an MN. The traffic using that address or prefix MUST traverse the anchor node. Wait, not capitals there, so "must" here is just regular English, no cap π The function the anchor node does is called anchoring, and it's a data-plane function. Ate. π
Location Management (LM) function: A control-plane function that keeps and manages the network location information of an MN. The location information may be a binding of the advertised IP address/prefix (e.g., HoA or HNP) to the IP routing address of the MN or of a node that can forward packets destined to the MN. πΈ
LM is the control-plane function that keeps track of where an MN is on the network. The location info can be a binding between the advertised IP address or prefix (like HoA or HNP) and the IP routing address of the MN, or of a node that can forward packets to the MN. Okay, very organised π
When the MN is a Mobile Router (MR), the location information will also include the Mobile Network Prefix (MNP), which is the aggregate IP prefix delegated to the MR to assign IP prefixes for use by the Mobile Network Nodes (MNNs) in the mobile network. π
So if the MN is a Mobile Router, the location info also includes the Mobile Network Prefix (MNP). That's the big aggregate prefix handed to the MR, which it then uses to assign prefixes to the Mobile Network Nodes (MNNs) inside the mobile network. Nested mobility is so extra πβ¨
In a client-server protocol model, secure (i.e., authenticated and authorized) location query and update messages may be exchanged between a Location Management client (LMc) and a Location Management server (LMs), where the location information can be updated or queried from the LMc. Optionally, there may be a Location Management proxy (LMp) between LMc and LMs. π§
In a client-server setup, secure (so authenticated and authorized) location query and update messages can go back and forth between an LMc (client) and an LMs (server), and the location info can be updated or queried from the LMc. There can also optionally be an LMp (proxy) sitting between them. Optional means you have a choice, bestie π
With separation of control plane and data plane, the LM function is in the control plane. It may be a logical function at the control-plane node, control-plane anchor, or mobility controller. π
With control and data planes split up, LM lives in the control plane. It can be a logical function sitting on a control-plane node, a control-plane anchor, or a mobility controller π¦
It may be distributed or centralized. β¨
Could be spread out or all in one spot, your call π
Forwarding Management (FM) function: Packet interception and forwarding to/from the IP address/prefix assigned for use by the MN, based on the internetwork location information, either to the destination or to some other network element that knows how to forward the packets to their destination. π
FM is the one doing packet interception and forwarding to and from the IP address or prefix given to the MN. It uses the internetwork location info to send packets either straight to the destination or to some other element that knows how to get them there. Main character job, honestly π
This function may be used to achieve traffic indirection. With separation of control plane and data plane, the FM function may split into an FM function in the data plane (FM-DP) and an FM function in the control plane (FM-CP). π
FM can be used for traffic indirection. And when control and data planes are split, FM might divide into an FM-DP (data plane) and an FM-CP (control plane). Two halves, one slay π«Ά
FM-DP may be distributed with distributed mobility management. It may be a function in a data-plane anchor or data-plane node. πΈ
FM-DP can be distributed alongside distributed mobility management, and it could live in a data-plane anchor or a data-plane node π§
FM-CP may be distributed or centralized. It may be a function in a control-plane node, control-plane anchor, or mobility controller. π
FM-CP follows the same pattern: it can be distributed or centralized, and it could sit on a control-plane node, a control-plane anchor, or a mobility controller π
Home Control-Plane Anchor (Home-CPA or H-CPA): The Home-CPA function hosts the MN's mobility session. There can be more than one mobility session for a mobile node, and those sessions may be anchored on the same or different Home-CPA's. The Home-CPA will interface with the Home-DPA for managing the forwarding state. π
The Home-CPA hosts the MN's mobility session. An MN can have more than one of these sessions, and they might be anchored on the same Home-CPA or on different ones. The Home-CPA talks to the Home-DPA to manage the forwarding state π¦
Home Data-Plane Anchor (Home-DPA or H-DPA): The Home-DPA is the topological anchor for the MN's IP address/prefix(es). The Home-DPA is chosen by the Home-CPA on a session basis. The Home-DPA is in the forwarding path for all the mobile node's IP traffic. β¨
The Home-DPA is the topological anchor for the MN's IP address or prefixes. The Home-CPA picks it on a per-session basis, and it sits in the forwarding path for all of the mobile node's IP traffic. Everything goes through this one, bestie π₯
Access Control-Plane Node (Access-CPN or A-CPN): The Access-CPN is responsible for interfacing with the mobile node's Home-CPA and with the Access-DPN. The Access-CPN has a protocol interface to the Home-CPA. π
The Access-CPN is the one in charge of talking to the mobile node's Home-CPA and to the Access-DPN. It has a protocol interface to the Home-CPA, so it's the middle person, lowkey iconic π
Access Data-Plane Node (Access-DPN or A-DPN): The Access-DPN function is hosted on the first-hop router where the mobile node is attached. This function is not hosted on a Layer 2 bridging device such as an eNode(B) or Access Point. πΈ
The Access-DPN function lives on the first-hop router where the mobile node is attached. It is NOT hosted on a Layer 2 bridging device like an eNode(B) or an Access Point, so don't go looking for it there π π¦
- Distributed Mobility Anchoring π
3.1. Configurations for Different Networks β¨
We next describe some configurations with multiple distributed anchors. To cover the widest possible spectrum of scenarios, we consider architectures in which the control and data planes are separated. We analyze where LM and FM functions, which are specific sub-functions involved in mobility management, can be placed when looking at the different scenarios with distributed anchors. π
Next up, we walk through setups with a bunch of distributed anchors. To cover as many scenarios as possible, we look at architectures where control and data planes are split apart. We figure out where the LM and FM sub-functions (the specific pieces of mobility management) can go in each distributed-anchor setup π«Ά
3.1.1. Network-Based DMM π
Figure 1 shows a general scenario for network-based distributed mobility management. π§
The main characteristics of a network-based DMM solution are: π
- There are multiple data-plane anchors, each with an FM-DP function.
- The control plane may either be distributed (not shown in the figure) or centralized (as shown in the figure).
- The Control-Plane Anchor (CPA) and the Data Plane Anchor (DPA) may or may not be co-located. If the CPA is co-located with the distributed DPAs, then there are multiple co-located CPA-DPA instances (not shown in the figure).
- An IP prefix/address IP1 (anchored to the DPA with IP address IPa1) is assigned for use to an MN. The MN uses this IP1 address to communicate with CNs (not shown in the figure).
- The location management (LM) function may be co-located or split (as shown in the figure) into a separate server (LMs) and a client (LMc). In this case, the LMs may be centralized whereas the LMc may be distributed or centralized.
____________ Network
___/ \___________
/ +-----+ \___
( |LMs | Control- \
/ +-.---+ plane \
/ +--------.---+ functions \
( |CPA: . | in the )
( |FM-CP, LMc | network )
( +------------+ \
/ . . \
( . . )
( . . )
( . . \
\ +------------+ +------------+Distributed )
( |DPA(IPa1): | |DPA(IPa2): |DPAs )
( |anchors IP1 | |anchors IP2 | _/
\ |FM-DP | |FM-DP | etc. /
\ +------------+ +------------+ /
\___ Data-plane _____/
\______ functions /
\__________________/
+------------+
|MN(IP1) | Mobile node attached
|flow(IP1,..)| to the network
+------------+
Figure 1: Network-Based DMM Configuration
3.1.2. Client-Based DMM π¦
Figure 2 shows a general scenario for client-based distributed mobility management. In this configuration, the mobile node performs Control-Plane Node (CPN) and Data-Plane Node (DPN) mobility functions, namely the forwarding management and location management (client) roles. π
+-----+
|LMs |
+-.---+
+--------.---+
|CPA: . |
|FM-CP, LMp |
+------------+
. .
. .
. .
. .
+------------+ +------------+ Distributed
|DPA(IPa1): | |DPA(IPa2): | DPAs
|anchors IP1 | |anchors IP2 |
|FM-DP | |FM-DP | etc.
+------------+ +------------+
+------------+
|MN(IP1) |Mobile node
|flow(IP1,..)|using IP1
|FM, LMc |anchored to
+------------+DPA(IPa1)
Figure 2: Client-Based DMM Configuration
4. IP Mobility Handling in Distributed Anchoring Environments: Mobility Support Only When Needed β¨
okay so bestie, this section is literally about a really smart idea: what if IP mobility support is only switched on when you actually need it, instead of being there by default? π Like, why pay the cost of keeping your address stable if your app doesn't care? It's giving efficiency. π¦
There are three cases to think about:
- Nomadic case: Address continuity is not needed at all πΈ. The IP address the MN uses changes after it moves, and any traffic using the old address gets disrupted. If you still want your session to survive, that has to be handled by something running at Layer 4 or above π«Ά.
- Mobility case with traffic redirection: Address continuity IS needed π₯. When the MN moves, the previous anchor keeps anchoring the traffic that uses the old IP address and forwards it to the MN's new location. The MN gets a new IP address anchored to the new location and, preferably, uses that new address for new communications it starts while connected at the new location.
- Mobility case with anchor relocation: Address continuity is needed here too π. The difference is that the route the traffic takes gets optimized, using some means of traffic indirection to step away from the default routes. Main character route energy π.
A straightforward way to do mobility anchoring goes like this: the MN picks, as the source IP address for packets belonging to an IP flow, an address that was allocated by the network it was attached to when that flow started. So traffic for that flow goes through the MN's mobility anchor [DMM-DMA] [RFC8885]. π§
The IP prefix or address on the MN's side of a flow can be anchored to the Access Router (AR) the MN is attached to. For example, when an MN attaches to a network (Net1) or moves to a new one (Net2), an IP prefix from the attached network gets assigned to the MN's interface. Besides configuring new link-local addresses, the MN also configures an IP address from that prefix. This one is typically a dynamic IP address, meaning it only gets used while the MN is attached to this access router. So when the MN attaches to a different access network, the address it configures changes dynamically π. The MN then uses this address when a flow starts. Packets from that flow addressed to the MN are simply forwarded according to the forwarding table π.
There can be multiple IP prefixes or addresses that an MN can pick from when it starts a flow β¨. They might come from the same access network or from different ones. The network may advertise these prefixes with cost options [PREFIX-COST] so the mobile node can choose the one with the least cost π°. On top of that, the IP prefixes or addresses the network provides may be different types, depending on whether mobility support is supported [RFC8653]. So the MN needs to choose which prefix or address to use for each flow based on whether or not it needs IP mobility support π. For example, it can use the mechanisms described in [RFC8653].
4.1. Nomadic Case π
When IP mobility support is not needed for a flow, the LM and FM functions are not used, so the configurations in Section 3.1 get simplified as shown in Figure 3 π§Έ.
Net1 Net2
+---------------+ +---------------+
|AR1 | AR is changed |AR2 |
+---------------+ -------> +---------------+
|CPA: | |CPA: |
|---------------| |---------------|
|DPA(IPa1): | |DPA(IPa2): |
|anchors IP1 | |anchors IP2 |
+---------------+ +---------------+
+...............+ +---------------+
.MN(IP1) . MN moves |MN(IP2) |
.flow(IP1,...) . =======> |flow(IP2,...) |
+...............+ +---------------+
Figure 3: Changing to a New IP Address/Prefix
When mobility isn't needed for a flow, the flow can grab a brand new IP address from the new network as the MN moves over π¦.
No matter whether IP mobility is needed or not, if the flow hasn't ended before the MN moves to a new network, the flow can later restart using the new IP address that was assigned by the new network πΈ.
When IP session continuity IS needed, even if an application flow is ongoing while the MN moves, it may still be a good idea for that flow to switch over to the new IP prefix configured in the new network π . The application flow can then be closed at the IP level and restarted with a new IP address configured in the new network. This kind of change in the IP address used by the flow can be enabled using higher-layer mobility support, which is outside the scope of this document π«Ά.
In Figure 3, a flow started while the MN was using the IP prefix IP1, anchored to a previous access router AR1 in network Net1, ends before the MN moves to a new network Net2 β¨. After moving to Net2, the MN uses the new IP prefix IP2, anchored to a new access router AR2 in network Net2, to start a new flow. Packets can then be forwarded without needing IP-layer mobility support π.
Here's an example call flow in Figure 4 π§. An MN attaches to AR1, which sends a router advertisement (RA) with information about the prefix assigned to the MN, and from that the MN configures an IP address (IP1) π. This address gets used for new communications, for example, with a correspondent node (CN). If the MN moves to a new network and attaches to AR2, the whole process repeats (the MN gets a new IP address, IP2, from AR2) π. Since the IP address (IP1) configured at the previously visited network isn't valid at the current attachment point, any existing flows have to be reestablished using IP2 π.
Note that in these scenarios, if there is no mobility support provided by Layer 4 or above, application traffic would stop π.
MN AR1 AR2 CN
|MN attaches to AR1: | | |
|acquires MN-ID and profile | |
|--RS---------------->| | |
| | | |
|<----------RA(IP1)---| | |
| | | |
Assigned prefix IP1 | | |
IP1 address configuration | |
| | | |
|<-Flow(IP1,IPcn,...)-+------------------------------------------>|
| | | |
|MN detaches from AR1 | | |
|MN attaches to AR2 | | |
| | | |
|--RS------------------------------>| |
| | | |
|<--------------RA(IP2)-------------| |
| | | |
Assigned prefix IP2 | | |
IP2 address configuration | |
| | | |
|<-new Flow(IP2,IPcn,...)-----------+---------------------------->|
| | | |
Figure 4: Restarting a Flow with New IP Prefix/Address
Okay that's the nomadic case, bestie! Next up, we keep going with the mobility stuff π¦π
4.2. Mobility Case with Traffic Redirection π
okay so when a flow needs IP mobility, the LM and FM functions from Section 3.1 get put to work π There are two possible cases. In (i), the mobility anchor stays the anchor and forwards traffic to a new locator in the new network. In (ii), the mobility anchor (the data-plane function) gets swapped out, but the new one still binds the MN's transferred IP address/prefix. Case (ii) gives you optimized routes, but it needs some data-plane node that enforces traffic indirection π¦ We're focusing on case (i) in this section, and case (ii) gets its own section, 4.3 β¨
Mobility support can come from mobility management methods like the ones surveyed in these academic papers: [IEEE-DISTRIBUTED-MOBILITY], [PMIP-DMA], and [DMM-MOBILE-INTERNET] π Here's the tea: after an MN moves, one of its traffic flows can keep using the IP prefix from its old network of attachment. But later the app making that flow might get closed. When it's opened again, the new flow may not need the old network's address at all, so it avoids needing IP mobility support. This tends to happen when a dynamic IP prefix/address is in use, not a permanent one π Packets in that new flow can then use the new IP prefix, the one allocated in the network where the flow started. Routing stays simpler without IP mobility, and it stays that way as long as the MN doesn't move again to another network π§
Here's an example call flow for this case, shown in Figure 5. AR1 plays the role of the FM-DP entity and redirects the traffic (e.g., using an IP tunnel) to AR2 π
MN AR1 AR2 CN
|MN attaches to AR1: | | |
|acquires MN-ID and profile | |
|--RS---------------->| | |
| | | |
|<----------RA(IP1)---| | |
| | | |
Assigned prefix IP1 | | |
IP1 address configuration | |
| | | |
|<-Flow(IP1,IPcn,...)-+------------------------------------------>|
| | | |
|MN detaches from AR1 | | |
|MN attaches to AR2 | | |
| | | |
|--RS------------------------------>| |
(some IP mobility support solution)
|<--------------RA(IP2,IP1)---------| |
| | | |
| +<-Flow(IP1,IPcn,...)---------------------->|
| +<===========>+ |
|<-Flow(IP1,IPcn,...)-------------->+ |
| | | |
Assigned prefix IP2 | | |
IP2 address configuration | |
| | | |
Flow(IP1,IPcn) terminates | |
| | | |
|<-new Flow(IP2,IPcn,...)-----------+---------------------------->|
| | | |
Figure 5: Flow Using IP Prefix from Home Network after MN has Moved
Another option is to put an FM-DP entity closer to the CN network, so it can steer traffic away from the default routes. Default routing would otherwise bring the packet to AR1 π The LM and FM functions get implemented as shown in Figure 6 π
Net1 Net2
+---------------+ +---------------+
|AR1 | |AR2 |
+---------------+ +---------------+
|CPA: | |CPA: |
| | |LM:IP1 at IPa1 |
|---------------| IP1 (anchored to Net1) |---------------|
|DPA(IPa1): | is redirected to Net2 |DPA(IPa2): |
|anchors IP1 | =======> |anchors IP2 |
|FM:IP1 via IPa2| |FM:IP1 via IPa1|
+---------------+ +---------------+
+...............+ +---------------+
.MN(IP1) . MN moves |MN(IP2,IP1) |
.flow(IP1,...) . =======> |flow(IP1,...) |
. . |flow(IP2,...) |
+...............+ +---------------+
Figure 6: Anchor Redirection
Multiple DPA instances, sitting at access routers and handing out IP prefixes to MNs, are needed to get distributed mobility anchoring going. They should be set up in a configuration like Figure 1 (Section 3.1.1) for network-based distributed mobility, or Figure 2 (Section 3.1.2) for client-based distributed mobility πΈ
4.3. Mobility Case with Anchor Relocation π¦
Now for the case where the mobility anchor (the data-plane function) changes, but the new one still binds the MN's transferred IP address/prefix. This gives you optimized routes, but it needs some data-plane node that enforces traffic indirection π§
IP mobility gets invoked to keep an ongoing flow's IP session continuous as the MN moves to a new network. The flow's IP address is anchored in its home network, which is different from the current network of attachment π A centralized mobility management mechanism can use indirection from the anchor in the home network to the current network of attachment. The catch is that it can be hard to avoid an unnecessarily long route, especially when the route between the MN and the CN through the home-network anchor is way longer than the direct route between them π So the alternative is to move the IP prefix/address anchoring over to the new network β¨
The IP prefix/address anchoring can move without changing the flow's IP prefix/address. The LM function in Figure 1 of Section 3.1.1 gets implemented as shown in Figure 7 π
Net1 Net2
+---------------+ +---------------+
|AR1 | |AR2 |
+---------------+ +---------------+
|CPA: | |CPA: |
|LM:IP1 at IPa1 | |LM:IP1 at IPa2 |
| changes to | | |
| IP1 at IPa2 | | |
|---------------| |---------------|
|DPA(IPa1): | IP1 anchoring effectively moved |DPA(IPa2): |
|anchored IP1 | =======> |anchors IP2,IP1|
+---------------+ +---------------+
+...............+ +---------------+
.MN(IP1) . MN moves |MN(IP2,IP1) |
.flow(IP1,...) . =======> |flow(IP1,...) |
+...............+ +---------------+
Figure 7: Anchor Relocation
As an MN with an ongoing session moves to a new network, the flow can keep IP session continuity by moving the anchoring of the flow's original IP prefix/address to the new network π
One way to pull this off is a centralized routing protocol. Heads up though, that can raise some scalability concerns, and it's usually only practical in small networks π₯Ί One example of this type of solution is described in [BGP-ATN-IPS]. When an MN associates with an anchor, that anchor injects the MN's prefix into the global routing system. If the MN moves to a new anchor, the old anchor withdraws the /64 and the new anchor injects it instead π
5. Security Considerations π
Buckle up, bestie, this part is serious π€ As stated in [RFC7333], "a DMM solution MUST support any security protocols and mechanisms needed to secure the network and to make continuous security improvements". It also "MUST NOT introduce new security risks" π¨
There are different potential deployment models for a DMM solution. This document presented three different scenarios for distributed anchoring: (i) nomadic case, (ii) mobility case with traffic redirection, and (iii) mobility case with anchor relocation. Each one has its own security requirements, and the actual security mechanisms depend on the specifics of each solution/scenario π
As general rules, the first distributed anchoring scenario (nomadic case) needs no additional security consideration, since it doesn't involve any additional mechanism at Layer 3 π· If session connectivity is required, the Layer 4 or above solution used to provide it MUST also provide the required authentication and security π
The second and third distributed anchoring scenarios (mobility case) involve mobility signaling among the mobile node and the control-plane and data-plane anchors π‘ The control-plane messages exchanged between these entities MUST be protected using end-to-end security associations with data-integrity and data-origination capabilities π IPsec [RFC8221] Encapsulating Security Payload (ESP) in transport mode with mandatory integrity protection SHOULD be used for protecting the signaling messages π‘οΈ Internet Key Exchange Protocol Version 2 (IKEv2) [RFC8247] SHOULD be used to set up security associations between the data-plane and control-plane anchors ποΈ Also, when traffic indirection mechanisms are used to relocate an anchor, authentication and authorization mechanisms MUST be used π
Control-plane functionality MUST apply authorization checks to any commands or updates that are made by the control-plane protocol π ββοΈπ
6. IANA Considerations π
Good news, bestie: this document has no IANA actions π
7. References β¨
7.1. Normative References
okay so these are the docs you actually have to have read before you touch any of this πβ¨ bestie, these are the foundations. Every one of them is listed exactly as written below π«Ά
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC3753] Manner, J., Ed. and M. Kojo, Ed., "Mobility Related
Terminology", RFC 3753, DOI 10.17487/RFC3753, June 2004,
<https://www.rfc-editor.org/info/rfc3753>.
[RFC5213] Gundavelli, S., Ed., Leung, K., Devarapalli, V.,
Chowdhury, K., and B. Patil, "Proxy Mobile IPv6",
RFC 5213, DOI 10.17487/RFC5213, August 2008,
<https://www.rfc-editor.org/info/rfc5213>.
[RFC6275] Perkins, C., Ed., Johnson, D., and J. Arkko, "Mobility
Support in IPv6", RFC 6275, DOI 10.17487/RFC6275, July
2011, <https://www.rfc-editor.org/info/rfc6275>.
[RFC7333] Chan, H., Ed., Liu, D., Seite, P., Yokota, H., and J.
Korhonen, "Requirements for Distributed Mobility
Management", RFC 7333, DOI 10.17487/RFC7333, August 2014,
<https://www.rfc-editor.org/info/rfc7333>.
[RFC7429] Liu, D., Ed., Zuniga, JC., Ed., Seite, P., Chan, H., and
CJ. Bernardos, "Distributed Mobility Management: Current
Practices and Gap Analysis", RFC 7429,
DOI 10.17487/RFC7429, January 2015,
<https://www.rfc-editor.org/info/rfc7429>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8221] Wouters, P., Migault, D., Mattsson, J., Nir, Y., and T.
Kivinen, "Cryptographic Algorithm Implementation
Requirements and Usage Guidance for Encapsulating Security
Payload (ESP) and Authentication Header (AH)", RFC 8221,
DOI 10.17487/RFC8221, October 2017,
<https://www.rfc-editor.org/info/rfc8221>.
[RFC8247] Nir, Y., Kivinen, T., Wouters, P., and D. Migault,
"Algorithm Implementation Requirements and Usage Guidance
for the Internet Key Exchange Protocol Version 2 (IKEv2)",
RFC 8247, DOI 10.17487/RFC8247, September 2017,
<https://www.rfc-editor.org/info/rfc8247>.
7.2. Informative References
these ones are the extra reading π§ handy for the backstory and the wider DMM world, but not strictly required to get the spec π
[BGP-ATN-IPS]
Templin, F., Saccone, G., Dawra, G., Lindem, A., and V.
Moreno, "A Simple BGP-based Mobile Routing System for the
Aeronautical Telecommunications Network", Work in
Progress, Internet-Draft, draft-ietf-rtgwg-atn-bgp-06, 30
June 2020,
<https://tools.ietf.org/html/draft-ietf-rtgwg-atn-bgp-06>.
[DMM-DMA] Seite, P., Bertin, P., and J. Lee, "Distributed Mobility
Anchoring", Work in Progress, Internet-Draft, draft-seite-
dmm-dma-07, 6 February 2014,
<https://tools.ietf.org/html/draft-seite-dmm-dma-07>.
[DMM-ENHANCED-ANCHORING]
Kim, Y. and S. Jeon, "Enhanced Mobility Anchoring in
Distributed Mobility Management", Work in Progress,
Internet-Draft, draft-yhkim-dmm-enhanced-anchoring-05, 8
July 2016, <https://tools.ietf.org/html/draft-yhkim-dmm-
enhanced-anchoring-05>.
[DMM-MOBILE-INTERNET]
Chan, H., Yokota, H., Xie, J., Seite, P., and D. Liu,
"Distributed and Dynamic Mobility Management in Mobile
Internet: Current Approaches and Issues", Journal of
Communications, Vol. 6, No. 1, February 2011.
[DMM-WIFI] Sarikaya, B. and L. Li, "Distributed Mobility Management
Protocol for WiFi Users in Fixed Network", Work in
Progress, Internet-Draft, draft-sarikaya-dmm-for-wifi-05,
30 October 2017, <https://tools.ietf.org/html/draft-
sarikaya-dmm-for-wifi-05>.
[FPC-DMM-PROTOCOL]
Matsushima, S., Bertz, L., Liebsch, M., Gundavelli, S.,
Moses, D., and C. Perkins, "Protocol for Forwarding Policy
Configuration (FPC) in DMM", Work in Progress, Internet-
Draft, draft-ietf-dmm-fpc-cpdp-14, 22 September 2020,
<https://tools.ietf.org/html/draft-ietf-dmm-fpc-cpdp-14>.
[IEEE-DISTRIBUTED-MOBILITY]
Lee, J., Bonnin, J., Seite, P., and H. A. Chan,
"Distributed IP mobility management from the perspective
of the IETF: motivations, requirements, approaches,
comparison, and challenges", IEEE Wireless Communications,
vol. 20, no. 5, pp. 159-168, October 2013.
[PMIP-DMA] Chan, H., "Proxy mobile IP with distributed mobility
anchors", IEEE Globecom Workshops Miami, FL, 2010, pp.
16-20, December 2010.
[PREFIX-COST]
McCann, P. and J. Kaippallimalil, "Communicating Prefix
Cost to Mobile Nodes", Work in Progress, Internet-Draft,
draft-mccann-dmm-prefixcost-03, 11 April 2016,
<https://tools.ietf.org/html/draft-mccann-dmm-prefixcost-
03>.
[RFC6459] Korhonen, J., Ed., Soininen, J., Patil, B., Savolainen,
T., Bajko, G., and K. Iisakkila, "IPv6 in 3rd Generation
Partnership Project (3GPP) Evolved Packet System (EPS)",
RFC 6459, DOI 10.17487/RFC6459, January 2012,
<https://www.rfc-editor.org/info/rfc6459>.
[RFC8653] Yegin, A., Moses, D., and S. Jeon, "On-Demand Mobility
Management", RFC 8653, DOI 10.17487/RFC8653, October 2019,
<https://www.rfc-editor.org/info/rfc8653>.
[RFC8885] Bernardos, CJ., de la Oliva, A., Giust, F., ZΓΊΓ±iga, JC.,
and A. Mourad, "Proxy Mobile IPv6 Extensions for
Distributed Mobility Management", RFC 8885,
DOI 10.17487/RFC8885, October 2020,
<https://www.rfc-editor.org/info/rfc8885>.
[STATELESS-UPLANE-VEPC]
Matsushima, S. and R. Wakikawa, "Stateless user-plane
architecture for virtualized EPC (vEPC)", Work in
Progress, Internet-Draft, draft-matsushima-stateless-
uplane-vepc-06, 21 March 2016,
<https://tools.ietf.org/html/draft-matsushima-stateless-
uplane-vepc-06>.
Acknowledgements πΈ
a big thank-you to the people who made this happen π«Ά the funding shout-out is kept exactly as written:
The work of Jong-Hyouk Lee was supported by the MSIT (Ministry of
Science and ICT), Korea, under the ITRC (Information Technology
Research Center) support program (IITP-2020-2015-0-00403) supervised
by the IITP (Institute for Information & communications Technology
Planning & Evaluation).
Contributors π
these folks were a huge part of the early drafts π Alexandre Petrescu and Fred Templin had contributed to earlier draft versions of this document regarding distributed anchoring for hierarchical networks and for network mobility, although these extensions were removed to keep the document within reasonable length.
this document also built on other work on mobility support in SDN networks, on providing mobility support only when needed, and on mobility support in enterprise networks. those works have been referenced. some of these authors took the work on to write this document together, and others helped at least indirectly by writing those works. the latter include Philippe Bertin, Dapeng Liu, Satoru Matushima, Pierrick Seite, Jouni Korhonen, and Sri Gundavelli π
for completeness, some terminology from draft-ietf-dmm-deployment-models-04 has been incorporated into this document π§
valuable comments came in from John Kaippallimalil, ChunShan Xiong, Dapeng Liu, Fred Templin, Paul Kyzivat, Joseph Salowey, Yoshifumi Nishida, Carlos Pignataro, Mirja Kuehlewind, Eric Vyncke, Qin Wu, Warren Kumari, Benjamin Kaduk, Roman Danyliw, and Barry Leiba. Dirk von Hugo, Byju Pularikkal, and Pierrick Seite generously provided careful review with helpful corrections and suggestions. Marco Liebsch and Lyle Bertz also performed very detailed and helpful reviews of this document π₯Ήβ¨
Authors' Addresses π¦
and here are the people behind the spec, with their contact details exactly as they appear in the original π
H. Anthony Chan (editor)
Caritas Institute of Higher Education
2 Chui Ling Lane, Tseung Kwan O
N.T.
Hong Kong
Email: h.a.chan@ieee.org
Xinpeng Wei
Huawei Technologies
Xin-Xi Rd. No. 3, Haidian District
Beijing, 100095
China
Email: weixinpeng@huawei.com
Jong-Hyouk Lee
Sejong University
209, Neungdong-ro, Gwangjin-gu
Seoul
05006
Republic of Korea
Email: jonghyouk@sejong.ac.kr
Seil Jeon
Sungkyunkwan University
2066 Seobu-ro, Jangan-gu
Suwon, Gyeonggi-do
Republic of Korea
Email: seiljeon.ietf@gmail.com
Carlos J. Bernardos (editor)
Universidad Carlos III de Madrid
Av. Universidad, 30
28911 Leganes, Madrid
Spain
Phone: +34 91624 6236
Email: cjbc@it.uc3m.es
URI: http://www.it.uc3m.es/cjbc/
π¦ where this page comes from
- ietf: rfc8818 2020-10
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms