29 ms·
Can we go back in time and hit the designers of IPv6 upside the head? The decision not to make IPv6 backwards compatible, the belief that a beautiful new standa
by bradley13 3y ago
Can we go back in time and hit the designers of IPv6 upside the head? The decision not to make IPv6 backwards compatible, the belief that a beautiful new standard could magically replace something already so widespread...
"Naive" is an inadequate word. We are still futzing with the transition 3 decades later, with no end in sight. Grrr, grumble...
- crest 3y agoDeploy IPv6 and stop grumbling because all the workarounds you spend decades perfecting aren't required anymore.
- welterde 3y agoYou have to go back further in time and hit the designers of IPv4 on the head for not making it forward compatible. IPv6 is as backward compatible as is possible within this constraint. You can embed IPv4 space within IPv6, there is NAT64, tunneling IPv6 over IPv4 and many other transition technologies. It's not possible to design a protocol that is any more backwards-compatible.
- kristopolous 3y agoVint Cerf has called the decision of it being 32 bits as silly and arbitrary, like having a car odometer with 40 digits. If he had pushed for more, he thought nobody would have taken him seriously. The idea of 32 becoming scarce was laughable. Also the complaint about ipv6 isn't a technical one, it's a usability one. Extending it to 48 bits would have been easy enough for people - like international calling. Those 16 bits could be in hex, as a convention, so something like "(4EA7) 8.8.4.2". However, I've constantly heard that the 128 bit hexadecimal with colons just looks too complicated and inconvenient. You might be brilliant and find it easy but to a lot of people ipv6 addresses look like cryptographic hashes
- nash 3y agoOnly network engineers should see or care about IP addresses. The fact IPv6 addresses use colons is why people don't use IPv6 is the worst take I've ever heard.
- kristopolous 3y agoyou've /never/ heard anyone call ipv6 long, confusing, and complicated? I've basically /only/ heard people say that. This is probably because the idealized world of "only network engineers" is leaky. Programmers, sysadmins, people trying to get their network printer to work, non-specialists have to interface with network addresses constantly. Saying they shouldn't is not a description of reality. Not everyone who needs to set up or diagnose a network do so as a career path. Almost all hardware and software has supported ipv6 for many many years. The humans using it are the ones that shut it off or disable it. Unless you address the human behavior of why that is, this problem will not be addressed. I claim there needs to be a friendlier, casual interface that makes people's lives easier. It can be a crude kneecapped sheen so long as it addresses the needs of the general user. Then they'll use ipv6, not for ideology or virtue reasons about the commons but because it makes their lives easier
- avereveard 3y agoI've almost never heard anyone in the general population use ip addresses, with the notable exception of gamers, but that's fading away too now that all major games come with friends, parties and deep linking support I don't really understand the use case for typing up addresses either, copy pasting is going to be more precise, and if one can't read 8 quartet of letters one shouldn't be near networking equipment either. Heck ibans are about as complex and the general population is coping just fine
- kristopolous 3y agoright, but this isn't theoretical. ipv6 was finalized 25 years ago and global adoption is around 1/3. There's something seriously wrong and it's not that 2/3s of the world are using Windows Me and 20+ year old devices that don't support it. It's human and behavior driven and addressing that is a matter of packaging, process, promotion, product, presentation... all those marketing ps.
- welterde 3y agoIf one has to go through the pain of changing everything why not make sure one doesn't have to do it again any time soon? Also having 64-bit for the network address (and 64-bit for the device) does have certain benefits that make it easier to use than shorter addresses in practice for a single entity, since one can hierarchically model the network and do things like <my_network>:<site-id>:<vlan>. So even in absence of DNS one doesn't quite have to remember 128-bit of information for every device.
- lazystar 3y ago> why not make sure one doesn't have to do it again any time soon? the pyramids in egypt took over a lifetime to build; a marvel of engineering, as theyve lasted thousands of years and noones had to build replacement pyramids. the problem, though, is noone in todays culture needs pyramids.
- deleted 3y ago[deleted]
- tsimionescu 3y agoBut ever since privacy extensions, that's not how IPv6 is allocated, right? Each individual system is supposed to get a /64. Your household should actually have a /56 or something crazy like that, which few ISPs actually do. SLAAC doesn't even work if it doesn't have it's own /64 per host, I believe.
- welterde 3y agoIt is. A typical enterprise might get allocated a /32, which gives them 32-bit to nicely design their network and give 64-bit to each individual network where devices are connected. A typical ISP will get allocated a much larger allocation like a /20, which allows them to allocate a /56 for each of their customers while still having a few bits to play with. But all starting with the same <isp_network> prefix. With IPv4 you will have many separate fragmented networks that have no numbers in common. And this will only get worse over time.
- 3y ago
- k4ch0w 3y agoI think this is absolutely one of the reasons. Addresses are very hard to remember in ipv6. You usually just have to remember the first 3 parts of ipv4 and then change the last digit based on the host you want. IPv6 I know it has shorthand but still it doesn’t register in my brain the same way.
- Symbiote 3y agoWhat alternative do you suggest for making the IP addresses longer (so more people can connect computers to the Internet) while keeping them equally memorable? The most recent anonymous editor to the IPv6 address article on Wikipedia has address "2602:FBF6:0:0:30C6:7069:6DF0:FD24". An IPv4-like notation of that would be "9730.64502.0.0.12486.28777.28144.64804".
- butlerm 3y agoThe problem is that adding so many bits to IPv6 addresses, by way of intended integration of the EUI / MAC address in particular is not actually necessary and is a bit of a mistake. As a rule, no one even wants their MAC address propagated across the entire Internet, nor to be registered in DNS either. There are some technical advantages to doing things that way of course, but they are arguably rather outweighed by the administrative disadvantages. The protocol could have been designed so that typical layer 3 addresses were not much longer, nor harder to type or remember than IPv4 addresses are.
- ianburrell 3y agoIPv6 having 128-bit is a huge advantage for transition. NAT64 shoves the 32-bit IPv4 address into the host field. MAP-T shoves the source and destination IPv4 addresses and ports into IPv6 address. This makes IPv4-IPv6-IPv4 NAT possible. Which means it is possible to run IPv6-only network with IPv4 at on the customer network and edges.
- butlerm 3y agoThere are certainly advantages as you point out, but just because you have 128 bit addresses does not mean it is convenient for 64 bits of that to be filled with semi-random data.
- commandersaki 3y agoI don't know why Vint Cerf should or want to take the blame for IP address exhaustion. We knew about the problem for 30+ years, we had a committee in charge of selecting IPng to mitigate such a disaster, we selected IPv6 as IPng, and then we ran out of IP address space. The only reason I could see why Vint Cerf is to have any blame is that he firmly agreed on a clean slate Internet protocol that didn't give any consideration towards a transition plan. Yes that's how the events unfolded, but that doesn't make him some martyr.
- hn_throwaway_99 3y ago> IPv6 is as backward compatible as is possible within this constraint. Yikes, couldn't disagree with that more. There are a ton of things that ipv6 designers could have done to make the transition much easier. This is a (now quite old) blog post that is my "go to" that explains a lot of the problems with ipv6: https://cr.yp.to/djbdns/ipv6mess.html https://cr.yp.to/djbdns/ipv6mess.html FWIW I couldn't find the link to that post until finding it on one of the comments here, https://news.ycombinator.com/item?id=33894933 https://news.ycombinator.com/item?id=33894933 . That whole thread has lots of good commentary. I still don't understand how people can defend ipv6. I remember the "we better get ready to switch to ipv6" noise a quarter century ago when I started my career. And yet we're still talking about how v4 addresses are worth billions. Ipv6 has been an unmitigated disaster. The original architects should have "the perfect is the enemy of the good" forcibly tattooed on their foreheads.
- welterde 3y agoThat document has been going around for ages and is based on the same fundamental misunderstanding that one somehow can extend IPv4 in a way somehow, but remain compatible with IPv4-only clients. This is just not possible. Most of the other criticism is not relevant anymore, since we now have a lot of transition technologies that allow IPv6 clients to interoperate with IPv4 servers (this way around is possible since IPv6 is a superset of IPv4). Overall we are now much further into the IPv6 migration than djb ever envisioned.
- j16sdiz 3y agoIPv6 is adding lots of complexity IPv4 never have to deal with. SLACC, interface-specific link-local address both look good in paper but cause lots real life headache. When it works, it works; when it don't, you have to unlearn and relearn everything network before you could possibly understand the problem, let alone fixing them.
- cbsmith 3y agoYou can use DHCPv6 instead of SLAAC. Plenty of people seem to find SLAAC preferable... and interface-specific link-local addresses are key to making it work so...
- yardstick 3y agoNAT64? No what we needed was NAT66, and it took over a decade after IPv4 to deliver this. Because the IPv6 advocates were too opinionated on exactly how IPv6 should work. And since when has the world even agreed to anything even remotely complicated without trying to change things up?
- dale_glass 3y agoNo, NAT needs to be shot into the sun. It's absolutely not needed under IPv6.
- tsimionescu 3y agoI some ideal IPv6-only world, perhaps. But when running a mixed stack like the entire world is right now, it's actually crucial.
- forty 3y agoWhy? It seems useful to hide details of your private network from everyone
- dale_glass 3y agoYou can do that with the privacy extensions. Plus on IPv6 you should get enough address space that it makes no sense to run a scan against anyone. On IPv4 or NAT there's just 65535 ports to check. On a /48 with privacy extensions there's 2^80 addresses to go through, which from an external point of view don't remain constant. You can't even ping all of that.
- forty 3y agoAs a end user, my inbound ports are all closed, and I don't care about scanning. But I don't see why everyone should be able to differentiate traffic from my phone from traffic from my laptop so I'm happy that they use the same public IP to connect outside.
- throw0101c 3y ago> You have to go back further in time and hit the designers of IPv4 on the head for not making it forward compatible. IPv4 was designed for a handful of research institutions. It is not the fault of the designers that it "escaped" the lab into the 'real world'.
- csomar 3y agoYeah, I never got any of the articles about how well IPv6 is designed. Any article will get me confused about whether an IPv6 address is a range, a computer, a router, or something that points to a resource inside my computer. (I guess it's all of these things?). But the biggest problems of all: You can write an IPv4 address on a phone call. You might be even able to remember it. Not the case for IPv6, you need to be an expert in Hex and remember the specs design. I can't do it as a developer, I don't think normal people will be able to do it either. IPv4 is useful because it's just a number (at least from a person's perspective). It works. Just add a letter to it and then you have x26 the capacity.
- Macha 3y agoThe amount of "account numbers" I have that are in fact alphanumeric with various services suggests that these companies (utility companies, banks, etc.) don't consider this a problem.
- rvnx 3y agoOne real problem is the friendliness of the numbers allocation. IPv6 had one job: make more addresses available while keeping the addresses easy to manipulate, and it failed at that. "Well-known" NAT64 prefix: 64:ff9b:: Everything is so confusing in numbering and addressing: http://www.gestioip.net/cgi-bin/subnet_calculator.cgi?ip=0064:ff9b:0000:0000:0000:0000:18.52.86.120&BM=96&ip_version=v6 http://www.gestioip.net/cgi-bin/subnet_calculator.cgi?ip=006... = If problem was allocation, we could have added one number in front: 123.114.123.130.200 Now for backward compatibility: If your device, operating system and application are compatible with IPv6, congratulations, you receive 123.114.123.130.200 and talk natively in IPv6. Otherwise, if you are on an IPv4 device, you receive only a portion of the IP address but from a fake IP starting with 250.x.x.x inetnum: 250.0.0.0 - 250.255.255.255 organisation: Future use status: RESERVED Technically, in the IP packets, we would have added "IPv6 address", and called the current field "Legacy/backward-compatibility IPv4 address". For example, your local home/ISP router can send a truncated version of the IP address: 250.123.130.200 and then it's the responsibility of this translation router to remember the routes at least for some time (and there is always possibility to hardcode routes if needed). = A bit like Stateful NAT64 or "SIIT-DC: Stateless IP/ICMP Translation for IPv6 Data Center Environments" or "464XLAT: Combination of Stateful and Stateless Translation" But now, with all these millions of standards it's such a productivity loss for any tech working in networking. Similarly when switching CPUs over from 32 bits to 64 bits, the idea was to change the size of words stored in memory, not change the size of words and change the alphabet in use.
- flomo 3y ago> Can we go back in time and hit the designers of IPv6 upside the head? Okay we are back in 1992 and are wearing a mullet. 'The Internet' is still a relatively small number of mostly university and government sites, and is barely used for anything important, so a flag day seems pretty feasible.
- CodeWriter23 3y agoDamn all those "more than anyone could possibly need" guys
- sfeng 3y agoI personally would have added one additional byte, but when it is written I would have added two bits to each of the original bytes. That has the advantage of making each segment 0-1023. I would have reserved the 1000-1024 values, such that IP addresses look the same visually: 476.188.049.772, but the available number is increased by a factor of more than 200. Maybe it’s not too late to release IPv5…
- jiggawatts 3y agoThese arguments always boil down to these two: "Please just try to fit more than 4 billion numbers into 4 bytes" -- this is mathematically impossible. "Just extend the address size" -- this is an entirely new protocol by the definition of IPv4, which uses fixed-size addresses. The reason for the slow IPv6 adoption is that there was no financial or business pressure. While IPv4 is ubiquitous, nobody individually feels a need to migrate to IPv6. E.g.: How many customers would you gain by supporting IPv6? Generally zero. That doesn't sell well internally when the network team is asking for a budget. The IPv6 transition will be like a bankruptcy: very slowly, slowly, then all of a sudden. The sudden bit will happen when IPv4 address will cost $1K to $10K annually. At that point, customers will be reaching those IPv4 endpoints via three layers of proxies or NAT gateways, and IPv6 will be noticeably faster, more reliable, and free.
- dannyw 3y agoFitting more than 4B numbers into 4 bytes is mathematically impossible, but building a backwards compatible and easier to integrate standard may not be. Take USB for example. The capabilities of USB 3.1, 3.0, 2.0 is impossible to achieve for USB 1.0. So is high-speed charging. However, the end-user experience is generally pleasant, nitpicks around some of USB-IF's specific choices aside.
- jiggawatts 3y agoThe USB protocols over the wire are generally not compatible between versions, especially at the lowest levels (signalling). That's the definition of how more bandwidth can be squeezed into the same wires. The signalling layer changed between versions. The "end-user experience" IPv6 equivalent of the USB version transition is that a person browsing to "www.google.com" has no clue whatsoever that it actually went via IPv6 instead of IPv4. Just like with USB 1 to 4, IPv6 goes down the same cables and works the same at the application layer. Some changes occurred, but changes are mandatory for things to change. You're asking for USB 4 to be magically "the same" as USB 1.0 while sending tens of gigabits over the wires -- not for the end users -- but for the lazy electrical engineers that can't be bothered to update their designs!
- 3y ago
- hesnuts 3y agoIPv6 is so awful. We need a re-do.
- vaylian 3y agoIPv5 tried to stick to 32 bits. That didn't work out: https://www.lifewire.com/what-happened-to-ipv5-3971327 https://www.lifewire.com/what-happened-to-ipv5-3971327
- oblio 3y agoAlso, correct me if I'm wrong, but didn't they make the smallest subnet have 64k addresses? I remember a networking teacher say that by that point just ARP traffic will have long killed the subnet.
- globular-toast 3y agoThings don't need to be backwards compatible, they just need to have a financial incentive attached. That could either come from the market or from the government. There's a cost to making things backwards compatible and this can be avoided if we just don't. There are countless examples of technologies that weren't backwards compatible but happened anyway. For IPv6 the problem is the incentive isn't coming from the anywhere.
- emilfihlman 3y agoAbsolutely this. IPv6 is when engineering doesn't face reality and operates on "we know better" standards, when they actually don't know better. I actually feel antagonist towards the designers for it.
- codegeek 3y agoIPV6 adoption reminds of the whole Python 2=>3 fiasco except it is much much worse.
- raincole 3y agoYes, if we hit our heads hard enough we can come up with a way to magically put more than 4B addresses in 32 bits. Math and logic don't matter in the real world, only head-hitting does.
- drchiu 3y agoEngineers/designers never assume their ideas aren’t as clever as it appears in their minds.
- ilyt 3y agoIPv4 was made impossible to extend like that. If anyone go bonk them. For making it 4 byte in the first place...