Basically what the title says. Here’s the thing: address exhaustion is a solved problem. NAT already took care of this via RFC 1631. While initially presented as a temporary fix, anyone who thinks it’s going anywhere at this point is simply wrong. Something might replace IPv4 as the default at some point, but it’s not going to be IPv6.
And then there are the downsides of IPv6:
- Not all legacy equipment likes IPv6. Yes, there’s a lot of it out there.
- “Nobody” remembers an IPv6 address. I know my IPv4 address, and I’m sure many others do too. Do you know your IPv6 address, though?
- Everything already supports IPv4
- For IPv6 to fully replace IPv4, practically everything needs to move over. De facto standards don’t change very easily. There’s a reason why QWERTY keyboards, ASCII character tables, and E-mail are still around, despite alternatives technically being “better”.
- Dealing with dual network stacks in the interim is annoying.
Sure, IPv6 is nice and all. But as an addition rather than as a replacement. I’ve disabled it by default for the past 10 years, as it tends to clutter up my ifconfig overview, and I’ve had no ill effects.
Source: Network engineer.
I’m using opnsense. Can’t day I followed your description. Sounds far more complicated than “use NAT”, which would solve almost everything.
Actually it’s simple than “NAT”, technically. Normally when we said “NAT”, it’s not just NAT (Network Address Translate), but a NAT plus a stateful firewall (see documents below). The conntrack here is a stateful firewall as in “NAT”. And compare to create a map from (paddr, pport) to (iaddr, iport) and match the later, it’s more simple to just match suffix of address.
https://datatracker.ietf.org/doc/html/rfc4787
https://tailscale.com/blog/how-nat-traversal-works