Proxy Mobile IPv6 DMM Extensions
Proxy Mobile IPv6 DMM Extensions
RFC: 8885
Category: Experimental
Published: October 2020
ISSN: 2070-1721
Authors: CJ. Bernardos A. de la Oliva F. Giust JC. Zúñiga A. Mourad
UC3M UC3M Athonet SIGFOX InterDigital
RFC 8885
Proxy Mobile IPv6 Extensions for Distributed
Mobility Management
Abstract
Distributed Mobility Management solutions allow networks to be set up in such a way that traffic
is distributed optimally and centrally deployed anchors are not relied upon to provide IP
mobility support.
There are many different approaches to address Distributed Mobility Management -- for
example, extending network-based mobility protocols (like Proxy Mobile IPv6) or client-based
mobility protocols (like Mobile IPv6), among others. This document follows the former approach
and proposes a solution based on Proxy Mobile IPv6, in which mobility sessions are anchored at
the last IP hop router (called the mobility anchor and access router). The mobility anchor and
access router is an enhanced access router that is also able to operate as a local mobility anchor
or mobility access gateway on a per-prefix basis. The document focuses on the required
extensions to effectively support the simultaneous anchoring several flows at different
distributed gateways.
This document defines an Experimental Protocol for the Internet community. This document is a
product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF
community. It has received public review and has been approved for publication by the Internet
Engineering Steering Group (IESG). Not all documents approved by the IESG are candidates for
any level of Internet Standard; see Section 2 of RFC 7841.
Information about the current status of this document, any errata, and how to provide feedback
on it may be obtained at [Link]
Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the document authors. All rights
reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF
Documents ([Link] in effect on the date of publication of this
document. Please review these documents carefully, as they describe your rights and restrictions
with respect to this document. Code Components extracted from this document must include
Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Simplified BSD License.
Table of Contents
1. Introduction
2. Terminology
3.5. De-registration
4. Message Format
5. IANA Considerations
6. Security Considerations
7. References
Acknowledgements
Authors' Addresses
1. Introduction
The Distributed Mobility Management (DMM) paradigm aims at minimizing the impact of
currently standardized mobility management solutions, which are centralized (at least to a
considerable extent) [RFC7333].
The two most relevant examples of current IP mobility solutions are Mobile IPv6 [RFC6275] and
Proxy Mobile IPv6 (PMIPv6) [RFC5213]. These solutions offer mobility support at the cost of
handling operations at a cardinal point (i.e., the mobility anchor) and burdening it with data
forwarding and control mechanisms for a large number of users. The mobility anchor is the
home agent for Mobile IPv6 and the local mobility anchor for PMIPv6. As stated in [RFC7333],
centralized mobility solutions are prone to several problems and limitations: longer (sub-
optimal) routing paths, scalability problems, signaling overhead (and most likely a longer
associated handover latency), more complex network deployment, higher vulnerability due to
the existence of a potential single point of failure, and lack of granularity of the mobility
management service (i.e., mobility is offered on a per-node basis because it is not possible to
define finer granularity policies, for example, on a per-application basis).
The purpose of DMM is to overcome the limitations of the traditional centralized mobility
management [RFC7333] [RFC7429]; the main concept behind DMM solutions is indeed bringing
the mobility anchor closer to the mobile node (MN). Following this idea, the central anchor is
moved to the edge of the network and is deployed in the default gateway of the MN. That is, the
first elements that provide IP connectivity to a set of MNs are also the mobility managers for
those MNs. In this document, we call these entities Mobility Anchors and Access Routers
(MAARs).
This document focuses on network-based DMM; hence, the starting point is making PMIPv6 work
in a distributed manner [RFC7429]. Mobility is handled by the network without the MN's
involvement. But differently from PMIPv6, when the MN moves from one access network to
another, the router anchoring the MN's address may change, hence requiring signaling between
the anchors to retrieve the MN's previous location(s). Also, a key aspect of network-based DMM is
that a prefix pool belongs exclusively to each MAAR in the sense that those prefixes are assigned
by the MAAR to the MNs attached to it and are routable at that MAAR. Prefixes are assigned to
MNs attached to a MAAR at that time, but remain with those MNs as mobility occurs, remaining
always routable at that MAAR as well as towards the MN itself.
We consider partially distributed schemes, where only the data plane is distributed among
access routers similar to mobile access gateways (MAGs), whereas the control plane is kept
centralized towards a cardinal node (used as an information store), which is discharged from
any route management and MN's data forwarding tasks.
2. Terminology
The following terms used in this document are defined in the PMIPv6 specification [RFC5213]:
The following terms used in this document are defined in the Mobile IPv6 (MIPv6) specification
[RFC6275]:
Anchoring MAAR:
A MAAR anchoring an IPv6 prefix used by an MN.
• The LMA is discharged from the data forwarding role; only the Binding Cache and its
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 PBU and PBA messages.
• The MAG is enriched with the LMA functionalities, hence the name Mobility Anchor and
Access Router (MAAR). It maintains a local Binding Cache for the MNs that are 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-MAARs where the
MN was anchored and still retains active data sessions.
• Each MAAR has a unique set of global prefixes (which are configurable) that can be allocated
by the MAAR to the MNs but must be exclusive to that MAAR, i.e., no other 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 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
[RFC8563]. 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.
1. 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.
2. MAAR1 sends a PBU [RFC5213] with Pref1 and the MN's MN-ID to the CMD.
3. Since this is an initial registration, the CMD stores a BCE containing the MN-ID, Pref1, and
MAAR1's address (as a Proxy-CoA) as the primary fields.
4. The CMD replies with a PBA with the usual options defined in PMIPv6 [RFC5213], meaning
that the MN's registration is fresh and no past status is available.
5. MAAR1 stores the BCE described in (1) and unicasts a Router Advertisement (RA) to the MN
with Pref1.
6. The MN uses Pref1 to configure an IPv6 address (IP1) (e.g., with stateless address
autoconfiguration (SLAAC)).
Note that:
1. Alternative IPv6 autoconfiguration mechanisms can also be used, though this document
describes the SLAAC-based one.
2. IP1 is routable at MAAR1 in the sense that it is on the path of packets addressed to the MN.
3. MAAR1 acts as a plain router for packets destined to the MN as no encapsulation or special
handling takes place.
In the diagram shown in Figure 1 (and subsequent diagrams), the flow of packets is presented
using '*'.
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.
1. 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 temporary BCE, and sends a PBU to
the CMD for registration.
2. Upon PBU reception and BC lookup, the CMD retrieves an already existing entry for the MN
and binds the MN-ID to its former location; thus, the CMD forwards the PBU to the MAAR
indicated as Proxy-CoA (MAAR1) and includes a new mobility option to communicate the S-
MAAR's global address to MAAR1 (defined as the Serving MAAR option in Section 4.6). The
CMD updates the P-CoA field in the BCE related to the MN with the S-MAAR's address.
3. Upon PBU reception, MAAR1 can install a tunnel on its side towards MAAR2 and the related
routes for Pref1. Then MAAR1 replies to the CMD with a PBA (including the option
mentioned before) to ensure that the new location has successfully changed. The PBA
contains the prefix anchored at MAAR1 in the Home Network Prefix option.
4. The CMD, after receiving the PBA, updates the BCE and populates an instance of the P-MAAR
list. The P-MAAR list is an additional field on the BCE that contains an element for each P-
MAAR involved in the MN's mobility session. The list element contains the P-MAAR's global
address and the prefix it has delegated. Also, the CMD sends a PBA to the new S-MAAR, which
contains the previous Proxy-CoA and the prefix anchored to it embedded into a new mobility
option called the Previous MAAR option (defined in Section 4.5). Then, upon PBA arrival, a
bidirectional tunnel can be established between the two MAARs, and new routes are set
appropriately to recover the IP flow(s) carrying Pref1.
5. Now, packets destined for Pref1 are first received by MAAR1, encapsulated into the tunnel,
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 are sent to MAAR2 (as
it is the MN's new default gateway) and then tunneled to MAAR1, which routes them towards
the next hop to the destination. Conversely, packets carrying Pref2 are routed by MAAR2
without any special packet handling both for the uplink and downlink.
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.
3.5. De-registration
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 containing a "Serving
MAAR" option. In this way, only the S-MAAR is allowed to de-register the mobility session,
arguing that the MN definitely left the domain.
• 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 PBA with a non-zero lifetime,
hence renewing the session if the MN is still connected to the domain.
+---------------------------------------------------+
( 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
[RFC4191], 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 [RFC6724], rule 5.5).
4. Message Format
This section defines extensions to the PMIPv6 [RFC5213] protocol messages.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence # |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|A|H|L|K|M|R|P|F|T|B|S|D| Rsrvd | Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. .
. Mobility Options .
. .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Mobility Options
Variable-length field of such length that the complete Mobility Header is an integer that is a
multiple of 8 octets long. This field contains zero or more TLV-encoded mobility options. The
encoding and format of the defined options are described in Section 6.2 of [RFC6275]. The
receiving node MUST ignore and skip any options that it does not understand.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Status |K|R|P|T|B|S|D| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence # | Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. .
. Mobility Options .
. .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Mobility Options
Variable-length field of such length that the complete Mobility Header is an integer multiple
of 8 octets long. This field contains zero or more TLV-encoded mobility options. The encoding
and format of the defined options are described in Section 6.2 of [RFC6275]. The MAAR MUST
ignore and skip any options that it does not understand.
The Anchored Prefix option has an alignment requirement of 8n+4. Its format is as follows:
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 | Reserved | Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Anchored Prefix +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
65
Length
8-bit unsigned integer indicating the length of the option in octets, excluding the type and
length fields. This field MUST be set to 18.
Reserved
This field is unused at the time of publication. The value MUST be initialized to 0 by the sender
and MUST be ignored by the receiver.
Prefix Length
8-bit unsigned integer indicating the prefix length in bits of the IPv6 prefix contained in the
option.
Anchored Prefix
A 16-octet field containing the MN's IPv6 Anchored Prefix. Only the first Prefix Length bits are
valid for the Anchored Prefix option. The rest of the bits MUST be ignored.
The Local Prefix option has an alignment requirement of 8n+4. Its format is as follows:
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 | Reserved | Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Local Prefix +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
66
Length
8-bit unsigned integer indicating the length of the option in octets, excluding the type and
length fields. This field MUST be set to 18.
Reserved
This field is unused at the time of publication. The value MUST be initialized to 0 by the sender
and MUST be ignored by the receiver.
Prefix Length
8-bit unsigned integer indicating the prefix length in bits of the IPv6 prefix contained in the
option.
Local Prefix
A 16-octet field containing the IPv6 Local Prefix. Only the first Prefix Length bits are valid for
the IPv6 Local Prefix. The rest of the bits MUST be ignored.
The Previous MAAR option has an alignment requirement of 8n+4. Its format is as follows:
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 | Reserved | Prefix Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Previous MAAR +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Home Network Prefix +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
67
Length
8-bit unsigned integer indicating the length of the option in octets, excluding the type and
length fields. This field MUST be set to 34.
Reserved
This field is unused at the time of publication. The value MUST be initialized to 0 by the sender
and MUST be ignored by the receiver.
Prefix Length
8-bit unsigned integer indicating the prefix length in bits of the IPv6 prefix contained in the
option.
Previous MAAR
A 16-octet field containing the P-MAAR's IPv6 global address.
The Serving MAAR option has an alignment requirement of 8n+6. Its format is as follows:
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ S-MAAR's Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
68
Length
8-bit unsigned integer indicating the length of the option in octets, excluding the type and
length fields. This field MUST be set to 16.
Serving MAAR
A 16-octet field containing the S-MAAR's IPv6 global address.
The DLIF Link-Local Address option has an alignment requirement of 8n+6. Its format is as
follows:
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ DLIF Link-Local Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
69
Length
8-bit unsigned integer indicating the length of the option in octets, excluding the type and
length fields. This field MUST be set to 16.
The format of the DLIF Link-Layer Address option is shown below. Based on the size of the
address, the option MUST be aligned appropriately, as per the mobility option alignment
requirements specified in [RFC6275].
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 | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ DLIF Link-Layer Address +
. ... .
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
70
Length
8-bit unsigned integer indicating the length of the option in octets, excluding the type and
length fields.
Reserved
This field is unused at the time of publication. The value MUST be initialized to 0 by the sender
and MUST be ignored by the receiver.
The content and format of this field (including octet and bit ordering) is as specified in Section
4.6 of [RFC4861] for carrying link-layer addresses. On certain access links where the link-layer
address is not used or cannot be determined, this option cannot be used.
5. IANA Considerations
This document defines six new mobility options: Anchored Prefix, Local Prefix, Previous MAAR,
Serving MAAR, DLIF Link-Local Address, and DLIF Link-Layer Address. IANA has assigned Type
values for these options from the same numbering space as allocated for the other mobility
options in the "Mobility Options" registry defined in [Link]
parameters.
This document reserves a new flag (D) with a value of 0x0010 in the "Binding Update Flags"
registry and a new flag (D) with a value of 0x02 in the "Binding Acknowledgment Flags" of the
"Mobile IPv6 parameters" registry ([Link]
6. Security Considerations
The protocol extensions defined in this document share the same security concerns of PMIPv6
[RFC5213]. It is recommended that the signaling messages, PBU and PBA, exchanged between the
MAARs be protected using IPsec, specifically by using the established security association
between them. This essentially eliminates the threats related to the impersonation of a MAAR.
When the CMD acts as a PBU/PBA relay, the CMD may act as a relay of a single PBU to multiple P-
MAARs. In situations with many fast handovers (e.g., with vehicular networks), multiple previous
(e.g., k) MAARs may exist. In this situation, the CMD creates k outgoing packets from a single
incoming packet. This bears a certain amplification risk. The CMD MUST use a pacing approach in
the outgoing queue to cap the output traffic (i.e., the rate of PBUs sent) to limit this amplification
risk.
When the CMD acts as a MAAR locator, mobility signaling (PBAs) is exchanged between P-MAARs
and the current S-MAAR. Hence, security associations are REQUIRED to exist between the
involved MAARs (in addition to the ones needed with the CMD).
The CMD and the participating MAARs MUST be trusted parties authorized perform all
operations relevant to their role.
There are some privacy considerations to consider. While the involved parties trust each other,
the signaling involves disclosing information about the previous locations visited by each MN, as
well as the active prefixes they are using at a given point of time. Therefore, mechanisms MUST
be in place to ensure that MAARs and CMDs do not disclose this information to other parties or
use it for other ends than providing the distributed mobility support specified in this document.
7. References
7.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14,
RFC 2119, DOI 10.17487/RFC2119, March 1997, <[Link]
rfc2119>.
[RFC4191] Draves, R. and D. Thaler, "Default Router Preferences and More-Specific Routes",
RFC 4191, DOI 10.17487/RFC4191, November 2005, <[Link]
info/rfc4191>.
[RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, "Neighbor Discovery for
IP version 6 (IPv6)", RFC 4861, DOI 10.17487/RFC4861, September 2007, <https://
[Link]/info/rfc4861>.
[RFC5213] Gundavelli, S., Ed., Leung, K., Devarapalli, V., Chowdhury, K., and B. Patil, "Proxy
Mobile IPv6", RFC 5213, DOI 10.17487/RFC5213, August 2008, <[Link]
[Link]/info/rfc5213>.
[RFC6275] Perkins, C., Ed., Johnson, D., and J. Arkko, "Mobility Support in IPv6", RFC 6275,
DOI 10.17487/RFC6275, July 2011, <[Link]
[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, <[Link]
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP
14, RFC 8174, DOI 10.17487/RFC8174, May 2017, <[Link]
rfc8174>.
[DMM-PMIP] Bernardos, C., Oliva, A., and F. Giust, "A PMIPv6-based solution for Distributed
Mobility Management", Work in Progress, Internet-Draft, draft-bernardos-dmm-
pmip-09, 8 September 2017, <[Link]
pmip-09>.
[RFC6724] Thaler, D., Ed., Draves, R., Matsumoto, A., and T. Chown, "Default Address
Selection for Internet Protocol Version 6 (IPv6)", RFC 6724, DOI 10.17487/
RFC6724, September 2012, <[Link]
[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, <[Link]
[RFC8563] Katz, D., Ward, D., Pallagatti, S., Ed., and G. Mirsky, Ed., "Bidirectional
Forwarding Detection (BFD) Multipoint Active Tails", RFC 8563, DOI 10.17487/
RFC8563, April 2019, <[Link]
Acknowledgements
The authors would like to thank Dirk von Hugo, John Kaippallimalil, Ines Robles, Joerg Ott, Carlos
Pignataro, Vincent Roca, Mirja Kühlewind, Éric Vyncke, Adam Roach, Benjamin Kaduk, and
Roman Danyliw for the comments on this document. The authors would also like to thank Marco
Liebsch, Dirk von Hugo, Alex Petrescu, Daniel Corujo, Akbar Rahman, Danny Moses, Xinpeng
Wei, and Satoru Matsushima for their comments and discussion on the documents
[DISTRIBUTED-ANCHORING] and [DMM-PMIP], on which the present document is based.
The authors would also like to thank Lyle Bertz and Danny Moses for their in-depth review of
this document and their very valuable comments and suggestions.
Authors' Addresses
Carlos J. Bernardos
Universidad Carlos III de Madrid
Av. Universidad, 30
28911 Leganes Madrid
Spain
Phone: +34 91624 6236
Email: cjbc@[Link]
URI: [Link]
Antonio de la Oliva
Universidad Carlos III de Madrid
Av. Universidad, 30
28911 Leganes Madrid
Spain
Phone: +34 91624 8803
Email: aoliva@[Link]
URI: [Link]
Fabio Giust
Athonet S.r.l.
via Ca' del Luogo 6/8
36050 Bolzano Vicentino (VI)
Italy
Email: [Link]@[Link]
Alain Mourad
InterDigital Europe
Email: [Link]@[Link]
URI: [Link]