The solution consists of decoupling the entities that participate in the data and the control planes: the data plane becomes distributed and managed by the MAARs near the edge of the network, while the control plane, besides those on the MAARs, relies on a central entity called the Central Mobility Database (CMD). In the proposed architecture, the hierarchy present in PMIPv6 between LMA and MAG is preserved but with the following substantial variations:
-
The LMA is discharged from the data forwarding role; only the Binding Cache andits management operations are maintained. Hence, the LMA is renamed as "CMD",which is therefore a Home-CPA. Also, the CMD is able to send and parse both PBUand PBA messages.
-
The MAG is enriched with the LMA functionalities, hence the name Mobility Anchorand Access Router (MAAR). It maintains a local Binding Cache for the MNs thatare attached to it, and it is able to send and parse PBU and PBA messages.
-
The Binding Cache will be extended to include information regarding P-MAARswhere the MN was anchored and still retains active data sessions.
-
Each MAAR has a unique set of global prefixes (which are configurable) that canbe allocated by the MAAR to the MNs but must be exclusive to that MAAR, i.e., noother MAAR can allocate the same prefixes.
The MAARs leverage the CMD to access and update information related to the MNs, which is stored as mobility sessions; hence, a centralized node maintains a global view of the network status. The CMD is queried whenever an MN is detected joining/leaving the mobility domain. It might be a fresh attachment, a detachment, or a handover, but as MAARs are not aware of past information related to a mobility session, they contact the CMD to retrieve the data of interest and eventually take the appropriate action. The procedure adopted for the query and the message exchange sequence might vary to optimize the update latency and/or the signaling overhead. Here, one method for the initial registration and three different approaches for updating the mobility sessions using PBUs and PBAs are presented. Each approach assigns a different role to the CMD:
-
The CMD is a PBU/PBA relay;
-
The CMD is only a MAAR locator;
-
The CMD is a PBU/PBA proxy.
The solution described in this document allows per-prefix anchoring decisions -- for example, to support the anchoring of some flows at a central Home-DPA (like a traditional LMA) or to enable an application to switch to the locally anchored prefix to gain route optimization, as indicated in [
RFC 8563]. This type of per-prefix treatment would potentially require additional extensions to the MAARs and signaling between the MAARs and the MNs to convey the per-flow anchor preference (central, distributed), which are not covered in this document.
Note that an MN may move across different MAARs, which might result in several P-MAARs existing at a given moment of time, each of them anchoring a different prefix used by the MN.
Initial registration is performed when an MN attaches to a network for the first time (rather than attaching to a new network after moving from a previous one).
In this description (shown in
Figure 1), it is assumed that:
-
The MN is attaching to MAAR1.
-
The MN is authorized to attach to the network.
Upon MN attachment, the following operations take place:
-
MAAR1 assigns a global IPv6 prefix from its own prefix pool to the MN (Pref1).It also stores this prefix (Pref1) in the locally allocated temporary BCE.
-
MAAR1 sends a PBU [RFC 5213] with Pref1 and the MN's MN-ID to theCMD.
-
Since this is an initial registration, the CMD stores a BCE containing theMN-ID, Pref1, and MAAR1's address (as a Proxy-CoA) as the primary fields.
-
The CMD replies with a PBA with the usual options defined in PMIPv6 [RFC 5213], meaning that the MN's registration is fresh and no paststatus is available.
-
MAAR1 stores the BCE described in (1) and unicasts a Router Advertisement (RA) tothe MN with Pref1.
-
The MN uses Pref1 to configure an IPv6 address (IP1) (e.g., with statelessaddress autoconfiguration (SLAAC)).
Note that:
-
Alternative IPv6 autoconfiguration mechanisms can also be used, though thisdocument describes the SLAAC-based one.
-
IP1 is routable at MAAR1 in the sense that it is on the path of packetsaddressed to the MN.
-
MAAR1 acts as a plain router for packets destined to the MN as no encapsulationor special handling takes place.
In the diagram shown in
Figure 1 (and subsequent diagrams), the flow of packets is presented using '*'.
+-----+ +---+ +--+
|MAAR1| |CMD| |CN|
+-----+ +---+ +*-+
| | *
MN | * +---+
attach. | ***** _|CMD|_
detection | flow1 * / +-+-+ \
| | * / | \
local BCE | * / | \
allocation | * / | \
|--- PBU -->| +---*-+-' +--+--+ `+-----+
| BCE | * | | | | |
| creation |MAAR1+------+MAAR2+-----+MAAR3|
|<-- PBA ---| | * | | | | |
local BCE | +---*-+ +-----+ +-----+
finalized | *
| | Pref1 *
| | +*-+
| | |MN|
| | +--+
Operations sequence Packet flow
Note that the registration process does not change regardless of the CMD's modes (relay, locator, or proxy) described in the following sections. The procedure is depicted in
Figure 1.
Upon MN mobility, if the CMD behaves as a PBU/PBA relay, the following operations take place:
-
When the MN moves from its current point of attachment and attaches to MAAR2(now the S-MAAR), MAAR2 reserves an IPv6 prefix (Pref2), stores a temporaryBCE, and sends a PBU to the CMD for registration.
-
Upon PBU reception and BC lookup, the CMD retrieves an already existing entryfor the MN and binds the MN-ID to its former location; thus, the CMD forwards thePBU to the MAAR indicated as Proxy-CoA (MAAR1) and includes a new mobility optionto communicate the S-MAAR's global address to MAAR1 (defined as the Serving MAARoption in Section 4.6). The CMD updates the P-CoA field inthe BCE related to the MN with the S-MAAR's address.
-
Upon PBU reception, MAAR1 can install a tunnel on its side towards MAAR2 and therelated routes for Pref1. Then MAAR1 replies to the CMD with a PBA (includingthe option mentioned before) to ensure that the new location has successfullychanged. The PBA contains the prefix anchored at MAAR1 in the Home Network Prefixoption.
-
The CMD, after receiving the PBA, updates the BCE and populates an instanceof the P-MAAR list. The P-MAAR list is an additional field on the BCE thatcontains an element for each P-MAAR involved in the MN's mobility session. Thelist element contains the P-MAAR's global address and the prefix it hasdelegated. Also, theCMD sends a PBA to the new S-MAAR, which contains the previous Proxy-CoA and theprefix anchored to it embedded into a new mobility option called the Previous MAARoption (defined in Section 4.5). Then, upon PBAarrival, a bidirectional tunnel can be established between the two MAARs, andnew routes are set appropriately to recover the IP flow(s) carrying Pref1.
-
Now, packets destined for Pref1 are first received by MAAR1, encapsulated into thetunnel, and forwarded to MAAR2, which finally delivers them to their destination.In the uplink, when the MN transmits packets using Pref1 as a source address, they aresent to MAAR2 (as it is the MN's new default gateway) and then tunneled to MAAR1, whichroutes them towards the next hop to the destination. Conversely, packets carryingPref2 are routed by MAAR2 without any special packet handling both for the uplinkand downlink.
+-----+ +---+ +-----+ +--+ +--+
|MAAR1| |CMD| |MAAR2| |CN| |CN|
+-----+ +---+ +-----+ +*-+ +*-+
| | | * *
| | MN * +---+ *
| | attach. ***** _|CMD|_ *
| | det. flow1 * / +-+-+ \ *flow2
| |<-- PBU ---| * / | \ *
| BCE | * / | *******
| check+ | * / | * \
| update | +---*-+-' +--+-*+ `+-----+
|<-- PBU*---| | | * | | *| | |
route | | |MAAR1|______|MAAR2+-----+MAAR3|
update | | | **(______)** *| | |
|--- PBA*-->| | +-----+ +-*--*+ +-----+
| BCE | * *
| update | Pref1 * *Pref2
| |--- PBA*-->| +*--*+
| | route ---move-->|*MN*|
| | update +----+
Operations sequence Data Packet flow
PBU/PBA messages with * contain
a new mobility option
For MN's next movements, the process is repeated, but the number of P-MAARs involved increases (according to the number of prefixes that the MN wishes to maintain). Indeed, once the CMD receives the first PBU from the new S-MAAR, it forwards copies of the PBU to all the P-MAARs indicated in the BCE, namely the P-MAAR registered as the current P-CoA (i.e., the MAAR prior to handover) plus the ones in the P-MAAR list. Those P-MAARs reply with a PBA to the CMD, which aggregates all of the PBAs into one PBA to notify the S-MAAR, which finally can establish the tunnels with the P-MAARs.
It should be noted that this design separates the mobility management at the prefix granularity, and it can be tuned in order to erase old mobility sessions when not required, while the MN is reachable through the latest prefix acquired. Moreover, the latency associated with the mobility update is bound to the PBA sent by the furthest P-MAAR, in terms of RTT, that takes the longest time to reach the CMD. The drawback can be mitigated by introducing a timeout at the CMD, by which, after its expiration, all the PBAs so far collected are transmitted, and the remaining are sent later upon their arrival. Note that, in this case, the S-MAAR might receive multiple PBAs from the CMD in response to a PBU. The CMD
SHOULD follow the retransmissions and rate-limiting considerations described in
Section 3.6, especially when aggregating and relaying PBAs.
When there are multiple P-MAARs, e.g., k MAARs, a single PBU received by the CMD triggers k outgoing packets from a single incoming packet. This may lead to packet bursts originating from the CMD, albeit to different targets. Pacing mechanisms
MUST be introduced to avoid bursts on the outgoing link.
The handover latency experienced in the approach shown before can be reduced if the P-MAARs are allowed to directly signal their information to the new S-MAAR. This procedure reflects what was described in
Section 3.2 up to the moment the P-MAAR receives the PBU with the Serving MAAR option. At that point, a P-MAAR is aware of the new MN's location (because of the S-MAAR's address in the Serving MAAR option), and, besides sending a PBA to the CMD, it also sends a PBA to the S-MAAR, including the prefix it is anchoring. This latter PBA does not need to include new options, as the prefix is embedded in the Home Network Prefix (HNP) option and the P-MAAR's address is taken from the message's source address. The CMD is released from forwarding the PBA to the S-MAAR as the latter receives a copy directly from the P-MAAR with the necessary information to build the tunnels and set the appropriate routes.
Figure 3 illustrates the new message sequence. The data forwarding is unaltered.
+-----+ +---+ +-----+ +--+ +--+
|MAAR1| |CMD| |MAAR2| |CN| |CN|
+-----+ +---+ +-----+ +*-+ +*-+
| | | * *
| | MN * +---+ *
| | attach. ***** _|CMD|_ *
| | det. flow1 * / +-+-+ \ *flow2
| |<-- PBU ---| * / | \ *
| BCE | * / | *******
| check+ | * / | * \
| update | +---*-+-' +--+-*+ `+-----+
|<-- PBU*---| | | * | | *| | |
route | | |MAAR1|______|MAAR2+-----+MAAR3|
update | | | **(______)** *| | |
|--------- PBA -------->| +-----+ +-*--*+ +-----+
|--- PBA*-->| route * *
| BCE update Pref1 * *Pref2
| update | +*--*+
| | | ---move-->|*MN*|
| | | +----+
Operations sequence Data Packet flow
PBU/PBA messages with * contain
a new mobility option
A further enhancement of previous solutions can be achieved when the CMD sends the PBA to the new S-MAAR before notifying the P-MAARs of the location change. Indeed, when the CMD receives the PBU for the new registration, it is already in possession of all the information that the new S-MAAR requires to set up the tunnels and the routes. Thus, the PBA is sent to the S-MAAR immediately after a PBU is received, including the Previous MAAR option in this case. In parallel, a PBU is sent by the CMD to the P-MAARs containing the Serving MAAR option to notify them about the new MN's location so that they receive the information to establish the tunnels and routes on their side. When P-MAARs complete the update, they send a PBA to the CMD to indicate that the operation has concluded and the information is updated in all network nodes. This procedure is obtained from the first procedure rearranging the order of the messages, but the parameters communicated are the same. This scheme is depicted in
Figure 4, where, again, the data forwarding is kept untouched.
+-----+ +---+ +-----+ +--+ +--+
|MAAR1| |CMD| |MAAR2| |CN| |CN|
+-----+ +---+ +-----+ +*-+ +*-+
| | | * *
| | MN * +---+ *
| | attach. ***** _|CMD|_ *
| | det. flow1 * / +-+-+ \ *flow2
| |<-- PBU ---| * / | \ *
| BCE | * / | *******
| check+ | * / | * \
| update | +---*-+-' +--+-*+ `+-----+
|<-- PBU*---x--- PBA*-->| | * | | *| | |
route | route |MAAR1|______|MAAR2+-----+MAAR3|
update | update | **(______)** *| | |
|--- PBA*-->| | +-----+ +-*--*+ +-----+
| BCE | * *
| update | Pref1 * *Pref2
| | | +*--*+
| | | ---move-->|*MN*|
| | | +----+
Operations sequence Data Packet flow
PBU/PBA messages with * contain
a new mobility option
The de-registration mechanism devised for PMIPv6 cannot be used as is in this solution because each MAAR handles an independent mobility session (i.e., a single prefix or a set of prefixes) for a given MN, whereas the aggregated session is stored at the CMD. Indeed, if a P-MAAR initiates a de-registration procedure because the MN is no longer present on the MAAR's access link, it removes the routing state for the prefix(es), that would be deleted by the CMD as well, hence defeating any prefix continuity attempt. The simplest approach to overcome this limitation is to deny a P-MAAR to de-register a prefix, that is, allowing only an S-MAAR to de-register the whole MN session. This can be achieved by first removing any L2 detachment event so that de-registration is triggered only when the binding lifetime expires, hence providing a guard interval for the MN to connect to a new MAAR. Then, a change in the MAAR operations is required, and at this stage, two possible solutions can be deployed:
-
A P-MAAR stops the BCE timer upon receiving a PBU from the CMD containinga "Serving MAAR" option. In this way, only the S-MAAR is allowed tode-register the mobility session, arguing that the MN definitely left thedomain.
-
P-MAARs can, upon BCE expiry, send de-registration messages to the CMD,which, instead of acknowledging the message with a 0 lifetime, sends back a PBAwith a non-zero lifetime, hence renewing the session if the MN is stillconnected to the domain.
The node sending PBUs (the CMD or S-MAAR)
SHOULD make use of the timeout to also deal with missing PBAs (to retransmit PBUs). The INITIAL_BINDACK_TIMEOUT [
RFC 6275]
SHOULD be used for configuring the retransmission timer. The retransmissions by the node
MUST use an exponential backoff process in which the timeout period is doubled upon each retransmission until either the node receives a response or the timeout period reaches the value MAX_BINDACK_TIMEOUT [
RFC 6275]. The node
MAY continue to send these messages at this slower rate indefinitely. The node
MUST NOT send PBU messages to a particular node more than MAX_UPDATE_RATE times within a second [
RFC 6275].
One of the main challenges of a network-based DMM solution is how to allow a MN to simultaneously send/receive traffic that is anchored at different MAARs and how to influence the MN's selection process of its source IPv6 address for a new flow without requiring special support from the MN's IP stack. This document defines the DLIF, which is a software construct in the MAAR that can easily hide the change of associated anchors from the MN.
+---------------------------------------------------+
( Operator's )
( core )
+---------------------------------------------------+
| |
+---------------+ tunnel +---------------+
| IP stack |===============| IP stack |
+---------------+ +-------+-------+
| mn1mar1 |--+ (DLIFs) +--|mn1mar1|mn1mar2|--+
+---------------+ | | +-------+-------+ |
| phy interface | | | | phy interface | |
+---------------+ | | +---------------+ |
MAAR1 (o) (o) MAAR2 (o)
x x
x x
prefA::/64 x x prefB::/64
(AdvPrefLft=0) x x
(o)
|
+-----+
prefA::MN1 | MN1 | prefB::MN1
(deprecated) +-----+
The basic idea of the DLIF concept is the following: each S-MAAR exposes itself to a given MN as multiple routers, one per P-MAAR associated with the MN. Let's consider the example shown in
Figure 5: MN1 initially attaches to MAAR1, configuring an IPv6 address (prefA::MN1) from a prefix locally anchored at MAAR1 (prefA::/64). At this stage, MAAR1 plays the role of both anchoring and serving MAAR and also behaves as a plain IPv6 access router. MAAR1 creates a DLIF to communicate (through a point-to-point link) with MN1, exposing itself as a (logical) router with specific MAC and IPv6 addresses (e.g., prefA::MAAR1/64 and fe80::MAAR1/64) using the DLIF mn1mar1. As explained below, these addresses represent the "logical" identity of MAAR1 for MN1 and will "follow" the MN while roaming within the domain (note that the place where all this information is maintained and updated is out of scope of this document; potential examples are to keep it on the home subscriber server -- HSS -- or the user's profile).
If MN1 moves and attaches to a different MAAR of the domain (MAAR2 in the example of
Figure 5), this MAAR will create a new logical interface (mn1mar2) to expose itself to MN1, providing it with a locally anchored prefix (prefB::/64). In this case, since the MN1 has another active IPv6 address anchored at MAAR1, MAAR2 also needs to create an additional logical interface configured to resemble the one used by MAAR1 to communicate with MN1. In this example, MAAR1 is the only P-MAAR (MAAR2 is the same as S-MAAR), so only the logical interface mn1mar1 is created. However, the same process would be repeated if more P-MAARs were involved. In order to keep the prefix anchored at MAAR1 reachable, a tunnel between MAAR1 and MAAR2 is established and the routing is modified accordingly. The PBU/PBA signaling is used to set up the bidirectional tunnel between MAAR1 and MAAR2, and it might also be used to convey the information about the prefix(es) anchored at MAAR1 and the addresses of the associated DLIF (i.e., mn1mar1) to MAAR2.
+------------------------------------------+ +----------------------+
| MAAR1 | | MAAR2 |
|+----------------------------------------+| |+--------------------+|
||+------------------++------------------+|| ||+------------------+||
|||+-------++-------+||+-------++-------+||| |||+-------++-------+|||
||||mn3mar1||mn3mar2||||mn2mar1||mn2mar2|||| ||||mn1mar1||mn1mar2||||
|||| LMAC1 || LMAC2 |||| LMAC3 || LMAC4 |||| |||| LMAC5 || LMAC6 ||||
|||+-------++-------+||+-------++-------+||| |||+-------++-------+|||
||| LIFs of MN3 || LIFs of MN2 ||| ||| LIFs of MN1 |||
||+------------------++------------------+|| ||+------------------+||
|| MAC1 (phy if MAAR1) || || MAC2 (phy if MAAR2)||
|+----------------------------------------+| |+--------------------+|
+------------------------------------------+ +----------------------+
x x x
x x x
(o) (o) (o)
| | |
+--+--+ +--+--+ +--+--+
| MN3 | | MN2 | | MN1 |
+-----+ +-----+ +-----+
Figure 6 shows the logical interface concept in more detail. The figure shows two MAARs and three MNs. MAAR1 is currently serving MN2 and MN3, while MAAR2 is serving MN1. Note that an S-MAAR always plays the role of anchoring MAAR for the attached (served) MNs. Each MAAR has one single physical wireless interface as depicted in this example.
As discussed before, each MN always "sees" multiple logical routers -- one per anchoring MAAR -- independently of its currently S-MAAR. From the point of view of the MN, these MAARs are portrayed as different routers, although the MN is physically attached to a single interface. This is achieved by the S-MAAR configuring different logical interfaces. MN1 is currently attached to MAAR2 (i.e., MAAR2 is its S-MAAR) and, therefore, it has configured an IPv6 address from MAAR2's pool (e.g., prefB::/64). MAAR2 has set up a logical interface (mn1mar2) on top of its wireless physical interface (phy if MAAR2), which is used to serve MN1. This interface has a logical MAC address (LMAC6) that is different from the hardware MAC address (MAC2) of the physical interface of MAAR2. Over the mn1mar2 interface, MAAR2 advertises its locally anchored prefix prefB::/64. Before attaching to MAAR2, MN1 was attached to MAAR1 and configured a locally anchored address at that MAAR, which is still being used by MN1 in active communications. MN1 keeps "seeing" an interface connecting to MAAR1 as if it were directly connected to the two MAARs. This is achieved by the S-MAAR (MAAR2) configuring an additional DLIF, mn1mar1, which behaves as the logical interface configured by MAAR1 when MN1 was attached to it. This means that both the MAC and IPv6 addresses configured on this logical interface remain the same regardless of the physical MAAR that is serving the MN. The information required by an S-MAAR to properly configure this logical interfaces can be obtained in different ways: as part of the information conveyed in the PBA, from an external database (e.g., the HSS) or by other means. As shown in the figure, each MAAR may have several logical interfaces associated with each attached MN and always has at least one (since an S-MAAR is also an anchoring MAAR for the attached MN).
In order to enforce the use of the prefix locally anchored at the S-MAAR, the RAs sent over those logical interfaces playing the role of anchoring MAARs (different from the serving one) include a zero preferred prefix lifetime (and a non-zero valid prefix lifetime, so the prefix remains valid while being deprecated). The goal is to deprecate the prefixes delegated by these MAARs (so that they will no longer be serving the MN). Note that ongoing communications may keep on using those addresses even if they are deprecated, so this only affects the establishment of new sessions.
The DLIF concept also enables the following use case: suppose that access to a local IP network is provided by a given MAAR (e.g., MAAR1 in the example shown in
Figure 5) and that the resources available at that network cannot be reached from outside the local network (e.g., cannot be accessed by an MN attached to MAAR2). This is similar to the local IP access scenario considered by 3GPP, where a local gateway node is selected for sessions requiring access to services provided locally (instead of going through a central gateway). The goal is to allow an MN to be able to roam while still being able to have connectivity to this local IP network. The solution adopted to support this case makes use of more specific routes, as discussed in
RFC 4191 [
RFC 4191], when the MN moves to a MAAR different from the one providing access to the local IP network (MAAR1 in the example). These routes are advertised through the DLIF where the MAAR is providing access to the local network (MAAR1 in this example). In this way, if MN1 moves from MAAR1 to MAAR2, any active session that MN1 may have with a node on the local network connected to MAAR1 will survive via the tunnel between MAAR1 and MAAR2. Also, any potential future connection attempt to the local network will be supported even though MN1 is no longer attached to MAAR1, so long as a source address configured from MAAR1 is selected for new connections (see [
RFC 6724], rule 5.5).