Comment by SoftTalker

5 days ago

Is there an obvious reason why it would not have worked to just say that all ipv4 addresses are ipv6 addresses with an implicit leading 96 zero bits?

This is already a thing in IPv6 pretty much. You can write applications IPv6-only and support IPv4 via IPv4-mapped addresses (::ffff:1.2.3.4 for the IPv4 1.2.3.4). The host still needs to be dualstacked for that to work though. In case the host is IPv6-only you can use NAT64 (or similar technologies), where the IPv4-space is embedded behind some other prefix, but the application just talks plain IPv6 and doesn't have to care too much what happens in the background.

I’ve asked both ChatGPT and other users and the consensus is “NO YOU CAN’T BECAUSE YOU’D HAVE TO REWRITE THE SOFTWARE”

As if IPv6 doesn’t require a full rewrite too. So basically, no there’s no reason. They just wanted to be edgy and use hexadecimal and they’ve ruined everything.

  • It's hard to believe there are people that think letters in an IP have a meaningful impact.

    "edgy"? Come on.

    And if they used decimal I bet the complaints they didn't use hex would be just as loud and just as certain, since an IP address in dotted decimal is 50% longer than in hex.

    On top of that, hex would make IPv4 a lot easier to use because of how subnets get optimized. Instead of constantly rounding to weird multiples of 8 or 16 or 32 you'd only have to deal with one hex digit at a time. And in most deployments you could skip the address math entirely by sizing your subnets 4 bits at a time: /16, /20, /24, /28.

That's in there. ::ffff:0:0/96 and 2002::/16 are for v4 addresses in different circumstances, but that doesn't address the issue of routing so there are capabilities like NAT64 that allow network operators to map their IPv4 networks via routers and it mostly works. There were exceptions, software that cares about lower level network functionality tend to break.

NAT64 works much better for 6->4 connection scenarios than vice versa, but 4->6 with specific connection pairs and careful split DNS is possible.