draft-ietf-dmm-ondemand-mobility-02.txt | draft-ietf-dmm-ondemand-mobility-03.txt | |||
---|---|---|---|---|
DMM Working Group A. Yegin | DMM Working Group A. Yegin | |||
Internet-Draft Unaffiliated | Internet-Draft Unaffiliated | |||
Intended status: Standards Track K. Kweon | Intended status: Standards Track K. Kweon | |||
Expires: August 21, 2016 J. Lee | Expires: November 4, 2016 J. Lee | |||
J. Park | J. Park | |||
Samsung | Samsung | |||
D. Moses | D. Moses | |||
Intel | Intel | |||
February 18, 2016 | May 3, 2016 | |||
On Demand Mobility Management | On Demand Mobility Management | |||
draft-ietf-dmm-ondemand-mobility-02 | draft-ietf-dmm-ondemand-mobility-03 | |||
Abstract | Abstract | |||
Applications differ with respect to whether they need IP session | Applications differ with respect to whether they need IP session | |||
continuity and/or IP address reachability. The network providing the | continuity and/or IP address reachability. The network providing the | |||
same type of service to any mobile host and any application running | same type of service to any mobile host and any application running | |||
on the host yields inefficiencies. This document describes a | on the host yields inefficiencies. This document describes a | |||
solution for taking the application needs into account in selectively | solution for taking the application needs into account in selectively | |||
providing IP session continuity and IP address reachability on a per- | providing IP session continuity and IP address reachability on a per- | |||
socket basis. | socket basis. | |||
skipping to change at page 1, line 41 ¶ | skipping to change at page 1, line 41 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on August 21, 2016. | This Internet-Draft will expire on November 4, 2016. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 2, line 24 ¶ | skipping to change at page 2, line 24 ¶ | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
2. Notational Conventions . . . . . . . . . . . . . . . . . . . 4 | 2. Notational Conventions . . . . . . . . . . . . . . . . . . . 4 | |||
3. Solution . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3. Solution . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3.1. Types of IP Addresses . . . . . . . . . . . . . . . . . . 4 | 3.1. Types of IP Addresses . . . . . . . . . . . . . . . . . . 4 | |||
3.2. Granularity of Selection . . . . . . . . . . . . . . . . 5 | 3.2. Granularity of Selection . . . . . . . . . . . . . . . . 5 | |||
3.3. On Demand Nature . . . . . . . . . . . . . . . . . . . . 5 | 3.3. On Demand Nature . . . . . . . . . . . . . . . . . . . . 5 | |||
3.4. Conveying the Selection . . . . . . . . . . . . . . . . . 6 | 3.4. Conveying the Selection . . . . . . . . . . . . . . . . . 6 | |||
4. Backwards Compatibility Considerations . . . . . . . . . . . 8 | 4. Backwards Compatibility Considerations . . . . . . . . . . . 8 | |||
4.1. Applications . . . . . . . . . . . . . . . . . . . . . . 8 | 4.1. Applications . . . . . . . . . . . . . . . . . . . . . . 8 | |||
4.2. IP Stack in the Mobile Host . . . . . . . . . . . . . . . 8 | 4.2. IP Stack in the Mobile Host . . . . . . . . . . . . . . . 8 | |||
4.3. Network Infrastructure . . . . . . . . . . . . . . . . . 8 | 4.3. Network Infrastructure . . . . . . . . . . . . . . . . . 9 | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 9 | |||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | |||
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 | 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 9 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 9 | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 9 | 8.2. Informative References . . . . . . . . . . . . . . . . . 10 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
1. Introduction | 1. Introduction | |||
In the context of Mobile IP [RFC5563][RFC6275][RFC5213][RFC5944], | In the context of Mobile IP [RFC5563][RFC6275][RFC5213][RFC5944], | |||
following two attributes are defined for the IP service provided to | following two attributes are defined for the IP service provided to | |||
the mobile hosts: | the mobile hosts: | |||
IP session continuity: The ability to maintain an ongoing IP session | IP session continuity: The ability to maintain an ongoing IP session | |||
by keeping the same local end-point IP address throughout the session | by keeping the same local end-point IP address throughout the session | |||
skipping to change at page 4, line 24 ¶ | skipping to change at page 4, line 24 ¶ | |||
3. Solution | 3. Solution | |||
3.1. Types of IP Addresses | 3.1. Types of IP Addresses | |||
Three types of IP addresses are defined with respect to the mobility | Three types of IP addresses are defined with respect to the mobility | |||
management. | management. | |||
- Fixed IP Address | - Fixed IP Address | |||
This is what standard Mobile IP provides with a Home Address (HoA). | A Fixed IP address is an address assigned to the mobile host by the | |||
The mobile host is configures a HoA from a centrally-located Home | network with a guarantee to be valid for a very long time, regardless | |||
Network. Both IP session continuity and IP address reachability are | of whether it is being used in any packets to/from the mobile host, | |||
provided to the mobile host with the help of a router in the Home | or whether or not the mobile host is connected to the network, or | |||
Network (Home Agent, HA). This router acts as an anchor for the IP | whether it moves from one LAN to another (with a different IP prefix) | |||
address of the mobile host. | while it is connected. | |||
- Sustained IP Address | Fixed IP address are required by applications that need both IP | |||
session continuity and IP address reachability. | ||||
This type of IP address provides IP session continuity but not IP | - Session-lasting IP Address | |||
address reachability. It is achieved by ensuring that the IP address | ||||
used at the beginning of the session remains usable despite the | ||||
movement of the mobile host. The IP address may change after the | ||||
termination of the IP session(s), therefore it does not exhibit | ||||
persistence. | ||||
A sustained IP address may be configured and maintained by using | A session-lasting IP address is an address assigned to the mobile | |||
access network anchoring, corresponding network anchoring, or some | host by the network with a guarantee to be valid through-out the IP | |||
other solution. | session(s) for which it was requested. It is guaranteed to be valid | |||
even after the mobile host had moved from one LAN to another (with a | ||||
different IP prefix). | ||||
- Nomadic IP Address | Session-lasting IP addresses are required by applications that need | |||
IP session continuity but do not need IP address reachability. | ||||
- Non-persistent IP Address | ||||
This type of IP address provides neither IP session continuity nor IP | This type of IP address provides neither IP session continuity nor IP | |||
address reachability. The IP address is obtained from the serving IP | address reachability. The IP address is obtained from the serving IP | |||
gateway and it is not maintained across gateway changes. In other | gateway and it is not maintained across gateway changes. In other | |||
words, the IP address may be released and replaced by a new IP | words, the IP address may be released and replaced by a new IP | |||
address when the IP gateway changes due to the movement of the mobile | address when the IP gateway changes due to the movement of the mobile | |||
host. | host. | |||
Applications running as servers at a published IP address require a | Applications running as servers at a published IP address require a | |||
Fixed IP Address. Long-standing applications (e.g., an SSH session) | Fixed IP Address. Long-standing applications (e.g., an SSH session) | |||
may also require this type of address. Those applications could use | may also require this type of address. Enterprise applications that | |||
a Sustained IP Address, but that can produce sub-optimal results if | connect to an enterprise network via virtual LAN require a Fixed IP | |||
the mobile host ends up far from the anchor gateway. Enterprise | Address. | |||
applications that connect to an enterprise network via virtual LAN | ||||
require a Fixed IP Address. | ||||
Applications with short-lived transient IP sessions can use Sustained | Applications with short-lived transient IP sessions can use Session- | |||
IP Addresses. For example: Web browsers. | lasting IP Addresses. For example: Web browsers. | |||
Applications with very short IP sessions, such as DNS client and | Applications with very short IP sessions, such as DNS client and | |||
instant messengers, can utilize Nomadic IP Addresses. Even though | instant messengers, can utilize Non-persistent IP Addresses. Even | |||
they could very well use a Fixed of Sustained IP Addresses, the | though they could very well use a Fixed of Session-lasting IP | |||
transmission latency would be minimized when a Nomadic IP Address is | Addresses, the transmission latency would be minimized when a Non- | |||
used. | persistent IP Address is used. | |||
3.2. Granularity of Selection | 3.2. Granularity of Selection | |||
The IP address type selection is made on a per-socket granularity. | The IP address type selection is made on a per-socket granularity. | |||
Different parts of the same application may have different needs. | Different parts of the same application may have different needs. | |||
For example, control-plane of an application may require a Fixed IP | For example, control-plane of an application may require a Fixed IP | |||
Address in order to stay reachable, whereas data-plane of the same | Address in order to stay reachable, whereas data-plane of the same | |||
application may be satisfied with a Sustained IP Address. | application may be satisfied with a Session-lasting IP Address. | |||
3.3. On Demand Nature | 3.3. On Demand Nature | |||
At any point in time, a mobile host may have a combination of IP | At any point in time, a mobile host may have a combination of IP | |||
addresses configured. Zero or more Nomadic, zero or more Sustained, | addresses configured. Zero or more Non-persistent, zero or more | |||
and zero or more Fixed IP addresses may be configured on the IP stack | Session-lasting, and zero or more Fixed IP addresses may be | |||
of the host. The combination may be as a result of the host policy, | configured on the IP stack of the host. The combination may be as a | |||
application demand, or a mix of the two. | result of the host policy, application demand, or a mix of the two. | |||
When the application requires a specific type of IP address and such | When an application requires a specific type of IP address and such | |||
an IP address is not already configured on the host, then the IP | address is not already configured on the host, the IP stack shall | |||
stack shall attempt to configure one. For example, a host may not | attempt to configure one. For example, a host may not always have a | |||
always have a Fixed IP address available as such an address is rarely | Session-lasting IP address available. In case an application | |||
used. In case an application requests one, then the IP stack shall | requests one, the IP stack shall make an attempt to configure one by | |||
make an attempt to configure one using Mobile IP. If Mobile IP | issuing a request to the network. If the operation fails, the IP | |||
protocol is not available on the stack, or if its operation fails, | stack shall fail the associated socket request. If successful, a | |||
then the IP stack shall fail the associated socket request. In case | Session-lasting IP Address gets configured on the mobile host. If | |||
of successful Mobile IP operation, a Fixed IP Address gets configured | another socket requests a Session-lasting IP address at a later time, | |||
on the mobile host. If another socket requests a Fixed IP address at | the same IP address may be served to that socket as well. When the | |||
a later time, then the same IP address may be served to that socket | last socket using the requested IP address is closed, the IP address | |||
as well. When the last socket using the requested IP address is | may be released or kept for future applications that may be launched | |||
closed, the IP address may be released or kept for future | and require a Session-lasting IP address. | |||
applications that may be launched and require a Fixed IP address. | ||||
In some cases it might be preferable for the mobile host to request a | ||||
new Session-lasting IP address for a new opening of an IP session | ||||
(even though one was already assigned to the mobile host by the | ||||
network and might be in use in a different, already active IP | ||||
session). It is out of the scope of this specification to define | ||||
criteria for selecting to use available addresses or choose to | ||||
request new ones. It supports both alternatives (and any | ||||
combination). | ||||
It is outside of the scope of this specification to define how the | ||||
host requests a specific type of address (Fixed, Session-lasting or | ||||
Non-persistent) and how the network indicates the type of address in | ||||
its advertisement of addresses (or in its reply to an address | ||||
request). | ||||
The following are matters of policy, which may be dictated by the | The following are matters of policy, which may be dictated by the | |||
host itself, the network operator, or the system architecture | host itself, the network operator, or the system architecture | |||
standard: | standard: | |||
- The initial set of IP addresses configured on the host at the boot | - The initial set of IP addresses configured on the host at the boot | |||
time. | time. | |||
- Permission to grant various types of IP addresses to a requesting | - Permission to grant various types of IP addresses to a requesting | |||
application. | application. | |||
skipping to change at page 6, line 28 ¶ | skipping to change at page 6, line 43 ¶ | |||
3.4. Conveying the Selection | 3.4. Conveying the Selection | |||
The selection of the address type is conveyed from the applications | The selection of the address type is conveyed from the applications | |||
to the IP stack in a way to influence the source address selection | to the IP stack in a way to influence the source address selection | |||
algorithm [RFC6724]. | algorithm [RFC6724]. | |||
The current source address selection algorithm operates on the | The current source address selection algorithm operates on the | |||
available set of IP addresses when selecting an address. According | available set of IP addresses when selecting an address. According | |||
to the proposed solution, if the requested type IP address is not | to the proposed solution, if the requested type IP address is not | |||
available at the time of the request, then the IP stack shall make an | available at the time of the request, the IP stack shall make an | |||
attempt to configure one such IP address. The selected IP address | attempt to configure one such IP address. The selected IP address | |||
shall be compliant with the requested IP address type, whether it is | shall be compliant with the requested IP address type, whether it is | |||
selected among available addresses or dynamically configured. In the | selected among available addresses or dynamically configured. In the | |||
absence of a matching type (because it is not available and not | absence of a matching type (because it is not available and not | |||
configurable on demand), the source address selection algorithm shall | configurable on demand), the source address selection algorithm shall | |||
return an empty set. | return an empty set. | |||
A Socket API-based interface for enabling applications to influence | A Socket API-based interface for enabling applications to influence | |||
the source address selection algorithm is described in [RFC5014]. | the source address selection algorithm is described in [RFC5014]. | |||
That specification defines IPV6_ADDR_PREFERENCES option at the | That specification defines IPV6_ADDR_PREFERENCES option at the | |||
IPPROTO_IPV6 level. That option can be used with setsockopt() and | IPPROTO_IPV6 level. That option can be used with setsockopt() and | |||
getsockopt() calls to set and get address selection preferences. | getsockopt() calls to set and get address selection preferences. | |||
Furthermore, that RFC also specifies two flags that relate to IP | Furthermore, that RFC also specifies two flags that relate to IP | |||
mobility management: IPV6_PREFER_SRC_HOME and IPV6_PREFER_SRC_COA. | mobility management: IPV6_PREFER_SRC_HOME and IPV6_PREFER_SRC_COA. | |||
These flags are used for influencing the source address selection to | These flags are used for influencing the source address selection to | |||
prefer either a Home Address or a Care-of Address. | prefer either a Home Address or a Care-of Address. | |||
Unfortunately, these flags do not satisfy the aforementioned needs | Unfortunately, these flags do not satisfy the aforementioned needs | |||
skipping to change at page 7, line 20 ¶ | skipping to change at page 7, line 36 ¶ | |||
- The Home vs. Care-of Address distinction is not sufficient to | - The Home vs. Care-of Address distinction is not sufficient to | |||
capture the three different types of IP addresses described in | capture the three different types of IP addresses described in | |||
Section 2.1. | Section 2.1. | |||
The following new flags are defined in this document and they shall | The following new flags are defined in this document and they shall | |||
be used with Socket API in compliance with the [RFC5014]: | be used with Socket API in compliance with the [RFC5014]: | |||
IPV6_REQUIRE_FIXED_IP /* Require a Fixed IP address as source */ | IPV6_REQUIRE_FIXED_IP /* Require a Fixed IP address as source */ | |||
IPV6_REQUIRE_SUSTAINED_IP /* Require a Sustained IP address as source | IPV6_REQUIRE_Session-lasting_IP /* Require a Session-lasting IP | |||
*/ | address as source */ | |||
IPV6_REQUIRE_NOMADIC_IP /* Require a Nomadic IP address as source */ | IPV6_REQUIRE_Non-persistent_IP /* Require a Non-persistent IP address | |||
as source */ | ||||
Only one of these flags may be set on the same socket. If an | Only one of these flags may be set on the same socket. If an | |||
application attempts to set more than one flag, the most recent | application attempts to set more than one flag, the most recent | |||
setting will be the one in effect. | setting will be the one in effect. | |||
When any of these new flags is used, then the IPV6_PREFER_SRC_HOME | When any of these new flags is used, then the IPV6_PREFER_SRC_HOME | |||
and IPV6_PREFER_SRC_COA flags, if used, shall be ignored. | and IPV6_PREFER_SRC_COA flags, if used, shall be ignored. | |||
These new flags are used with setsockopt()/getsockopt(), | These new flags are used with setsockopt()/getsockopt(), | |||
getaddrinfo(), and inet6_is_srcaddr() functions [RFC5014]. Similar | getaddrinfo(), and inet6_is_srcaddr() functions [RFC5014]. Similar | |||
End of changes. 21 change blocks. | ||||
57 lines changed or deleted | 72 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |