From 4bfd864f10b68b71482b35c818559068ef8d5797 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Wed, 27 Nov 2024 20:54:24 +0100 Subject: doc: Add RFC documents --- doc/rfc/rfc9313.txt | 1500 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1500 insertions(+) create mode 100644 doc/rfc/rfc9313.txt (limited to 'doc/rfc/rfc9313.txt') diff --git a/doc/rfc/rfc9313.txt b/doc/rfc/rfc9313.txt new file mode 100644 index 0000000..361be87 --- /dev/null +++ b/doc/rfc/rfc9313.txt @@ -0,0 +1,1500 @@ + + + + +Internet Engineering Task Force (IETF) G. Lencse +Request for Comments: 9313 BUTE +Category: Informational J. Palet Martinez +ISSN: 2070-1721 The IPv6 Company + L. Howard + Retevia + R. Patterson + Sky UK + I. Farrer + Deutsche Telekom AG + October 2022 + + + Pros and Cons of IPv6 Transition Technologies for IPv4-as-a-Service + (IPv4aaS) + +Abstract + + Several IPv6 transition technologies have been developed to provide + customers with IPv4-as-a-Service (IPv4aaS) for ISPs with an IPv6-only + access and/or core network. These technologies have their advantages + and disadvantages. Depending on existing topology, skills, strategy, + and other preferences, one of these technologies may be the most + appropriate solution for a network operator. + + This document examines the five most prominent IPv4aaS technologies + and considers a number of different aspects to provide network + operators with an easy-to-use reference to assist in selecting the + technology that best suits their needs. + +Status of This Memo + + This document is not an Internet Standards Track specification; it is + published for informational purposes. + + 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). Not all documents + approved by the IESG are candidates for any level of Internet + Standard; see 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/rfc9313. + +Copyright Notice + + Copyright (c) 2022 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 Revised BSD License text as described in Section 4.e of the + Trust Legal Provisions and are provided without warranty as described + in the Revised BSD License. + +Table of Contents + + 1. Introduction + 2. Overview of the Technologies + 2.1. 464XLAT + 2.2. Dual-Stack Lite + 2.3. Lightweight 4over6 + 2.4. MAP-E + 2.5. MAP-T + 3. High-Level Architectures and Their Consequences + 3.1. Service Provider Network Traversal + 3.2. Network Address Translation among the Different IPv4aaS + Technologies + 3.3. IPv4 Address Sharing + 3.4. IPv4 Pool Size Considerations + 3.5. CE Provisioning Considerations + 3.6. Support for Multicast + 4. Detailed Analysis + 4.1. Architectural Differences + 4.1.1. Basic Comparison + 4.2. Trade-Off between Port Number Efficiency and Stateless + Operation + 4.3. Support for Public Server Operation + 4.4. Support and Implementations + 4.4.1. Vendor Support + 4.4.2. Support in Cellular and Broadband Networks + 4.4.3. Implementation Code Sizes + 4.5. Typical Deployment and Traffic Volume Considerations + 4.5.1. Deployment Possibilities + 4.5.2. Cellular Networks with 464XLAT + 4.5.3. Wireline Networks with 464XLAT + 4.6. Load Sharing + 4.7. Logging + 4.8. Optimization for IPv4-Only Devices and Applications + 5. Performance Comparison + 6. IANA Considerations + 7. Security Considerations + 8. References + 8.1. Normative References + 8.2. Informative References + Acknowledgements + Authors' Addresses + +1. Introduction + + As the deployment of IPv6 continues to be prevalent, it becomes + clearer that network operators will move to building single-stack + IPv6 core and access networks to simplify network planning and + operations. However, providing customers with IPv4 services + continues to be a requirement for the foreseeable future. To meet + this need, the IETF has standardized a number of different IPv4aaS + technologies for this (see [LEN2019]) based on differing requirements + and deployment scenarios. + + The number of technologies that have been developed makes it time- + consuming for a network operator to identify the most appropriate + mechanism for their specific deployment. This document provides a + comparative analysis of the most commonly used mechanisms to assist + operators with this problem. + + Five different IPv4aaS solutions are considered: + + 1. 464XLAT [RFC6877] + + 2. Dual-Stack Lite [RFC6333] + + 3. Lightweight 4over6 (lw4o6) [RFC7596] + + 4. Mapping of Address and Port with Encapsulation (MAP-E) [RFC7597] + + 5. Mapping of Address and Port using Translation (MAP-T) [RFC7599] + + We note that [RFC6180] gives guidelines for using IPv6 transition + mechanisms during IPv6 deployment; that document addresses a much + broader topic, whereas this document focuses on a small part of it. + +2. Overview of the Technologies + + The following sections introduce the different technologies analyzed + in this document and describe some of their most important + characteristics. + +2.1. 464XLAT + + 464XLAT may use double translation (stateless NAT46 + stateful NAT64) + or single translation (stateful NAT64) depending on different + factors, such as the use of DNS by the applications and the + availability of a DNS64 function (in the host or service provider + network). + + The customer-side translator (CLAT) is located in the customer's + device, and it performs stateless NAT46 translation [RFC7915] (more + precisely, a stateless IP/ICMP translation from IPv4 to IPv6). + IPv4-embedded IPv6 addresses [RFC6052] are used for both source and + destination addresses. Commonly, a /96 prefix (either the + 64:ff9b::/96 Well-Known Prefix (WKP) or a Network-Specific Prefix) is + used as the IPv6 destination for the IPv4-embedded client traffic. + + In deployments where NAT64 load balancing (see Section 4.2 of + [RFC7269]) is enabled, multiple WKPs [RFC8215] may be used. + + In the operator's network, the provider-side translator (PLAT) + performs stateful NAT64 [RFC6146] to translate the traffic. The + destination IPv4 address is extracted from the IPv4-embedded IPv6 + packet destination address, and the source address is from a pool of + public IPv4 addresses. + + Alternatively, when a dedicated /64 is not available for translation, + the CLAT device uses a stateful NAT44 translation before the + stateless NAT46 translation. + + In general, keeping state in devices close to the end-user network + (i.e., at the CE (Customer Edge) router) is not perceived to be as + problematic as keeping state in the operator's network. + + In typical deployments, 464XLAT is used together with DNS64 + [RFC6147]; see Section 3.1.2 of [RFC8683]. When an IPv6-only client + or application communicates with an IPv4-only server, the DNS64 + server returns the IPv4-embedded IPv6 address of the IPv4-only + server. In this case, the IPv6-only client sends out IPv6 packets, + the CLAT functions as an IPv6 router, and the PLAT performs a + stateful NAT64 for these packets. There is a single translation. + + Similarly, when an IPv4-only client or application communicates with + an IPv4-only server, the CLAT will statelessly translate to IPv6 so + it can traverse the ISP network up to the PLAT (NAT64), which in turn + will translate to IPv4. + + Alternatively, one can say that DNS64 + stateful NAT64 is used to + carry the traffic of the IPv6-only client and the IPv4-only server, + and the CLAT is used only for the IPv4 traffic from applications or + devices that use literal IPv4 addresses or non-IPv6-compliant APIs. + + Private +----------+ Translated +----------+ _______ + +------+ IPv4 | CLAT | 4-6-4 | PLAT | ( IPv4 ) + | IPv4 |------->| Stateless|------------>| Stateful +--( Internet ) + |Device|<-------| NAT46 |<------------| NAT64 | (________) + +------+ +----------+ ^ +----------+ + | + Operator IPv6 + Network + + Figure 1: Overview of the 464XLAT Architecture + + Note: In mobile networks, the CLAT is commonly implemented in the + user equipment (UE) or smartphone; please refer to Figure 2 in + [RFC6877]. + + Some NAT64 vendors support direct communication (that is, without + translation) between two CLATs by means of hairpinning through the + NAT64. + +2.2. Dual-Stack Lite + + Dual-Stack Lite (DS-Lite) [RFC6333] was the first of the considered + transition mechanisms to be developed. DS-Lite uses a Basic Bridging + BroadBand (B4) function in the customer's CE router that encapsulates + IPv4 in IPv6 traffic and sends it over the IPv6 native service + provider network to an Address Family Transition Router (AFTR). The + AFTR performs encapsulation/decapsulation of the 4in6 [RFC2473] + traffic and translates the IPv4 source address in the inner IPv4 + packet to a public IPv4 source address using a stateful NAPT44 + [RFC2663] function. + + +-------------+ + Private +----------+ IPv4-in-IPv6|Stateful AFTR| + +------+ IPv4 | B4 | Tunnel |------+------+ _______ + | IPv4 |------->| Encap./ |------------>|Encap.| | ( IPv4 ) + |Device|<-------| Decap. |<------------| / | NAPT +--( Internet ) + +------+ +----------+ ^ |Decap.| 44 | (________) + | +------+------+ + Operator IPv6 + Network + + Figure 2: Overview of the DS-Lite Architecture + + Some AFTR vendors support direct communication between two B4s by + means of hairpinning through the AFTR. + +2.3. Lightweight 4over6 + + Lightweight 4over6 (lw4o6) is a variant of DS-Lite. The main + difference is that the stateful NAPT44 function is relocated from the + centralized AFTR to the customer's B4 element (called an "lwB4"). + The AFTR (called an "lwAFTR") function therefore only performs A+P + (Address plus Port) routing [RFC6346] and 4in6 encapsulation/ + decapsulation. + + Routing to the correct client and IPv4 address sharing are achieved + using the A+P model [RFC6346] of provisioning each lwB4 with a unique + tuple of IPv4 address and a unique range of transport-layer ports. + The client uses these for NAPT44. + + The lwAFTR implements a binding table, which has a per-client entry + linking the customer's source IPv4 address and an allocated range of + transport-layer ports to their IPv6 tunnel endpoint address. The + binding table allows egress traffic from customers to be validated + (to prevent spoofing) and ingress traffic to be correctly + encapsulated and forwarded. As there needs to be a per-client entry, + an lwAFTR implementation needs to be optimized for performing a per- + packet lookup on the binding table. + + Direct communication (that is, without translation) between two lwB4s + is performed by hairpinning traffic through the lwAFTR. + + +-------------+ +----------+ + Private | lwB4 | IPv4-in-IPv6| Stateless| + +------+ IPv4 |------+------| Tunnel | lwAFTR | _______ + | IPv4 |------->| |Encap.|------------>|(encap/A+P| ( IPv4 ) + |Device|<-------| NAPT | / |<------------|bind. tab +--( Internet ) + +------+ | 44 |Decap.| ^ | routing) | (________) + +------+------+ | +----------+ + Operator IPv6 + Network + + Figure 3: Overview of the lw4o6 Architecture + +2.4. MAP-E + + Like 464XLAT (Section 2.1), MAP-E and MAP-T use IPv4-embedded IPv6 + addresses [RFC6052] to represent IPv4 hosts outside the MAP domain. + + MAP-E and MAP-T use a stateless algorithm to embed portions of the + customer's allocated IPv4 address (or part of an address with A+P + routing) into the IPv6 prefix delegated to the client. This allows + for large numbers of clients to be provisioned using a single MAP + rule (called a "MAP domain"). The algorithm also allows direct IPv4 + peer-to-peer communication between hosts provisioned with common MAP + rules. + + The CE router typically performs stateful NAPT44 [RFC2663] to + translate the private IPv4 source addresses and source ports into an + address and port range defined by applying the MAP rule to the + delegated IPv6 prefix. The client address/port allocation size is a + configuration parameter. The CE router then encapsulates the IPv4 + packet in an IPv6 packet [RFC2473] and sends it directly to another + host in the MAP domain (for peer-to-peer) or to a Border Router (BR) + if the IPv4 destination is not covered in one of the CE's MAP rules. + + The MAP BR is provisioned with the set of MAP rules for the MAP + domains it serves. These rules determine how the MAP BR is to + decapsulate traffic that it receives from the client, validate the + source IPv4 address and transport-layer ports assigned, and calculate + the destination IPv6 address for ingress IPv4 traffic. + + +-------------+ +----------+ + Private | MAP CE | IPv4-in-IPv6| Stateless| + +------+ IPv4 |------+------| tunnel | MAP BR | _______ + | IPv4 |------->| |Encap.|------------>|(encap/A+P| ( IPv4 ) + |Device|<-------| NAPT | / |<------------|algorithm +--( Internet ) + +------+ | 44 |Decap.| ^ | routing) | (________) + +------+------+ | +----------+ + Operator IPv6 + Network + + Figure 4: Overview of the MAP-E Architecture + + Some BR vendors support direct communication between two MAP CEs by + means of hairpinning through the BR. + +2.5. MAP-T + + MAP-T uses the same mapping algorithm as MAP-E. The major difference + is that double stateless translation (NAT46 in the CE and NAT64 in + the BR) is used to traverse the ISP's IPv6 single-stack network. + MAP-T can also be compared to 464XLAT when there is a double + translation. + + A MAP CE router typically performs stateful NAPT44 to translate + traffic to a public IPv4 address and port range calculated by + applying the provisioned Basic MAP Rule (BMR), which is a set of + inputs to the algorithm, to the delegated IPv6 prefix. The CE then + performs stateless translation from IPv4 to IPv6 [RFC7915]. The MAP + BR is provisioned with the same BMR as the client, enabling the + received IPv6 traffic to be translated (using stateless NAT64) back + to the public IPv4 source address used by the client. + + Using translation instead of encapsulation also allows IPv4-only + nodes to correspond directly with IPv6 nodes in the MAP-T domain that + have IPv4-embedded IPv6 addresses. + + +-------------+ +----------+ + Private | MAP CE | Translated | Stateless| + +------+ IPv4 |------+------| 4-6-4 | MAP BR | _______ + | IPv4 |------->| |State-|------------>|(NAT64/A+P| ( IPv4 ) + |Device|<-------| NAPT | less |<------------|algorithm +--( Internet ) + +------+ | 44 |NAT46 | ^ | routing) | (________) + +------+------+ | +----------+ + Operator IPv6 + Network + + Figure 5: Overview of the MAP-T Architecture + + Some BR vendors support direct communication between two MAP CEs by + means of hairpinning through the BR. + +3. High-Level Architectures and Their Consequences + +3.1. Service Provider Network Traversal + + For the data plane, there are two approaches for traversing the IPv6 + provider network: + + * 4-6-4 translation + + * 4in6 encapsulation + + +====================+=========+=========+=======+=======+=======+ + | | 464XLAT | DS-Lite | lw4o6 | MAP-E | MAP-T | + +====================+=========+=========+=======+=======+=======+ + | 4-6-4 translation | X | | | | X | + +--------------------+---------+---------+-------+-------+-------+ + | 4in6 encapsulation | | X | X | X | | + +--------------------+---------+---------+-------+-------+-------+ + + Table 1: Available Traversal Mechanisms + + In the scope of this document, all of the encapsulation-based + mechanisms use IP-in-IP tunneling [RFC2473]. This is a stateless + tunneling mechanism that does not require any additional overhead. + + It should be noted that both of these approaches result in an + increase in the size of the packet that needs to be transported + across the operator's network when compared to native IPv4. 4-6-4 + translation adds a 20-byte overhead (the 20-byte IPv4 header is + replaced with a 40-byte IPv6 header). Encapsulation has a 40-byte + overhead (an IPv6 header is prepended to the IPv4 header). + + The increase in packet size can become a significant problem if there + is a link with a smaller MTU in the traffic path. This may result in + the need for traffic to be fragmented at the ingress point to the + IPv6 only domain (i.e., the NAT46 or 4in6 encapsulation endpoint). + It may also result in the need to implement buffering and fragment + reassembly in the PLAT/AFTR/lwAFTR/BR node. + + The advice given in Section 8.3.1 of [RFC7597] is applicable to all + of these mechanisms: It is strongly recommended that the MTU in the + IPv6-only domain be well managed (it should have sufficiently large + MTU to support tunneling and/or translation) and that the IPv6 MTU on + the CE WAN-side interface be set so that no fragmentation occurs + within the boundary of the IPv6-only domain. + +3.2. Network Address Translation among the Different IPv4aaS + Technologies + + For the high-level solution of IPv6 service provider network + traversal, MAP-T uses double stateless translation. The first + translation is from IPv4 to IPv6 (NAT46) at the CE, and the second + translation is from IPv6 to IPv4 (NAT64) at the service provider + network. + + 464XLAT may use double translation (stateless NAT46 + stateful NAT64) + or single translation (stateful NAT64) depending on different + factors, such as the use of DNS by the applications and the + availability of a DNS64 function (in the host or in the service + provider network). For deployment guidelines, please refer to + [RFC8683]. + + The first step for the double translation mechanisms is a stateless + NAT from IPv4 to IPv6 implemented as SIIT (Stateless IP/ICMP + Translation Algorithm) [RFC7915], which does not translate IPv4 + header options and/or multicast IP/ICMP packets. With encapsulation- + based technologies, the header is transported intact, and multicast + can also be carried. + + Single and double translation results in native IPv6 traffic with a + transport-layer next header. The fields in these headers can be used + for functions such as hashing across equal-cost multipaths or Access + Control List (ACL) filtering. Encapsulation technologies, in + contrast, may hinder hashing algorithms or other functions relying on + header inspection. + + Solutions using double translation can only carry port-aware IP + protocols (e.g., TCP and UDP) and ICMP when they are used with IPv4 + address sharing (please refer to Section 4.3 for more details). + Encapsulation-based solutions can also carry any other protocols over + IP. + + An in-depth analysis of stateful NAT64 can be found in [RFC6889]. + + As stateful NAT interferes with the port numbers, [NAT-SUPP] explains + how NATs can handle SCTP (Stream Control Transmission Protocol). + +3.3. IPv4 Address Sharing + + As public IPv4 address exhaustion is a common motivation for + deploying IPv6, transition technologies need to provide a solution + that allows public IPv4 address sharing. + + In order to fulfill this requirement, a stateful NAPT function is a + necessary function in all of the mechanisms. The major + differentiator is where in the architecture this function is located. + + The solutions compared by this document fall into two categories: + + * Approaches based on Carrier-Grade NAT (CGN) (DS-Lite, 464XLAT) + + * Approaches based on A+P (lw4o6, MAP-E, MAP-T) + + In the CGN-based model, a device such as a CGN/AFTR or NAT64 performs + the NAPT44 function and maintains per-session state for all of the + active client's traffic. The customer's device does not require per- + session state for NAPT. + + In the A+P-based model, a device (usually a CE) performs stateful + NAPT44 and maintains per-session state only for co-located devices, + e.g., in the customer's home network. Here, the centralized network + function (lwAFTR or BR) only needs to perform stateless + encapsulation/decapsulation or NAT64. + + Issues related to IPv4 address-sharing mechanisms are described in + [RFC6269] and should also be considered. + + The address-sharing efficiency of the five technologies is + significantly different and is discussed in Section 4.2. + + Lw4o6, MAP-E, and MAP-T can also be configured without IPv4 address + sharing; see the details in Section 4.3. However, in that case, + there is no advantage in terms of public IPv4 address saving. In the + case of 464XLAT, one-to-one mapping can also be achieved through EAMT + (Explicit Address Mapping Table) [RFC7757]. + + Conversely, both MAP-E and MAP-T may be configured to provide more + than one public IPv4 address (i.e., an address with an IPv4 prefix + shorter than a /32) to customers. + + Dynamic DNS issues in address-sharing contexts and their possible + solutions using PCP (Port Control Protocol) are discussed in detail + in [RFC7393]. + +3.4. IPv4 Pool Size Considerations + + In this section, we do some simple calculations regarding port + numbers. However, technical limitations are not the only point to + consider for port sharing; there are also local regulations and best + current practices. + + Note: By "port numbers", we mean TCP/UDP port numbers or ICMP + identifiers. + + In most networks, it is possible to use existing data about flows to + Content Delivery Networks (CDNs), caches, or other well-known + IPv6-enabled destinations to calculate the percentage of traffic that + would turn into IPv6 if IPv6 is enabled on that network or on part of + it. + + Knowing that, it is possible to calculate the IPv4 pool size required + for a given number of subscribers, depending on the IPv4aaS + technology being used. + + According to [MIY2010], each user device (computer, tablet, + smartphone) behind a NAT could simultaneously use up to 300 ports. + (Table 1 of [MIY2010] lists the port number usage of various + applications. According to [REP2014], the downloading of some web + pages may consume up to 200 port numbers.) If the extended NAPT + algorithm is used, which includes the full 5-tuple into the + connection tracking table, then the port numbers are reused when the + destinations are different. Therefore, we need to consider the + number of "port-hungry" applications that are accessing the same + destination simultaneously. We estimate that in the case of a + residential subscriber, there will be typically no more than four + port-hungry applications communicating with the same destination + simultaneously, which is a total of 1,200 ports. + + For example, if 80% of the traffic is expected towards IPv6 + destinations, only 20% will actually be using IPv4 ports. Thus, in + our example, 240 ports are required for each subscriber. + + From the 65,535 ports available per IPv4 address, we could even + consider reserving 1,024 ports for customers that need EAMT entries + for incoming connections to System ports (0-1023, also called "well- + known ports") [RFC7605]. This means that 64,511 ports are actually + available for each IPv4 address. + + According to this, a /22 (1.024 public IPv4 addresses) will be + sufficient for over 275,000 subscribers + (1,024x64,511/240=275,246.93). + + Similarly, a /18 (16,384 public IPv4 addresses) will be sufficient + for over 4,403,940 subscribers, and so on. + + This is a conservative approach, which is valid in the case of + 464XLAT because ports are assigned dynamically by the NAT64. + Therefore, it is not necessary to consider if one user is actually + using more or fewer ports; average values work well. + + As the deployment of IPv6 progresses, the use of NAT64, and therefore + of public IPv4 addresses, decreases (more IPv6 ports, fewer IPv4 + ports). Thus, either more subscribers can be accommodated with the + same number of IPv4 addresses or some of those addressed can be + retired from the NAT64. + + For comparison, if dual-stack is being used, any given number of + users will require the same number of public IPv4 addresses. For + instance, a /14 will provide 262,144 IPv4 public addresses for + 262,144 subscribers, versus 275,000 subscribers being served with + only a /22. + + In the other IPv4aaS technologies, this calculation will only match + if the assignment of ports per subscriber can be done dynamically, + which is not always the case (depending on the vendor + implementation). + + When dynamic assignment of addresses is not possible, an alternative + approximation for the other IPv4aaS technologies must ensure a + sufficient number of ports per subscriber. That means 1,200 ports, + and typically, it comes to 2,000 ports in many deployments. In that + case, assuming 80% is IPv6 traffic (as above), only 30 subscribers + will be allowed per each IPv4 address; thus, the closer approximation + to 275,000 subscribers per our example with 464XLAT (with a /22) will + be using a /19, which serves 245,760 subscribers (a /19 has 8,192 + addresses and 30 subscribers with 2,000 ports each per address). + + If the CGN (in case of DS-Lite) or the CE (in case of lw4o6, MAP-E, + and MAP-T) make use of a 5-tuple for tracking the NAT connections, + the number of ports required per subscriber can be limited as low as + four ports per subscriber. However, the practical limit depends on + the desired limit for parallel connections that any single host + behind the NAT can have to the same address and port in Internet. + Note that it is becoming more common that applications use AJAX + (Asynchronous JavaScript and XML) and similar mechanisms, so taking + that extreme limit is probably not a safe choice. + + This feature of extremely reduced number of ports could also be used + in case the CLAT-enabled CE with 464XLAT makes use of tracking the + 5-tuple NAT connections and could also be further extended if the + NAT64 also uses the 5-tuple. + + Please also refer to [RFC6888] for in-depth information about the + requirements for sizing CGN gateways. + +3.5. CE Provisioning Considerations + + All of the technologies require some provisioning of customer + devices. The table below shows which methods currently have + extensions for provisioning the different mechanisms. + + +==============+=========+=========+=========+==========+===========+ + |Provisioning | 464XLAT | DS-Lite | lw4o6 | MAP-E | MAP-T | + |Method | | | | | | + +==============+=========+=========+=========+==========+===========+ + |DHCPv6 | | X | X | X | X | + |[RFC8415] | | | | | | + +--------------+---------+---------+---------+----------+-----------+ + |RADIUS | |[RFC6519]| X | X | X | + |[RFC8658] | | | | | | + +--------------+---------+---------+---------+----------+-----------+ + |TR-069 | * | X | * | X | X | + |[TR-069] | | | | | | + +--------------+---------+---------+---------+----------+-----------+ + |DNS64 | X | | | | | + |[RFC7050] | | | | | | + +--------------+---------+---------+---------+----------+-----------+ + |YANG [RFC7950]|[RFC8512]|[RFC8513]|[RFC8676]|[RFC8676] | [RFC8676] | + +--------------+---------+---------+---------+----------+-----------+ + |DHCP 4o6 | | | X | X | | + |[RFC7341] | | | | | | + +--------------+---------+---------+---------+----------+-----------+ + + Table 2: Available Provisioning Mechanisms + + *: Work started at Broadband Forum (2021) + + X: Supported by the provisioning method + +3.6. Support for Multicast + + The solutions covered in this document are all intended for unicast + traffic. [RFC8114] describes a method for carrying encapsulated IPv4 + multicast traffic over an IPv6 multicast network. This could be + deployed in parallel to any of the operator's chosen IPv4aaS + mechanism. + +4. Detailed Analysis + +4.1. Architectural Differences + +4.1.1. Basic Comparison + + The five IPv4aaS technologies can be classified based on two aspects: + + * Technology used for service provider network traversal. It can be + single/double translation or encapsulation. + + * Presence or absence of per-flow state in the operator network. + + +====================+=========+=========+=======+=======+=======+ + | | 464XLAT | DS-Lite | lw4o6 | MAP-E | MAP-T | + +====================+=========+=========+=======+=======+=======+ + | Translation (T) or | T | E | E | E | T | + | Encapsulation (E) | | | | | | + +--------------------+---------+---------+-------+-------+-------+ + | Presence (+) of | + | + | | | | + | Per-Flow State in | | | | | | + | Operator Network | | | | | | + +--------------------+---------+---------+-------+-------+-------+ + + Table 3: Basic Comparison among the Analyzed Technologies + +4.2. Trade-Off between Port Number Efficiency and Stateless Operation + + 464XLAT and DS-Lite use stateful NAPT at the PLAT and AFTR devices, + respectively. This may cause scalability issues for the number of + clients or volume of traffic, but it does not impose a limitation on + the number of ports per user, as they can be allocated dynamically + on-demand and the allocation policy can be centrally managed and + adjusted. + + A+P-based mechanisms (lw4o6, MAP-E, and MAP-T) avoid using NAPT in + the service provider network. However, this means that the number of + ports provided to each user (and hence the effective IPv4 address- + sharing ratio) must be pre-provisioned to the client. + + Changing the allocated port ranges with A+P-based technologies + requires more planning and is likely to involve reprovisioning both + hosts and operator-side equipment. It should be noted that due to + the per-customer binding table entry used by lw4o6, a single customer + can be reprovisioned (e.g., if they request a full IPv4 address) + without needing to change parameters for a number of customers as in + a MAP domain. + + It is also worth noting that there is a direct relationship between + the efficiency of public port allocations for customers and the + corresponding logging overhead that may be necessary to meet data- + retention requirements. This is considered in Section 4.7. + + Determining the optimal number of ports for a fixed port set is not + an easy task and may also be impacted by local regulatory law (and in + the Belgian case, it is not a law but more a memorandum of + understanding or best current practice), which may define a maximum + number of users per IP address and consequently a minimum number of + ports per user. + + On the one hand, the "lack of ports" situation may cause serious + problems in the operation of certain applications. For example, + Miyakawa has demonstrated the consequences of the session number + limitation due to port number shortage in the example of Google Maps + [MIY2010]. When the limit was 15, several blocks of the map were + missing, and the map was unusable. This study also provided several + examples for the session numbers of different applications (the + highest one was Apple's iTunes at 230-270 ports). + + The port number consumption of different applications is highly + varying. In the case of web browsing, it depends on several factors, + including the choice of the web page, the web browser, and sometimes + the operating system [REP2014]. For example, under certain + conditions, 120-160 ports were used (URL: sohu.com, browser: Firefox + under Ubuntu Linux), and in some other cases, only 3-12 ports were + used (URL: twitter.com, browser: Iceweasel under Debian Linux). + + There may be several users behind a CE router, especially in the + broadband case (e.g., Internet is used by different members of a + family simultaneously), so sufficient ports must be allocated to + avoid impacting user experience. + + In general, assigning too few source port numbers to an end user may + result in unexpected and hard-to-debug consequences; therefore, if + the number of ports per end user is fixed, then we recommend + assigning a conservatively large number of ports. For example, the + developers of Jool used 2048 ports per user in their example for + MAP-T [JOOL-MAPT]. + + However, assigning too many ports per CE router will result in waste + of public IPv4 addresses, which are scarce and expensive resources. + Clearly, this is a big advantage in the case of 464XLAT where they + are dynamically managed so that the number of IPv4 addresses for the + sharing pool is smaller while the availability of ports per user + doesn't need to be pre-defined and is not a limitation. + + There is a direct trade-off between the optimization of client port + allocations and the associated logging overhead. Section 4.7 + discusses this in more depth. + + We note that common NAT44 implementations utilizing Netfilter at the + CE router multiplex active sessions using a 3-tuple (source address, + destination address, and destination port). This means that external + source ports can be reused for unique internal source and destination + addresses and port sessions. It is also noted that Netfilter cannot + currently make use of multiple source port ranges (i.e., several + blocks of ports distributed across the total port space as is common + in MAP deployments). This may influence the design when using + stateless technologies. + + Stateful technologies, 464XLAT, DS-Lite, and NAT444 can therefore be + much more efficient in terms of port allocation and thus public IP + address saving. The price is the stateful operation in the service + provider network, which allegedly does not scale up well. It should + be noted that, in many cases, all those factors may depend on how it + is actually implemented. + + Measurements have been started to examine the scalability of a few + stateful solutions in two areas: + + * How their performance scales up with the number of CPU cores + + * To what extent their performance degrades with the number of + concurrent connections + + The details of the measurements and their results are available from + [IPv4aaS-SCALE-TECH]. + + We note that some CGN-type solutions can allocate ports dynamically + "on the fly". Depending on configuration, this can result in the + same customer being allocated ports from different source addresses. + This can cause operational issues for protocols and applications that + expect multiple flows to be sourced from the same address (e.g., ECMP + hashing, STUN, gaming, and content delivery networks). However, it + should be noted that this is the same problem when a network has a + NAT44 with multiple public IPv4 addresses, or even when applications + in a dual-stack case, behave wrongly if Happy Eyeballs is flapping + the flow address between IPv4 and IPv6. + + The consequences of IPv4 address sharing [RFC6269] may impact all + five technologies. However, when ports are allocated statically, + more customers may get ports from the same public IPv4 address, which + may result in negative consequences with higher probability. For + example, many applications and service providers (Sony PlayStation + Network, OpenDNS, etc.) can permanently block IPv4 ranges if they + detect that they are used for address sharing. + + Both cases are, again, implementation-dependent. + + We note that although it is not of typical use, one can do + deterministic, stateful NAT and reserve a fixed set of ports for each + customer as well. + +4.3. Support for Public Server Operation + + Mechanisms that rely on operator-side per-flow state do not, by + themselves, offer a way for customers to present services on publicly + accessible transport-layer ports. + + The Port Control Protocol (PCP) [RFC6887] provides a mechanism for a + client to request an external public port from a CGN device. For + server operation, it is required with 464XLAT/NAT64, and it is + supported in some DS-Lite AFTR implementations. + + A+P-based mechanisms distribute a public IPv4 address and restricted + range of transport-layer ports to the client. In this case, it is + possible for the user to configure their device to offer a publicly + accessible server on one of their allocated ports. It should be + noted that operators commonly do not assign the well-known ports to + users (unless they are allocating a full IPv4 address), so the user + will need to run the service on an allocated port or configure port + translation. + + Lw4o6, MAP-E, and MAP-T may be configured to allocated clients with a + full IPv4 address, allowing exclusive use of all ports and non-port- + based transport-layer protocols. Thus, they may also be used to + support server/services operation on their default ports. However, + when public IPv4 addresses are assigned to the CE router without + address sharing, there is obviously no advantage in terms of IPv4 + public addresses saving. + + It is also possible to configure specific ports mapping in 464XLAT/ + NAT64 using EAMT [RFC7757], which means that only those ports are + "lost" from the pool of addresses, so there is a higher maximization + of the total usage of IPv4 port resources. + +4.4. Support and Implementations + +4.4.1. Vendor Support + + In general, router vendors support AFTR, MAP-E BR, MAP-T BR, and + NAT64. Vendors of load balancers and firewalls usually support NAT64 + as well while not all of them have support for the other protocols. + + A 464XLAT client (CLAT) is implemented in Windows 10, Linux + (including Android), Windows Mobile, Chrome OS, and iOS, but it is + not available in macOS 12.3.1. + + The remaining four solutions are commonly deployed as functions in + the CE device only; however, the vendors' support is poor in general + (except for DS-Lite). + + OpenWRT is a Linux-based open-source OS designed for CE devices. It + offers a number of different 'opkg' packages as part of the + distribution: + + * '464xlat' enables support for 464XLAT CLAT functionality. + + * 'ds-lite' enables support for DSLite B4 functionality. + + * 'map' enables support for MAP-E and lw4o6 CE functionality. + + * 'map-t' enables support for MAP-T CE functionality. + + At the time of publication, some free open-source implementations + exist for the operator-side functionality: + + * Jool [JOOL] (CLAT, NAT64, EAMT, MAP-T CE, MAP-T BR) + + * VPP/fd.io [VPP] (MAP-BR, lwAFTR, CGN, CLAT, NAT64) + + * Snabb [SNABB] (lwAFTR) + + * AFTR [AFTR] (DSLite AFTR) + +4.4.2. Support in Cellular and Broadband Networks + + Several cellular networks use 464XLAT, whereas there are no + deployments of the four other technologies in cellular networks, as + they are neither standardized nor implemented in UE devices. + + In broadband networks, there are some deployments of 464XLAT, MAP-E, + and MAP-T. Lw4o6 and DS-Lite have more deployments, with DS-Lite + being the most common, but deployments of lw4o6 have been rapidly + increasing in the last few years. + + Please refer to Tables 2 and 3 of [LEN2019] for a limited set of + deployment information. + +4.4.3. Implementation Code Sizes + + As a hint to the relative complexity of the mechanisms, the code + sizes reported from the OpenWRT implementations of each technology + are 17 kB, 35 kB, 15 kB, 35 kB, and 48 kB for 464XLAT, lw4o6, DS- + Lite, MAP-E, and MAP-T, respectively (see + ). + + We note that the support for all five technologies requires a much + smaller code size than the total sum of the above quantities, because + they contain a lot of common functions (e.g., data plane is shared + among several of them). + +4.5. Typical Deployment and Traffic Volume Considerations + +4.5.1. Deployment Possibilities + + Theoretically, all five IPv4aaS technologies could be used together + with DNS64 + stateful NAT64, as is done in 464XLAT. In this case, + the CE router would treat the traffic between an IPv6-only client and + IPv4-only server as normal IPv6 traffic, and the stateful NAT64 + gateway would do a single translation, thus offloading this kind of + traffic from the IPv4aaS technology. The cost of this solution would + be the need to also deploy DNS64 + stateful NAT64. + + However, this has not been implemented in clients or actual + deployments, so only 464XLAT always uses this optimization, and the + other four solutions do not use it at all. + +4.5.2. Cellular Networks with 464XLAT + + Figures from existing deployments (through the end of 2018) show the + typical traffic volumes in an IPv6-only cellular network when 464XLAT + technology is used together with DNS64: + + * 75% of traffic is IPv6 end-to-end (no translation). + + * 24% of traffic uses DNS64 + NAT64 (one translation). + + * Less than 1% of traffic uses the CLAT in addition to NAT64 (two + translations), due to an IPv4 socket and/or IPv4 literal. + + Without using DNS64, 25% of the traffic would undergo double + translation. + +4.5.3. Wireline Networks with 464XLAT + + Figures from several existing deployments (through the end of 2020), + mainly with residential customers, show the ranges of typical traffic + volumes in an IPv6-only network, when 464XLAT is used with DNS64: + + * 65%-85% of traffic is IPv6 end-to-end (no translation). + + * 14%-34% of traffic uses DNS64 + NAT64 (one translation). + + * Less than 1-2% of traffic uses the CLAT in addition to NAT64 (two + translations), due to an IPv4 socket and/or IPv4 literal. + + Without using DNS64, 16%-35% of the traffic would undergo double + translation. + + This data is consistent with non-public information of actual + deployments, which can be easily explained. When a wireline ISP has + mainly residential customers, content providers and CDNs that are + already IPv6 enabled (Google/YouTube, Netflix, Facebook, Akamai, + etc.) typically account for 65-85% of the traffic in the network. + Thus, when the subscribers are IPv6 enabled, about the same + percentage of traffic will become IPv6. + +4.6. Load Sharing + + If multiple network-side devices are needed as PLAT/AFTR/BR for + capacity, then there is a need for a load-sharing mechanism. ECMP + (Equal-Cost Multipath) load sharing can be used for all technologies; + however, stateful technologies will be impacted by changes in network + topology or device failure. + + Technologies utilizing DNS64 can also distribute load across PLAT/ + AFTR devices, evenly or unevenly, by using different prefixes. + Different network-specific prefixes can be distributed for + subscribers in appropriately sized segments (like split-horizon DNS, + also called "DNS views"). + + Stateless technologies, due to the lack of per-flow state, can make + use of anycast routing for load sharing and resiliency across network + devices, both ingress and egress; flows can take asymmetric paths + through the network, i.e., in through one lwAFTR/BR and out via + another. + + Mechanisms with centralized NAPT44 state have a number of challenges + specifically related to scaling and resilience. As the total amount + of client traffic exceeds the capacity of a single CGN instance, + additional nodes are required to handle the load. Each CGN maintains + a stateful table of active client sessions, and this table may need + to be synchronized between CGN instances. This is necessary for two + reasons: + + * To prevent all active customer sessions from being dropped in the + event of a CGN node failure. + + * To ensure a matching state table entry for an active session in + the event of asymmetric routing through different egress and + ingress CGN nodes. + +4.7. Logging + + In the case of 464XLAT and DS-Lite, the user of any given public IPv4 + address and port combination will vary over time; therefore, logging + is necessary to meet data-retention laws. Each entry in the PLAT/ + AFTR generates a logging entry. As discussed in Section 4.2, a + client may open hundreds of sessions during common tasks such as web + browsing, each of which needs to be logged so the overall logging + burden on the network operator is significant. In some countries, + this level of logging is required to comply with data-retention + legislation. + + One common optimization available to reduce the logging overhead is + the allocation of a block of ports to a client for the duration of + their session. This means that a logging entry only needs to be made + when the client's port block is released, which dramatically reduces + the logging overhead. This comes as the cost of less efficient + public address sharing as clients need to be allocated a port block + of a fixed size regardless of the actual number of ports that they + are using. + + Stateless technologies that pre-allocate the IPv4 addresses and ports + only require that copies of the active MAP rules (for MAP-E and MAP- + T) or binding table (for lw4o6) are retained along with timestamp + information of when they have been active. Support tools (e.g., + those used to serve data-retention requests) may need to be updated + to be aware of the mechanism in use (e.g., implementing the MAP + algorithm so that IPv4 information can be linked to the IPv6 prefix + delegated to a client). Stateless technologies do not have a + centralized stateful element that customer traffic needs to pass + through, so if data-retention laws mandate per-session logging, there + is no simple way of meeting this requirement with a stateless + technology alone. Thus, a centralized NAPT44 model may be the only + way to meet this requirement. + + Deterministic CGN [RFC7422] was proposed as a solution to reduce the + resource consumption of logging. + + Please also refer to Section 4 of [RFC6888] for more information + about requirements for logging CGN gateways. + +4.8. Optimization for IPv4-Only Devices and Applications + + When IPv4-only devices or applications are behind a CE connected with + IPv6-only and IPv4aaS, the IPv4-only traffic flows will necessarily + be encapsulated/decapsulated (in the case of DS-Lite, lw4o6, and MAP- + E) and will reach the IPv4 address of the destination, even if that + service supports dual-stack. This means that the traffic flow will + cross through the AFTR, lwAFTR, or BR, depending on the specific + transition mechanism being used. + + Even if those services are directly connected to the operator network + (e.g., CDNs and caches) or located internally (such as VoIP, etc.), + it is not possible to avoid that overhead. + + However, in the case of those mechanisms that use a NAT46 function, + in the CE (464XLAT and MAP-T), it is possible to take advantage of + optimization functionalities, such as the ones described in + [OP-464XLAT/MAP-T]. + + Because the NAT46 has already translated the IPv4-only flow to IPv6 + and the services are dual-stack, using these optimizations allows the + services to be reached without the need to translate the flow back to + IPv4. + +5. Performance Comparison + + We plan to compare the performances of the most prominent free + software implementations of the five IPv6 transition technologies + using the methodology described in "Benchmarking Methodology for IPv6 + Transition Technologies" [RFC8219]. + + The dual Device Under Test (DUT) setup of [RFC8219] makes it possible + to use the existing measurement devices compliant with "Benchmarking + Methodology for Network Interconnect Devices" [RFC2544]; however, + this solution has two kinds of limitations: + + * Dual DUT setup has the drawback that the performances of the CE + and the ISP-side device (e.g., the CLAT and PLAT of 464XLAT) are + measured together. In order to measure the performance of only + one of them, we need to ensure that the desired one is the + bottleneck. + + * Measurement procedures for Packet Delay Variation (PDV) and Inter- + Packet Delay Variation (IPDV) measurements are missing from the + legacy devices, and the old measurement procedure for latency has + been redefined in [RFC8219]. + + The single DUT setup of [RFC8219] makes it possible to benchmark the + selected device separately, but either special Tester is required or + some trick is needed if we want to use legacy Testers. An example + for the latter is our stateless NAT64 measurements testing Throughput + and Frame Loss Rate using a legacy commercial Tester [LEN2020a] that + is compliant with [RFC5180]. + + Siitperf, a DPDK-based software Tester that is compliant with + [RFC8219] and used for benchmarking stateless NAT64 gateways, has + been developed recently. Siitperf is available from GitHub + [SIITPERF] as free software and is documented in [LEN2021]. + Originally, it literally followed the test frame format of [RFC2544], + including "hard-wired" source and destination port numbers, and then + it was complemented with the pseudorandom port feature required by + [RFC4814]. The new version is documented in [LEN2020b]. + + Further DPDK-based software Testers that are compliant with [RFC8219] + are being developed at the Budapest University of Technology and + Economics as student projects. They are planned to be released as + free software, too. + + Information about the benchmarking tools, measurements, and results + will be made available in [IPv4aaS-BENCHMARK-TECH]. + +6. IANA Considerations + + This document has no IANA actions. + +7. Security Considerations + + As discussed in Section 4.7, the different technologies have varying + logging capabilities and limitations. Care should be taken when + storing, transmitting, and providing access to log entries that may + be considered personally identifiable information. However, it + should be noted that those issues are not specific to the IPv4aaS + IPv6 transition technologies but apply to logging functionalities in + general. + + For all five technologies, the CE device typically contains a DNS + proxy. However, the user may change DNS settings. If this happens + and lw4o6, MAP-E, and MAP-T are used with a significantly restricted + port set (which is required for efficient public IPv4 address + sharing), the entropy of the source ports is significantly lowered + (e.g., from 16 bits to 10 bits when 1024 port numbers are assigned to + each subscriber), and these technologies are thus theoretically less + resilient against cache poisoning (see [RFC5452]). However, an + efficient cache poisoning attack requires that the subscriber + operates its own caching DNS server and the attack is performed in + the service provider network. Thus, we consider the chance of the + successful exploitation of this vulnerability to be low. + + IPv4aaS technologies based on encapsulation have no DNSSEC + implications. However, those based on translation may have + implications as discussed in Section 4.1 of [RFC8683]. + + An in-depth security analysis of all five IPv6 transition + technologies and their most prominent free software implementations + according to the methodology defined in [LEN2018] is planned. + + As the first step, an initial security analysis of 464XLAT was done + in [AZZ2021]. + + The implementers of any of the five IPv4aaS solutions should consult + the Security Considerations of the respective RFCs documenting them. + +8. References + +8.1. Normative References + + [RFC2473] Conta, A. and S. Deering, "Generic Packet Tunneling in + IPv6 Specification", RFC 2473, DOI 10.17487/RFC2473, + December 1998, . + + [RFC2544] Bradner, S. and J. McQuaid, "Benchmarking Methodology for + Network Interconnect Devices", RFC 2544, + DOI 10.17487/RFC2544, March 1999, + . + + [RFC2663] Srisuresh, P. and M. Holdrege, "IP Network Address + Translator (NAT) Terminology and Considerations", + RFC 2663, DOI 10.17487/RFC2663, August 1999, + . + + [RFC4814] Newman, D. and T. Player, "Hash and Stuffing: Overlooked + Factors in Network Device Benchmarking", RFC 4814, + DOI 10.17487/RFC4814, March 2007, + . + + [RFC5180] Popoviciu, C., Hamza, A., Van de Velde, G., and D. + Dugatkin, "IPv6 Benchmarking Methodology for Network + Interconnect Devices", RFC 5180, DOI 10.17487/RFC5180, May + 2008, . + + [RFC5452] Hubert, A. and R. van Mook, "Measures for Making DNS More + Resilient against Forged Answers", RFC 5452, + DOI 10.17487/RFC5452, January 2009, + . + + [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, + . + + [RFC6146] Bagnulo, M., Matthews, P., and I. van Beijnum, "Stateful + NAT64: Network Address and Protocol Translation from IPv6 + Clients to IPv4 Servers", RFC 6146, DOI 10.17487/RFC6146, + April 2011, . + + [RFC6147] Bagnulo, M., Sullivan, A., Matthews, P., and I. van + Beijnum, "DNS64: DNS Extensions for Network Address + Translation from IPv6 Clients to IPv4 Servers", RFC 6147, + DOI 10.17487/RFC6147, April 2011, + . + + [RFC6180] Arkko, J. and F. Baker, "Guidelines for Using IPv6 + Transition Mechanisms during IPv6 Deployment", RFC 6180, + DOI 10.17487/RFC6180, May 2011, + . + + [RFC6269] Ford, M., Ed., Boucadair, M., Durand, A., Levis, P., and + P. Roberts, "Issues with IP Address Sharing", RFC 6269, + DOI 10.17487/RFC6269, June 2011, + . + + [RFC6333] Durand, A., Droms, R., Woodyatt, J., and Y. Lee, "Dual- + Stack Lite Broadband Deployments Following IPv4 + Exhaustion", RFC 6333, DOI 10.17487/RFC6333, August 2011, + . + + [RFC6346] Bush, R., Ed., "The Address plus Port (A+P) Approach to + the IPv4 Address Shortage", RFC 6346, + DOI 10.17487/RFC6346, August 2011, + . + + [RFC6519] Maglione, R. and A. Durand, "RADIUS Extensions for Dual- + Stack Lite", RFC 6519, DOI 10.17487/RFC6519, February + 2012, . + + [RFC6877] Mawatari, M., Kawashima, M., and C. Byrne, "464XLAT: + Combination of Stateful and Stateless Translation", + RFC 6877, DOI 10.17487/RFC6877, April 2013, + . + + [RFC6887] Wing, D., Ed., Cheshire, S., Boucadair, M., Penno, R., and + P. Selkirk, "Port Control Protocol (PCP)", RFC 6887, + DOI 10.17487/RFC6887, April 2013, + . + + [RFC6888] Perreault, S., Ed., Yamagata, I., Miyakawa, S., Nakagawa, + A., and H. Ashida, "Common Requirements for Carrier-Grade + NATs (CGNs)", BCP 127, RFC 6888, DOI 10.17487/RFC6888, + April 2013, . + + [RFC6889] Penno, R., Saxena, T., Boucadair, M., and S. Sivakumar, + "Analysis of Stateful 64 Translation", RFC 6889, + DOI 10.17487/RFC6889, April 2013, + . + + [RFC7050] Savolainen, T., Korhonen, J., and D. Wing, "Discovery of + the IPv6 Prefix Used for IPv6 Address Synthesis", + RFC 7050, DOI 10.17487/RFC7050, November 2013, + . + + [RFC7269] Chen, G., Cao, Z., Xie, C., and D. Binet, "NAT64 + Deployment Options and Experience", RFC 7269, + DOI 10.17487/RFC7269, June 2014, + . + + [RFC7341] Sun, Q., Cui, Y., Siodelski, M., Krishnan, S., and I. + Farrer, "DHCPv4-over-DHCPv6 (DHCP 4o6) Transport", + RFC 7341, DOI 10.17487/RFC7341, August 2014, + . + + [RFC7393] Deng, X., Boucadair, M., Zhao, Q., Huang, J., and C. Zhou, + "Using the Port Control Protocol (PCP) to Update Dynamic + DNS", RFC 7393, DOI 10.17487/RFC7393, November 2014, + . + + [RFC7422] Donley, C., Grundemann, C., Sarawat, V., Sundaresan, K., + and O. Vautrin, "Deterministic Address Mapping to Reduce + Logging in Carrier-Grade NAT Deployments", RFC 7422, + DOI 10.17487/RFC7422, December 2014, + . + + [RFC7596] Cui, Y., Sun, Q., Boucadair, M., Tsou, T., Lee, Y., and I. + Farrer, "Lightweight 4over6: An Extension to the Dual- + Stack Lite Architecture", RFC 7596, DOI 10.17487/RFC7596, + July 2015, . + + [RFC7597] Troan, O., Ed., Dec, W., Li, X., Bao, C., Matsushima, S., + Murakami, T., and T. Taylor, Ed., "Mapping of Address and + Port with Encapsulation (MAP-E)", RFC 7597, + DOI 10.17487/RFC7597, July 2015, + . + + [RFC7599] Li, X., Bao, C., Dec, W., Ed., Troan, O., Matsushima, S., + and T. Murakami, "Mapping of Address and Port using + Translation (MAP-T)", RFC 7599, DOI 10.17487/RFC7599, July + 2015, . + + [RFC7605] Touch, J., "Recommendations on Using Assigned Transport + Port Numbers", BCP 165, RFC 7605, DOI 10.17487/RFC7605, + August 2015, . + + [RFC7757] Anderson, T. and A. Leiva Popper, "Explicit Address + Mappings for Stateless IP/ICMP Translation", RFC 7757, + DOI 10.17487/RFC7757, February 2016, + . + + [RFC7915] Bao, C., Li, X., Baker, F., Anderson, T., and F. Gont, + "IP/ICMP Translation Algorithm", RFC 7915, + DOI 10.17487/RFC7915, June 2016, + . + + [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", + RFC 7950, DOI 10.17487/RFC7950, August 2016, + . + + [RFC8114] Boucadair, M., Qin, C., Jacquenet, C., Lee, Y., and Q. + Wang, "Delivery of IPv4 Multicast Services to IPv4 Clients + over an IPv6 Multicast Network", RFC 8114, + DOI 10.17487/RFC8114, March 2017, + . + + [RFC8215] Anderson, T., "Local-Use IPv4/IPv6 Translation Prefix", + RFC 8215, DOI 10.17487/RFC8215, August 2017, + . + + [RFC8219] Georgescu, M., Pislaru, L., and G. Lencse, "Benchmarking + Methodology for IPv6 Transition Technologies", RFC 8219, + DOI 10.17487/RFC8219, August 2017, + . + + [RFC8415] Mrugalski, T., Siodelski, M., Volz, B., Yourtchenko, A., + Richardson, M., Jiang, S., Lemon, T., and T. Winters, + "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)", + RFC 8415, DOI 10.17487/RFC8415, November 2018, + . + + [RFC8512] Boucadair, M., Ed., Sivakumar, S., Jacquenet, C., + Vinapamula, S., and Q. Wu, "A YANG Module for Network + Address Translation (NAT) and Network Prefix Translation + (NPT)", RFC 8512, DOI 10.17487/RFC8512, January 2019, + . + + [RFC8513] Boucadair, M., Jacquenet, C., and S. Sivakumar, "A YANG + Data Model for Dual-Stack Lite (DS-Lite)", RFC 8513, + DOI 10.17487/RFC8513, January 2019, + . + + [RFC8658] Jiang, S., Ed., Fu, Y., Ed., Xie, C., Li, T., and M. + Boucadair, Ed., "RADIUS Attributes for Softwire Mechanisms + Based on Address plus Port (A+P)", RFC 8658, + DOI 10.17487/RFC8658, November 2019, + . + + [RFC8676] Farrer, I., Ed. and M. Boucadair, Ed., "YANG Modules for + IPv4-in-IPv6 Address plus Port (A+P) Softwires", RFC 8676, + DOI 10.17487/RFC8676, November 2019, + . + + [RFC8683] Palet Martinez, J., "Additional Deployment Guidelines for + NAT64/464XLAT in Operator and Enterprise Networks", + RFC 8683, DOI 10.17487/RFC8683, November 2019, + . + +8.2. Informative References + + [AFTR] ISC, "ISC Implementation of AFTR", + . + + [AZZ2021] Al-Azzawi, A. and G. Lencse, "Identification of the + Possible Security Issues of the 464XLAT IPv6 Transition + Technology", Infocommunications Journal, Vol. 13, No. 4, + pp. 10-18, DOI 10.36244/ICJ.2021.4.2, December 2021, + . + + [IPv4aaS-BENCHMARK-TECH] + Lencse, G., "Performance Analysis of IPv6 Transition + Technologies for IPv4aaS", Work in Progress, Internet- + Draft, draft-lencse-v6ops-transition-benchmarking-01, 2 + May 2022, . + + [IPv4aaS-SCALE-TECH] + Lencse, G., "Scalability of IPv6 Transition Technologies + for IPv4aaS", Work in Progress, Internet-Draft, draft- + lencse-v6ops-transition-scalability-03, 30 June 2022, + . + + [JOOL] "Jool: SIIT & NAT64", . + + [JOOL-MAPT] + "MAP-T Run", . + + [LEN2018] Lencse, G. and Y. Kadobayashi, "Methodology for the + identification of potential security issues of different + IPv6 transition technologies: Threat analysis of DNS64 and + stateful NAT64", Computers & Security, Vol. 77, No. 1, pp. + 397-411, DOI 10.1016/j.cose.2018.04.012, August 2018, + . + + [LEN2019] Lencse, G. and Y. Kadobayashi, "Comprehensive Survey of + IPv6 Transition Technologies: A Subjective Classification + for Security Analysis", IEICE Transactions on + Communications, Vol. E102-B, No. 10, pp. 2021-2035, + DOI 10.1587/transcom.2018EBR0002, October 2019, + . + + [LEN2020a] Lencse, G., "Benchmarking stateless NAT64 implementations + with a standard tester", Telecommunication Systems, Vol. + 75, pp. 245-257, DOI 10.1007/s11235-020-00681-x, June + 2020, . + + [LEN2020b] Lencse, G., "Adding RFC 4814 Random Port Feature to + Siitperf: Design, Implementation and Performance + Estimation", International Journal of Advances in + Telecommunications, Electrotechnics, Signals and Systems, + Vol. 9, No. 3, pp. 18-26, DOI 10.11601/ijates.v9i3.291, + 2020, + . + + [LEN2021] Lencse, G., "Design and Implementation of a Software + Tester for Benchmarking Stateless NAT64 Gateways", IEICE + Transactions on Communications, Vol. E104.B, Issue 2, pp. + 128-140, DOI 10.1587/transcom.2019EBN0010, 2021, + . + + [MIY2010] Miyakawa, S., "IPv4 to IPv6 Transformation Schemes", IEICE + Transactions on Communications, Vol. E93-B, Issue 5, pp. + 1078-1084, DOI 10.1587/transcom.E93.B.1078, 2010, + . + + [NAT-SUPP] Stewart, R. R., Tüxen, M., and I. Ruengeler, "Stream + Control Transmission Protocol (SCTP) Network Address + Translation Support", Work in Progress, Internet-Draft, + draft-ietf-tsvwg-natsupp-23, 25 October 2021, + . + + [OP-464XLAT/MAP-T] + Palet Martinez, J. and A. D'Egidio, "464XLAT/MAT-T + Optimization", Work in Progress, Internet-Draft, draft- + ietf-v6ops-464xlat-optimization-03, 28 July 2020, + . + + [REP2014] Répás, S., Hajas, T., and G. Lencse, "Port Number + Consumption of the NAT64 IPv6 Transition Technology", 37th + International Conference on Telecommunications and Signal + Processing, DOI 10.1109/TSP.2015.7296411, 2014, + . + + [SIITPERF] "Siitperf: an RFC 8219 compliant SIIT (stateless NAT64) + tester", commit bdce0f, February 2021, + . + + [SNABB] "Snabb implementation of lwAFTR", commit 1ef72ce, January + 2022, . + + [TR-069] Broadband Forum, "CPE WAN Management Protocol", Technical + Report TR-069, June 2020, . + + [VPP] "VPP", July 2022, + . + +Acknowledgements + + The authors would like to thank Ole Troan, Warren Kumari, Dan + Romascanu, Brian Trammell, Joseph Salowey, Roman Danyliw, Erik Kline, + Lars Eggert, Zaheduzzaman Sarker, Robert Wilton, Éric Vyncke and + Martin Duke for their review of this document and acknowledge the + inputs of Mark Andrews, Edwin Cordeiro, Fred Baker, Alexandre + Petrescu, Cameron Byrne, Tore Anderson, Mikael Abrahamsson, Gert + Doering, Satoru Matsushima, Yutianpeng (Tim), Mohamed Boucadair, Nick + Hilliard, Joel Jaeggli, Kristian McColm, Tom Petch, Yannis + Nikolopoulos, Havard Eidnes, Yann-Ju Chu, Barbara Stark, Vasilenko + Eduard, Chongfeng Xie, Henri Alves de Godoy, Magnus Westerlund, + Michael Tüxen, Philipp S. Tiesel, Brian E. Carpenter, and Joe Touch. + +Authors' Addresses + + Gábor Lencse + Budapest University of Technology and Economics + Budapest + Magyar tudósok körútja 2 + H-1117 + Hungary + Email: lencse@hit.bme.hu + URI: http://www.hit.bme.hu/~lencse/index_en.htm + + + Jordi Palet Martinez + The IPv6 Company + Molino de la Navata, 75 + 28420 La Navata - Galapagar Madrid + Spain + Email: jordi.palet@theipv6company.com + URI: http://www.theipv6company.com/ + + + Lee Howard + Retevia + 9940 Main St., Suite 200 + Fairfax, Virginia 22031 + United States of America + Email: lee@asgard.org + + + Richard Patterson + Sky UK + 1 Brick Lane + London + EQ 6PU + United Kingdom + Email: richard.patterson@sky.uk + + + Ian Farrer + Deutsche Telekom AG + Landgrabenweg 151 + 53227 Bonn + Germany + Email: ian.farrer@telekom.de -- cgit v1.2.3