RFC 5380

Hierarchical Mobile IPv6 (HMIPv6) Mobility Management

๐Ÿ“… published October 2008, from ietf

RFC 5380: Hierarchical Mobile IPv6 (HMIPv6) Mobility Management ๐Ÿฆ‹

Okay bestie, this one is RFC 5380, titled Hierarchical Mobile IPv6 (HMIPv6) Mobility Management โœจ. It came out in October 2008 from the Network Working Group, written by H. Soliman (Elevate Technologies), C. Castelluccia (INRIA), K. ElMalki (Athonet), and L. Bellier (INRIA). It's on the Standards Track, and it obsoletes RFC 4140 ๐Ÿ’…. It doesn't update anything.


Status of This Memo ๐Ÿ“‹

This document specifies an Internet standards track protocol for the Internet community, and asks for discussion and suggestions for improvements ๐Ÿซถ. For the standardization state and status of this protocol, check the current edition of the "Internet Official Protocol Standards" (STD 1). Distribution of this memo is unlimited.

Abstract ๐ŸŒธ

So this doc adds extensions to Mobile IPv6 and IPv6 Neighbour Discovery so local mobility can be handled ๐Ÿงš. The whole point of hierarchical mobility management is to cut down on the signalling between the mobile node, its correspondent nodes, and its home agent ๐Ÿ’œ. The Mobility Anchor Point (MAP) it describes can also make Mobile IPv6 faster at handovers ๐Ÿ”ฅ.

Table of Contents ๐ŸŽ€

   1. Introduction ....................................................3
   2. Terminology .....................................................4
   3. Overview of HMIPv6 ..............................................5
      3.1. HMIPv6 Operations ..........................................6
   4. Mobile IPv6 Extension - Local Binding Update ....................9
   5. Neighbour Discovery Extension: The MAP Option ...................9
   6. Protocol Operation .............................................10
      6.1. Mobile Node Operation .....................................11
           6.1.1. Sending Packets to Correspondent Nodes .............12
      6.2. MAP Operations ............................................13
      6.3. Home Agent Operations .....................................13
      6.4. Correspondent Node Operations .............................13
      6.5. Local Mobility Management Optimisation within a
           MAP Domain ................................................14
      6.6. Location Privacy ..........................................14
   7. MAP Discovery ..................................................15
      7.1. Mobile Node Operation .....................................15
   8. Updating Previous MAPs .........................................16
   9. Note on MAP Selection by the Mobile Node .......................16
      9.1. MAP Selection in Distributed MAP Environment ..............17
      9.2. MAP Selection in a Flat Mobility Architecture .............18
   10. Detection and Recovery from MAP Failures ......................18
   11. Tunelling Impacts on MTU ......................................19
   12. Security Considerations .......................................19
      12.1. Mobile Node - MAP Security ...............................20
      12.2. Mobile Node - Correspondent Node Security ................22
      12.3. Mobile Node - Home Agent Security ........................22
   13. IANA Considerations ...........................................22
   14. Acknowledgements ..............................................22
   15. References ....................................................23
      15.1. Normative References .....................................23
      15.2. Informative References ...................................23
   Appendix A. Changes from RFC 4140 .................................24

1. Introduction โœจ

Okay so this spec introduces the idea of a hierarchical Mobile IPv6 network ๐ŸŒˆ. It uses a brand new node called the Mobility Anchor Point (MAP) ๐Ÿ‘‘.

Mobile IPv6 [RFC3775] lets nodes move around the Internet topology while keeping reachability and ongoing connections between mobile and correspondent nodes ๐Ÿฆ‹. The way it works is that a mobile node sends binding updates (BUs) to its home agent (HA) every single time it moves ๐Ÿ’….

The mobile node may send data packets via its home agent right after sending the binding update, but the home agent won't be able to route traffic back to the mobile node until it receives that binding update ๐Ÿ’€. That means at least half a round-trip delay before packets get forwarded to the right place again ๐Ÿ˜ญ. If the mobile node chooses to wait for a binding acknowledgement (BA), there's extra delay before it can send data packets too ๐Ÿ™ˆ. And if the mobile node and its home agent are in different parts of the world, those round-trip times can get pretty long ๐ŸŒ.

Extra delay also shows up when the mobile node uses route optimisation ๐Ÿ”ฅ. Authenticating binding updates takes about 1.5 round-trip times between the mobile node and each correspondent node, for the entire return routability procedure in a best-case scenario (no packet loss) โœจ. This can happen in parallel with sending binding updates to the home agent, and there are more optimisations that cut down that 1.5 round-trip requirement [RFC4449] [RFC4651] [RFC4866] ๐Ÿซถ.

Still, the signalling exchanges you need to update your location will always cause some disruption to active connections ๐Ÿ˜ญ. Some packets will get lost. Add link layer and IP layer connection setup delays on top of that, and upper-layer protocols can feel it too ๐Ÿ’€. Shrinking these delays during the time-critical handover period is what will make Mobile IPv6 perform better ๐Ÿ”ฅ.

On top of that, with wireless links, this kind of solution cuts down how many messages go over the air interface to all correspondent nodes and the home agent ๐Ÿ“ก. A local anchor point also lets Mobile IPv6 get reduced mobility signalling with external networks ๐Ÿงš.

So for all these reasons, a new Mobile IPv6 node called the Mobility Anchor Point is used ๐ŸŽ€. It can sit at any level in a hierarchical network of routers, including the Access Router (AR) ๐ŸŒธ. The MAP limits how much Mobile IPv6 signalling leaves the local domain ๐Ÿ’….

The MAP solves the issues mentioned above in the following ways:

  • The mobile node sends binding updates to the local MAP instead of the home agent (HA), which is usually further away, and instead of the correspondent nodes (CNs) ๐Ÿ’–.
  • The mobile node (MN) only needs to send one binding update before traffic from the HA and all CNs gets re-routed to its new location ๐Ÿฆ‹. This doesn't depend on how many CNs the MN is talking to ๐Ÿ™Œ.

