Carrier-grade NAT (CGN or CGNAT), also known as large-scale NAT (LSN), is a type of network address translation (NAT) used by ISPs in IPv4 network design. With CGNAT, end sites, in particular residential networks, are configured with private network addresses that are translated to public IPv4 addresses by middlebox network address translator devices embedded in the network operator's network, permitting the sharing of small pools of public addresses among many end users. This essentially repeats the traditional customer-premise NAT function at the ISP level.
One use scenario of CGN has been labeled as NAT444, because some customer connections to Internet services on the public Internet would pass through three different IPv4 addressing domains: the customer's own private network, the carrier's private network and the public Internet.
CGNAT techniques were first used in 2000 to accommodate the immediate need for large numbers of IPv4 addresses in General Packet Radio Service (GPRS) deployments of mobile networks. Estimated CGNAT deployments increased from 1200 in 2014 to 3400 in 2016, with 28.85% of the studied deployments appearing to be in mobile operator networks.
If an ISP deploys a CGN, and uses RFC 1918 address space to number customer gateways, the risk of address collision, and therefore routing failures, arises when the customer network already uses an RFC 1918 address space.
This prompted some ISPs to develop a policy within the American Registry for Internet Numbers (ARIN) to allocate new private address space for CGNs, but ARIN deferred to the IETF before implementing the policy indicating that the matter was not a typical allocation issue but a reservation of addresses for technical purposes (per RFC 2860).
IETF published RFC 6598, detailing a shared address space for use in ISP CGN deployments that can handle the same network prefixes occurring both on inbound and outbound interfaces. ARIN returned address space to the Internet Assigned Numbers Authority (IANA) for this allocation. The allocated address block is 100.64.0.0/10, i.e. IP addresses from 100.64.0.0 to 100.127.255.255.
Devices evaluating whether an IPv4 address is public must be updated to recognize the new address space. Allocating more private IPv4 address space for NAT devices might prolong the transition to IPv6.
- Maximises use of limited public IP4 address space.
- May provide additional security for customers against attacks targeting their public IP address.
Critics of carrier-grade NAT argue the following aspects:
- Like any form of NAT, it breaks the end-to-end principle.
- It has significant security and reliability problems, by virtue of being stateful.
- It does not solve the IPv4 address exhaustion problem when a public IP address is needed, such as in web hosting.
- It may create a performance bottleneck that limits scalability.
- Carrier-grade NAT usually prevents the ISP customers from using port forwarding, because the network address translation (NAT) is usually implemented by mapping ports of the NAT devices in the network to other ports in the external interface. This is done so the router will be able to map the responses to the correct device; in carrier-grade NAT networks, even though the router at the consumer end might be configured for port forwarding, the "master router" of the ISP, which runs the CGN, will block this port forwarding because the actual port would not be the port configured by the consumer. In order to overcome the former disadvantage, the Port Control Protocol (PCP) has been standardized in the RFC 6887.
- In cases of banning traffic based on IP addresses, a system might block the traffic of a spamming user by banning the user's IP address. If that user happens to be behind carrier-grade NAT, other users sharing the same public address with the spammer will be inadvertently blocked. This can create problems for forum and wiki administrators attempting to address disruptive actions of a single malicious user sharing an IP address with legitimate users.
- S. Jiang; D. Guo; B. Carpenter (June 2011), An Incremental Carrier-Grade NAT (CGN) for IPv6 Transition, ISSN 2070-1721, RFC 6264
- "NAT444 (CGN/LSN) and What it Breaks".
- Livadariu, Ioana; Benson, Karyn; Elmokashfi, Ahmed; Dhamdhere, Amogh; Dainotti, Alberto (2018). Inferring Carrier-Grade NAT Deployment in the Wild (PDF). IEEE INFOCOM 2018 - IEEE Conference on Computer Communications. Honolulu, HI, USA. pp. 2249–2257. doi:10.1109/INFOCOM.2018.8486223. Retrieved 22 July 2021.
- "Re: shared address space... a reality!". Archived from the original on 2012-06-07. Retrieved 13 September 2012.
- "100.64.0.0/10 – Shared Transition Space".
- "Assessing the Impact of NAT444 on Network Applications".
- http://stakeholders.ofcom.org.uk/binaries/research/technology-research/2013/cgnat.pdf[bare URL PDF]