NAT vs CGNAT: Understanding Network Address Translation

Master the differences between NAT and CGNAT. Learn how network address translation works, why ISPs use CGNAT, the impact on hosting servers and gaming, detection methods, and workarounds for common CGNAT limitations. Essential knowledge for understanding your network.

Quick Comparison

Regular NAT (Home Router)

Your home router performs NAT to share one public IP among all your devices.

  • Port forwarding works
  • Can host servers
  • P2P connections work
  • Full control over your router

CGNAT (ISP Level)

ISP adds another layer of NAT, sharing one public IP among multiple customers.

  • Port forwarding blocked
  • Cannot host servers
  • P2P may be limited
  • No control over ISP NAT

How NAT Works

Network Address Translation (NAT) allows multiple devices with private IP addresses to share a single public IP address. Your home router is a NAT device.

NAT Translation Process

192.168.1.100:54321
Your Device
(Private IP)
203.0.113.45:12345
Router
(Public IP)
8.8.8.8:53
Internet Server
Translation: Router remembers that traffic from 192.168.1.100:54321 should appear as 203.0.113.45:12345 to the internet, and routes responses back correctly.

How CGNAT Works (Double NAT)

Carrier-Grade NAT (CGNAT), also called NAT444 or LSN (Large Scale NAT), adds a second layer of NAT at the ISP level. This means your traffic goes through TWO NAT devices.

CGNAT Translation Process

192.168.1.100
Your Device
100.64.0.5
Home Router
(NAT #1)
203.0.113.45
ISP CGNAT
(NAT #2)
8.8.8.8
Internet
Problem: You share the public IP (203.0.113.45) with dozens or hundreds of other customers. The ISP's CGNAT device controls which ports you can use, and you can't configure it.
The 100.64.0.0/10 Range
If your router's WAN IP starts with 100.64, 100.65-100.127, you're likely behind CGNAT. This is a special range (RFC 6598) reserved for carrier-grade NAT.

Why ISPs Use CGNAT

IPv4 Address Exhaustion

The primary reason is IPv4 address shortage. With only ~4.3 billion addresses and 5+ billion internet users, there aren't enough to go around.

  • IPv4 addresses are expensive to buy
  • CGNAT lets one IP serve 10-1000+ customers
  • Reduces ISP infrastructure costs

Common CGNAT Scenarios

  • Mobile networks: 4G/5G data connections
  • Budget ISPs: Low-cost internet providers
  • Student housing: Apartment complex networks
  • Rural ISPs: Limited infrastructure areas
  • New ISPs: Can't afford IPv4 blocks

What CGNAT Breaks

Services That Don't Work

Completely Broken

  • Hosting game servers (Minecraft, etc.)
  • Running web servers
  • Self-hosting services (Plex, etc.)
  • VPN servers (OpenVPN, WireGuard)
  • Remote desktop from internet
  • Port forwarding entirely

May Have Issues

  • P2P file sharing (BitTorrent)
  • Online gaming (NAT type issues)
  • Video calling quality
  • Some VoIP services
  • IoT device remote access
  • Some multiplayer games

How to Detect CGNAT

Method 1: Compare IP Addresses

  1. 1.
    Check your router's WAN IP: Log into your router and find the WAN/Internet IP address
  2. 2.
    Check your public IP: Visit LatencyLens or similar service
  3. 3.
    Compare them:
    • Same? No CGNAT ✓
    • Different? You're behind CGNAT ✗
    • WAN IP starts with 100.64-100.127? Definitely CGNAT ✗

Method 2: Port Forward Test

Try setting up port forwarding on your router. If it doesn't work even with correct configuration, you're likely behind CGNAT. Test with an online port checker tool.

Solutions and Workarounds

1. Request a Public IP from ISP

Some ISPs offer public (non-CGNAT) IPs for an additional fee (typically $5-20/month). Call and ask for a "public IP address" or "removal from CGNAT".

2. Use IPv6

IPv6 doesn't need NAT - every device gets a public address. Check if your ISP offers IPv6 and enable it on your router.

⚠️ Note: Not all services/games support IPv6 yet

3. Use Cloud Services / Tunnels

  • Cloudflare Tunnel: Free tunnel for web services
  • ngrok: Expose local servers to internet
  • Tailscale/ZeroTier: Mesh VPN networks
  • PlayIt.gg: Game server tunneling

4. Get a VPS

Rent a cheap cloud server ($5-10/month) with a public IP and use it as a tunnel/proxy endpoint. Run your services there or tunnel traffic through it.

5. Switch ISPs

If possible, switch to an ISP that provides real public IPs. Business plans often include public IPs by default.

Related Topics