> R1 & R2 are IPv6 only with no IPv4 anywhere on their interfaces (but carry IPv4 routes in their table)
… 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?
Isomer [3 hidden]5 mins ago
I don't understand why you can't have any protocol that can (potentially recursively) resolve to a layer 2 address as a next hop.
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.
throw0101c [3 hidden]5 mins ago
> I don't understand why you can't have any protocol that can (potentially recursively) resolve to a layer 2 address as a next hop.
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):
> They still do things the old way but Backbone can run IPv6 only at its core.
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.
Alifatisk [3 hidden]5 mins ago
I guess the point with this to facilitate usage of IPv6.
Sesse__ [3 hidden]5 mins ago
More like, the point is to facilitate turning off IPv4. It's much nicer to manage a single-stacked backbone, but you still need IPv4 out in the edges somehow (for many cases, anyway). I guess this is another way to do that.
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…
throw0101c [3 hidden]5 mins ago
> I guess the point with this to facilitate usage of IPv6.
See §6, "Usage Examples": IPv4 over IPv6 Core, IPv4 VPN Unicast over IPv6 Core, IPv4 VPN Multicast over IPv6 Core.
So it's to facilitate legacy IPv4 usage when the rest of your infrastructure is IPv6.
simoncion [3 hidden]5 mins ago
The Abstract and Introduction sections of the RFC [0] explain what the point of this is. The "Changes Compared to RFC 5549" section is especially good reading, as it both alerts you to the fact that this is an update to a seventeen year old RFC and explains what changed in the update.
It's to facilitate use of IPv4 in an IPv6-mostly network.
miyuru [3 hidden]5 mins ago
Multiple ISPs in my country have already deployed IPv6 with NAT64 support, and with CLAT support now available, I think IPv6-only networks will be the next step for most ISPs.
yayachiken [3 hidden]5 mins ago
IPv6 mostly (RFC 8925) is a rather nice migration option.
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 [3 hidden]5 mins ago
There is also MAP-T which basically does CGNAT with IPv6-only provider network. The local network gets IPv4, the router translates to IPv6 which goes to stateless IPv4 NAT proxy. The advantage is that the proxy is stateless unlike CGNAT. The downside is requires custom code on the router.
q3k [3 hidden]5 mins ago
It's also just nice to not need numbered point-to-point links (ie. just use IPv6 LL).
(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 [3 hidden]5 mins ago
A router still needs a non-link-local address in order to be able to send ICMP errors off-link -- which you're going to want if you want sensible output from traceroute..
frantathefranta [3 hidden]5 mins ago
There is an RFC for ICMP extensions that fix this, RFC 5837.
ozereray1 [3 hidden]5 mins ago
[flagged]
esseph [3 hidden]5 mins ago
Your comment was flagged, I vouched it
equinoxnemesis [3 hidden]5 mins ago
It's AI-generated.
esseph [3 hidden]5 mins ago
Uh, why do you think that?
Edit: After reviewing their post history it makes a bit more sense.
asdfsa32 [3 hidden]5 mins ago
A few more RFCs, a few more IP over IP bandaid, a few more extensions, and we will get there. By God IPv6 is a stain in the history of computer science.
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
> IPv6 should have really just worked like NAT/IP over IP on IPv4 hardware
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.
superchicken099 [3 hidden]5 mins ago
If your solution is that “if everyone just used IPv6 we wouldn’t have this problem” then it’s not a solution. Standards like USB, Wi-Fi, HDMI, DP, etc. are so successful because they are by out-of-the-box backwards compatible with their predecessors.
orangeboats [3 hidden]5 mins ago
>HDMI, DP, etc. are so successful because they are by out-of-the-box backwards compatible with their predecessors
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 [3 hidden]5 mins ago
You missed the part where DP didn't come with it's own Audio Codec and GPU architecture. Of course, I am exaggerating, but the point is that the problem with IPv6 is not just that it suffers from bad design on merit, it also critically suffers from scope creep. We wanted a larger IP space, instead we got network discovery and globally unique cookies as a bundle deal, with a whole lot of other crap.
tredre3 [3 hidden]5 mins ago
> There's nothing wrong with ipv6 other than [long list of human things]
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 [3 hidden]5 mins ago
Declaring a technology-in-transition dead is truly a take.
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 [3 hidden]5 mins ago
My first job out of college passed the authentication over SSL/TLS, but the page that *contained* the login form? That was sent in the clear.... Truly dark days.
asdfsa32 [3 hidden]5 mins ago
> This literally exists. There's no need for it to be part of the original specification because it's a completely separate concept.
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".
Running a IPv6-only network that doesn’t interact with IPv4 networks in any way is great and it works.
The actual gap is the mess of mixing/transitioning, and it wasnt planned properly in the last 30years
asdfsa32 [3 hidden]5 mins ago
Yeah, that is the whole point. It was never going to be a clean cut. "Works in my lab" isn't good enough for real world.
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 [3 hidden]5 mins ago
> Yeah, that is the whole point. It was never going to be a clean cut.
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.
Creating 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.
Privacy extensions are enabled by default on every major operating system.
cyberax [3 hidden]5 mins ago
> There's nothing wrong with ipv6
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 [3 hidden]5 mins ago
> if your Internet connection goes down and the router withdraws the prefix
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.
> My router advertises both the public prefix from my ISP and a ULA prefix for internal LAN connections
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.
That RFC does look like a nice improvement! Until then, since both devices have a ULA address, wouldn't simply deleting the printer from your phone/computer and re-adding it resolve the issue? Doing it when your public internet is down would probably even be best to ensure you're getting the ULA instead of GUA, thereby avoiding this issue entirely in the future.
(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 [3 hidden]5 mins ago
In practice, nobody uses IPv6 for printers, so it'll work just fine over IPv4.
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 [3 hidden]5 mins ago
Ditch advertising public addresses to local devices at all.
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.
cyberax [3 hidden]5 mins ago
> Have the router issue ULAs only and let the router do stateless NPT (network prefix translation) only.
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.
craftkiller [3 hidden]5 mins ago
While this is going to be fine for many users, wouldn't this continue our reliance on STUN for UDP hole punching? I'd certainly prefer a world where peer-to-peer networking is less reliant on work-arounds created for the NAT era.
adrian_b [3 hidden]5 mins ago
The extension headers are fine, because they frequently are not needed, so the fact that they are optional allows the IPv6 header to be significantly simpler than the IPv4 header, which has some seldom used fields which are always present.
cyberax [3 hidden]5 mins ago
No, they are not fine. Their design means that the router needs to know all possible extension headers to just be able to route the packets. Oh, and you also have to do offset-chasing in the hardware fastpath.
As a consequence, IPv6 with extension headers are just dropped by routers in the public Internet.
icedchai [3 hidden]5 mins ago
That's not a very good example.
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 [3 hidden]5 mins ago
I explained the problem in a sibling post on this thread.
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.
throwawaysoxjje [3 hidden]5 mins ago
If it works with mainstream Linux, sounds like an Android problem
q3k [3 hidden]5 mins ago
This isn't one of those. It's for ISPs who run a native IPv6 backbone and want to exchange and route IPv4 traffic without setting up IPv4 addressing.
asdfsa32 [3 hidden]5 mins ago
It is a network. No part of it is exactly a surprise. But 3 decades in, we are still getting there. Almost 50% any year from now!
… 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?
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.
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):
* https://en.wikipedia.org/wiki/Address_Resolution_Protocol
(Keep in mind that the setup described here has work for years now.)
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.
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…
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.
[0] <https://datatracker.ietf.org/doc/html/rfc8950>
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.
(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.)
Edit: After reviewing their post history it makes a bit more sense.
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...
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.
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!
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.
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.)
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/
The actual gap is the mess of mixing/transitioning, and it wasnt planned properly in the last 30years
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.
As predicted:
* https://datatracker.ietf.org/doc/html/rfc1726#section-5.5Creating an IPng was always going to be complicated:
* https://github.com/becarpenter/misc/blob/main/why6why.md* https://datatracker.ietf.org/doc/html/rfc1671
Privacy extensions are enabled by default on every major operating system.
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.
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.
https://en.wikipedia.org/wiki/Unique_local_address
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.
(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.)
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.
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.
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.
As a consequence, IPv6 with extension headers are just dropped by routers in the public Internet.
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.
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.