What is Carrier-Grade NAT and why is it bad?
NAT is network address translation. It is not part of the basic operation of a router, but is necessary for home networks so you can have all of your kit on private IP addresses. For outgoing, any request from a machine on your network is sent out as though it comes from the public interface of your router. For incoming, the internet acts as though any request has come from your router and directs data to the router. The router then deciphers what IP address the packet is intended for and readdresses the data to that address.
Note that NAT actually alters the source or destination address on the packet, where as for ordinary routing, the addressing remains intact and the destination address is always sufficient to route across many routers. Also, the NAT router knows how to re address the incoming packet, because it has labelled the outgoing as coming from a particular port.
So that is NAT. CG NAT is when the ISP repeats the same trick because it does not have enough IP addresses for all of its customers. While NAT works well for the network of a single residential customer, when you use NAT to connect a substantial network to the internet, it becomes a bottleneck for the sheer volume of traffic.There will be a capacity problem in that 65536 ports might be enough for a residential network, but it is pushing things for a large number of such networks. Performance can become poor at busy times.
And what's more some cavalier ISP's use private network addresses, which are reserved for end users, despite there being a reserved CGNAT address range. And they don't tell their end users.
Finally, even if it works technically, I found that Google would frequently bother me with 'Prove you are human' click on the fire hydrant tests and other sites might block you because someone sharing the same CGNAT public address had been IP address blocked for some sort of abuse.