CGNAT at scale functions by assigning a range of ports on a shared v4 address to a downstream customer. You can normally get between a 1:8 and 1:32 "compression ratio."
We still need to free up additional IPv4 to keep the internet growing. Don't let the "just switch to v6" crowd fool you, both solutions need to addressed in parallel.
CGNAT is a term that broadly used to refer to carrier-scale solutions to deal with issues with number exhaustion and dual-stack deployments. What most people think "CGNAT" is, is actually NAT44. https://nfware.com/blog/why-cgnat
Likewise, some Linux mirrors don't support it. If I decide to try an IPv6-only server, and the first thing I see after "apt update" is network errors, I'm not very motivated to use IPv6 in the future.
Then add some problems where having IPv6 enabled randomly breaks things for one reason or another. I can either debug it forever, or turn the "internet is broken" switch (labeled "Enable IPv6") to "off" and get on with my day. That means more people that support IPv4 but not IPv6 (to be fair, this one seems to have gotten a lot better).
But ultimately, until some major, hard-to-avoid site says "we'll only be on IPv6", there is little reason for most to use it, and many reasons not to. That's why the transition takes forever.
Amazon has hopefully started a change in this mentality by charging money for every IPv4 address used. This creates a real financial incentive to deploy IPv6-only servers, which in turn means that critical services like Github and Linux mirrors are slowly forced to provide IPv6.
There still is, even though they've started charging for v4!
IPV6 is one of those things where if isp,'s just switched over to it, I'd have so less nightmares caused by cgnat and that bullshit like how expensive static IP's are.
Many its because I'm not working at a ISP or a teir 1 backbone but forcing the transition to ipv6 seems like overall it would be less of a clusterfuck than our current ipv4 stuff. I know their is stuff going to break, anytime changes are made at this scale it often has some hickups....but dear god I really hate how static IP's are so expensive, and how expensive a small IP block is. Also IPV6 is just an excuse to get fiber everywhere.....I hate how slow many services are.