5 ms·
The big bottleneck is this: the vast majority of top-tier cloud providers (AWS, Azure, etc.) do not support IPv6 and seem completely uninterested in doing so. U
by api 11y ago
The big bottleneck is this: the vast majority of top-tier cloud providers (AWS, Azure, etc.) do not support IPv6 and seem completely uninterested in doing so. Until this changes I don't foresee a tipping point.
I really don't understand why this is. None of these are old systems. IPv6 existed when AWS was built. Were they really designed from the ground up without IPv6 support?
Of course I kind of know the answer. While most of hackerdom is pretty open to trying new things, most networking engineers are (in my experience) ultra ultra conservative and terrified of change. The majority of the network engineering community has dug in its heels like a stubborn mule at IPv6 and must be dragged grumbling into it.
- pixl97 11y ago>Were they really designed from the ground up without IPv6 support? Yup. It is simply amazing how many things I see devs push out that hard code badness (such as php ip2long, as an example). Intrusion detection that only will correctly resolve and send IPv4 to automatic firewall rules. Interfaces that truncate IPv6 addresses so information is lost. Who knows how many security problems are potentially added by this code that expects one thing and can get something else.
- api 11y agoA lot of it's just laziness. Perhaps we'd see more support if C included a built-in 128-bit type so IPv6 addresses could be shoved into a variable.
- kalessin 11y agoThat's what addrlen in all socket functions and struct sockaddr_storage are for?
- mprovost 11y agoYou've actually hit upon (part of) the answer right there. While IPv4 was designed around the (then) new 32 bit processors of the day, the committee that came up with v6 decided to ignore the underlying hardware reality. There's no corresponding type in C (or the underlying hardware, without going into SSE) that can store a v6 address natively. It just acts as a handbrake and makes it that much harder to implement. The question should be turned around, why didn't they design a protocol that could fit into a built-in type in C? After all, we've only just "run out" of v4 addresses about 20 years after it was first predicted to happen. Going to 64 bit would have kicked the can another few decades down the road, and could have led to a much faster implementation. You can't blame the "designers" of C (since there aren't any really, it's just the CPU manufacturers), it's the IETF that ignored the reality of hardware and programming languages.
- api 11y agoIP64 would have worked, and would have kicked the can much further than another few decades. If I were asked to invent IP 2.0 I'd have suggested just extending the V4 address space by another 32 bits and calling it a day. But I do see the advantage of big addresses. They give you room for meaningful cryptographic semantic information and stateless auto configuration, both of which are very valuable in big distributed systems and for security. So yeah, could have been simpler but not a big deal. Things like struct sockaddr_storage make programming it pretty easy too, but most older devs aren't familiar with them.
- zzalpha 11y agoIP64 would have worked, and would have kicked the can much further than another few decades. If I were asked to invent IP 2.0 I'd have suggested just extending the V4 address space by another 32 bits and calling it a day. And you'd still have to rewrite all software to take advantage of it. Everyone who thinks they could've come up with a better solution seems to conveniently forget that no solution would've both extended the address space while providing free backward compatibility with v4. Those are, quite literally, incompatible goals. Any hacky solution you do come up with (like, say, NAT64) applies to IPv6, as well. Meanwhile, IPv6 goes on to address a whole host of other issues, like the mess that is CIDR, simplified autoconfiguration, built in address randomization/privacy extensions, etc.
- mprovost 11y agoI don't think that's true - there were proposals that extended the address space in a backwards-compatible way but they were rejected in favour of a clean-slate approach that required rewriting everything and breaking existing networks.
- zzalpha 11y agoSpecifics, please. How do you extend the address space such that old devices in legacy addresses can communicate with new devices in an extended address space without NAT64-like hacks.
- teilo 11y agoThis explains why I have IPV6 at home via Mediacom, but not at work via Zayo Enterprise Networks.
- mentat 11y agoYou have to rebuild the whole SDN layer to support it and then test it sufficiently to go to production. It's a lot of work, not just "bigger addresses".
- api 11y agoWhy wasn't it built with this in mind to begin with? Nothing "SDN" is older than IPv6.