A MAP is basically a local home agent ๐Ÿ . The whole goal of hierarchical mobility management in Mobile IPv6 is to boost performance while keeping the impact on Mobile IPv6 or other IPv6 protocols small ๐Ÿ”ฅ. HMIPv6 also lets mobile nodes hide their location from correspondent nodes and home agents, while still using Mobile IPv6 route optimisation ๐Ÿ™ˆ. The security differences between the MAP and the home agent are covered in Section 12 ๐Ÿ”.

It's worth noting that using a MAP doesn't rely on, or assume, a permanent home agent ๐Ÿ’œ. So a mobile node doesn't need a permanent home address or home agent to be HMIPv6-aware or to use the features in this spec ๐ŸŒˆ. A mobile node can use a MAP in a nomadic way to get mobility management within a local domain ๐Ÿงณ. Section 6.5 walks through that scenario โœจ.

2. Terminology ๐Ÿ“š

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] ๐ŸŽ€.

These are the new terms introduced here, bestie ๐Ÿ’…:

Access Router (AR)

The AR is the mobile node's default router ๐Ÿ . It aggregates the outbound traffic of mobile nodes ๐Ÿ“ฆ.

Mobility Anchor Point (MAP)

A Mobility Anchor Point is a router in a network that the mobile node is visiting ๐ŸŒธ. The MN uses the MAP as a local HA ๐Ÿงš. One or more MAPs can exist within a visited network ๐Ÿ’–.

Regional Care-of Address (RCoA)

An RCoA is an address that the MAP gives to the mobile node ๐ŸŽ€.

HMIPv6-Aware Mobile Node

An HMIPv6-aware mobile node is a mobile node that can receive and process the MAP option it gets from its default router ๐Ÿฆ‹. An HMIPv6-aware mobile node must also be able to send local binding updates (binding update with the M flag set) ๐Ÿซถ.

On-Link Care-of Address

The LCoA is the on-link CoA that gets configured on a mobile node's interface, based on the prefix its default router advertises ๐ŸŒˆ. In [RFC3775] this is just called the care-of address ๐Ÿ’œ. In this memo, we say LCoA so it's clearly different from the RCoA โœจ.

Local Binding Update

The MN sends a local binding update to the MAP so it can set up a binding between the RCoA and LCoA ๐Ÿ”ฅ.

3. Overview of HMIPv6 ๐Ÿ—บ๏ธ

This hierarchical Mobile IPv6 scheme adds a new function, the MAP, plus some minor extensions to how the mobile node operates ๐Ÿ’…. The correspondent node and home agent operations stay the same ๐Ÿ™Œ.

Just like Mobile IPv6, this solution doesn't depend on the underlying access technology, so mobility can happen within or between different types of access networks ๐ŸŒ.

When a mobile node enters a MAP domain, it receives Router Advertisements with info about one or more local MAPs ๐Ÿ“ก. The MN can bind its current location (on-link CoA) to an address on the MAP's subnet (RCoA) ๐Ÿฆ‹. Acting as a local HA, the MAP receives all packets on behalf of the mobile node it's serving, then encapsulates them and forwards them straight to the mobile node's current address ๐Ÿงš. If the mobile node changes its current address within a local MAP domain (LCoA), it only has to register the new address with the MAP ๐Ÿ’–. So only the Regional CoA (RCoA) needs to be registered with correspondent nodes and the HA ๐ŸŽ€. The RCoA doesn't change as long as the MN moves within a MAP domain (see below for the definition) ๐ŸŒธ. This makes the mobile node's mobility transparent to the correspondent nodes it talks to ๐Ÿ‘‘.

A MAP domain's boundaries are defined by the Access Routers (ARs) that advertise the MAP information to the attached mobile nodes ๐Ÿ . The detailed extensions to Mobile IPv6 and the operations of the different nodes get explained later in this document ๐Ÿ“š.

It should be noted that the HMIPv6 concept is simply an extension to the Mobile IPv6 protocol ๐ŸŒˆ. An HMIPv6-aware mobile node with an implementation of Mobile IPv6 SHOULD choose to use the MAP when it discovers that capability in a visited network ๐Ÿ’…. But sometimes the mobile node may prefer to just use the standard Mobile IPv6 implementation ๐Ÿ™ˆ. For instance, the mobile node may be in a visited network within its home site ๐Ÿก. In that case, the HA is located near the visited network and could be used instead of a MAP ๐Ÿงš. The mobile node would only update the HA whenever it moves ๐Ÿ’œ. How to figure out whether the HA is near the MN (e.g., same site) is outside the scope of this document ๐Ÿซถ.

3.1. HMIPv6 Operations โœจ

okay so Figure 1 is basically the example setup ๐Ÿฆ‹ It shows how a MAP in a visited network can give the mobile node seamless mobility as it moves from Access Router 1 (AR1) to Access Router 2 (AR2), all while it's still chatting with the correspondent node ๐Ÿ’ฌ You don't need a multi-level hierarchy for better handover performance, bestie ๐Ÿ™…โ€โ™€๏ธ So it's enough to put one or more MAPs (they could even cover the same domain) at any spot in the operator's network ๐ŸŒธ

   +-------+
   |  HA   |
   +-------+       +----+
       |           | CN |
       |           +----+
       |             |
       +-------+-----+
                     |
                     |RCoA
                 +-------+
                 |  MAP  |
                 +-------+
                 |      |
                 |      +--------+
                 |               |
                 |               |
               +-----+          +-----+
               | AR1 |          | AR2 |
               +-----+          +-----+
               LCoA1             LCoA2

               +----+
               | MN |
               +----+   ------------>
                         Movement

                 Figure 1: Hierarchical Mobile IPv6 domain

