Well said. I believe that cgNAT is one of the main uses cases that makes IPv6 really important to home users.
Anyway IPv6 is indeed much more complicated to configure than IPv4. If the default configuration just works, life is good. But if you need to troubleshoot it, then there are so many IPv6 concepts that are really hard to grasp (router announcements, relay x server, prefix delegation /56 vs /64, etc). While I have a good understanding about IPv4, I still do not fully understand many of the IPv6 configurations available in OpenWrt. Luckily there is a ton of documentation about this, but sometimes they are hard to follow and may require a significant learning curve.
Back to the topic: while I have IPv6 enabled in my network, I have had some issues with my ISP using different routes for IPv6 (compared to IPv4). Specifically in one case my ISP did not have an IPv6 route to a server in my country. The route went abroad and then returned (latency of ~220ms), while in IPv4 the latency was ˜2ms. I've also have many problems with DNS resolving different CDNs for IPv4 and IPv6. While DNS resolved a CDN with an IPv4 very close to my location (~2ms), with IPv6 the CDN was resolved to a location far from where I live (still inside my country, but with ~30ms of latency).
So while I agree that IPv6 is important and should be used by default, I still see the following issues that hopefully will be mitigated as this technology matures:
- On users' side (any home router), if IPv6 does not work "out of the box", troubleshooting it may be quite difficult due to its complex configuration when compared to IPv4.
- On ISP side, at least in my experience, IPv6 routes are still not as optimized as IPv4 routes. Also due to DNS issues CDNs are often resolved to different locations for IPv4 and IPv6. These two issues together (IPv6 routes and DNS resolution not optmized) may result in a higher latency using IPv6 when compared with IPv4.