RFC 5446

Service Selection for Mobile IPv4

πŸ“… published February 2009, from ietf

RFC 5446: Service Selection for Mobile IPv4 πŸŽ€

Okay bestie, this one is from the Network Working Group, and it's Informational πŸ’… which means it's sharing info, not laying down an Internet standard. It's dated February 2009 and written by J. Korhonen (Nokia Siemens Networks) and U. Nilsson (TeliaSonera) 🫢. The title block doesn't list anything it obsoletes or updates, so it's a standalone little gem ✨.

Status of This Memo πŸ“

This memo gives info to the Internet community. It is not a specification of any Internet standard, and it can be shared freely with no restrictions on distribution πŸ¦‹.

Copyright (c) 2009 IETF Trust and the persons identified as the document authors. All rights reserved πŸ’œ.

This document is covered by BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they stood on the publication date. Please read those carefully, because they spell out your rights and restrictions for this doc πŸ™ˆ.

Abstract ✨

In some Mobile IPv4 setups, knowing who the mobile node or the mobility service subscriber is isn't enough to tell apart all the different services that might be set up for the mobile node 😭. Being able to specify a service on top of the mobile node's identity gives mobility service providers a lot of flexibility to offer multiple services under one mobility subscription, which is so iconic πŸ‘‘. This document describes a Service Selection extension for Mobile IPv4 that helps home agents pick specific services for their subscriptions during the registration procedure 🧚.

Table of Contents πŸ“

   1. Introduction ....................................................2
   2. Requirements ....................................................3
   3. Service Selection Extension .....................................3
   4. Processing Considerations .......................................5
      4.1. Mobile Node Considerations .................................5
      4.2. Home Agent Considerations ..................................5
      4.3. Foreign Agent Considerations ...............................6
   5. Security Considerations .........................................7
   6. IANA Considerations .............................................7
   7. Acknowledgments .................................................7
   8. References ......................................................8
      8.1. Normative References .......................................8
      8.2. Informative References .....................................8

1. Introduction 🌈

Okay so Mobile IPv4 [RFC3344] can identify mobile nodes in a bunch of ways, like with home addresses [RFC3344] or Network Access Identifiers (NAIs) [RFC4282] [RFC2794] πŸ’–. In some Mobile IPv4 setups, identifying the mobile node (MN) or the mobility service subscriber through a Proxy Mobile IPv4 client [LEUNG] (from here on, the mobile node and the Proxy Mobile IPv4 client are used interchangeably) still isn't enough to tell apart all the services that might be provisioned to the mobile node 🫠.

Being able to specify services on top of the mobile node's identity is a major glow-up for mobility service providers, since they can offer multiple services within the same mobility subscription ✨. Some examples:

  • Enterprise data access, where the mobility service provider runs connectivity and mobility services on behalf of the enterprise πŸ’Ό.
  • Access to service domains that public networks can't reach, because of some mobility service providers' business reasons 🚫.
  • Simultaneous access to different service domains that are separated based on the mobility service provider's policies πŸ”€.
  • Easier policy assignment for mobility service providers based on the services each subscriber has 🎯.

This document describes a Service Selection extension for Mobile IPv4 that helps home agents make specific service selections for mobility service subscriptions during the registration procedure πŸ’…. A Mobile IPv6-equivalent Service Selection Mobility Option was described in [RFC5149] πŸ¦‹. The service selection can affect home agent routing decisions, Home Address assignment policies, firewall settings, and security policies πŸ”₯. When service selection is used, every Registration Request must contain the Service Selection extension. The Service Selection extension from the Registration Request may be echoed back in the Registration Reply 🫢.

If no service is specifically indicated, the home agent must act as if the default service, plain Internet access, had been requested 🌸. There is no absolute requirement that this default service be allowed for all subscribers, but it is highly recommended, so normal subscribers don't have to dig through operator-specific configuration values just to get basic service πŸ™.

Some of the potential use cases were listed earlier in this section. The general aim is better manageability of services and service provisioning, from both operators' and service providers' points of view πŸ“Š. It's worth knowing that some deployments might make selecting one service restrict simultaneous access to others from the user's point of view (e.g., a "walled garden") 🧱. For example, services might sit in different administrative domains or external customer networks that practice excessive filtering of inbound and outbound traffic 🚧.

2. Requirements πŸ“‹

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] πŸ’œ.

3. Service Selection Extension πŸŽ€

