RFC 7849

An IPv6 Profile for 3GPP Mobile Devices

πŸ“… published May 2016, from ietf

An IPv6 Profile for 3GPP Mobile Devices πŸ“±βœ¨

Independent Submission, Request for Comments 7849, May 2016, Category: Informational, ISSN 2070-1721. The authors are D. Binet and M. Boucadair from Orange, A. Vizdal from Deutsche Telekom AG, G. Chen from China Mobile, N. Heatley from EE, R. Chandler from eircom | meteor, D. Michaud from Rogers Communications, D. Lopez from Telefonica I+D, and W. Haeffner from Vodafone. πŸ’– It's an informational doc, not a Standards Track spec, and it doesn't obsolete or update any earlier RFCs.

Abstract

okay so this doc defines a profile that's a superset of the connection to IPv6 cellular networks from the IPv6 for Third Generation Partnership Project (3GPP) Cellular Hosts document. It's giving a whole upgrade πŸ¦‹ This document defines a profile that is a superset of the connections to IPv6 cellular networks defined in "IPv6 for Third Generation Partnership Project (3GPP) Cellular Hosts" (RFC 7066). Yes, it's said twice, and yes, that's the abstract 😭

Both mobile hosts and mobile devices that can share their 3GPP mobile connectivity are in scope. Main character energy for both πŸ‘‘

IESG Note

The consensus-based IETF description of IPv6 functionality for cellular hosts is described in RFC 7066. So RFC 7066 is the official IETF word on this πŸ’…

Status of This Memo

Bestie, read this part, it matters 🫢 This document is not an Internet Standards Track specification. It's published for informational purposes only, not as a standard.

This is a contribution to the RFC Series, independently of any other RFC stream. The RFC Editor chose to publish it at their discretion and makes no statement about its value for implementation or deployment. Documents approved for publication by the RFC Editor are not a candidate for any level of Internet Standard, see Section 2 of RFC 5741. Not a standard, not even a candidate πŸ™ˆ

Info about the current status of this document, any errata, and how to send feedback is at http://www.rfc-editor.org/info/rfc7849. 🌸

