I was just reading How bad is IPv4 address exhaustion really? and noticed this comment, which seems to imply that carrier grade NAT is actually widely deployed. I was always under the impression that very few ISPs deployed carrier grade NAT and instead just bit the bullet and deployed IPv6 (though now that I think about it I don't know where I got that idea from).
Is that not the case?
My experience in the UK:
Pretty much all mobile networks have been running "CGN" for years. EE (our largest mobile network) is now starting to deploy (AIUI it's postpaid only at the moment) IPv6 only with NAT64 motivated by shortages of private address space.
Some of the smaller/newer fixed-line providers (for example hyperoptic) are also using "CGN" because of IPv4-availability issues. The big providers still seem to be mostly handing out public IPv4 (sometimes with dual-stack IPv6, sometimes without) though I understand they are considering their options for post-runout service.
A SKY (one of our largest ISPs) engineer said in a uknof talk that they tried CGN and found it an expensive option and that this was what allowed the engineers to convince the bean counters to deploy IPv6. I heard rumours they are considering 464XLAT (NAT64 in the ISP network, NAT46 in the CPE) for the residual IPv4 traffic but I can't confirm that.
In germany most if not all mobile carriers use CGNAT.
On the other hand it seems that most DSL customers get an IPv4 and since a year or two there are quite a few ISPs who started to use full dual stack handing out prefixed betweet /56 and /48.
It's fairly widely deployed. My local ISP (a WISP specializing in serving rural customers in the USA) offers only CGNAT connections.
It is widely used in Europe, where the IPv4 address shortage has hit a couple years before it hit the USA. Europol (the European police agency) has called on ISPs to discontinue CGNAT because it prevents tracing IP addresses back to the end user.
Germany's Unitymedia uses DS-Lite (DS=dual-stack). It uses a variation of CGNAT. The end user gets a standard IPv6 network, and IPv4 traffic (which of course is the vast majority of traffic) runs through an IPv6 tunnel and is fed into the IPv4 Internet somewhere within Unitymedia.