Okay, so when a mobile node lands in a visited network, it finds out the global address of the MAP ๐Ÿงš That address gets stored in the Access Routers, and they tell the mobile node about it through Router Advertisements (RAs) ๐Ÿ“ก A brand-new option for RAs gets defined later in this spec, and it's what lets mobile nodes know the MAP exists (that's the MAP Discovery part ๐Ÿ’…). Discovery also tells the mobile node how far away the MAP is. The MAP function could be running like in Figure 1 and also live in AR1 and AR2 at the same time ๐Ÿ‘‘ In that case the mobile node can pick the first hop MAP, or one further up the router hierarchy. The full details on choosing a MAP are in Section 10 ๐ŸŽ€

MAP Discovery keeps going as the mobile node moves from one subnet to the next ๐Ÿฆ‹ Every time it notices movement, it also checks whether it's still in the same MAP domain ๐ŸŒˆ The Router Advertisement that caught the movement tells it, through Neighbour Discovery [RFC4861] and the MAP option, whether it's still in that domain. As the mobile node roams inside a MAP domain, it keeps getting the same MAP option in Router Advertisements from its AR ๐Ÿ’œ But if the advertised MAP's address changes, the mobile node MUST act on it by sending binding updates to its HA and correspondent nodes ๐Ÿ˜ญ no skipping that part!!

If the mobile node isn't HMIPv6-aware, then no MAP Discovery happens, so it just uses Mobile IPv6 [RFC3775] for its mobility management ๐Ÿ™ˆ But if it IS HMIPv6-aware, it SHOULD choose to use its HMIPv6 implementation ๐Ÿ”ฅ In that case it first has to register with a MAP by sending it a BU with its home address and its on-link address (LCoA) ๐Ÿ’– The home address in that BU is the RCoA, and the mobile node gets it through the RFC 4877 [RFC4877] Section 9 mechanisms the first time it contacts a given MAP โœจ The MAP MUST store this info in its binding cache so it can forward packets to their final destination when they come in from different correspondent nodes or HAs ๐Ÿซถ

The mobile node always needs to know who originally sent any packet it receives, so it can decide whether route optimisation is needed ๐ŸŒธ Good news: the MAP doesn't change the contents of the original packet, so the mobile node can still figure that out. Normal processing of received packets (as described in [RFC3775]) gives it everything it needs ๐Ÿ’…

Now, to use bandwidth more efficiently, a mobile node may register with more than one MAP at the same time, and use each MAP address for a specific group of correspondent nodes ๐Ÿง  For example, in Figure 1, if the correspondent node is on the same link as the mobile node, it's way more efficient to use the first hop MAP (say that's AR1) for talking between them ๐ŸŒŸ That way, not every packet has to travel up to the "highest" MAP in the hierarchy, and bandwidth gets used better ๐Ÿ“ The mobile node can also use its current on-link address (LCoA) as a CoA, as specified in [RFC3775]. Note that the mobile node MUST NOT present an RCoA from a MAP's subnet as an LCoA in a binding update sent to another MAP ๐Ÿ™…โ€โ™€๏ธ And the LCoA in the binding update MUST be the mobile node's address, derived from the prefix advertised on its link ๐Ÿ’œ


4. Mobile IPv6 Extension - Local Binding Update ๐ŸŽ€

This section lays out the extensions proposed to the binding update from [RFC3775] ๐Ÿ’–

A new flag gets added: the M flag, which means MAP registration ๐Ÿฆ‹ When a mobile node registers with the MAP, the M and A flags MUST be set so this registration can be told apart from a BU going to the HA or a correspondent node ๐Ÿ˜ค

    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|      Reserved       |            Lifetime           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Figure 2: Local Binding Update
  • M: If set to 1, it indicates a MAP registration. ๐Ÿ’œ

5. Neighbour Discovery Extension: The MAP Option ๐Ÿงš

    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     |  Dist |  Pref |R|  Reserved   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Valid Lifetime                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +                                                               +
   |                                                               |
   +                  Global IP Address for MAP                    +
   |                                                               |
   +                                                               +
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Figure 3: The MAP option

Here's what each field is, bestie ๐Ÿ‘‘

  • Type: IPv6 Neighbour Discovery option. Its value is 23. ๐ŸŒˆ
  • Length: 8-bit unsigned integer. The length of the option and MUST be set to 3. ๐Ÿ”ฅ
  • Dist: A 4-bit unsigned integer identifying the distance between MAP and the receiver of the advertisement, measure in the number of hops and starting from 1 if the MAP is on the same link as the mobile node. A distance value of zero MUST NOT be used. ๐Ÿ™…โ€โ™€๏ธ
  • Pref: The preference field, used as an indicator of operator preference. A 4-bit unsigned integer. A decimal value of 15 indicates the highest preference. When comparing two potential MAPs, the mobile node SHOULD inspect this field as a tie-breaker for MAPs that have equal Dist values. ๐Ÿ“
  • R: When set to 1, it indicates that the mobile node is allocated the RCoA by the MAP based on Section 9 of [RFC4877]. โœจ
  • Valid Lifetime: The minimum value (in seconds) of both the valid lifetime of the prefix used to form the MAP's address and that used to form the RCoA. This value indicates the validity of the MAP's address and the RCoA. โญ
  • Global Address: One of the MAP's global addresses. ๐ŸŒธ

6. Protocol Operation ๐Ÿ’…

This section describes the HMIPv6 protocol ๐Ÿฆ‹ In HMIPv6, the mobile node has two addresses: an RCoA on the MAP's link, and an on-link CoA (LCoA). The RCoA gets formed in a stateless manner by combining the mobile node's interface identifier with the subnet prefix received in the MAP option ๐Ÿง

As this section explains, this protocol only requires updating the mobile nodes' implementation. The HA and correspondent node stay unchanged ๐Ÿซถ The MAP does the job of a "local" HA that binds the mobile node's RCoA to an LCoA ๐Ÿ‘‘

6.1. Mobile Node Operation ๐Ÿ’–

Okay so when a mobile node moves into a new MAP domain (aka its MAP changes ๐Ÿ‘€), it needs to set up two CoAs ๐Ÿ’…: an RCoA on the MAP's link and an on-link CoA (LCoA). After it uses [RFC4877] to grab an RCoA โœจ, the mobile node sends a local BU to the MAP with the A and M flags set. The local BU is a BU defined in [RFC3775] and carries the mobile node's RCoA in the Home Address option ๐ŸŽ€. No alternate-CoA option is needed here. The LCoA is the source address of the BU. This BU binds the mobile node's RCoA (basically like a home address) to its LCoA. Then the MAP (acting as an HA) sends a binding acknowledgement back to the MN, which either says the binding worked or includes the right fault code. The mobile node doesn't need to support any new error codes for this ๐Ÿ™Œ.

The mobile node MUST silently ignore binding acknowledgements that do not contain a routing header type 2, which includes the mobile node's RCoA. ๐Ÿ™ˆ

Once registration with the MAP works, a bi-directional tunnel between the mobile node and the MAP is set up ๐Ÿš‡. Every packet the mobile node sends gets tunnelled to the MAP. The outer header has the LCoA as its source address and the MAP's address as its destination. The inner header has the RCoA as its source and the peer's address as its destination. Anything addressed to the RCoA is intercepted by the MAP and tunnelled to the LCoA. Main character tunnel energy ๐Ÿฆ‹

This specification lets a mobile node use more than one RCoA if it received more than one MAP option. In that case, the mobile node MAY perform the binding update procedure for each RCoA. Also, the mobile node MUST NOT use one RCoA (e.g., RCoA1) derived from a MAP's prefix (e.g., MAP1) as a care-of address in its binding update to another MAP (e.g., MAP2). That would force packets to be encapsulated several times (twice in this example) on their path to the mobile node ๐ŸŒ€. This multi-level hierarchy would hurt the protocol's efficiency and performance ๐Ÿ˜ญ

After registering with the MAP, the mobile node MUST register its new RCoA with its HA by sending a BU that specifies the binding (RCoA, home address), as in Mobile IPv6. The home address goes in the Home Address option, and the RCoA is used as the care-of address in the source address field ๐Ÿ“. The mobile node may also send a similar BU (binding the home address to the RCoA) to its current correspondent nodes.

The mobile node SHOULD wait for the binding acknowledgement from the MAP before registering the RCoA with other nodes (e.g., CN or HA, if available). Worth noting ๐Ÿ“: when binding the RCoA with the HA and correspondent nodes, the binding lifetime MUST NOT be larger than the mobile node's binding lifetime with the MAP, which is received in the binding acknowledgement.

To speed up handover between MAPs and reduce packet loss, a mobile node SHOULD send a local BU to its previous MAP, specifying its new LCoA. Packets in transit that reach the previous MAP then get forwarded to the new LCoA ๐Ÿงš

The MAP receives packets addressed to the mobile node's RCoA (from the HA or correspondent nodes), and they get tunnelled from the MAP to the mobile node's LCoA. The mobile node de-capsulates them and processes them in the normal manner ๐Ÿ’œ

When the mobile node moves within the same MAP domain, it should only register its new LCoA with its MAP. In this case, the RCoA stays exactly the same ๐ŸŒธ

Note that a mobile node may send a BU containing its LCoA (instead of its RCoA) to correspondent nodes. If those nodes are on the same link, packets get routed directly, without going through the MAP. Shortcut vibes โœจ

6.1.1. Sending Packets to Correspondent Nodes ๐Ÿซถ

The mobile node can talk to a correspondent node through the HA, or in a route-optimised manner, as described in [RFC3775]. When it goes through the HA, the message formats in [RFC3775] are used.

If the mobile node communicates directly with the correspondent node (i.e., the CN has a binding cache entry for the mobile node), the mobile node MUST use the same care-of address used to create a binding cache entry in the correspondent node (RCoA) as a source address. According to [RFC3775], the mobile node MUST also include a Home Address option in outgoing packets. The Home Address option MUST contain the mobile node's home address. Be consistent, bestie ๐Ÿ’…

6.2. MAP Operations ๐ŸŽ€

The MAP acts like an HA. It intercepts all packets addressed to registered mobile nodes and tunnels them to the corresponding LCoA, which is stored in its binding cache.

A MAP has no knowledge of the mobile node's home address ๐Ÿ™ƒ. The mobile node sends a local BU to the MAP with the M and A flags set. The point of this BU is to bind the RCoA (carried in the BU as a home address) to the mobile node's LCoA. If it works, the MAP MUST return a binding acknowledgement to the mobile node, indicating a successful registration. This is identical to the HA operation in [RFC3775]. No new error codes are introduced for HMIPv6. The binding acknowledgement MUST include a routing header type 2 that contains the mobile node's RCoA.

The MAP MUST be able to accept packets tunnelled from the mobile node, with the mobile node as the tunnel entry point and the MAP as the tunnel exit point ๐Ÿšช

The MAP uses the [RFC4877] Section 9 procedures to allocate the RCoA, and then acts as an HA for that RCoA. Packets addressed to the RCoA are intercepted by the MAP using proxy Neighbour Advertisement, then encapsulated and routed to the mobile node's LCoA. This is identical to the HA behaviour described in [RFC3775] ๐Ÿ‘‘

