Re: CGNAT
For all intents and purposes, IPv6 _is_ IPv4+
Not what I meant.
If you give an IPv6 packet to an old IPv4-only stack, it's reaction will be "WTF? Discard packet". There is zero compatibility between IPv6 and a pure IPv4 stack.
I was thinking more of some bastard half-breed mongrel of a protocol with extra address bytes, perhaps stuffed into the payload, such that an IPv4+ system could recognise and process an IPv4+ packet correctly, and a pure IPv4 stack would at least be able to punt it to an IPv4+ gateway system "looks like this one's for you, Fred", from where it could get routed on its way. Such an interim system would at least allow for rapid upgrades to equipment because new stuff would be compatible with old so mix'n'match would be possible. In maybe 15-20 years there would be so little pure IPv4 left that it could evolve to a clean next generation.
I wouldn't for a moment describe it as desirable, pretty, or a proper long-term solution, and I know that purists are probably having apoplexy right now, but it could have been done. Look at how the phone network managed to evolve from "Mursley 315" to E.161 direct dial international without having to replace everyone's phones. It went through some ugly interim mechanisms, and no doubt could be better if designed from scratch, but it worked for practical day-to-day use. IPv6 was designed by purists who assumed that they could just "change everything" when the time came. They picked revolution over evolution, and got left behind by the rate of internet growth.