Copyright (c) 2016 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 (http://trustee.ietf.org/license-info) as in effect on the date of publication. Please read these carefully, because they describe your rights and restrictions with respect to this document. Legal stuff, but it's important πŸ“œ

Table of Contents

1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
  1.1.  Terminology . . . . . . . . . . . . . . . . . . . . . . .   4
  1.2.  Scope . . . . . . . . . . . . . . . . . . . . . . . . . .   5
2.  Connectivity Recommendations  . . . . . . . . . . . . . . . .   6
3.  Recommendations for Cellular Devices with LAN Capabilities  .  11
4.  Advanced Recommendations  . . . . . . . . . . . . . . . . . .  13
5.  Security Considerations . . . . . . . . . . . . . . . . . . .  15
6.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  16
  6.1.  Normative References  . . . . . . . . . . . . . . . . . .  16
  6.2.  Informative References  . . . . . . . . . . . . . . . . .  17
Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . .  20
Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  21

1. Introduction ✨

IPv6 deployment in 3GPP mobile networks is the only viable solution to the exhaustion of IPv4 addresses in those networks. 🌍 Several mobile operators have already deployed IPv6 [RFC2460] or are in the pre-deployment phase. One big hurdle, as some mobile operators see it, is that working IPv6 implementations aren't really available in mobile devices (e.g., Section 3.3 of [OECD]). 😀

[RFC7066] lists a set of features that cellular hosts should support to connect to 3GPP mobile networks. Given recent IPv6 production deployments, extra features that make IPv6-only deployments easier while still reaching IPv4-only services should be considered. 🧚

This document fills that gap πŸ’œ Concretely, it lists ways to make sure IPv4 service works over an IPv6-only connection, given how many mobile operators are adopting that model. Those operators require that customers on an IPv6-only model see no service degradation compared to customers with legacy IPv4-only devices. No downgrades, period πŸ’…

This document defines an IPv6 profile for mobile devices that lists specifications from various Standards Developing Organizations (including 3GPP, IETF, and the Global System for Mobile Communications Association (GSMA)). The goals are:

  1. List, in one single document, a comprehensive list of IPv6 features for a mobile device, covering both IPv6-only and dual-stack mobile deployment contexts. These features cover various packet core architectures such as General Packet Radio Service (GPRS) or Evolved Packet Core (EPC). πŸ“
  2. Help operators prepare their detailed device requirement lists (to be exchanged with device suppliers). This is also a contribution to harmonising operators' requirements towards device vendors. 🀝
  3. Inform vendors about a set of features that allow IPv6 connectivity and IPv4 service continuity (over an IPv6-only transport). πŸ¦‹

The recommendations don't include 3GPP release details. If you want those, check Section 6.2 of [RFC6459], and more details can be found at [R3GPP]. πŸ“š

Some features in this profile might need dedicated functions to be activated on the network side. Listing those network-side functions is out of scope for this document πŸ™ˆ

A detailed overview of IPv6 support in 3GPP architectures is in [RFC6459]. IPv6-only considerations in mobile networks are discussed further in [RFC6342]. ✨

This document is organised like this:

  • Section 2 lists generic recommendations, including functionalities to provide IPv4 service over an IPv6-only connectivity. 🌈
  • Section 3 lists a set of recommendations for cellular devices with Local Area Network (LAN) capabilities (e.g., Customer Edge (CE) routers with a cellular access link, dongles with tethering features). πŸ“Ά
  • Section 4 identifies a set of advanced recommendations to meet the requirements of critical services such as VoLTE (Voice over LTE). πŸ“ž

1.1. Terminology

This document uses the terms defined in [RFC6459]. On top of that, these terms are used:

  • 3GPP cellular host (or "cellular host" for short): a 3GPP device that can connect to 3GPP mobile networks. πŸ“±
  • 3GPP cellular device (or "cellular device" for short): a cellular host that supports the capability to share its 3GPP mobile connectivity. πŸ”₯
  • IPv4 service continuity: the features used to provide access to IPv4-only services for customers on an IPv6-only connection. A typical example of an IPv4 service continuity technique is Network Address and Protocol Translation from IPv6 Clients to IPv4 Servers (NAT64) [RFC6146]. πŸ’«

PREFIX64 denotes an IPv6 prefix used to build IPv4-converted IPv6 addresses [RFC6052]. 🫢

1.2. Scope πŸ¦‹

okay so bestie, a 3GPP mobile network can hook up all kinds of User Equipment (UE) πŸ“±, like a regular mobile phone or a CE router πŸ›œ. Because the terminals are sooo different from each other, we need a set of IPv6 functionalities that works for ANY node that plugs straight into a 3GPP mobile network πŸ’…. That's what this document is all about ✨.

The machine-to-machine (M2M) devices profile is not in scope here, so we're skipping that one πŸ™ˆ.

The doc is set up to give generic IPv6 recs that work for every node no matter what it does (like a host or a CE router) or what services it supports (like Session Initiation Protocol (SIP) [RFC3261] πŸ“ž). It also has sections for devices that provide some LAN functions, like mobile CE routers or broadband dongles πŸŽ€.

The recs below work for both 3GPP GPRS and 3GPP Evolved Packet System (EPS) 🌈. For EPS, the term "PDN-Connection" is used instead of PDP-Context, so keep that in mind 🧚. Other non-3GPP accesses [TS.23402] are out of scope for this doc πŸ™…β€β™€οΈ.

This profile is a superset of the IPv6 profile for 3GPP Cellular Hosts [RFC7066], which is itself a superset of IPv6 Node Requirements [RFC6434] πŸ‘‘. It's for cellular nodes, including GPRS and EPC, that need features to keep IPv4 service delivery working over an IPv6-only transport, on top of the base IPv6 service πŸ’œ. It also covers cellular CE routers used in all sorts of mobile broadband deployments πŸ“Ά. Some recs were inspired by real deployment experiences, like roaming 🌍. And this profile sketches out recs so cellular devices behave deterministically when the same configuration info arrives over several channels πŸ”₯.

When [RFC7066] and [RFC6434] disagree (for example, on Neighbor Discovery Protocol), this profile sides with [RFC7066] πŸ’…. Neighbor Discovery Protocol support is mandatory in a 3GPP cellular environment, because it's the only way to convey an IPv6 prefix to the 3GPP cellular device 🫢. Also, Maximum Transmission Unit (MTU) communication via Router Advertisement (RA) must be supported, since lots of 3GPP networks don't have a standard MTU setting 😭.

This profile uses stronger language for Prefix Delegation than [RFC7066] does πŸ”₯. The big reason is that cellular networks are more and more seen as an alternative to fixed networks for home IP-based services, especially with smartphones and 3GPP data dongles πŸ“±. We need an efficient way to assign larger prefixes to cellular hosts so each LAN segment can get its own /64 prefix, and so multi-link subnet issues get avoided ✨. Supporting this in both cellular and fixed networks is key for fixed-mobile convergence πŸ¦‹.

Using address-family-dependent Application Programming Interfaces (APIs) or hard-coded IPv4 address literals may lead to broken applications when IPv6 connectivity is in use πŸ’€. So means to minimize broken applications should be encouraged when the cellular host is attached to an IPv6-only network 🌸. Specifically:

  1. name resolution libraries (e.g., [RFC3596]) must support both IPv4 and IPv6;
  2. applications must be independent of the underlying IP address family; and
  3. applications relying upon Uniform Resource Identifiers (URIs) must follow [RFC3986] and its updates.

Heads up, some IETF specifications (e.g., SIP [RFC3261]) contain broken IPv6 Augmented Backus-Naur Form (ABNF) and rules for comparing URIs with embedded IPv6 addresses 🚨. The fixes (e.g., [RFC5954]) must be used instead 🫢.

The recommendations in each section are listed in a priority order πŸ†.

This document is not a standard, so conforming to it isn't required to claim conformance with IETF standards for IPv6 πŸ™. Complying with this profile doesn't require supporting every enclosed item πŸ’–. Obviously, the full set of features may not be required in some deployment contexts 🧚. Still, the authors believe that not supporting relevant features in this profile (like Customer-Side Translator (CLAT) [RFC6877]) may lead to a degraded level of service 😭.

2. Connectivity Recommendations 🌸

This section lays out the main connectivity recs a cellular host should follow to attach to a network using IPv6, on top of what [RFC6434] and [RFC7066] already define ✨. Both dual-stack and IPv6-only deployment models are covered πŸ¦‹. The IPv4 service continuity features are listed here because they're critical for operators running an IPv6-only deployment model πŸ‘‘. These recs also apply to cellular devices (see Section 3) πŸ“±.

C_REC#1: So each operator can pick their own strategy for IPv6 introduction, the cellular host must support both IPv6 and IPv4v6 PDP-Contexts [TS.23060] πŸ’…. Whether an IPv4, IPv6, or IPv4v6 PDP-Context request gets accepted depends on the cellular network configuration πŸŽ€.

C_REC#2: The cellular host must comply with the behavior defined in [TS.23060], [TS.23401], and [TS.24008] when requesting a PDP-Context type πŸ“‹.

Specifically, the cellular host must request an IPv6 PDP-Context by default if it's IPv6-only, and it must request an IPv4v6 PDP-Context if it's dual-stack, or when it isn't aware of the connectivity types requested by devices connected to it (for example, a cellular host with LAN capabilities, as discussed in Section 3) 🧚:

  • If the requested IPv4v6 PDP-Context isn't supported by the network but the IPv4 and IPv6 PDP types are allowed, 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 Access Point Name (APN). The whole point of initiating a second PDP-Context is to achieve dual-stack connectivity by means of two PDP-Contexts 🌈.
  • 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 to the same APN for the other IP address family πŸ™…β€β™€οΈ.

The network tells the cellular host about the allowed Packet Data Protocol (PDP) types by means of Session Management (SM) cause codes πŸ“¨. In particular, these cause codes can be returned:

  • cause #50 "PDP type IPv4 only allowed": the network uses this cause code to say that only PDP type IPv4 is allowed for the requested Public Data Network (PDN) connectivity πŸ”₯.
  • cause #51 "PDP type IPv6 only allowed": the network uses this cause code to say that only PDP type IPv6 is allowed for the requested PDN connectivity πŸ’œ.
  • cause #52 "single address bearers only allowed": the network uses this cause code to say that the requested PDN connectivity is accepted, with the restriction that only single IP version bearers are allowed ⭐.

The text above focuses on the specification (an excerpt from [TS.23060], [TS.23401], and [TS.24008]) that explains the behavior for requesting IPv6-related PDP-Context(s) πŸ¦‹.

C_REC#3: The cellular host must support the Protocol Configuration Options (PCOs) [TS.24008] to retrieve the IPv6 address(es) of the Recursive DNS server(s) πŸŽ€.

The 3GPP network communicates parameters by means of the protocol configuration options information element when it activates, modifies, or deactivates a PDP-Context πŸ“‘. PCO is a convenient method to tell the cellular host about various services, including DNS server information πŸ“. It doesn't need any additional protocol to be supported by the cellular host, and it's already deployed in IPv4 cellular networks to convey that same DNS information πŸ’–.

C_REC#4: The cellular host must support IPv6-aware Traffic Flow Templates (TFTs) [TS.24008] 🫢.

Traffic Flow Templates use a packet filter to couple IP traffic with a PDP-Context 🧚. That way, a dedicated PDP-Context and radio resources can be provided by the cellular network for certain IP traffic πŸ”₯.

C_REC#5: If the cellular host receives the DNS information over several channels for the same interface, the following preference order must be followed πŸ“š:

  1. PCO
  2. RA

3. DHCPv6 ✨

okay so this one is about being consistent πŸ’– the whole point is that every cellular host behaves the same way no matter which channel the DNS info shows up through. no surprises, no chaos 🧚

C_REC#6: okay roaming can get messy 😭 because of potential operational deficiencies in some roaming situations, the cellular host must be able to be configured with a home PDP-Context type(s) and a roaming PDP-Context type(s). the roaming profile exists to limit the PDP type(s) the cellular host requests when it's out of the home network. and yes, distinct PDP type(s) and APN(s) can be configured for home and roaming, which is iconic πŸ’…

a detailed breakdown of roaming failure cases lives in [RFC7445] πŸ™ˆ

the config can be local to the device or managed dynamically using something like Open Mobile Alliance (OMA) management. the support of dynamic means is encouraged 🌸

C_REC#7: to keep IPv4 service continuity in an IPv6-only deployment, the cellular host should support a method to learn PREFIX64(s) ✨

so with NAT64, IPv6-enabled apps that rely on address referrals will fail, because an IPv6-only client can't use an IPv4 address it got in a referral 😭 this feature fixes the referral problem, since an IPv6-enabled app can build IPv4-embedded IPv6 addresses [RFC6052]. it also helps you tell IPv4-converted IPv6 addresses apart from native IPv6 ones 🫢

in other words, this feature takes some weight off both the CLAT module and the NAT64 devices πŸ’œ see Section 3 of [RFC7051] for an inventory of the issues around discovering PREFIX64(s).

in PCP environments, cellular hosts should follow [RFC7225] to learn the IPv6 Prefix used by an upstream PCP-controlled NAT64 device. if PCP is not enabled, the cellular host should implement the method specified in [RFC7050] to retrieve the PREFIX64. ✨

C_REC#8: to keep IPv4 service continuity in an IPv6-only deployment, the cellular host should implement the CLAT [RFC6877] function in compliance with [RFC6052], [RFC6145], and [RFC6146] πŸ¦‹

the CLAT function lets IPv4-only apps and IPv4 referrals work on IPv6-only connectivity. the more apps that are address family independent, the less the CLAT function gets called on πŸ’… and it requires a NAT64 capability [RFC6146] in the network.

the cellular host should only invoke CLAT in the absence of IPv4 connectivity on the cellular side, i.e., when the network does not assign an IPv4 address on the cellular interface. note, NAT64 assumes an IPv6-only mode [RFC6146] πŸ‘‘

the IPv4 Service Continuity Prefix used by CLAT is defined in [RFC7335].

CLAT and/or NAT64 do not interfere with native IPv6 communications. 🌈

CLAT may not be required in some contexts, e.g., if other solutions such as Bump-in-the-Host (BIH) [RFC6535] are supported πŸ“

the cellular device can act as a CE router connecting various IP hosts on a LAN segment, and that's also the case with WLAN (Wireless LAN) tethering or a WLAN hotspot from the cellular device 🧚 some of these hosts can be dual-stack, while others are IPv6-only or IPv4-only. IPv6-only connectivity on the cellular device does not allow IPv4-only sessions to be established for hosts on its LAN segment πŸ’€ IPv4 session establishment initiated from hosts on the LAN side and destined for IPv4 nodes must be maintained. a solution is to integrate the CLAT function into the LAN segment in the cellular device 🫢

C_REC#9: the cellular host may be able to be configured to limit PDP type(s) for a given APN. the default mode is to allow all supported PDP types. note, C_REC#2 discusses the default behavior for requesting PDP-Context type(s) πŸŽ€

this is useful for lining up the UE's behavior with (1) service-specific constraints, such as using IPv6-only for VoLTE, (2) network conditions around support for specific PDP types (e.g., IPv4v6 PDP-Context is not supported), (3) IPv4 sunset objectives, (4) subscription data, etc. πŸ’–

note, a cellular host switching its connection between an IPv6-specific APN and an IPv4-specific APN will interrupt related network connections. some apps may consider that a brokenness situation 😭

the config can be local to the device or managed dynamically using, for example, OMA management. the support of dynamic means is encouraged 🌸


3. Recommendations for Cellular Devices with LAN Capabilities ✨

this section is all about cellular devices (think CE routers, smartphones, or dongles with tethering features) that give IP connectivity to other devices connected to them πŸ’œ in this case, every connected device shares the same 2G, 3G, or LTE connection. on top of the generic recommendations in Section 2, these cellular devices have to meet the recommendations below πŸŽ€

L_REC#1: for deployments that require the same /64 prefix be shared, the cellular device should support [RFC7278] to enable sharing a /64 prefix between the LAN and the WAN interfaces. the WAN interface is the one towards the Gateway GPRS Support Node (GGSN) / Packet Data Network Gateway (PGW) πŸ¦‹

Prefix Delegation (refer to L_REC#2) is the target solution for distributing prefixes on the LAN side, but because the device may attach to earlier 3GPP release networks, a means to share a /64 prefix is also recommended [RFC7278] 🫢 and [RFC7278] must be invoked only if Prefix Delegation is not in use. ✨

L_REC#2: the cellular device must support Prefix Delegation capabilities [RFC3633] and must support the Prefix Exclude Option for DHCPv6-based Prefix Delegation as defined in [RFC6603]. particularly, it must behave as a Requesting Router πŸ‘‘

cellular networks are more and more seen as an alternative to fixed broadband for delivering home IP-based services, especially with the rise of smartphones and 3GPP data dongles 🌈 so there's a real need for an efficient mechanism to assign larger prefixes (other than /64s) to cellular hosts. that way each LAN segment can get its own /64 prefix and multi-link subnet issues get avoided πŸ’…

if a prefix is delegated to a cellular host using DHCPv6, the cellular device will be configured with two prefixes:

  1. one for the 3GPP link, allocated using the Stateless Address Autoconfiguration (SLAAC) mechanism, and
  2. another one delegated for LANs, acquired during the Prefix Delegation operation.

note, the 3GPP network architecture requires both the WAN and the delegated prefix to be aggregatable, so the subscriber can be identified using a single prefix 🧚

without the Prefix Exclude Option, the delegating router (GGSN/PGW) will have to ensure compliance with [RFC3633] (e.g., halving the delegated prefix and assigning the WAN prefix out of the first half, and the prefix to be delegated to the terminal from the second half) πŸ“

because Prefix Delegation capabilities may not be available in some attached networks, L_REC#1 is strongly recommended to accommodate early deployments πŸ™ˆ

L_REC#3: the cellular CE router must be compliant with the requirements specified in [RFC7084] πŸ’–

there are several deployments, particularly in emerging countries, that rely on mobile networks to provide broadband services (e.g., customers are given mobile CE routers) 🌸

note, this profile does not require the IPv4 service continuity techniques listed in Section 4.4 of [RFC7084], because those are specific to fixed networks. IPv4 service continuity techniques specific to mobile networks are included in this profile ✨

this recommendation doesn't apply to handsets with tethering capabilities. it's specific to cellular CE routers, so you get the same IPv6 functional parity for both fixed and cellular CE routers 🫢 modern CE routers have advanced functions like link aggregation, which optimizes network usage by aggregating the connectivity resources offered via various interfaces (e.g., Digital Subscriber Line (DSL), LTE, WLAN, etc.) or by offloading traffic via a subset of interfaces. keeping IPv6 feature parity across these interface types is important for specification efficiency, service design simplification, and validation effort optimization πŸ’…

L_REC#4: if an RA MTU is advertised from the 3GPP network, the cellular device should send RAs to the downstream attached LAN devices with the same MTU as seen on the mobile interface πŸ”₯

receiving and relaying RA MTU values helps the mobile core network run more smoothly, since end nodes transmit packets that don't exceed the MTU size of the mobile network's tunnels that use the GPRS Tunneling Protocol (GTP) πŸ¦‹

[TS.23060] indicates that providing a link MTU value of 1358 octets to the 3GPP cellular device will prevent IP layer fragmentation within the transport network between the cellular device and the GGSN/PGW 🌈 more details about link MTU considerations can be found in Annex C of [TS.23060] ✨

4. Advanced Recommendations ✨

okay so this section is the "upgrade your phone to VIP" part πŸ’… it's got a set of advanced recommendations for critical services like VoLTE πŸ“žπŸ«Ά and they apply to mobile hosts, including mobile devices πŸ“±

A_REC#1: ROHC for IPv6 πŸ—œοΈ

bestie, the cellular host MUST support the RObust Header Compression (ROHC) RTP Profile (0x0001) and the ROHC UDP Profile (0x0002) for IPv6 [RFC5795] πŸ’– other ROHC profiles MAY be supported too, no cap 🌸

okay why does this matter?? bandwidth in cellular networks has to be squeezed as much as possible πŸ₯Ί ROHC cuts down on bandwidth use and helps with the fact that IPv6 headers are chunkier than IPv4 ones πŸ“ it's giving "compress me daddy" energy fr 😭

the "RTP/UDP/IP" ROHC profile (0x0001) compresses RTP packets, and the "UDP/IP" ROHC profile (0x0002) compresses Real-time Transport Control Protocol (RTCP) packets πŸŽ€ both are REQUIRED for VoLTE by Section 4.1 of IR.92.7.0 [IR92] ✨

note from [IR92]: the host MUST be able to apply the compression to packets that are carried over the voice-media-dedicated radio bearer 🚨 so it's not optional, it's a whole vibe check πŸ’€

A_REC#2: PCP πŸ¦‹

bestie, the cellular host SHOULD support PCP [RFC6887] 🌈

the vibe here is battery life πŸ”‹πŸ’œ keep-alive messages drain the battery, and PCP helps with that. it also lets incoming connections reach the cellular device πŸ“² since stateful devices like NAT64 and IPv6 Firewalls can be deployed on wireless networks, the cellular host can use PCP to control those network-based NAT64 and IPv6 Firewall functions. that cuts down on per-application signaling and saves battery too 🧚

according to [Power], a cellular device with a keep-alive interval of 20 seconds (the default in [RFC3948], for example) uses 29 mA (2G) / 34 mA (3G) 😭 bump the interval to 40 seconds and it drops to 16 mA (2G) / 24 mA (3G) πŸ“‰ at 150 seconds it's 9.1 mA (2G) / 16 mA (3G) πŸŒ™ and at 180 seconds it's 7.3 mA (2G) / 14 mA (3G) ⭐ with no keep-alive at all, it's 5.2 mA (2G) / 6.1 mA (3G) 🫧 and if multiple apps are sending those messages (like SIP, IPsec, etc.), the impact gets even worse πŸ’€

PCP also lets cellular hosts manage protocols that carry IP addresses and/or port numbers (see Section 2.2 of [RFC6889]) without needing Application Level Gateways (ALGs) turned on at the network side, like on NAT64 πŸ§šβ€β™€οΈ skipping ALGs makes it way easier to build a service without being tied to the underlying transport network πŸ’…βœ¨

A_REC#3: DNS64 in the host for DNSSEC πŸ”

bestie, the cellular host SHOULD embed a DNS64 function ([RFC6147]) πŸ’œ this is needed so host-based validation of DNS Security Extensions (DNSSEC) keeps working in an IPv6-only connectivity with NAT64 deployment context 🫢

this is called "DNS64 in stub-resolver mode" in [RFC6147] πŸŽ€

as Section 5.5 of [RFC6147] discusses, a security-aware and validating host MUST perform the DNS64 function locally πŸ›‘οΈ the reason? synthetic AAAA records can't be successfully validated in a host πŸ™ˆ so learning the PREFIX64 used to build IPv4-converted IPv6 addresses lets you use DNSSEC [RFC4033] [RFC4034] [RFC4035] πŸ”₯ the means to configure or discover a PREFIX64 are REQUIRED on the cellular device, as discussed in C_REC#7 ✨

[RFC7051] explains why a security-aware and validating host has to do DNS64 locally and why it has to be able to learn the proper PREFIX64(s) 🌸

A_REC#4: Prefer native IPv6 🌈

bestie, when the cellular host is dual-stack connected (i.e., configured with an IPv4 address and IPv6 prefix), it SHOULD support means to prefer a native IPv6 connection over a connection established through translation devices (e.g., NAT44 and NAT64) πŸ‘‘

when both IPv4 and IPv6 DNS servers are configured, a dual-stack host MUST first contact its IPv6 DNS server πŸ’… this way it gets to offload the IPv4-only DNS servers 🫢

cellular hosts SHOULD follow the procedure in [RFC6724] for source address selection πŸ¦‹


5. Security Considerations πŸ”’

the security considerations in [RFC7066] and [RFC6459] have to be taken into account 🚨

for cellular CE routers, compliance with L_REC#3 means compliance with [RFC7084] πŸ’« which in turn recommends compliance with Recommended Simple Security Capabilities in Customer Premises Equipment (CPE) for Providing Residential IPv6 Internet Service [RFC6092] πŸŽ€ so the security considerations in Section 6 of [RFC6092] are relevant too πŸ‘€ and it bears repeating here that the true impact of stateful filtering may be a reduction in security 😬 the IETF also makes no statement, expressed or implied, about whether using the capabilities described in any of these documents actually improves security for any individual users or for the Internet community as a whole πŸ™ƒ

the cellular host MUST be able to generate IPv6 addresses that preserve privacy πŸ•΅οΈβ€β™€οΈπŸš« turning on the privacy extension (e.g., using [RFC7217]) makes it harder to track a host over time compared to using a permanent Interface Identifier πŸ¦‹ but tracking is still possible based on the first 64 bits of the IPv6 address 😭 means to prevent that kind of tracking may be enabled on the network side πŸ›‘οΈ and note: privacy extensions are REQUIRED by regulatory bodies in some countries 🌍

host-based validation of DNSSEC is discussed in A_REC#3 (see Section 4) πŸ”


6. References πŸ“š

6.1. Normative References

[IR92]     GSMA, "IMS Profile for Voice and SMS", Official Document
           IR.92 - IMS Profile for Voice and SMS, V7.0, March 2013,
           <http://www.gsma.com/newsroom/wp-content/uploads/2013/04/
           IR.92-v7.0.pdf>.

[RFC2460]  Deering, S. and R. Hinden, "Internet Protocol, Version 6
           (IPv6) Specification", RFC 2460, DOI 10.17487/RFC2460,
           December 1998, <http://www.rfc-editor.org/info/rfc2460>.

[RFC3596]  Thomson, S., Huitema, C., Ksinant, V., and M. Souissi,
           "DNS Extensions to Support IP Version 6", RFC 3596,
           DOI 10.17487/RFC3596, October 2003,
           <http://www.rfc-editor.org/info/rfc3596>.

[RFC3633]  Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic
           Host Configuration Protocol (DHCP) version 6", RFC 3633,
           DOI 10.17487/RFC3633, December 2003,
           <http://www.rfc-editor.org/info/rfc3633>.

[RFC3986]  Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
           Resource Identifier (URI): Generic Syntax", STD 66,
           RFC 3986, DOI 10.17487/RFC3986, January 2005,
           <http://www.rfc-editor.org/info/rfc3986>.

[RFC5795]  Sandlund, K., Pelletier, G., and L-E. Jonsson, "The RObust
           Header Compression (ROHC) Framework", RFC 5795,
           DOI 10.17487/RFC5795, March 2010,
           <http://www.rfc-editor.org/info/rfc5795>.

[RFC5954]  Gurbani, V., Ed., Carpenter, B., Ed., and B. Tate, Ed.,
           "Essential Correction for IPv6 ABNF and URI Comparison in
           RFC 3261", RFC 5954, DOI 10.17487/RFC5954, August 2010,
           <http://www.rfc-editor.org/info/rfc5954>.

[RFC6052]  Bao, C., Huitema, C., Bagnulo, M., Boucadair, M., and X.
           Li, "IPv6 Addressing of IPv4/IPv6 Translators", RFC 6052,
           DOI 10.17487/RFC6052, October 2010,
           <http://www.rfc-editor.org/info/rfc6052>.

[RFC6603]  Korhonen, J., Ed., Savolainen, T., Krishnan, S., and O.
           Troan, "Prefix Exclude Option for DHCPv6-based Prefix
           Delegation", RFC 6603, DOI 10.17487/RFC6603, May 2012,
           <http://www.rfc-editor.org/info/rfc6603>.

[RFC7066]  Korhonen, J., Ed., Arkko, J., Ed., Savolainen, T., and S.
           Krishnan, "IPv6 for Third Generation Partnership Project
           (3GPP) Cellular Hosts", RFC 7066, DOI 10.17487/RFC7066,
           November 2013, <http://www.rfc-editor.org/info/rfc7066>.

[TS.23060]
           3GPP, "General Packet Radio Service (GPRS); Service
           description; Stage 2", 3GPP TS 23.060 13.6.0, March 2016,
           <http://www.3gpp.org/DynaReport/23060.htm>.

[TS.23401]
           3GPP, "General Packet Radio Service (GPRS) enhancements
           for Evolved Universal Terrestrial Radio Access Network
           (E-UTRAN) access", 3GPP TS 23.401 13.6.1, March 2016,
           <http://www.3gpp.org/DynaReport/23401.htm>.

[TS.24008]
           3GPP, "Mobile radio interface Layer 3 specification; Core
           network protocols; Stage 3", 3GPP TS 24.008 13.5.0, March
           2016, <http://www.3gpp.org/DynaReport/24008.htm>.

6.2. Informative References πŸ“š

okay bestie, these are the extra reads πŸ€“ they're not strictly required to implement the thing, but they explain the why behind it. the whole gang is here: the OECD economics report, the 3GPP release notes, and a whole stack of RFCs on NAT64, DNS64, PCP, and 464XLAT πŸ¦‹


Acknowledgements 🫢

okay the thank-you list is SO long and I love it πŸ’• huge thanks to C. Byrne, H. Soliman, H. Singh, L. Colliti, T. Lemon, B. Sarikaya, M. Mawatari, M. Abrahamsson, P. Vickers, V. Kuarsingh, E. Kline, S. Josefsson, A. Baryun, J. Woodyatt, T. Kossut, B. Stark, and A. Petrescu for the chats on the v6ops mailing list and for all the comments 🌈

also thanks to A. Farrel, B. Haberman, and K. Moriarty for the comments during the IESG review πŸ‘‘

and special thanks to T. Savolainen, J. Korhonen, J. Jaeggli, F. Baker, L.M. Contreras Murillo, and M. Abrahamsson for their detailed reviews and comments πŸŽ€ these people really read every line, iconic behaviour ✨


Authors' Addresses πŸ¦‹

meet the authors, bestie πŸ’– here's where to find each of them:

David Binet 🌸

David Binet
Orange
Rennes
France

Email: david.binet@orange.com

Mohamed Boucadair 🧚

Mohamed Boucadair
Orange
Rennes  35000
France

Email: mohamed.boucadair@orange.com

Ales Vizdal πŸ“

Ales Vizdal
Deutsche Telekom AG
Tomickova 2144/1
Prague, 148 00
Czech Republic

Email: Ales.Vizdal@T-Mobile.cz

Gang Chen πŸ’œ

Gang Chen
China Mobile
29, Jinrong Avenue
Xicheng District, Beijing  100033
China

Email: phdgang@gmail.com, chengang@chinamobile.com

Nick Heatley ⭐

Nick Heatley
EE
The Point, 37 North Wharf Road,
London  W2 1AG
United Kingdom

Email: nick.heatley@ee.co.uk

Ross Chandler 🌈

Ross Chandler
eircom | meteor
1HSQ
St. John's Road
Dublin 8
Ireland

Email: ross@eircom.net

Dave Michaud πŸ’…

Dave Michaud
Rogers Communications
8200 Dixie Rd.
Brampton, ON L6T 0C1
Canada

Email: dave.michaud@rci.rogers.com

Diego R. Lopez πŸ”₯

Diego R. Lopez
Telefonica I+D
Don Ramon de la Cruz, 82
Madrid  28006
Spain

Phone: +34 913 129 041
Email: diego.r.lopez@telefonica.com

Walter Haeffner 🫢

Walter Haeffner
Vodafone D2 GmbH
Ferdinand-Braun-Platz 1
Duesseldorf  40549
Germany

Email: walter.haeffner@vodafone.com
πŸ“¦ where this page comes from