106 points porridgeraisin 22 hours ago 69 comments
Alifatisk 21 hours ago | parent
simoncion 20 hours ago | parent
Sesse__ 19 hours ago | parent
Heck, I would be happy if I could remove some IPv4 linknets from my IS-IS, myself, and just route using IPv6 link-local nexthops…
miyuru 19 hours ago | parent
yayachiken 19 hours ago | parent
Modern operating systems will gladly do CLAT, and old operating systems (or fussy users) can still get their IPv4 by just ignoring the new DHCPv4 option. But admins can finally stop keeping an IPv4 around for every potential client as most applications and users really don't care.
ianburrell 18 hours ago | parent
q3k 19 hours ago | parent
(this is one of those things that's really magical with OSPv3 - it just runs on IPv6 LL addresses, no need to set anything up other than set the link to be within some area and it just works! well, as much as they do with OSPF anyway.)
Polizeiposaune 15 hours ago | parent
Polizeiposaune 19 hours ago | parent
throw0101c 18 hours ago | parent
See §6, "Usage Examples": IPv4 over IPv6 Core, IPv4 VPN Unicast over IPv6 Core, IPv4 VPN Multicast over IPv6 Core.
* https://datatracker.ietf.org/doc/html/rfc8950#name-usage-exa...
So it's to facilitate legacy IPv4 usage when the rest of your infrastructure is IPv6.
petecooper 20 hours ago | parent
asdfsa32 19 hours ago | parent
IPv6 should have really just worked like NAT/IP over IP on IPv4 hardware and fast path on IPv6 hardware. But instead we got a monster that keeps growing with things like NAT64, 4over6, DS-Lite, MAP-E, and now BGP stopgaps and a growing
https://en.wikipedia.org/wiki/List_of_IPv6_transition_mechan...
wredcoll 19 hours ago | parent
This literally exists. There's no need for it to be part of the original specification because it's a completely separate concept.
There's nothing wrong with ipv6 other than the general human desire to not change things that "work" and for people who are currently powerful because they own a bunch of ipv4 to resist changes.
asdfsa32 19 hours ago | parent
By that token, IPv6 never had to exist at all then, but we know that is completely missing the point.
IPv6 is a privacy nightmare without privacy extensions. It is designed with "a stupid desire to pretend we can boil the ocean".
Close to 3 decades and we are barely scraping 50%: https://stats.labs.apnic.net/ipv6/
boredatoms 19 hours ago | parent
The actual gap is the mess of mixing/transitioning, and it wasnt planned properly in the last 30years
asdfsa32 19 hours ago | parent
The issue isn't that it wasn't planned properly, the issue is that the real world wasn't taken into consideration by people who either worked for the likes of Google who were aching for a globally unique identifier per device or just delusional about how much we can change in real world.
throw0101c 18 hours ago | parent
As predicted:
We believe that it is not possible to have a "flag-day" form of
transition in which all hosts and routers must change over at
once. The size, complexity, and distributed administration of the
Internet make such a cutover impossible.
Rather, IPng will need to co-exist with IPv4 for some period of
time. There are a number of ways to achieve this co-existence
such as requiring hosts to support two stacks, converting between
protocols, or using backward compatible extensions to IPv4. Each
scheme has its strengths and weaknesses, which have to be weighed.
Furthermore, we note that, in all probability, there will be IPv4
hosts on the Internet effectively forever. IPng must provide
mechanisms to allow these hosts to communicate, even after IPng
has become the dominant network layer protocol in the Internet.
* https://datatracker.ietf.org/doc/html/rfc1726#section-5.5Creating an IPng was always going to be complicated:
So it's a matter of mathematical and physical fact that to expand
the address size, you must change the protocol, and that means
[three] things immediately:
You have to change the version number.
You have to add new code to handle the new version.
[…]
You need a coexistence technique so that updated systems,
with the new protocol, can connect to old systems that know
nothing of the new protocol.
Two minutes of thought show that this third requirement has only
two solutions:
(3A) Dual stack, in which the new machines speak both
the old (IPv4) and new (IPng) protocol.
(3B) Translation, in which something translates addresses
between the old and new protocols.
* https://github.com/becarpenter/misc/blob/main/why6why.mdwredcoll 5 hours ago | parent
All this complaining and not so much as a single hint or even belief that there's a better solution.
I suppose we could read into the complaint some kind of faith that one does exist, but since nobody has found it yet, the faith is a little uncompelling so far.
asdfsa32 4 hours ago | parent
The problem with IPv6 apologists is that they're ignoring reality and just crying "only if everyone switched it would be fine."
craftkiller 17 hours ago | parent
Privacy extensions are enabled by default on every major operating system.
tredre3 19 hours ago | parent
The unfortunate reality is that technology exists to serve us. If humans don't want to use it, it means that your technology is wrong. End of story. It doesn't matter if you (or any of us) think it's elegant and beautifully designed.
orangeboats 18 hours ago | parent
It's like declaring SSL/TLS dead in 2012 because some websites were not using it. (Yes, I remember the dark times when even authentication data was transmitted over plain text.)
craftkiller 17 hours ago | parent
wredcoll 5 hours ago | parent
Turns out its hard to get people to change their own habits to help other people.
wredcoll 5 hours ago | parent
There's no way to design a technical solution to a social/human problem at ipv4 shortage is a human problem.
People have spent literally the last 40 years trying to come up with a solution "better than ipv6" and NOBODY HAS. Does that tell you anything?
superchicken099 18 hours ago | parent
orangeboats 18 hours ago | parent
Takes on Hacker News can truly be wild sometimes.
I certainly don't recall being able to use DP on a VGA monitor without some sort of adapter!
asdfsa32 17 hours ago | parent
wredcoll 5 hours ago | parent
Do you think supporting dp is as easy as just slapping a 50 cent port on the side of the display??
> but the point is that the problem with IPv6 is not just that it suffers from bad design on merit
It doesn't.
> instead we got network discovery and globally unique cookies as a bundle deal, with a whole lot of other crap.
How does any of this apply to people not replacing hardware that is ipv4 only?
asdfsa32 4 hours ago | parent
But to answer your question, no, supporting dp is not as easy as just slapping a 50 cent port, but it also doesn't make things worst in unrelated areas. That is the point you seem to gloss over with IPv6. It is an ugly over engineered mess.
cyberax 17 hours ago | parent
Sweet summer child...
There's EVERYTHING wrong with IPv6. It's a recursively bad protocol. From the basic header design (extension headers, wtf) to the "human management" layer ("why should we deploy IPv6 if it actively _breaks_ stuff?").
As an example, try to design a standards-compliant IPv6 network where you can reliably print from an Android phone if your Internet connection goes down and the router withdraws the prefix. It's trivial with IPv4 and _impossible_ with IPv6.
craftkiller 17 hours ago | parent
My router advertises both the public prefix from my ISP and a ULA prefix for internal LAN connections (essentially the IPv6 equivalent to RFC-1918). This gives me stable local addresses that do not change and work without public internet access.
cyberax 16 hours ago | parent
You'd think so, but you'd be wrong. If you have a GUA and a ULA, and the printer has both a GUA and a ULA, then your host is going to prefer the GUA when connecting to the printer.
So when a router withdraws a prefix, it's possible for your computer to still have a (stale) GUA while the printer only has a ULA. Whoops, and your printing is broken.
There is an RFC in review that would fix this: https://www.ietf.org/archive/id/draft-ietf-6man-rfc6724-upda... . It'll likely be approved in 2027, so you'd be able to use ULAs some time in the 2030-s once it trickles down.
craftkiller 16 hours ago | parent
(Admittedly I haven't had a printer for over a decade and I have never printed from a phone, so maybe I am missing something.)
cyberax 15 hours ago | parent
I used a printer as an example of a local device, it can be any other device: a smart lightbulb, a TV you're casting to, a SIP phone, etc. And I used Android as an example of a device where you can't easily change the source address selection preference.
What is more shocking is that this problem has been known for three decades, yet somehow nobody cared enough to fix it. And it's far from the only issue.
clownstrikelol 15 hours ago | parent
Have the router issue ULAs only and let the router do stateless NPT (network prefix translation) only.
Done, works great. Doesn’t matter what your internet connection is doing.
Yes, your local devices will use the ULA to attempt to connect to Internet destinations if that’s the only v6 address they have. It works fine.
craftkiller 15 hours ago | parent
clownstrikelol 12 hours ago | parent
There would still need to be some form of global address discovery, but that’s a much simpler problem to solve in nearly all scenarios.
You’d still have the issue of whether the firewalls in between you and the remote end allow that connection through in the first place though.
cyberax 14 hours ago | parent
This is an option, but ULAs are ranked _below_ IPv4 in address selection preferences. So your network will essentially operate in IPv4 mode: https://www.ietf.org/archive/id/draft-buraglio-6man-rfc6724-...
Moreover, some devices will refuse to connect to IPv6 GUA with ULA addresses altogether.
> Yes, your local devices will use the ULA to attempt to connect to Internet destinations if that’s the only v6 address they have. It works fine.
You're half right. The devices will work fine because they won't be using IPv6 at all.
As I said, IPv6 is a recursive WTF.
How do I know that? I made a personal goal to create a dualstack demo network that is fully standards compliant and supports the bare minimum functionality that I would expect from a SOHO network. So far, I keep finding new and exciting breakages on every level.
clownstrikelol 12 hours ago | parent
If they don’t have an v4 address then they don’t have that problem.
NPT solves the issue of your devices losing global addresses.
Ideally you wouldn’t need NPT, and you should have an RA for the ULA and an RA for the GUA and then use the ULA locally... but then you end up with a different problem (and why I didn’t do it at home). Doing this means you have little control about which upstream ISP gets chosen. I have two ISPs at home, and router will failover between them; however, even though I have PI IP space, finding a residential ISP that will let me use it is nearly impossible (good luck finding someone there who even knows what BGP is).
So the tradeoff here for me is not letting my devices have a GUA so that my router can control outbound traffic policy completely (like it can with v4), and just NPT it to what I need it to be externally. Works great (but again, if you only have one global prefix you need to deal with, separate RAs for ULA/GUA do work better).
> You're half right. The devices will work fine because they won't be using IPv6 at all.
Not if they don’t have an IPv4 address to begin with!
You can also coax your local DNS resolver to... just not let A records through if the name also has an AAAA record.
Even better than that would be out of the box like magic 464XLAT in home routers / ISPs. As it is 464XLAT is not the nicest thing in the world to configure; however, it does work very well, and does allow for a network to be entirely v6 except at the very edge. Heck, I’d love it if enterprise gear had “like magic” 464XLAT too. Would make a lot of things easier.
> How do I know that? I made a personal goal to create a dualstack demo network that is fully standards compliant and supports the bare minimum functionality that I would expect from a SOHO network. So far, I keep finding new and exciting breakages on every level.
If you really want to accomplish that, completely forget about trying to make dual stack work throughout the network. It’s an exercise in frustration, mostly in needing to duplicate config in v4 and v6, and you will inevitably have them end up out of sync with each other.
464XLAT is good standard here, DNS64 with a NAT64 does also work... for things with names at least.
One of the other comments around here about not providing a “migration plan” does have a lot of truth to it. If, 30 years ago, they envisioned 464XLAT and made it part of the default features a v6 capable router should have, I bet v4 would be long dead (or nearly there) by now.
cyberax 12 hours ago | parent
But anyway, ULA vs. GUA preference is mostly an academic question. In practice, you can just squat on an unused IPv6 range and avoid the precedence issue.
The deeper problem is that the solution to IPv6 problems appears to be NAT. And we're switching from IPv4 to avoid NAT. And you'll need a stateful firewall for IPv6 anyway (it's a recommendation for SOHO, there's an RFC for it, too lazy to dig it up now).
I'm stubborn, so my house now has its own ASN, a PI block, and a DIA connection to two ISPs. Which is the only NAT-less way to achieve my goal.
> One of the other comments around here about not providing a “migration plan” does have a lot of truth to it. If, 30 years ago, they envisioned 464XLAT and made it part of the default features a v6 capable router should have, I bet v4 would be long dead (or nearly there) by now.
464XLAT (and its evil twin IPv6 RD) were envisioned in the early 2000-s. Along with about 20 various "migration plans". They all missed the point, though. Some people are still missing it.
The key to migration has never been some form of tunneling. The key to migration is making IPv4 and IPv6 coexist side-by-side, in other words, the Happy Eyeballs algorithm. It should have been reified to the TCP level in the late 90-s. So that applications could just do: `connect("somehost.com", 80)` and transparently get either an IPv4 or IPv6 connection, depending on whichever one works better locally. Other operational headaches like the ULA priority would have surfaced much earlier then.
adrian_b 16 hours ago | parent
cyberax 16 hours ago | parent
As a consequence, IPv6 with extension headers are just dropped by routers in the public Internet.
Dagger2 12 hours ago | parent
With one exception, extension headers are not examined or processed
by any node along a packet's delivery path, until the packet reaches
the node (or each of the set of nodes, in the case of multicast)
identified in the Destination Address field of the IPv6 header.
That seems like the opposite of needing to know all possible extension headers in order to route a packet.cyberax 11 hours ago | parent
The issue is that the extension headers can be used for nefarious purposes, such as hop-by-hop routing. So your fast hardware-based border routers might be EH-agnostic and transmit packets to your core network. And then a helpful Linux box that implements all of IPv6 in software would reflect the traffic right past your firewall.
Implementing the EHs in hardware is expensive, as you need to do conditional checks. So routers just drop them.
icedchai 16 hours ago | parent
1) I can count on one hand the number of times my Internet connection has gone down in the past 5 years.
2) I can count on zero hands the number of times I've tried to print from a phone, ever.
cyberax 16 hours ago | parent
But you want a more complex challenge? Here you go!
You have a small business office that has two Internet uplinks for redundancy. You want to balance the load across them and failover broken links.
This can be done with literally zero setup with IPv4.
icedchai 13 hours ago | parent
toast0 12 hours ago | parent
Good times!
clownstrikelol 12 hours ago | parent
When v6 was “invented” I believe they thought “everyone” would have PI addresses, as was (relatively) common 30 years ago.
If everyone has their own PI space, and used BGP with their ISPs this would also be “zero setup” with v6 as that’s the entire point of BGP and PI addresses.
It was a definite failure of imagination that they did not think of how this would work if you don’t control your own IP space.
If you have ISPs you can peer with over BGP and your own PI IP space this does “just work” as you’d expect. The same way it “just works” with v4 in a NATless world.
A lot of the things that “just work” in v4 are really just NAT sweeping the rough edges under the rug. The same problems exist in v4, but don’t get seen in practice as local / global addresses are effectively always different on your network (unless you’re lucky enough to be a legacy allocation that has an /8 of v4 I suppose).
If you enforce that same “separation” in v6 (with NPT, or NAT) surprise the “problems” also go away, like they do in v4.
cyberax 12 hours ago | parent
The needs for dual-homing and failover were completely glossed over in the IPv6 design, and the IETF has not acknowledged these needs even to this day.
icedchai 9 hours ago | parent
It's the same with IPv4, by the way. An ISP can assign you a block from their allocation, you can still announce it with your own ASN as long as it doesn't violate the issuing provider's policy, you're still a customer, etc.
cyberax 8 hours ago | parent
And it's more of the "it's the thought that counts" thing. Multihoming was considered to be something rather exotic and mostly a requirement for ISPs or large companies.
q3k 19 hours ago | parent
asdfsa32 17 hours ago | parent
Isomer 19 hours ago | parent
v4 route with v6 next hop? Seems reasonable. v6 route with v4 next hop? Why not? v4/v6 route with a mac address as a next hop? Trivial. v4/v6 route with a DNS next hop? Could be recursively resolved to a v4/v6 address, and then potentially recursively resolved to a MAC address. I wouldn't recommend it, but sure. v4/v6 route with a netbeui name as a next hop? You appear to be mad, but I'm not going to be the one to stand in your way.
q3k 19 hours ago | parent
(Keep in mind that the setup described here has work for years now.)
throw0101c 18 hours ago | parent
Which Layer 2? Ethernet? Token Ring? Infiniband? ATM? Fibre Channel?
Both IPv4 and IPv6 were created when there were multiple Layer 2 protocols in use. That's why where was a completely different protocol to handle Layer 2 to 3 mappings (often itself referred to as a Layer "2.5" one):
gopalv 16 hours ago | parent
This would turn an internal IPv4 into an externally routed IPv6, which is a neat trick which would replace all the NAT madness that we do run today.
I'd like nothing more than the ability to run ipv4 internally indefinitely, especially with things like mesh networks where the ACLs are carried over from ages ago (2018 doesn't feel that long ago, but it is).
Most of the time I don't even need a route to a direct connection, I just need legible flow logs out of a kubernetes platform.
imoverclocked 15 hours ago | parent
… proceeds to traceroute with IPv4 addresses showing up for each router…
It’s neat but still requires IPv4 to be configured on the router? What am I missing?
Sesse__ 14 hours ago | parent
You can also forego the IPv4 addresses entirely, but then traceroute (and presumably also stuff like Path MTU Discovery; have consistent MTUs!) won't work. traceroute is often broken for entirely different reasons, though.
billpg 14 hours ago | parent
(Short version: IPv6-only networks can provide a gateway for IPv4-only clients and advertise it via reverse DNS.)
SixGate has an interesting contrast with this RFC. RFC8950 removes IPv4 from the network core while preserving IPv4 reachability, whereas SixGate removes IPv4 from the service side while preserving reachability for IPv4-only clients.
In both cases, IPv4 survives as a compatibility layer rather than a fundamental requirement. The difference is that RFC8950 is aimed at network operators, while SixGate is aimed at the last remaining IPv4-only users.
In both cases, the goal is the same. Turn IPv4 from a requirement into an optional compatibility feature.