A MAP MAY be configured with a list of valid on-link prefixes that mobile nodes can use to derive LCoAs. This is super useful for network operators who need to stop mobile nodes from continuing to use the MAP after they move to a different administrative domain ๐Ÿšซ. If a mobile node sent a binding update containing an LCoA that is not in the MAP's "valid on-link prefixes" list, the MAP could reject the binding update using the existing error code 129 (administratively prohibited). Not allowed, periodt ๐Ÿ’€

6.3. Home Agent Operations ๐Ÿ 

Support for HMIPv6 is completely transparent to the HA's operation. Packets addressed to a mobile node's home address get forwarded by the HA to its RCoA, as described in [RFC3775]. The HA just vibes ๐ŸŒˆ

6.4. Correspondent Node Operations ๐Ÿงธ

HMIPv6 is completely transparent to correspondent nodes. They don't even notice ๐Ÿ™Œ

6.5. Local Mobility Management Optimisation within a MAP Domain ๐ŸŒŸ

In [RFC3775], it's stated that for short-term communication, particularly the kind that's easy to retry if it fails, the mobile node MAY choose to directly use one of its care-of addresses as the source of the packet. That means no Home Address option is needed in the packet. Skipping the extra options cuts the overhead of sending each packet, and it also gives an optimal route between the mobile node and the correspondent node ๐Ÿƒโ€โ™€๏ธ

HMIPv6-aware mobile nodes can use their RCoA as the source address without a Home Address option. In other words, the RCoA can be used as a source address for upper layers. With this trick, the mobile node looks like a fixed node to the correspondent node while it moves around inside a MAP domain ๐Ÿ“

This use of the RCoA doesn't have the cost of Mobile IPv6 (no bindings or Home Address options get sent over the Internet), but it still gives local mobility management with near-optimal routing ๐Ÿš€. Okay, the catch: it doesn't give global mobility, so communication breaks when the mobile node changes its RCoA. Still, it's perfect for stuff like web browsing ๐ŸŒ. How valid the RCoA is as a source address depends on the size of the MAP domain and how fast the mobile node is going. Also, since support for BU processing in correspondent nodes isn't mandated in [RFC3775], this can give you route optimisation without sending BUs to the correspondent nodes ๐Ÿฆ‹

To turn this on, present the RCoA as a temporary home address for the mobile node. This might require an implementation to upgrade its source address selection algorithm so it knows about the RCoA and can use it for the right applications ๐Ÿ› ๏ธ

6.6. Location Privacy ๐Ÿ”’

In HMIPv6, a mobile node hides its LCoA from its correspondent nodes and its home agent by putting its RCoA in the source field of the packets it sends. Because of that, address-based location tracking of the mobile node by its correspondent nodes or its home agent is harder, since they only know the RCoA and not the LCoA ๐Ÿซฃ private girl era

7. MAP Discovery โœจ

This section describes how a mobile node gets the MAP address and subnet prefix, and how ARs in a domain discover MAPs ๐Ÿ—บ๏ธ

This specification requires network administrators to configure the MAP option information in ARs manually. Future mechanisms may be defined to let MAPs get discovered dynamically ๐Ÿ”ฎ

7.1. Mobile Node Operation ๐Ÿ’…

