This is a research guide based on cited documentation. It is not a report of firsthand testing. Our editorial method

What carrier-grade NAT is

Your home router normally translates many private addresses to one public address. Carrier-grade NAT adds a second translation inside the ISP, so many homes share one public address. RFC 6598, published in April 2012, reserves 100.64.0.0/10 as Shared Address Space for numbering the links between CGN equipment and customer routers. It describes the block as not globally routable. Tailscale's NAT traversal write-up puts the motive plainly: ISPs can no longer afford one public IPv4 address per home. [1][4]

The effect is simple. Nothing on the internet can start a connection to your home, because your router never holds a public address. You cannot reconfigure the ISP's NAT either. [4]

Detect it in three steps

One trap: Tailscale assigns device addresses from the same 100.64.0.0/10 block, so a 100.x address on a laptop running Tailscale proves nothing about your ISP. Read the WAN address on the router. [3]

  • Open your router's status page and note the WAN or Internet IPv4 address.
  • Compare it with the ranges below. A WAN address in 100.64.0.0/10 points to carrier-grade NAT; one in an RFC 1918 private range means another router or the ISP is translating ahead of you. [1][2]
  • Compare the WAN address with the address a what-is-my-IP site shows. If they differ, something upstream is translating. GL.iNet's DDNS test does something similar: it compares the address your DDNS name resolves to with the router's WAN IP and warns that a mismatch likely means NAT. [6]
WAN address rangeDefined byWhat it suggests
100.64.0.0 to 100.127.255.255RFC 6598 Shared Address Space [1]Carrier-grade NAT at the ISP
10.0.0.0 to 10.255.255.255RFC 1918 [2]Private: ISP NAT or another router upstream
172.16.0.0 to 172.31.255.255RFC 1918 [2]Private: ISP NAT or another router upstream
192.168.0.0 to 192.168.255.255RFC 1918 [2]Often an upstream router in your home: see our double NAT guide
Anything else, matching what-is-my-IPPublic addressNot CGNAT; port forwarding can work

Why port forwarding and DDNS fail

Port forwarding opens a port on your router's public address. Behind CGNAT, the router has no public address, so the ISP's NAT drops inbound traffic before it reaches you. GL.iNet's DDNS page says an internet public IP is required for dynamic DNS, and a public IP is required for its HTTPS and SSH remote access. Behind CGNAT a DDNS name would point at a shared ISP address you do not control. [6]

Tailscale's write-up also explains why router tricks do not help. Port-mapping protocols such as UPnP, NAT-PMP and PCP act on the NAT layer closest to you, not the ISP's, and CGNAT ISPs often disable them anyway. [4]

What still works: connect outward

Every method that survives CGNAT has your home device make an outbound connection first. A mesh VPN such as Tailscale tries a direct connection and falls back to a peer relay or a DERP relay. Run tailscale status to see whether a peer is direct or relayed. ZeroTier falls back to a TCP relay if UDP is blocked. [5][11]

Device vendors build in the same idea. GL.iNet says its KVMs need no open ports or public IP. JetKVM Cloud relays through Cloudflare TURN servers when a firewall or carrier-grade NAT blocks a direct path. For a web service you host, Cloudflare Tunnel's connector makes outbound connections to Cloudflare, needs no publicly routable IP, and lets you block inbound traffic at your firewall. [10][8][7]

MethodWorks behind CGNAT?Trade-off
Port forwardingNoNeeds a public address on your router
Dynamic DNS for inbound accessNoPublic IP required, per GL.iNet [6]
Mesh VPN (Tailscale, ZeroTier)YesMay relay with more latency [5][11]
Vendor relay (for example a KVM cloud)YesTrust the vendor account [8][10]
Outbound tunnel (Cloudflare Tunnel)YesSuited to web services; adds a provider [7]
Public IPv4 from the ISPRemoves CGNATDepends on the ISP's offer
IPv6Often avoids the address shortageFirewalls still apply; both ends need IPv6 [4]

