Description
NAPT and Protocol Translation (NAPT-PT) is a dual-function network element specified by 3GPP that performs two distinct but related translation services. First, it executes standard NAPT, translating private IPv4 addresses and ports to a public IPv4 address and ports. Second, and more critically, it performs Protocol Translation (PT), converting packet headers and payloads between the IPv4 and IPv6 protocols. This allows an IPv6-only User Equipment (UE) or network segment to communicate with an IPv4-only server or service in the external packet data network (PDN), and vice-versa.
The protocol translation component is based on mechanisms defined in IETF standards, such as Stateless IP/ICMP Translation (SIIT) and its stateful extensions. When an IPv6 packet from a UE destined for an IPv4 host arrives at the NAPT-PT function, it translates the IPv6 header into an IPv4 header. This involves mapping the IPv6 source address to an IPv4 address from a pool, adjusting the packet length, and translating ICMPv6 messages to ICMPv4. Crucially, it must also handle embedded IP addresses within certain application-layer protocols (e.g., FTP, SIP) through Application Layer Gateways (ALGs) to ensure end-to-end connectivity. The reverse process is performed for traffic flowing from the IPv4 internet to the IPv6 UE.
Architecturally, NAPT-PT is positioned as a network-based translation solution, often co-located with the PDN Gateway (PGW) or similar border element. Its operation is stateful, maintaining binding and session tables that correlate the IPv6 address/port with the translated IPv4 address/port. This allows it to correctly route return traffic. The 3GPP specifications detail its integration with policy control and charging, enabling operators to selectively apply NAPT-PT based on subscriber profile, APN, or destination service. However, due to significant technical complexities and breaking of end-to-end IP semantics, its use is generally considered a last-resort transition tool.
Purpose & Motivation
NAPT-PT was created to solve the critical interoperability problem during the prolonged and asymmetric transition from IPv4 to IPv6. As mobile networks began deploying IPv6 to new UEs and network domains, a vast majority of content and services on the internet remained IPv4-only. A direct communication path between these two incompatible protocol worlds was impossible without translation. NAPT-PT provided a network-based bridge, allowing early IPv6 adoption without requiring immediate, universal upgrades of all endpoints and servers.
It addressed the limitations of dual-stack deployment, which requires both IPv4 and IPv6 stacks on all devices and networks—a costly and slow process. NAPT-PT offered a more incremental path, enabling operators to deploy an IPv6-only access network for new UEs while maintaining access to the legacy IPv4 internet. This was particularly motivated by the desire to conserve the dwindling IPv4 address space; new UEs could be assigned IPv6 addresses only, avoiding the consumption of precious public IPv4 addresses.
However, the technology was conceived as a transition mechanism, not a permanent solution. Its purpose was to facilitate coexistence, not to replace native IPv6 end-to-end communication. The IETF and later 3GPP recognized significant drawbacks with NAPT-PT, including complexity, single points of failure, and incompatibility with many applications and security protocols (like IPsec). This led to its deprecation in favor of more scalable transition technologies like 464XLAT and Dual-Stack Lite (DS-Lite) in later releases.
Key Features
- Performs combined Network Address/Port Translation (NAPT) and IPv4/IPv6 Protocol Translation (PT)
- Enables bidirectional communication between IPv6-only UEs and IPv4-only external networks/services
- Incorporates Application Layer Gateways (ALGs) for protocols embedding IP addresses in payloads
- Operates as a stateful translator, maintaining session binding tables
- Integrates with 3GPP policy control for selective application based on APN or subscriber
- Utilizes IPv4 address pools for mapping IPv6 source addresses during translation
Evolution Across Releases
Defining Specifications
| Specification | Title |
|---|---|
| TS 29.238 | 3GPP TS 29.238 |
| TS 29.334 | 3GPP TS 29.334 |