At most one Service Selection extension MAY be included in any Mobile IPv4 Registration Request message πŸ“. When service selection is used, the Service Selection extension MUST be included in every Registration Request message 🫢. If no service is specifically indicated in the Registration Request for the initial registration or re-registration, the home agent MUST act as if the default service, such as plain Internet access, had been requested 🌈. The Service Selection extension MUST be placed in the Registration Request message as follows:

  • When present, the extension MUST appear after the MN-NAI extension, if the MN-NAI is also present in the message πŸ“.
  • If the mobile node added the extension to a Registration Request, it MUST appear prior to any authentication-enabling extensions [RFC3344] [RFC4721] πŸ”.
  • If the foreign agent adds the Service Selection extension to a Registration Request, the extension MUST appear prior to any Foreign-Home authentication-enabling extensions [RFC3344] πŸ›‚.

The home agent MAY echo the received Service Selection extension option back in a Mobile IPv4 Registration Reply message πŸ”. The echoed Service Selection extension MUST be an unchanged copy of the one received in the corresponding Registration Request message πŸͺž. The Service Selection extension MUST be placed in the Registration Reply message as follows:

  • If the mobile node originally added the extension to a Registration Request, it MUST appear in the Registration Reply prior to any authentication-enabling extensions [RFC3344] [RFC4721] 🧚.
  • If the foreign agent added the Service Selection extension to a Registration Request, the extension MUST appear in the Registration Reply prior to any Foreign-Home authentication-enabling extensions [RFC3344] ✨.

The Service Selection extension has the following format πŸ‘€:

    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 = 151   |   Length      | Identifier...                 ~
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Service Selection Extension
  • Type: an 8-bit identifier set to 151 (the type of this skippable extension) 🎫.
  • Length: an 8-bit unsigned integer that gives the length of the Service Selection extension in octets, not counting the Type and Length fields. A value of zero (0) is not allowed 🚫.
  • Identifier: a variable-length, encoded service-identifier string that identifies the requested service 🏷️. The identifier string length is between 1 and 255 octets. This spec allows international identifier strings based on Unicode characters, encoded as UTF-8 [RFC3629] and formatted using Normalization Form KC (NFKC) as specified in [NFKC] 🌍. 'ims', 'voip', and 'voip.companyxyz.example.com' are valid examples of Service Selection extension Identifiers πŸ’…. At minimum, the Identifier MUST be unique among the home agents to which the mobile node is authorized to register πŸ”‘.

4. Processing Considerations βš™οΈ

4.1. Mobile Node Considerations πŸ“±

A mobile node or its proxy representative MAY include the Service Selection extension in any Registration Request message πŸ™Œ. The Service Selection extension can be used with any mobile node identification method πŸͺͺ. The extension identifies the service to be associated with the mobility session. If service selection is used, the Service Selection extension MUST be included in every Registration Request message sent to a home agent 🫢. If the mobile node wants to change the selected service, it is RECOMMENDED that the mobile node de-register the existing binding with the home agent before going ahead with a binding registration for a different service πŸ”„. Provisioning service identifiers to the mobile node or its proxy representative is out of the scope of this specification πŸ™…β€β™€οΈ.

If the mobile node receives a Registration Reply message with a Code set to SERVICE_AUTHORIZATION_FAILED, and the mobile node has an existing binding with the Home Address used in the failed Registration Request message, the mobile node MUST delete the existing binding πŸ—‘οΈ. If there is no existing binding, the mobile node proceeds as with any failed initial registration πŸ’€.

4.2. Home Agent Considerations ✨

okay so, when the home agent gets the Service Selection extension, the first thing it does is authenticate and authorize the mobile node πŸ’… If the home agent supports Service Selection, it MUST also check that the mobile node is authorized for the service named in the extension. The services a mobile node is allowed to use SHOULD be part of its general subscription data πŸŽ€ If the mobile node isn't authorized for the service, or the home agent doesn't recognize the service at all, the home agent MUST deny the registration and send a Registration Reply with a Code of SERVICE_AUTHORIZATION_FAILED (error code 151) 😭

The Service Selection extension helps with the mobile node authorization phase, and it names the specific service that needs to be authorized πŸ¦‹ It can also affect Home Address allocation, especially when it's used together with the MN-NAI extension. For example, the same NAI MAY end up with different Home Addresses depending on which service is selected 🌸 It can also change how outbound IP packets get routed in the home agent, depending on the selected service 🧚 And the home agent MAY apply different policy or quality of service treatment to traffic flows based on the selected service. Iconic, honestly πŸ‘‘

Now, if a newly arrived Registration Request with a Service Selection extension shows a change in the selected service, the home agent MUST re-authorize the mobile node πŸ”₯ If the extension is missing, that MUST be treated as a request for the default service, and that might also cause re-authorization of the mobile node πŸ™ˆ Whether the home agent can authorize the mobile node for the new service depends on its own policies, the service policies, the Home Address allocation policies, and the subscription policies. It's not always a guarantee. For example, the existing service and the new service could need different Home Addresses πŸ’€ If the authorization fails, the home agent MUST deny the registration, delete any binding with the existing Home Address, and send a Registration Reply with a Code set to SERVICE_AUTHORIZATION_FAILED (error code 151) πŸ’”

Depending on the local home agent's policy, the home agent MAY echo the Service Selection extension in the corresponding Registration Reply message, sending it toward the mobile node or the foreign agent. Either way, the home agent MUST NOT change the content of the echoed Service Selection extension 🫢

4.3. Foreign Agent Considerations 🌈

A foreign agent MUST skip the Service Selection extension if the Registration Request already has one πŸ™Œ If the Registration Request doesn't have the extension, the foreign agent MAY add it to the Registration Request message. How the foreign agent figures out which service the mobile node needs authorized is outside the scope of this document, so that's a different story πŸ“–

If the foreign agent added the Service Selection extension on behalf of the mobile node, it MUST check whether the matching Registration Reply from a home agent also contains an echoed Service Selection extension ✨ If that echoed extension is there, the foreign agent MUST NOT include the extension in the Registration Reply message that gets forwarded to the mobile node. No double-dipping allowed πŸ’…


5. Security Considerations πŸ”

Okay, this part is serious bestie 😀 How well the Service Selection extension is protected depends on the service that is being identified and eventually selected. If the service selection information shouldn't be visible on the wire, it should be protected in a way similar to Registration Requests and Registration Replies πŸ›‘οΈ The Service Selection extension is protected by the same authentication-enabling extension as the rest of the Registration Request message.

The home agent MUST verify that the mobile node is authorized for the service included in the Service Selection extension 🚨 Service Selection authorization is part of the normal mobile node registration and authentication procedure, so it's not a side quest. Both registration authentication and service authorization MUST succeed before the mobile node is allowed to register with the home agent. No shortcuts, periodt πŸ’œ

6. IANA Considerations πŸ“‹

A new Mobile IPv4 Extension type has been assigned in the "Extensions appearing in Mobile IP control messages" registry for the extension described in Section 3 πŸŽ€ The Extension type came from the 'skippable' range (128-255):

    Service Selection Extension       is set to 151

A new Mobile IPv4 error code has also been assigned, in the "Registration denied by the home agent" section of the "Code Values for Mobile IP Registration Reply Messages" registry πŸ¦‹ That error code was allocated from the 'Error Codes from the Home Agent' range (128-192):

    SERVICE_AUTHORIZATION_FAILED      is set to 151

7. Acknowledgments 🫢

The authors want to thank Henrik Levkowetz, Kent Leung, Spencer Dawkins, and Jari Arkko for their comments πŸ’– Jouni Korhonen also gives a shoutout to TeliaSonera and the TEKES MERCoNe project, where most of the work happened 🌸

8. References πŸ“š

8.1. Normative References

  • [NFKC] Davis, M. and M. Durst, "Unicode Standard Annex #15; Unicode Normalization Forms", Unicode 5.0.0, October 2006.
  • [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
  • [RFC3344] Perkins, C., "IP Mobility Support for IPv4", RFC 3344, August 2002.
  • [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO 10646", STD 63, RFC 3629, November 2003.

8.2. Informative References

  • [LEUNG] Leung, K., "WiMAX Forum/3GPP2 Proxy Mobile IPv4", Work in Progress, December 2008.
  • [RFC2794] Calhoun, P. and C. Perkins, "Mobile IP Network Access Identifier Extension for IPv4", RFC 2794, March 2000.
  • [RFC4282] Aboba, B., Beadles, M., Arkko, J., and P. Eronen, "The Network Access Identifier", RFC 4282, December 2005.
  • [RFC4721] Perkins, C., Calhoun, P., and J. Bharatia, "Mobile IPv4 Challenge/Response Extensions (Revised)", RFC 4721, January 2007.
  • [RFC5149] Korhonen, J., Nilsson, U., and V. Devarapalli, "Service Selection for Mobile IPv6", RFC 5149, February 2008.

Authors' Addresses πŸ¦‹

Jouni Korhonen
Nokia Siemens Networks
Linnoitustie 6
FIN-02600 Espoo
FINLAND

EMail: jouni.nospam@gmail.com


Ulf Nilsson
TeliaSonera Corporation
Marbackagatan 11
S-123 86 Farsta
SWEDEN

EMail: ulf.s.nilsson@teliasonera.com
πŸ“¦ where this page comes from