One router for the whole house

Rather than installing a VPN app on every device, you can run it on the router and expose your home network. GL.iNet firmware 4.2 and later includes a beta Tailscale app on supported models, including Flint 2 (GL-MT6000). It can advertise LAN subnets, which you then approve in the Tailscale admin console. That lets a phone on the road reach a printer, NAS or KVM at home through one router, without port forwarding. GL.iNet advises against running it alongside other VPN clients on the same router. [9]

If you already have a router that can do this, there is nothing to buy. If not, see our Flint 2 guide before replacing your ISP's router, and our double NAT guide if your WAN address is in 192.168.x.

Decision table

You want to...Do this behind CGNAT
Reach a NAS, printer or KVM from your own devicesMesh VPN on the router or on the device [9][5]
Use a product that has its own app or cloudUse its relay; secure the account [8][10]
Publish a website or webhook to the publicOutbound tunnel such as Cloudflare Tunnel [7]
Run a game server or anything needing open ports for strangersAsk the ISP for a public IPv4 address
Confirm a connection is not relayedRun tailscale status or tailscale ping [5]

Questions before you decide

My Tailscale address starts with 100. Does that mean I am behind CGNAT?

No. Tailscale assigns its own device addresses from 100.64.0.0/10, the same block RFC 6598 reserves for carrier-grade NAT. Check the WAN address on your router's status page, not the Tailscale address.

Will dynamic DNS work behind CGNAT?

Not for inbound access. GL.iNet's DDNS page says a public IP address is required for DDNS, and for HTTPS or SSH remote access to the router. Behind CGNAT your router never holds the public address the DDNS name would point to.

Does a mesh VPN always connect directly behind CGNAT?

Not always. Tailscale's write-up on NAT traversal says CGNAT is a form of double NAT that defeats port-mapping protocols, and that relaying is the fallback when hairpinning and port mapping both fail. A relayed connection still works, just with more latency.

Sources & verification

Product details and prices can change. Check the linked provider before buying.

  1. RFC 6598: IANA-Reserved IPv4 Prefix for Shared Address Space Accessed 30 Oct 2026
  2. RFC 1918: Address Allocation for Private Internets Accessed 30 Oct 2026
  3. Tailscale Docs: What are these 100.x.y.z addresses? Accessed 30 Oct 2026
  4. Tailscale blog: How NAT traversal works Accessed 30 Oct 2026
  5. Tailscale Docs: Connection types Accessed 30 Oct 2026
  6. GL.iNet Router Docs (firmware 4): Dynamic DNS Accessed 30 Oct 2026
  7. Cloudflare Docs: Cloudflare Tunnel Accessed 30 Oct 2026
  8. JetKVM Docs: JetKVM Cloud Accessed 30 Oct 2026
  9. GL.iNet Router Docs (firmware 4): Tailscale Accessed 30 Oct 2026
  10. GL.iNet KVM Docs: Quick FAQs about GL.iNet KVM Accessed 30 Oct 2026
  11. ZeroTier Docs: Relay Accessed 30 Oct 2026

Sources link directly to providers. Product buttons may use separately labeled affiliate links. Read our disclosure.

Your decision at a glance

The option in this guide

Full comparison

Documentation-based guidance. No tested ranking or performance score.

Home routers

Flint 2 (GL-MT6000)

Consider it for
The GL-MT6000 is a Wi-Fi 6 home router. Its observed base price was $169.99.
Starting cost
$169.99 USD base price. Observed 15 Sep 2026; rechecked unchanged 29 Oct 2026; tax/shipping/accessories extra
Before you choose
Documentation-based candidate, not tested. Confirm region, stock, complete price, and required components.

Checked 29 Oct 2026 · Pricing source

View GL.iNet offers

Affiliate link: we may earn a commission on an eligible purchase. Link disclosure