When an HMIPv6-aware mobile node receives a Router Advertisement, it should search for the MAP option. One or more options may be found, for different MAP IP addresses ๐Ÿ‘€. A mobile node SHOULD register with the MAP that has the highest preference value. A MAP with a preference value of zero SHOULD NOT be used for new local BUs (the mobile node can refresh existing bindings but can't create new ones). However, a mobile node MAY choose to register with one MAP over another based on the value in the distance field, as long as the preference value is above zero ๐Ÿงฎ

A MAP option with a valid lifetime value of zero means that this MAP MUST NOT be selected by the MN. A valid lifetime of zero indicates a MAP failure. When this option is received, the mobile node MUST choose another MAP and create new bindings. Any existing bindings with this MAP can be assumed to be lost. If no other MAP is available, the mobile node MUST NOT attempt to use HMIPv6 ๐Ÿ’€ RIP

If a multi-homed mobile node has access to several ARs at the same time (on different interfaces), it SHOULD use an LCoA on the link defined by the AR that advertises its current MAP ๐Ÿ“ก

A mobile node MUST store the received option(s) so it can choose at least one MAP to register with. Storing them is essential, because they'll be compared to other options received later for the movement detection algorithm ๐Ÿง 

If the R flag is set, the mobile node MUST place its RCoA in place of the home address in the binding update message. This causes the RCoA to be bound to the LCoA in the MAP's binding cache ๐ŸŽฏ

A mobile node MAY choose to register with more than one MAP at the same time, or use both the RCoA and its LCoA as care-of addresses at the same time with different correspondent nodes. Multitasking queen behavior ๐Ÿ‘‘๐ŸŒˆ

8. Updating Previous MAPs โœจ

okay so when a mobile node moves into a new MAP domain ๐Ÿฆ‹, it may send a BU to the previous MAP asking it to forward packets headed for the mobile node's new CoA. An administrator MAY stop the MAP from forwarding packets to LCoAs outside the MAP's domain ๐Ÿ”’. Still, it is RECOMMENDED that MAPs be allowed to forward packets to LCoAs tied to some of the ARs in neighbouring MAP domains, as long as those ARs sit inside the same administrative domain ๐Ÿซถ.

For example, a MAP could be set up to forward packets to LCoAs for ARs that are geographically next to the ARs on its domain boundary ๐Ÿ—บ๏ธ. This makes inter-MAP handovers smooth, because the mobile node keeps receiving packets while it updates the new MAP, its HA and, potentially, correspondent nodes. Main character energy ๐Ÿ‘‘.

9. Note on MAP Selection by the Mobile Node

HMIPv6 gives you a super flexible way to handle local mobility inside a visited network ๐Ÿ’…. Like we said earlier, a MAP can live pretty much anywhere in the operator's network, including on the AR itself ๐Ÿงš. You can have several MAPs in the same domain that don't depend on each other ๐ŸŒธ. Overlapping MAP domains are allowed too, and honestly they're recommended ๐Ÿ˜ญ. Both static and dynamic hierarchies are supported.

When the mobile node gets a Router Advertisement with a MAP option, it should act according to the following movement detection mechanisms โœจ. In a hierarchical Mobile IP network, like the one this document describes, the mobile node should be:

  • "Eager" to perform new bindings.
  • "Lazy" in releasing existing bindings.

So basically, the mobile node should register with any "new" MAP the AR advertises (that's the Eager part ๐Ÿƒโ€โ™€๏ธ). The way it figures out whether a MAP is "new" is described in Section 9.1. Meanwhile, it should not let go of existing bindings until it stops receiving the MAP option (or gets it with a lifetime of zero), or until its existing binding's lifetime runs out (that's the Lazy part ๐Ÿ›‹๏ธ). This Eager-Lazy combo is a fallback if one of the MAP routers dies ๐Ÿ’€, because the mobile node can tell its correspondent nodes and HA about its new care-of address way faster.

9.1. MAP Selection in Distributed MAP Environment

When several MAPs are available in the same domain, the mobile node has to think about a few things to pick the best one or more MAPs ๐Ÿง .

Picking more than one MAP and forcing packets to come down from the highest MAP through a whole chain of MAPs? Not happening ๐Ÿ™…โ€โ™€๏ธ. There are no benefits to that, and this spec straight up prohibits it. It can add forwarding delays and wreck the robustness of IP routing between the highest MAP and the mobile node ๐Ÿ˜ค. Just because there are several MAPs "above" the AR doesn't mean the mobile node should force packets down the MAP hierarchy. Having more than one MAP above the AR is still useful for redundancy and for optimising the different mobility scenarios mobile nodes run into ๐Ÿ’–. The MN uses the MAPs independently of each other (for example, each MAP handles communication with a certain set of CNs).

Now, about distance-based selection with several MAPs: a mobile node may choose to register with the furthest MAP so it doesn't keep re-registering ๐Ÿƒโ€โ™€๏ธ๐Ÿ’จ. This matters most for fast mobile nodes that hand off all the time. Going for a more distant MAP lowers the chance of having to switch MAPs and tell every correspondent node and the HA ๐Ÿ˜ฎโ€๐Ÿ’จ.

If the mobile node finds several MAPs in one domain, it may need some fancy algorithms to pick the right one ๐Ÿค“. Those algorithms would take the mobile node's speed as an input (for distance-based selection) and mix it with the preference field in the MAP option. This spec, though, proposes a default algorithm for when no optimised ones are around ๐Ÿซ . It's super simple: pick the MAP that's most distant, as long as its preference value hasn't hit zero. The mobile node operation goes like this:

  1. Receive and parse all MAP options.
  2. Arrange MAPs in a descending order, starting with the furthest MAP (i.e., MAP option having largest Dist field).
  3. Select first MAP in list.
  4. If either the preference value or the valid lifetime fields are set to zero, select the following MAP in the list.
  5. Repeat step (4) while new MAP options still exist, until a MAP is found with a non-zero preference value and a non-zero valid lifetime.

If you run those steps, mobile nodes will pick the most distant or furthest MAP by default ๐ŸŒˆ. That keeps going until its preference value drops to zero. After that, mobile nodes start picking a different MAP ๐Ÿฆ‹.

9.2. MAP Selection in a Flat Mobility Architecture

Sometimes operators go with a flat architecture, especially where a Mobile IPv6 handover is pretty rare ๐ŸŒ™. In those cases they may choose to put the MAP function only in the ARs. Having the MAP function in the ARs is still handy for cutting down the time it takes to update all correspondent nodes and the HA โฑ๏ธ. Here, a mobile node may pick a MAP (the one in the AR) as its anchor point during a handoff โš“. This kind of dynamic hierarchy (or anchoring) is only recommended where inter-AR movement isn't frequent ๐Ÿฅบ.

10. Detection and Recovery from MAP Failures

This spec introduces a MAP, which is basically a local home agent in a visited network ๐Ÿ . Like a home agent, a MAP is a single point of failure ๐Ÿ’”. If a MAP dies, its binding cache content is gone, and mobile nodes and correspondent nodes lose communication ๐Ÿ˜ฑ. You can dodge that by running more than one MAP on the same link and using some kind of context transfer protocol between them ๐Ÿงฉ. MAP redundancy is outside the scope of this document, though ๐Ÿ™ƒ.

If those protocols aren't supported, the mobile node has to detect MAP failures itself ๐Ÿ•ต๏ธโ€โ™€๏ธ. It can tell when it gets a Router Advertisement with a MAP option whose lifetime is zero. Then it should start the MAP Discovery process and try to register with another MAP ๐Ÿ”„. Once it has picked and registered with a new MAP, it also needs to tell correspondent nodes and the home agent if its RCoA has changed ๐Ÿ“ฃ. Here's a plot twist ๐Ÿฟ: if there's a protocol that moves binding cache entries between MAPs for redundancy, a new MAP might be able to hand out the same RCoA (for instance, if both MAPs advertise the same prefix in the MAP option). That saves the mobile node from updating correspondent nodes and the home agent ๐Ÿ™Œ.

Access Routers can be triggered to advertise a MAP option with a lifetime of zero (which signals MAP failure) in a couple of ways:

  • By manual intervention.
  • In a dynamic manner.

One way to detect MAP failure dynamically is to probe the MAP regularly (e.g., every 10 seconds) ๐Ÿ”. If no response comes back, an AR MAY try to aggressively probe the MAP for a short time (e.g., once every 5 seconds for 15 seconds). If there's still no reply, a MAP option may be sent with a valid lifetime value of zero ๐Ÿชฆ. The exact mechanisms for probing MAPs are outside the scope of this document ๐Ÿ™, so the text above is just one example of detecting failures.

This spec doesn't mandate a particular recovery mechanism ๐Ÿคทโ€โ™€๏ธ. Still, any mechanism between the MAP and an AR SHOULD be secure, so it can offer message authentication, integrity protection, and protection against replay attacks ๐Ÿ”.

Heads up, bestie: the failure detection idea above may miss MAP failures that happen between probes, i.e., if a MAP reboots between probes ๐Ÿšจ.

11. Tunelling Impacts on MTU

This spec requires the mobile node to tunnel its outgoing traffic to the MAP ๐Ÿš‡. In the other direction, the MAP tunnels inbound packets to the mobile node. If the mobile node's home agent is somewhere else on the Internet, inbound and outbound packets get encapsulated twice ๐Ÿช†. That can affect the mobile node's path MTU ๐Ÿ“. So, mobile nodes MUST take into account the encapsulation of traffic between the node and the MAP when they calculate the available MTU for upper layers ๐Ÿงฎ. Don't skip this one, it's sooo important ๐Ÿ˜ค.

12. Security Considerations

This spec brings a brand-new concept to Mobile IPv6: the Mobility Anchor Point, which acts as a local home agent ๐Ÿ›ก๏ธ. The security relationship between the mobile node and the MAP has to be really strong ๐Ÿ’ช. It MUST involve mutual authentication, integrity protection, and protection against replay attacks. Confidentiality may be needed for payload traffic, like when a mobile node doesn't want to reveal any traffic to the access network beyond what it needs to attach to the network and talk to a MAP ๐Ÿ•ถ๏ธ. Confidentiality is not required for binding updates to the MAP. If any of these protections are missing, malicious mobile nodes could impersonate legit ones, or impersonate a MAP ๐Ÿ˜ˆ. Any of these attacks will undoubtedly cause undesirable impacts on the mobile node's communication with every correspondent node that knows its RCoA ๐Ÿšจ. Ngl, this part is seriously important ๐Ÿฅน.

Three different relationships need to be considered when securing binding updates ๐Ÿ”—:

  1. The mobile node - MAP
  2. The mobile node - correspondent node
  3. The mobile node - home agent

12.1. Mobile Node - MAP Security โœจ

okay bestie, let's talk about who gets to use the MAP's forwarding service ๐Ÿ” Initial authorisation (for the service, not the RCoA specifically) MAY be needed. ๐Ÿซถ Authorising a mobile node can be done using its identity, which gets swapped during the security association (SA) negotiation. The grant can be based on the mobile node's own identity or on the identity of a Certificate Authority (CA) that the MAP trusts. So if the mobile node shows a certificate signed by a trusted entity (like a CA in the same administrative domain, or a trusted roaming partner), that's enough for the MAP to say yes to its service ๐Ÿ’… This level of authorisation is separate from authorising any particular RCoA, so keep those two things in separate boxes ๐Ÿ“ฆ

The trust goes both ways ๐Ÿค The mobile node trusts the MAP if the MAP presents a certificate signed by the same CA, or by another CA the mobile node is configured to trust (like a roaming partner). Some deployments are going to be totally fine with self-signed certificates for the mobile node, the MAP, or both ๐Ÿ™ˆ That still gets the mobile node and the MAP authenticated for address allocation and future binding updates, without needing identity authentication. So trusted third-party certificates are not required by this specification. no stress ๐Ÿ’–

Real talk: in this spec, authentication and authorisation are basically the same thing โœจ All the MAP needs in order to allocate an RCoA is to authenticate the mobile node and check that it belongs to a trusted group (based on its certificate). Iconic efficiency ๐Ÿ‘‘

IKEv2 MUST be supported by the mobile node and the MAP ๐Ÿ”ฅ IKEv2 lets you use the Extensible Authentication Protocol (EAP) as a way to bootstrap the security association between the two peers.

So EAP can work with IKEv2 to tap into the Authentication, Authorization, and Accounting (AAA) infrastructure and bootstrap the SA between the mobile node and the MAP ๐Ÿงš This is super useful when an admin wants to skip configuring and managing certificates on every mobile node ๐Ÿฅน A MAP MAY support EAP over IKEv2.

When EAP is used with IKEv2, the EAP method runs between the mobile node and a AAA server. After a successful authentication, the resulting keying material can be used to bootstrap IKEv2 between the MAP and the mobile node ๐ŸŒธ Which EAP methods should be used, or how keys get carried between the MAP and the AAA server, is outside the scope of this document. not our problem today ๐Ÿ’…

Now HMIPv6 has an extra registration between the mobile node and its current MAP ๐Ÿ“ When a mobile node moves into a new domain (served by a new MAP), it gets an RCoA and an LCoA and registers the binding between those two addresses with the new MAP. The MAP verifies the BU and creates a binding cache entry with the RCoA and LCoA ๐Ÿฆ‹ Whenever the mobile node gets a new LCoA, it has to send a new BU that specifies the binding between its RCoA and that new LCoA. This BU needs to be authenticated, because otherwise any random host could send a BU for the mobile node's RCoA and hijack its packets ๐Ÿ˜ญ absolutely not

The MAP doesn't need to know the mobile node's identity or home address beforehand ๐ŸŒˆ So the SA between them can be set up with any key establishment protocol, like IKEv2. A return routability test isn't necessary here ๐Ÿ’œ

The MAP needs to set up the SA for the RCoA (not the LCoA) ๐ŸŽ€ This can be done with IKEv2 [RFC4306]. The mobile node uses its LCoA as the source address, but specifies that the RCoA should be used in the SA. That's achieved by using the RCoA as the identity in the IKE CHILD_SA negotiation. This step is identical to using the home address in IKE CHILD_SA when negotiating with the home agent, so if you've done that, you already get it โœจ

The IPsec Peer Authorization Database (PAD) entries and configuration payloads described in [RFC4877] for allocating dynamic home addresses SHOULD be used by the MAP to allocate the RCoA for mobile nodes ๐Ÿ“ Binding updates between the MAP and the mobile node MUST be protected with either Authentication Header (AH) or Encapsulating Security Payload (ESP) in transport mode. And when ESP is used, a non-null authentication algorithm MUST be used ๐Ÿ”ฅ non-negotiable, periodt

The Security Policy Database (SPD) entries in both the home agent and the mobile node are identical to the ones set up for the home agent and mobile node respectively, as outlined in [RFC4877] ๐Ÿงš


12.2. Mobile Node - Correspondent Node Security

okay so Mobile IPv6 [RFC3775] defines a return routability procedure that lets mobile and correspondent nodes authenticate binding updates and acknowledgements ๐Ÿซถ This spec doesn't change that return routability test from [RFC3775] at all. BUT mobile node implementers need to be careful when picking the source address for the HoTI and CoTI messages (also defined in [RFC3775]) ๐Ÿ‘€ The source address used in HoTI messages SHOULD be the mobile node's home address, unless the mobile node wants to use the RCoA for route optimisation.

The packet carrying the HoTI message gets encapsulated twice ๐Ÿช† The inner header has the RCoA in its source address field and the home agent's address in its destination address field. The outer header has the mobile node's LCoA in its source address field and the MAP's address in its destination field. Layers, bestie ๐Ÿ’–


12.3. Mobile Node - Home Agent Security

the security relationship between the mobile node and its home agent, as discussed in [RFC3775], is not impacted by this spec ๐Ÿ  And the relationship between the MAP and the mobile node isn't impacted by the presence of a home agent either. two separate lanes, no drama โœจ


13. IANA Considerations ๐ŸŽ€

both the MAP option and M flag were allocated for RFC 4140, and they'll keep being used by this specification ๐Ÿ’…


14. Acknowledgements ๐Ÿซถ

the authors want to thank Conny Larsson (Ericsson) and Mattias Pettersson (Ericsson) for their valuable input ๐Ÿ’– They also thank the members of the French RNRT MobiSecV6 project (BULL, France Telecom, and INRIA) for testing the first implementation and giving valuable feedback ๐Ÿงš The INRIA HMIPv6 project is partially funded by the French government ๐Ÿ‡ซ๐Ÿ‡ท

Then there's the whole working group, thanked in alphabetical order for their comments on the document ๐ŸŒˆ Samita Chakrabarti (Sun), Gregory Daley, Gopal Dommety (Cisco), Francis Dupont (GET/Enst Bretagne), Eva Gustaffson (Ericsson), Dave Johnson (Rice University), Annika Jonsson (Ericsson), James Kempf (Docomo labs), Martti Kuparinen (Ericsson), Fergal Ladley, Gabriel Montenegro (Microsoft), Nick "Sharkey" Moore, Vidya Narayanan (Qualcomm), Erik Nordmark (Sun), Basavaraj Patil (Nokia), Brett Pentland (NEC), Thomas Schmidt, and Alper Yegin (Samsung) ๐Ÿ‘‘


15. References ๐Ÿ“š

15.1. Normative References

[RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC3775]  Johnson, D., Perkins, C., and J. Arkko, "Mobility Support
           in IPv6", RFC 3775, June 2004.

[RFC4306]  Kaufman, C., Ed., "Internet Key Exchange (IKEv2)
           Protocol", RFC 4306, December 2005.

[RFC4861]  Narten, T., Nordmark, E., Simpson, W., and H. Soliman,
           "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861,
           September 2007.

[RFC4877]  Devarapalli, V. and F. Dupont, "Mobile IPv6 Operation with
           IKEv2 and the Revised IPsec Architecture", RFC 4877, April
           2007.

15.2. Informative References

[RFC4449]  Perkins, C., "Securing Mobile IPv6 Route Optimization
           Using a Static Shared Key", RFC 4449, June 2006.

[RFC4651]  Vogt, C. and J. Arkko, "A Taxonomy and Analysis of
           Enhancements to Mobile IPv6 Route Optimization", RFC 4651,
           February 2007.

[RFC4866]  Arkko, J., Vogt, C., and W. Haddad, "Enhanced Route
           Optimization for Mobile IPv6", RFC 4866, May 2007.

Appendix A. Changes from RFC 4140 ๐ŸŒธ

  • Dynamic MAP Discovery was removed.
  • Updated the security section to use IKEv2 instead of IKEv1.
  • The document clarified that HMIPv6 can be used without the need for a home agent.
  • Several editorials throughout the document.
  • IKEv2 only is now used to allocate the RCoA.

RFC 4140 was implemented and interop tested by at least two different organisations ๐ŸŽ‰ A test suite with test cases for RFC 4140 was also developed by Ericsson and run against both implementations. No major issues were found. The scalability of Dynamic MAP Discovery, defined in RFC 4140, was seen as inappropriate for large-scale deployments and prone to loops, so it got removed from this specification ๐Ÿ’€ gone and not missed

At this time, there's no publicly known deployment of this specification ๐Ÿฆ‹


Authors' Addresses ๐Ÿ’Œ

Hesham Soliman
Elevate Technologies

EMail: hesham@elevatemobile.com

Claude Castelluccia
INRIA

Phone: +33 4 76 61 52 15
EMail: claude.castelluccia@inria.fr


Karim ElMalki
Athonet

EMail: karim@elmalki.homeip.net

Ludovic Bellier
INRIA

EMail: ludovic.bellier@inria.fr

Copyright (C) The IETF Trust (2008).

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Intellectual Property ๐Ÿ”’

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document, or the extent to which any license under such rights might or might not be available, nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification, can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. ๐Ÿ’œ

๐Ÿ“ฆ where this page comes from