Description
Network Address Translation (NAT) in 3GPP networks is a function typically implemented in the Packet Data Network Gateway (PGW) in 4G or the User Plane Function (UPF) in 5G. It operates at the IP layer, modifying the source and/or destination IP addresses (and often port numbers) in packet headers as they traverse between the mobile user equipment (UE) and external packet data networks (PDNs) like the internet. The core mechanism involves maintaining a NAT binding table that maps each UE's private IP address (assigned from the mobile operator's pool, e.g., 10.0.0.0/8) and source port to a unique public IP address and port on the external interface. For outgoing packets from the UE, the NAT function replaces the private source IP and port with the mapped public ones; for incoming packets destined for the UE, it performs the reverse translation based on the destination port and IP in the packet.
The architecture integrates NAT within the data path of the user plane. In EPS (4G), the PGW acts as the anchor point and performs NAT for PDN connections that require it, often configured as part of the Packet Data Protocol (PDP) context or PDN connection establishment. In 5GC, the UPF performs the equivalent N6 point-of-presence function. Key components include the NAT mapping table (state), timers to manage the lifetime of inactive mappings, and algorithms for port allocation (e.g., Port Address Translation - PAT). Advanced forms like Carrier-Grade NAT (CGN) or Large Scale NAT (LSN) are employed to map thousands of UEs onto a single or a small pool of public IPv4 addresses, using port ranges to distinguish flows.
NAT's role is multifaceted: it conserves the globally scarce IPv4 address space by allowing many UEs to share few public addresses; it adds a layer of privacy and basic security by hiding internal network topology; and it simplifies network management for operators. However, it also introduces complexities, breaking the end-to-end principle of the internet. It can interfere with protocols that embed IP addresses in payloads (e.g., SIP, FTP) unless accompanied by Application Layer Gateways (ALGs) or techniques like NAT Traversal (NAT-T). Within 3GPP, NAT behavior and configuration are specified to ensure interoperability and predictable service delivery across different vendor equipment and network deployments.
Purpose & Motivation
NAT was adopted in 3GPP networks primarily to mitigate the exhaustion of public IPv4 addresses, a critical issue that emerged with the explosive growth of mobile internet devices. Without NAT, each UE requiring internet access would need a unique public IPv4 address, a requirement unsustainable given the limited address space. NAT solves this by allowing operators to use large private address spaces internally (RFC 1918) and map them to a much smaller pool of public addresses. This enabled the cost-effective scaling of mobile broadband services from 3G (R99) onwards.
Historically, early mobile data services had limited scale and sometimes used public addressing. As services expanded, NAT became a necessary network function. Its integration into 3GPP standards ensured a consistent, vendor-interoperable approach to address conservation. Furthermore, NAT provided incidental benefits like a basic firewall effect, as unsolicited inbound traffic without an existing mapping is typically dropped, enhancing network security. The technology addressed the limitations of simply deploying IPv6 (which has abundant addresses) by providing an immediate, backward-compatible solution while the transition to IPv6 progressed slowly. NAT's purpose evolved to also support network architectures like fixed-mobile convergence and multi-homing, where traffic from different access types is aggregated through a common gateway performing NAT.
Key Features
- Translates private IPv4 addresses to public IPv4 addresses (and vice versa)
- Implements Port Address Translation (PAT) to multiplex many users on a single IP
- Maintains stateful mapping tables with configurable timeout policies
- Integrated into core network gateways (GGSN/PGW/UPF) for mobile traffic
- Can be deployed as Carrier-Grade NAT (CGN) for large-scale subscriber aggregation
- Supports various NAT flavors like full-cone, restricted-cone, port-restricted, and symmetric
Evolution Across Releases
Initial support for NAT in 3GPP, primarily conceptual within the GPRS/UMTS architecture. The GGSN could be configured to perform NAT functions for PDP contexts, enabling private IP address allocation (from the operator's pool) and translation for internet access. Basic mechanisms for address and port mapping were established.
Defining Specifications
| Specification | Title |
|---|---|
| TS 22.495 | 3GPP TS 22.495 |
| TS 22.832 | 3GPP TS 22.832 |
| TS 23.179 | 3GPP TS 23.179 |
| TS 23.221 | 3GPP TS 23.221 |
| TS 23.228 | 3GPP TS 23.228 |
| TS 23.234 | 3GPP TS 23.234 |
| TS 23.280 | 3GPP TS 23.280 |
| TS 23.334 | 3GPP TS 23.334 |
| TS 23.379 | 3GPP TS 23.379 |
| TS 23.501 | 3GPP TS 23.501 |
| TS 23.700 | 3GPP TS 23.700 |
| TS 23.701 | 3GPP TS 23.701 |
| TS 23.758 | 3GPP TS 23.758 |
| TS 23.875 | 3GPP TS 23.875 |
| TS 23.981 | 3GPP TS 23.981 |
| TS 24.139 | 3GPP TS 24.139 |
| TS 24.229 | 3GPP TS 24.229 |
| TS 24.281 | 3GPP TS 24.281 |
| TS 24.379 | 3GPP TS 24.379 |
| TS 24.523 | 3GPP TS 24.523 |
| TS 24.820 | 3GPP TS 24.820 |
| TS 26.236 | 3GPP TS 26.236 |
| TS 26.506 | 3GPP TS 26.506 |
| TS 26.804 | 3GPP TS 26.804 |
| TS 26.806 | 3GPP TS 26.806 |
| TS 26.923 | 3GPP TS 26.923 |
| TS 26.998 | 3GPP TS 26.998 |
| TS 28.314 | 3GPP TS 28.314 |
| TS 29.139 | 3GPP TS 29.139 |
| TS 29.212 | 3GPP TS 29.212 |
| TS 29.238 | 3GPP TS 29.238 |
| TS 29.334 | 3GPP TS 29.334 |
| TS 29.421 | 3GPP TS 29.421 |
| TS 29.564 | 3GPP TS 29.564 |
| TS 29.828 | 3GPP TS 29.828 |
| TS 29.839 | 3GPP TS 29.839 |
| TS 32.501 | 3GPP TR 32.501 |
| TS 33.128 | 3GPP TR 33.128 |
| TS 33.203 | 3GPP TR 33.203 |
| TS 33.210 | 3GPP TR 33.210 |
| TS 33.234 | 3GPP TR 33.234 |
| TS 33.320 | 3GPP TR 33.320 |
| TS 33.739 | 3GPP TR 33.739 |
| TS 33.749 | 3GPP TR 33.749 |
| TS 33.822 | 3GPP TR 33.822 |
| TS 33.871 | 3GPP TR 33.871 |
| TS 33.978 | 3GPP TR 33.978 |
| TS 36.579 | 3GPP TR 36.579 |
| TS 37.579 | 3GPP TR 37.579 |
| TS 44.318 | 3GPP TR 44.318 |