summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc8983.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc8983.txt')
-rw-r--r--doc/rfc/rfc8983.txt315
1 files changed, 315 insertions, 0 deletions
diff --git a/doc/rfc/rfc8983.txt b/doc/rfc/rfc8983.txt
new file mode 100644
index 0000000..406b7d9
--- /dev/null
+++ b/doc/rfc/rfc8983.txt
@@ -0,0 +1,315 @@
+
+
+
+
+Internet Engineering Task Force (IETF) M. Boucadair
+Request for Comments: 8983 Orange
+Updates: 7296 February 2021
+Category: Standards Track
+ISSN: 2070-1721
+
+
+ Internet Key Exchange Protocol Version 2 (IKEv2) Notification Status
+ Types for IPv4/IPv6 Coexistence
+
+Abstract
+
+ This document specifies new Internet Key Exchange Protocol Version 2
+ (IKEv2) notification status types to better manage IPv4 and IPv6
+ coexistence by allowing the responder to signal to the initiator
+ which address families are allowed.
+
+ This document updates RFC 7296.
+
+Status of This Memo
+
+ This is an Internet Standards Track document.
+
+ 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). Further information on
+ Internet Standards is available in 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
+ https://www.rfc-editor.org/info/rfc8983.
+
+Copyright Notice
+
+ Copyright (c) 2021 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
+ (https://trustee.ietf.org/license-info) 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. Why Not INTERNAL_ADDRESS_FAILURE?
+ 4. IP6_ALLOWED and IP4_ALLOWED Status Types
+ 5. Update to RFC 7296
+ 6. Security Considerations
+ 7. IANA Considerations
+ 8. References
+ 8.1. Normative References
+ 8.2. Informative References
+ Acknowledgements
+ Author's Address
+
+1. Introduction
+
+ As described in [RFC7849], if the subscription data or network
+ configuration allows only one IP address family (IPv4 or IPv6), the
+ cellular host must not request a second PDP-Context (Section 3.2 of
+ [RFC6459]) to the same Access Point Name (APN) for the other IP
+ address family (AF). The Third Generation Partnership Project (3GPP)
+ network informs the cellular host about allowed Packet Data Protocol
+ (PDP) types by means of Session Management (SM) cause codes. In
+ particular, the following cause codes can be returned:
+
+ cause #50 "PDP type IPv4 only allowed": This cause code is used by
+ the network to indicate that only PDP type IPv4 is allowed for the
+ requested Public Data Network (PDN) connectivity.
+
+ cause #51 "PDP type IPv6 only allowed": This cause code is used by
+ the network to indicate that only PDP type IPv6 is allowed for the
+ requested PDN connectivity.
+
+ cause #52 "single address bearers only allowed": This cause code is
+ used by the network to indicate that the requested PDN
+ connectivity is accepted with the restriction that only single IP
+ version bearers are allowed.
+
+ If the requested IPv4v6 PDP-Context is not supported by the network
+ but IPv4 and IPv6 PDP types are allowed, then the cellular host will
+ be configured with an IPv4 address or an IPv6 prefix by the network.
+ It must initiate another PDP-Context activation of the other address
+ family in addition to the one already activated for a given APN. The
+ purpose of initiating a second PDP-Context is to achieve dual-stack
+ connectivity (that is, IPv4 and IPv6 connectivity) by means of two
+ PDP-Contexts.
+
+ When the User Equipment (UE) attaches to the 3GPP network using a
+ non-3GPP access network (e.g., Wireless Local Area Network (WLAN)),
+ there are no equivalent IKEv2 capabilities [RFC7296] notification
+ codes for the 3GPP network to inform the UE why an IP address family
+ is not assigned or whether that UE should retry with another address
+ family.
+
+ This document fills that void by introducing new IKEv2 notification
+ status types for the sake of deterministic UE behaviors (Section 4).
+
+ These notification status types are not specific to 3GPP
+ architectures but can be used in other deployment contexts. Cellular
+ networks are provided as an illustration example.
+
+2. Terminology
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
+ "OPTIONAL" in this document are to be interpreted as described in
+ BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
+ capitals, as shown here.
+
+ This document makes use of the terms defined in [RFC7296]. In
+ particular, readers should be familiar with "initiator" and
+ "responder" terms used in that document.
+
+3. Why Not INTERNAL_ADDRESS_FAILURE?
+
+ The following address assignment failures may be encountered when an
+ initiator requests assignment of IP addresses/prefixes:
+
+ * An initiator asks for IPvx, but IPvx address assignment is not
+ supported by the responder.
+
+ * An initiator requests both IPv4 and IPv6 addresses, but only IPv4
+ address assignment is supported by the responder.
+
+ * An initiator requests both IPv4 and IPv6 addresses, but only IPv6
+ prefix assignment is supported by the responder.
+
+ * An initiator asks for both IPv4 and IPv6 addresses, but only one
+ address family can be assigned by the responder for policy
+ reasons.
+
+ Section 3.15.4 of [RFC7296] defines a generic notification error type
+ (INTERNAL_ADDRESS_FAILURE) that is related to a failure to handle an
+ address assignment request. The responder sends
+ INTERNAL_ADDRESS_FAILURE only if no addresses can be assigned. This
+ behavior does not explicitly allow an initiator to determine why a
+ given address family is not assigned, nor whether it should try using
+ another address family. INTERNAL_ADDRESS_FAILURE is a catch-all
+ error type when an address-related issue is encountered by an IKEv2
+ responder.
+
+ INTERNAL_ADDRESS_FAILURE does not provide sufficient hints to the
+ IKEv2 initiator to adjust its behavior.
+
+4. IP6_ALLOWED and IP4_ALLOWED Status Types
+
+ IP6_ALLOWED and IP4_ALLOWED notification status types (see Section 7)
+ are defined to inform the initiator about the responder's address
+ family assignment support capabilities and to report to the initiator
+ the reason why an address assignment failed. These notification
+ status types are used by the initiator to adjust its behavior
+ accordingly (Section 5).
+
+ No data is associated with these notifications.
+
+5. Update to RFC 7296
+
+ If the initiator is dual stack (i.e., supports both IPv4 and IPv6),
+ it MUST include configuration attributes for both address families in
+ its configuration request (absent explicit policy/configuration
+ otherwise). More details about IPv4 and IPv6 configuration
+ attributes are provided in Section 3.15 of [RFC7296]. These
+ attributes are used to infer the requested/assigned AFs listed in
+ Table 1.
+
+ The responder MUST include the IP6_ALLOWED and/or IP4_ALLOWED
+ notification status type in a response to an address assignment
+ request as indicated in Table 1.
+
+ +=============+==============+=============+=====================+
+ | Requested | Supported | Assigned | Returned |
+ | AF(s) | AF(s) | AF(s) | Notification Status |
+ | (Initiator) | (Responder) | (Responder) | Type(s) (Responder) |
+ +=============+==============+=============+=====================+
+ | IPv4 | IPv6 | None | IP6_ALLOWED |
+ +-------------+--------------+-------------+---------------------+
+ | IPv4 | IPv4 | IPv4 | IP4_ALLOWED |
+ +-------------+--------------+-------------+---------------------+
+ | IPv4 | IPv4 and | IPv4 | IP4_ALLOWED, |
+ | | IPv6 | | IP6_ALLOWED |
+ +-------------+--------------+-------------+---------------------+
+ | IPv6 | IPv6 | IPv6 | IP6_ALLOWED |
+ +-------------+--------------+-------------+---------------------+
+ | IPv6 | IPv4 | None | IP4_ALLOWED |
+ +-------------+--------------+-------------+---------------------+
+ | IPv6 | IPv4 and | IPv6 | IP4_ALLOWED, |
+ | | IPv6 | | IP6_ALLOWED |
+ +-------------+--------------+-------------+---------------------+
+ | IPv4 and | IPv4 | IPv4 | IP4_ALLOWED |
+ | IPv6 | | | |
+ +-------------+--------------+-------------+---------------------+
+ | IPv4 and | IPv6 | IPv6 | IP6_ALLOWED |
+ | IPv6 | | | |
+ +-------------+--------------+-------------+---------------------+
+ | IPv4 and | IPv4 and | IPv4 and | IP4_ALLOWED, |
+ | IPv6 | IPv6 | IPv6 | IP6_ALLOWED |
+ +-------------+--------------+-------------+---------------------+
+ | IPv4 and | IPv4 or IPv6 | IPv4 or | IP4_ALLOWED, |
+ | IPv6 | (policy | IPv6 | IP6_ALLOWED |
+ | | based) | | |
+ +-------------+--------------+-------------+---------------------+
+
+ Table 1: Returned Notification Status Types
+
+ If the initiator only receives one single IP4_ALLOWED or IP6_ALLOWED
+ notification from the responder, the initiator MUST NOT send a
+ subsequent request for an alternate address family not supported by
+ the responder.
+
+ If a dual-stack initiator requests only an IPv6 prefix (or an IPv4
+ address) but only receives an IP4_ALLOWED (or IP6_ALLOWED)
+ notification status type from the responder, the initiator MUST send
+ a request for IPv4 address(es) (or IPv6 prefix(es)).
+
+ If a dual-stack initiator requests both an IPv6 prefix and an IPv4
+ address but receives an IPv6 prefix (or an IPv4 address) only with
+ both IP4_ALLOWED and IP6_ALLOWED notification status types from the
+ responder, the initiator MAY send a request for the other AF (i.e.,
+ IPv4 address (or IPv6 prefix)). In such case, the initiator MUST
+ create a new IKE Security Association (SA) and request another
+ address family using the new IKE SA.
+
+ For other address-related error cases that have not been covered by
+ the aforementioned notification status types, the responder/initiator
+ MUST follow the procedure defined in Section 3.15.4 of [RFC7296].
+
+6. Security Considerations
+
+ Since the IPv4/IPv6 capabilities of a node are readily determined
+ from the traffic it generates, this document does not introduce any
+ new security considerations compared to the ones described in
+ [RFC7296], which continue to apply.
+
+7. IANA Considerations
+
+ IANA has updated the "IKEv2 Notify Message Types - Status Types"
+ registry (available at <https://www.iana.org/assignments/
+ ikev2-parameters/>) with the following status types:
+
+ +=======+================================+===========+
+ | Value | NOTIFY MESSAGES - STATUS TYPES | Reference |
+ +=======+================================+===========+
+ | 16439 | IP4_ALLOWED | RFC 8983 |
+ +-------+--------------------------------+-----------+
+ | 16440 | IP6_ALLOWED | RFC 8983 |
+ +-------+--------------------------------+-----------+
+
+ Table 2: Updates to "IKEv2 Notify Message Types -
+ Status Types" Registry
+
+8. References
+
+8.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,
+ <https://www.rfc-editor.org/info/rfc2119>.
+
+ [RFC7296] Kaufman, C., Hoffman, P., Nir, Y., Eronen, P., and T.
+ Kivinen, "Internet Key Exchange Protocol Version 2
+ (IKEv2)", STD 79, RFC 7296, DOI 10.17487/RFC7296, October
+ 2014, <https://www.rfc-editor.org/info/rfc7296>.
+
+ [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
+ 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
+ May 2017, <https://www.rfc-editor.org/info/rfc8174>.
+
+8.2. Informative References
+
+ [RFC6459] Korhonen, J., Ed., Soininen, J., Patil, B., Savolainen,
+ T., Bajko, G., and K. Iisakkila, "IPv6 in 3rd Generation
+ Partnership Project (3GPP) Evolved Packet System (EPS)",
+ RFC 6459, DOI 10.17487/RFC6459, January 2012,
+ <https://www.rfc-editor.org/info/rfc6459>.
+
+ [RFC7849] Binet, D., Boucadair, M., Vizdal, A., Chen, G., Heatley,
+ N., Chandler, R., Michaud, D., Lopez, D., and W. Haeffner,
+ "An IPv6 Profile for 3GPP Mobile Devices", RFC 7849,
+ DOI 10.17487/RFC7849, May 2016,
+ <https://www.rfc-editor.org/info/rfc7849>.
+
+Acknowledgements
+
+ Many thanks to Christian Jacquenet for the review.
+
+ Thanks to Paul Wouters, Yaov Nir, Valery Smyslov, Daniel Migault,
+ Tero Kivinen, and Michael Richardson for the comments and review.
+
+ Thanks to Benjamin Kaduk for the AD review.
+
+ Thanks to Murray Kucherawy, Éric Vyncke, and Robert Wilton for the
+ IESG review.
+
+Author's Address
+
+ Mohamed Boucadair
+ Orange
+ 35000 Rennes
+ France
+
+ Email: mohamed.boucadair@orange.com