Everything you never questioned about IP addresses#
Most people know their device has an IP address. Few know what’s actually happening behind it.
Here’s the full picture, from the original design to the current landscape we are in.
IPv4 was supposed to be simple. 32 bits, ~4.3 billion addresses, one per device. That was the plan. Then the internet grew faster than anyone expected, and 4.3 billion turned out to not be nearly enough.
The first workaround was NAT: Network Address Translation. Instead of giving every device a public IP, your router gets one: your WAN IP, the one websites actually see.
Behind it, your router assigns private addresses (192.168.x.x, 10.x.x.x, etc.) to every device on your network, and translates traffic back and forth using a NAT table keyed on ports.
Your phone and laptop can both hit the internet simultaneously from a single public IP. Simple, effective, and it bought years.
Then ISPs (Internet Service Providers) ran out of public IPs to hand to routers. Enter CGN: Carrier-Grade NAT. The ISP adds another NAT layer above yours. Your router gets a shared address in the 100.64.x.x/10 range (reserved specifically for this), and the ISP’s CGN router handles the real public IP, shared across potentially hundreds of customers. This is why it’s sometimes called NAT444: three layers of IPv4.
Your home network, the ISP’s internal network, and the internet. Mobile carriers do this almost universally.
It works, but it breaks inbound connections entirely, creates IP reputation problems (one bad actor can get your whole IP block banned), and makes abuse tracing painful.
IPv6 is the actual fix. 128 bits instead of 32. ~340 undecillion addresses instead of 4.3 billion. Every device gets a globally unique, publicly routable IP. No NAT needed. No CGN. Devices can even configure themselves without DHCP through a mechanism called SLAAC. The address space is so large it will not run out in any meaningful timeframe.
Most networks today run both dual-stack, which is a polite way of saying IPv6 adoption is real but incomplete, and IPv4 with all its layers of NAT is still very much alive.
The pattern is consistent: a good original design, real-world pressure, increasingly ugly workarounds, and a proper solution that takes decades to fully deploy.
So why isn’t IPv6 just the default already? Mostly inertia and cost. Every router, switch, ISP system, and application in the chain needs to support it. A lot of legacy infrastructure doesn’t, or was never upgraded. For ISPs, migrating is expensive and operationally risky: NAT and CGN work well enough that there’s no immediate fire to put out.
On the content side, adoption is solid (Google, Cloudflare, most big services are dual-stack). The last mile is the bottleneck. And because NAT hides the pain so effectively, most end users never feel the problem, which kills the urgency. It’s the classic coordination problem: everyone would benefit from switching, but no single actor has enough incentive to force it.

