News for hackers. Stuff that matters.
Re:IPv6 Is Hard by ninkendo on Sunday February 16, 2025 @01:28PM (#43070286)
To add:

The really sad thing about IPv6 is that it's a relic of a bygone era. The internet was envisioned as a thing where every device on every network could, in principle, initiate a connection to any other device on any other network. But then we started running out of addresses, ISP's wouldn't give you more than one for a household, so we started doing NAT, and that kind of sealed the internet's fate.

Nowadays, we wouldn't want a world where everything was connectable, even if we had enough addresses. Everyone's network in essence has a firewall. If you run IPv4 and using NAT, you're going to be dropping unsolicited incoming packets no matter what (let alone that you wouldn't know where to route them even if you wanted to let them through) and with IPv6 you'd be insane to allow them.

Devices have "grown up" in a world where we expect the router we're connecting to, to shield us from incoming unsolicited traffic. I certainly don't have the firewall enabled on my linux desktop. Windows I _think_ has it enabled by default, but I often turn it off because I want LAN connections to work. MacOS is probably similar. Suffice to say, if the IPv6 dream happened overnight and everyone's devices were instantly connectable, all hell would break loose. We need our routers to disallow traffic. (Edit: This wasn't all that clear, so let me restate: In both the IPv4 and IPv6 world, you'd be insane to disallow incoming unsolicited traffic, which is why basically everyone blocks it in IPv6 as well as IPv4. I'm not trying to say IPv6 can't do this... quite the contrary: IPv6 routers absolutely do, and should, block unsolicited incoming traffic. But my point is that this is what prevents the original vision of IPv6 from becoming a reality: We can't design software around the idea of direct peer-to-peer communication, without stuff like UPnP. Oh, and UPnP works with NAT and IPv4 anyway so, there's the rub.)

So, even in a pure-IPv6 world, that instantly prevents any startup with an idea to allow true peer-to-peer communication using end-to-end routability. What are you going to do, train your users to log into their router and enable traffic? Approximately 0% of your customers know how to do that, even in a counterfactual universe where IPv6 happened and we all have routable IP's on our devices. Maybe in such a universe, people would be trained to use local firewalls on their device, and say "ok" to popups asking if you want to let software through. But I'd wager that a lot of people would prefer the simplicity of just having their gateway drop the traffic for them.

No, the "all devices are routable" idea came from a naive world where there wasn't a financial incentive for malicious behavior at every turn. Where there aren't millions of hackers waiting for an open port to an exploitable service they can use to encrypt all your data and ransom it for bitcoin. The internet is a dark forest now. We don't _want_ end-to-end connectivity.

Re:IPv6 Is Hard by avianlyric on Sunday February 16, 2025 @02:13PM (#43070749)
Every consumer router I’ve ever seen drops unsolicited IPv6 packets by default. But that doesn’t mean that P2P routing is suddenly impossible.

IPv6 makes P2P routing substantially easier, even in a world of default firewalls that drop unsolicited packets. You can still apply standard NAT busting techniques like STUN with IPv6 devices behind firewalls, and you get much better results because IPv6 removes the need to track and predict the port mapping a standard NAT does. Two P2P systems can both send unsolicited packets to each others IPv6 addresses, with a specific port, and know that port number isn’t going to be remapped, so their outbound packets are guaranteed to have the right address and port data in them to get their respective firewalls to treat inbound traffic on those addresses and ports as solicited.

This is particularly useful when dealing with CGNATs, where your residential devices ends up behind two NAT layers, both of them messing with your outbound traffic, which just creates an absolute nightmare when trying to NAT bust. IPv6 means that you’re no longer dealing with three or more stateful NATs/firewalls between two peers, and instead only have to deal with at most 2 (in the general case) stateful firewalls, who’s behaviour is inherently simpler and more predictable than a NAT ever is.

Re:IPv6 Is Hard by ninkendo on Sunday February 16, 2025 @02:44PM (#43070996)
The argument that NAT-busting (firwall-busting?) becomes easier with IPv6 is certainly true, but "easier" isn't necessarily enough to warrant an entirely new protocol suite. If that's the only benefit of IPv6, it doesn't sound worth it to me. UPnP/STUN is still possible with NAT/CGNAT, and you're going to need something like that even if there were no NAT, so to me it sounds like a bit of a wash, at least to the end-user.

(Of course, the other huge benefit of IPv6 is "more addresses", so we need it just for that. But my point is that "global routability" isn't really the dream people think it is. In practice, the only differences between modern GUA-but-deny-by-default IPv6 setups and NAT'ed IPv4 setups are the simplicity of the former for the network administrators.)

Re:IPv6 Is Hard by avianlyric on Sunday February 16, 2025 @04:09PM (#43071732)
> UPnP/STUN is still possible with NAT/CGNAT

You should tell that to my ISP, they’ve managed to deploy a CGNAT that’s proven to be completely STUN proof. The only way I can achieve any kind of P2P comms is using IPv6. IPv4 is useless for anything except strictly outbound connections.

> and you're going to need something like that even if there were no NAT, so to me it sounds like a bit of a wash, at least to the end-user.

Not in my case. As above, I simply can bust my ISPs CGNAT, so IPv6 is invaluable to me. Makes a huge difference to me, the end-user.

Re:IPv6 Is Hard by growse on Sunday February 16, 2025 @03:32PM (#43071394)
> If that's the only benefit of IPv6, it doesn't sound worth it to me.

It's not the only benefit, as anyone who's tried to build a large network or merge two networks with overlapping address space will tell you.

Re:IPv6 Is Hard by Spivak on Sunday February 16, 2025 @07:22PM (#43073344)
IPv6 doesn't actually save you because it presumes a cultural norm that people will use globally unique addresses for all their networks which, while now possible, I imagine many network engineers will use IPv6's private address space to avoid ever having to re-address their network on ISP changes.
Re:IPv6 Is Hard by throw0101c on Sunday February 16, 2025 @09:01PM (#43074122)
> I imagine many network engineers will use IPv6's private address space to avoid ever having to re-address their network on ISP changes.

Except with 10/8 (or 172/12) everyone is using the same address space. How many network have a 10.0.0.0/24? What are the odds of a conflict for that?

But if you have an ULA FDxx:xxxx:xxxx/48 address space, what are the odds that all those x bits will be the same for any two sites? That's 40 bits 'entropy'. Much, much lower (notwithstanding folks doing DEADBEEF, BADCAFE, etc).

Re:IPv6 Is Hard by patrakov on Monday February 17, 2025 @12:49AM (#43075616)
Not only that. Having private IPv6 addresses in the LAN is the easiest way to work with two ISPs and have fail-over. The other way is RFC8475, but I don't know of any implementation except my custom script on OpenWrt: https://forum.openwrt.org/t/ipv6-wan-fail-over-without-ipv6-...
Re:IPv6 Is Hard by growse on Monday February 17, 2025 @02:34AM (#43076216)
I imagine the threshold of org size where they stop taking their prefixes from their ISP and just go get their own from the RIR is .... Not big.

Sure, some network engineers will try and design v6 networks as though they're v4, but everyone else will just go and get a squillion addresses from the RIR that's unique to their org and then just use/announce that.

Re:IPv6 Is Hard by silon42 on Monday February 17, 2025 @04:19AM (#43076840)
What about home private network (for smart home, for example)?
Re:IPv6 Is Hard by growse on Monday February 17, 2025 @04:24AM (#43076879)
Home networks don't usually have the problem of having to suddenly merge together with another, similarly-addressed network.

Nothing stops you getting a subnet allocated from your local RIR and announcing that on the internet, if you care about that sort of thing for your home network though. You just need a decent ISP.

Re:IPv6 Is Hard by ninkendo on Monday February 17, 2025 @09:37PM (#43085515)
> Nothing stops you […] You just need a decent ISP.

I’ll just leave that there.

No, I can’t just choose to have a decent ISP. I live in the real world where there’s only one choice where I live, same as a rather large majority of people in the world.

Re:IPv6 Is Hard by yyyk on Monday February 17, 2025 @12:52AM (#43075626)
'You should switch your working local networking stack so as to help the scenario where the company is bought and you may well not be working there anymore and it's someone else's problem. Or the scenario where the company buys a different company and very likely needs to investigate and remodel the other company's network anyway.'
Re:IPv6 Is Hard by vel0city on Sunday February 16, 2025 @04:54PM (#43072095)
> UPnP/STUN is still possible with NAT/CGNAT

Sometimes. I've experienced a few networks where even with STUN I'm still not able to get a workable session in IPv4.

Re:IPv6 Is Hard by saurik on Monday February 17, 2025 @01:19AM (#43075810)
Fixing that network you had an issue with to have working NAT-PMP or whatever is going to be infinitely easier than IPv6ing the entire world.
Re:IPv6 Is Hard by vel0city on Monday February 17, 2025 @01:26AM (#43075848)
I can't just ask my cell provider to change their CGNAT setup. There's nothing I can do on my end.
Re:IPv6 Is Hard by saurik on Wednesday February 19, 2025 @04:57PM (#43108276)
1) To the extent to which you can't ask them to change their CGNAT setup, you also can't "just" ask them to upgrade to IPv6.

2) In fact you at least can ask them to change their CGNAT setup, as they at least could, if they chose, unilaterally fix their CGNAT setup, while--even if you also felt it possible to ask them to upgrade to IPv6--upgrading to IPv6 as the solution requires the rest of the world to upgrade as well.

The real question is then: which is solution to your problem is easier and cheaper to obtain, and the answer is clearly not "upgrade the world to IPv6". "I couldn't convince my ISP to fix their CGNAT setup, so I'd rather convince them--and everyone else--to upgrade to IPv6" makes no sense as a coping mechanism.

Re:IPv6 Is Hard by zrm on Sunday February 16, 2025 @01:54PM (#43070538)
There is a solution to this: RFC6887.

You have a firewall at the edge of the network. It blocks incoming connections by default, but supports Port Control Protocol. The cacophony of unpatched legacy IoS devices stay firewalled because your ten year old network printer was never expected to have global connectivity and doesn't request it. End-to-end apps that actually want it do make the requests, and then the firewall opens the port for them without unsophisticated users having to manually configure anything.

The protocol is an evolution of NAT-PMP (RFC6886) for creating IPv4 NAT mappings, but RFC6887 supports IPv6 and "mappings" that just open incoming ports without NAT.

Re:IPv6 Is Hard by ninkendo on Sunday February 16, 2025 @02:36PM (#43070933)
Interesting, I haven't read much about that. I've always assumed somebody must have written an RFC to automate how home firewalls should be configurable automatically by software that "wants to" allow incoming connections. Good to see that it exists.

But it doesn't seem to be in widespread use, does it? Like, would a random internet gateway from podunk ISP support this? I kinda doubt it, right? Pretty sure the default Comcast modem/router setup my mom uses doesn't support this.

But I guess my point was about the contrapositive universe where IPv6 was actually used everywhere, and in that universe I suppose RFC6887 might have been commonplace.

Re:IPv6 Is Hard by zrm on Sunday February 16, 2025 @02:57PM (#43071112)
Things like this can be useful without 100% penetration. Most end-to-end apps support a direct connection as long as either of the endpoints have an open port. Endpoints without one can also fall back to relays, but since port mapping is frequently used in gaming, that has higher latency and then users start demanding gateways that support the thing that lowers lag.

Then it starts to make it into popular internet gateways. For example, the Comcast consumer gateways generally do support UPnP, which is a miserable protocol with an unnecessary amount of attack surface that should be transitioned to Port Control Protocol as soon as possible, but it demonstrates you can get them to implement things of this nature.

Re:IPv6 Is Hard by vel0city on Sunday February 16, 2025 @08:54PM (#43074072)
Every ISP router I've had with even basic IPv6 support has supported PMP. Every home router I've handled with IPv6 support has supported it. So IME it is in pretty widespread support. Maybe there's some devices out there that don't, but it's at least as wide as UPnP support which was pretty wide.
Re:IPv6 Is Hard by crote on Sunday February 16, 2025 @08:58PM (#43074098)
Sure, but is it actually a feature you want, though? We're never going to run out of legacy unpatched devices, and today's shiny new devices are going to be tomorrow's tech debt. If you support that kind of hole punching, sooner or later you will end up with vulnerable devices exposing themselves to the internet.

There's no way in hell enterprise admins are going to give that kind of control to random devices, and home users aren't going to have the skills to cull vulnerable devices from their networks. So who's going to use it?

In my opinion the current kind of hole punching is a far better option: instead of creating a mapping allowing essentially unrestricted access from everyone, have the app use an out-of-bounds protocol to allow a single incoming connection from exactly one vetted source. You get all of the benefits of a direct peer-to-peer connection with none of the risks of exposing yourself to the internet. It's well-researched when it comes to the interplay between firewalls, NAT, and UDP[0].

And that pretty much solves the problem, to be honest. These days you only really need incoming traffic to support things like peer-to-peer video calls. Hosting game servers on your local machine is a thing of the past, everything has moved to cloud services. What's left is a handful of nerds running servers for obscure hobby projects at home, but they are more than capable of setting up a static firewall rule.

[0]: https://tailscale.com/blog/how-nat-traversal-works

Re:IPv6 Is Hard by zrm on Monday February 17, 2025 @03:14AM (#43076480)
> We're never going to run out of legacy unpatched devices, and today's shiny new devices are going to be tomorrow's tech debt.

It's not about new or old. The devices that don't have any reason to be globally reachable never request it. New ones would do likewise.

Devices that are expected to connect to random peers on the internet are going to do that anyway. It's not any more secure for them to do it via hole punching rather than port mapping; causing it to be nominally outgoing doesn't change that it's a connection to a peer on the internet initiated by request of the remote device.

> There's no way in hell enterprise admins are going to give that kind of control to random devices, and home users aren't going to have the skills to cull vulnerable devices from their networks. So who's going to use it?

Enterprise admins can easily use it because they have control over the gateway and how it answers requests, so they can enable it for approved applications (in high security networks) or all but blocked applications (in low security networks), and log and investigate unexpected requests. They should strongly prefer this to the alternative where possibly-vulnerable applications make random outgoing HTTPS connections that can't easily be differentiated from one another.

Whether they will or not is a different question (there are a lot of cargo cult admins), but if they don't they can expect their security posture to get worse instead of better as the apps that make outgoing HTTPS connections to avoid rigid firewalls become the vulnerable legacy apps that need to be restricted.

Home users are already using NAT-PMP or UPnP and this has only advantages over those older solutions.

> instead of creating a mapping allowing essentially unrestricted access from everyone, have the app use an out-of-bounds protocol to allow a single incoming connection from exactly one vetted source. You get all of the benefits of a direct peer-to-peer connection with none of the risks of exposing yourself to the internet.

There are significant problems with this.

The first is that it's a privacy fail. The central server is at a minimum in a position to capture all the metadata that shows who everyone is communicating with. It's made much worse if the payload data being relayed isn't end-to-end encrypted as it ought to be.

But if it is E2EE, or the server is only facilitating NAT traversal, the server isn't really vetting anything. The attacker sends a connection request or encrypted payload to the target through the relay and the target is compromised. Still all the risks of exposing yourself to the internet, only now harder to spot because it looks like an outgoing connection to a random server.

Worse, the server becomes an additional attack vector. The server gets compromised, or the company goes out of business and the expired domain gets registered by an attacker, and then their vulnerable legacy products are presenting themselves by making outgoing connections directly to the attacker.

Doing it that way also requires you to have a central server, and therefore a funding source. This is an impediment for open source apps and community projects and encourages apps to become for-profit services instead. The central server then puts the entity maintaining it in control of the network effect and becomes a choke point for enshitification.

Meanwhile the NAT traversal methods are ugly hacks with significant trade offs. To keep a NAT mapping active requires keep-alive packets. For UDP the timeout on many gateways is as short as 30 seconds, which prevents radio sleep and eats battery life on mobile devices. Requiring a negotiated connection is a significant latency hit. For real peer to peer applications where nodes are communicating with large numbers of other nodes, keeping that many connections active can exceed the maximum number of NAT table entries on cheap routers, whereas an open port requires no state table entries.

> What's left is a handful of nerds running servers for obscure hobby projects at home, but they are more than capable of setting up a static firewall rule.

The point is to allow interesting projects to benefit more than a handful of nerds and allow them to become popular without expecting ordinary users to manually configure a firewall.

Re:IPv6 Is Hard by procaryote on Monday February 17, 2025 @04:55AM (#43077079)
> It's not about new or old. The devices that don't have any reason to be globally reachable never request it. New ones would do likewise.

Doesn't this assume all devices are well behaved, trusted and correctly implemented? You don't think the crap Samsung Smart TV will consider itself to have a reason to be globally reachable?

Re:IPv6 Is Hard by zrm on Monday February 17, 2025 @01:45PM (#43082023)
Most of them actually wouldn't because they have no reason to do it and creating the mapping for no reason is work. Making the thing where you're not exposed to the internet the thing that lazy developers get by default is a win.

Some of them could do it for no reason, but they could also have the devices make outgoing connections to the company's servers and then blindly trust any data the servers send back, even if the servers are compromised or the domain expires and falls into the hands of someone else, or the company's own servers are simple relays that forward arbitrary internet traffic back to their devices.

If a device can make outgoing connections then it can emulate incoming connections. Blocking incoming connections to devices that explicitly request them is therefore not a security improvement unless you're also prohibiting them from making any outgoing connections, because the result is only that they do it in a less efficient way with more complexity and attack surface and less visibility to the user/administrator.

Re:IPv6 Is Hard by boredatoms on Sunday February 16, 2025 @01:36PM (#43070367)
In an IPv6 world, your home router still firewalls just like with IPv4 (the NAT is just an extra accidental firewall-ish thing), you can still skip the firewall on your laptop

Having globally allocated address space doesn’t actually imply openness of connectability

Re:IPv6 Is Hard by pclmulqdq on Sunday February 16, 2025 @02:00PM (#43070598)
I am the last person to be defending NAT, but the benefit of NAT is that it sets up a really good default: incoming connections are not routable by default, and it's very hard to accidentally change this. There are many good ways to have "not routable by default" with IPv6, but you have to do that at the software level, while NAT forces it at a protocol level.
Re:IPv6 Is Hard by ninkendo on Sunday February 16, 2025 @02:18PM (#43070790)
> incoming connections are not routable by default, and it's very hard to accidentally change this

Not just difficult, but impossible, even in principle, because there are more than one device sharing the same IP so at most one host would be vulnerable. Not the same as with IPv6, where screwing up the defaults leaves your entire network vulnerable.

Re:IPv6 Is Hard by Hikikomori on Sunday February 16, 2025 @03:21PM (#43071310)
You can forward all ports to a device, pretty common feature.
Re:IPv6 Is Hard by ninkendo on Sunday February 16, 2025 @03:28PM (#43071354)
Right but that only leaves that device vulnerable. The other devices are not.
Re:IPv6 Is Hard by lanstin on Sunday February 16, 2025 @06:50PM (#43073100)
In practice, that makes the entire network vulnerable.
Re:IPv6 Is Hard by pclmulqdq on Sunday February 16, 2025 @03:34PM (#43071404)
Yeah, server-side NAT + use of a reverse proxy makes hosting many websites from one IPv4 a possibility, albeit a relatively difficult one. You are only really in trouble if two consumers want raw TCP/UDP on one port.
Re:IPv6 Is Hard by vel0city on Sunday February 16, 2025 @02:05PM (#43070666)
> incoming connections are not routable by default

Tons of firewalls ship with this as a default logic, it doesn't require NAT in the slightest.

Re:IPv6 Is Hard by kiririn on Sunday February 16, 2025 @08:35PM (#43073926)
Parent poster is making the (good and underrated) point that NAT makes this logic failsafe: Turn an IPv6 firewall off and you’ve got all incoming connections allowed. Turn IPv4 NAT off and you’ve got no connectivity at all
Re:IPv6 Is Hard by vel0city on Sunday February 16, 2025 @09:11PM (#43074189)
So gate it behind a "here be dragons" option or hide it in the GUI entirely for the basic home version.
Re:IPv6 Is Hard by pferde on Monday February 17, 2025 @05:41AM (#43077403)
Or make the "turned off" state block all traffic, just like closing a water valve, or a road gate. I never understood why network firewalls did not default to this.
Re:IPv6 Is Hard by kiririn on Monday February 17, 2025 @06:29AM (#43077755)
Turning off the firewall could just as easily be a unnoticed configuration error that causes it to die on startup
Re:IPv6 Is Hard by klabb3 on Sunday February 16, 2025 @07:19PM (#43073326)
How are you gonna get the IPv6s of your targets? Can’t scan a /64, and with ephemeral ”security” addresses used for outbound conns, an adversary won’t be able to guess the address anyway. At least that’s my understanding. So I guess my question is: is this a real threat?
Re:IPv6 Is Hard by icehawk on Sunday February 16, 2025 @11:56PM (#43075308)
Re:IPv6 Is Hard by Helmut10001 on Monday February 17, 2025 @01:45AM (#43075948)
This reminds me of a company where the admin used public routable IPs for the internal subnet. The gap is always the human in the loop.
Re:IPv6 Is Hard by Symbiote on Monday February 17, 2025 @02:40AM (#43076248)
There's nothing wrong with this, and it's common at universities that have large IPv4 allocations.
Re:IPv6 Is Hard by Helmut10001 on Tuesday February 18, 2025 @07:34AM (#43088776)
The subnet that he used internally was "officially" used and owned by oracle and our printers regularly send traffic falsely to Silicon Valley.
Re:IPv6 Is Hard by icedchai on Monday February 17, 2025 @10:14AM (#43079785)
This was the norm for most of the 90's and earlier. NAT was supposed to be the exception, but it became the rule. Now we have an entire generation that doesn't understand that the Internet was always supposed to support end-to-end connectivity.
Re:IPv6 Is Hard by WorldMaker on Monday February 17, 2025 @02:26PM (#43082444)
Plus too many of that generation see NAT as a "security feature" not an "IP bug" and can't seem to (re-)imagine traditional firewall/router design from the time before NAT. "end-to-end connectivity" is not the same thing as "open and unsecured connectivity", we have the security tools to deal with that and they are not and have never been named "NAT".
Re:IPv6 Is Hard by icedchai on Monday February 17, 2025 @07:35PM (#43084699)
To say NAT has nothing to do with "security" is a lie. The most common NAT (PAT) configurations are basically acting as stateful firewalls with a default deny policy for all unsolicited inbound traffic to a private, non-routeable network.
Re:IPv6 Is Hard by Dagger2 on Monday February 17, 2025 @11:17PM (#43086024)
They aren't doing that though. The most common NAT (PAT) configurations don't deny unsolicited inbound traffic.

They are of course commonly deployed together with a firewall that does deny that traffic, but claiming that NAT blocks connections because it's usually deployed together with a different technology that handles all of the blocking would also be lying.

Re:IPv6 Is Hard by ninkendo on Tuesday February 18, 2025 @06:56AM (#43088537)
> The most common NAT (PAT) configurations don't deny unsolicited inbound traffic

That doesn’t make sense.

If I have a single routable IPv4 addresses and 100 machines behind it with RFC1918 addresses, how can any possible router “allow by default” say, port 22? Which machine would it route it to? Would it pick the first one? Randomly select one?

Of course NAT has to drop incoming unsolicited packets. Unless you tell it which machine to route them too, it couldn’t possibly know how to “allow” them in the first place.

Re:IPv6 Is Hard by Dagger2 on Tuesday February 18, 2025 @11:21AM (#43091410)
IP packets have a "destination IP" header field that specifies where the packet goes. The router reads that to figure out where to send the packet.

The only thing NAT does is rewrite the dst or src headers of packets. If there's no rule or state entry that applies to a packet, it doesn't drop the packet. It just leaves the original headers on it.

Re:IPv6 Is Hard by ninkendo on Tuesday February 18, 2025 @06:16PM (#43096372)
How would a packet with a destination IP of my internal RFC1918 address have landed on my WAN interface in the first place? It would require my ISP to have a routing rule that sends it to my router. Is that the threat model you’re thinking about?
Re:IPv6 Is Hard by icedchai on Tuesday February 18, 2025 @01:11PM (#43093085)
He's assuming your non-routeable RFC1918 addresses are actually routed from the Internet, which won't be happening in the normal consumer use case.
Re:IPv6 Is Hard by icedchai on Tuesday February 18, 2025 @01:13PM (#43093108)
Even if there's no blocking, using internal RFC-1918 addresses still adds a layer of security since they are not reachable globally.
Re:IPv6 Is Hard by WorldMaker on Monday February 17, 2025 @11:21PM (#43086045)
> basically acting as stateful firewalls

Stateful Firewalls are the security tool. NATs being mediocre to somewhat alright stateful firewalls "out-of-the-box" before adding a real Firewall is the accident (and sometimes bug). Something doing security by accident (or as a bug) isn't a security tool (just like security through obscurity isn't a security tool). You can have Stateful Firewalls without NAT. Everyone saying that you "need" NAT to have Stateful Firewalls doesn't understand Firewalls or even possibly why "firewall" is and has always been a different word from "NAT". NAT has something to do with security, but that's being generally always paired with a good firewall, not being a mediocre firewall mostly by accident.

Re:IPv6 Is Hard by tomas789 on Sunday February 16, 2025 @01:47PM (#43070464)
I wouldn’t want to relay on random caffee’s router to do this for me. I would still end up running firewall more carefully on my end devices. Which for my iPhone I’m not even sure if I can. So probably a personal VPN would be a must.
Re:IPv6 Is Hard by averageRoyalty on Sunday February 16, 2025 @02:09PM (#43070705)
Sure... But wouldn't you want to treat this random network as hostile anyway? The router might already have port forwarding to the IP you grab from DHCP, not to mention other clients on the network. I'm also unsure how a VPN would help against inbound traffic regardless?
Re:IPv6 Is Hard by yjftsjthsd-h on Sunday February 16, 2025 @02:02PM (#43070618)
Does a VPN prevent inbound traffic on other IPs? If I put my laptop on a VPN, I can still SSH to it on its RFC 1918 address.
Re:IPv6 Is Hard by throwaway173738 on Sunday February 16, 2025 @11:25PM (#43075131)
A VPN can’t prevent inbound traffic but if the VPN alters the routing table it can prevent the return leg from working. This probably isn’t enough to prevent compromise.
Re:IPv6 Is Hard by icedchai on Monday February 17, 2025 @10:16AM (#43079814)
It depends on the VPN and its policies. Some deny all local traffic when active, routing everything through the VPN, and only leave a IPv4 /32 route for the default gateway. Some are more permissive.
Re:IPv6 Is Hard by lmm on Monday February 17, 2025 @12:30AM (#43075507)
> I wouldn’t want to relay on random caffee’s router to do this for me. I would still end up running firewall more carefully on my end devices.

Are you not doing that already? If you trust whoever else happens to be on the same wifi in the cafe you're a braver man than I.

Re:IPv6 Is Hard by ninkendo on Sunday February 16, 2025 @02:00PM (#43070596)
> Having globally allocated address space doesn’t actually imply openness of connectability

Of course not, that's not my point. My point is that because of the fact that your home router still firewalls with both IPv6 and IPv4, any software which relies on being able to "just" connect to a peer over the internet, is doomed. Our networks don't work that way any more (they probably did in the early 90's though.)

My point is that even if we had global routability, we still wouldn't have open connectability, because open connectability is a stupid idea. Which means any software ideas people might have that rely on connectability, are already a non-starter. So why do we need open routability in the first place? (Honest question. This is the crux of the issue. Yes, open routability means you can have a host listen on the open internet, but fewer than 1% of people know how to configure their home firewalls to do this, so it's effectively not possible to rely on this being something your users can do.)

Re:IPv6 Is Hard by LegionMammal978 on Sunday February 16, 2025 @03:38PM (#43071440)
Yeah, I've had to make this point several times. Getting rid of the NAT doesn't rid you of the need for NAT hole-punching and whatnot, since any sort of firewall will need a hole-punching scheme to allow incoming connections.

I'd say the biggest practical objection (not just "NAT is ugly" or "DHCP is ugly" or "NAT is evil since it delayed IPv6") is CGNAT, which really does put a lot of restrictions on end-users that they can't circumvent. The more active hosts stuffed behind a single NAT, the more they have to compete for connections.

> but fewer than 1% of people know how to configure their home firewalls to do this, so it's effectively not possible to rely on this being something your users can do.

And a chunk of that 1% are on WANs that they aren't authorized to configure even if they wanted to.

Re:IPv6 Is Hard by throw0101c on Sunday February 16, 2025 @07:23PM (#43073349)
> * My point is that* because of the fact that your home router still firewalls with both IPv6 and IPv4, any software which relies on being able to "just" connect to a peer over the internet, is doomed.

With IPv6 the only thing you need is PCP (or equivalent).

With IPv4 you need PCP/whatever plus a whole bunch of STUN/TURN/ICE infrastructure.

Just hole punching is a lot easier to support than more-than-just hole punching.

Re:IPv6 Is Hard by saurik on Monday February 17, 2025 @01:24AM (#43075831)
If you have PCP (NAT-PMP or whatever), why would you need STUN or TURN? (You still might like ICE, but ICE also makes sense to have on IPV6.)
Re:IPv6 Is Hard by redmajor12 on Monday February 17, 2025 @01:51AM (#43075979)
It's still basically another mac address or unique identifier for the system, regardless of which local network it happens to be on. Great for being tracked by FAANG, I guess, but I'd rather for my devices use a generic local IP and a randomized mac. There's no reason why the refrigerator needs to be uniquely identifiable on the Internet.
Re:IPv6 Is Hard by Dagger2 on Monday February 17, 2025 @02:59AM (#43076365)
No, v6 addresses are assigned by (or chosen based on) the current network, not permanently associated with a given system. They aren't MAC addresses or unique identifiers.
Re:IPv6 Is Hard by FeistySkink on Sunday February 16, 2025 @01:41PM (#43070414)
Devices behind a firewall being routable with IPv6 doesn't mean you're allowed to connect to them by default. And if you want to, you have to explicitly allow that on the firewall. Just like you would open a port and redirect it with IPv4 before. Only with IPv6 you don't have NAT and a redirect. Some people need it and some don't. Again, just like with opening ports.
Re:IPv6 Is Hard by hiatus on Sunday February 16, 2025 @01:50PM (#43070492)
How many users know how to "open a port"? UPnP exists because people don't want to deal with these things.
Re:IPv6 Is Hard by craftkiller on Sunday February 16, 2025 @02:00PM (#43070605)
What's your point?

  |              | IPv4                                | IPv6                                |
  |--------------+-------------------------------------+-------------------------------------|
  | With uPnP    | Unsolicited connection goes through | Unsolicited connection goes through |
  | without uPnP | Unsolicited connection blocked      | Unsolicited connection blocked      |
It's exactly the same in IPv4 and IPv6 just like FeistySkink was suggesting.
Re:IPv6 Is Hard by ninkendo on Sunday February 16, 2025 @02:01PM (#43070609)
Please reread my comment, it seems like you're just pattern-matching to arguments you've heard others make in the past and assuming I'me saying the same thing. I'm not. See sibling comments for elaboration.
Re:IPv6 Is Hard by vel0city on Sunday February 16, 2025 @02:02PM (#43070622)
> What are you going to do, train your users to log into their router and enable traffic?

You do what has already been done for decades. You ship a client premises router that does deny by default inbound and allow all outbound and things behave pretty much the same as they do today with these exact same rules in IPv4.

Network firewalls still exist in a publicly routable network. If I want my game console to allow incoming traffic for game matchmaking, I can then do that. Or have systems that auto configure that. But then I don't have to have multiple devices fighting for a limited port range, each device has more IPs and ports than they could know what to do with.

Re:IPv6 Is Hard by ninkendo on Sunday February 16, 2025 @02:56PM (#43071101)
Please re-read my comment, as it seems like you skimmed it and think I’m making a different point than I did.

To use your example:

> If I want my game console to allow incoming traffic for game matchmaking, I can then do that

My point is that because of the fact that even in IPv6, consumer firewalls will block traffic by default, the company that makes the game would not have designed it to require your console to have special configuration on your firewall. Because this is not something a typical gamer knows how to do.

Instead, companies use UPnP for matchmaking, and UPnP works in both NAT and GUA environments, so what exactly does GUA give you?

Re:IPv6 Is Hard by vel0city on Sunday February 16, 2025 @03:09PM (#43071202)
If you have two Xboxes or Nintendo Switches in a standard UPnP network you'll still have NAT issues. They'll fight over port assignments. If I've got two things wanting to listen on :5000 I'm boned, I've only got one :5000 to forward from. I could remap that port in NAT, but now the downstream device needs to know to tell other clients it's actual public port.

You'll have even more problems if you're on CGNAT networks. You're not going to be able to get any of that traffic.

None of this is a problem if each device has its own IP address and its own range of ports to deal with. Every device can have its own :5000, it can know it's public IP address without having to have something see from outside, and with how big assignments usually are it can have dozens of things all listening on a public :5000 all at the same time.

Re:IPv6 Is Hard by ninkendo on Sunday February 16, 2025 @03:39PM (#43071448)
If you want to hypothesize a world where we’re all on IPv6 and thus game matchmaking software can take advantage of the unique addresses for every console, you should also admit that the same software could also just use a unique port for each console today, in IPv4+NAT.

In fact, in IPv6, privacy addresses mean that the address the gaming service observes from my device shouldn’t be assumed to work for other peers, because my device may only be using that address for communication to the gaming service itself. Instead, authors of this software ought to understand that the console itself needs to tell the service “this is the address peers can use to communicate with me”, and thus you may as well just include the port in that call, and then you don’t need to assume port 5000 will work (because if I have 2 XBox’s, they could decide on a different port if another console already has one used.)

It’s just I’m disillusioned with the idea of GUA’s for every device actually solving anything. It solves like 10% of the difficulty of writing good p2p software. All the other problems are still there: firewall config, dynamic IP’s, mobile IP’s, security best practices, shitty middleware boxes not doing the right thing, etc etc etc.

Re:IPv6 Is Hard by vel0city on Sunday February 16, 2025 @04:36PM (#43071931)
My biggest argument would be CGNAT in the end really doesn't care what UPnP you do at the edge of your network; you're not getting that traffic no matter what you do. IPv6 means there's no reason to have CGNAT at all; there's more than enough addresses to go around.

Does IPv6 solve it all? No. Does it solve some of it better than IPv4? Yep. Does it just completely eliminate the need for CGNAT? Yep. It is not a silver bullet to solve all problems, but it does solve some, and for that I'd much rather use it. Because I'd rather just be able to host whatever at home and not need to remember what port is what or rely on proxies looking at other info in the request.

> shitty middleware boxes not doing the right thing

You reduce the need for shitty middleware boxes. I don't need a reverse proxy. I don't need to have a STUN/TURN server. I don't need to randomize ports or worry about running out of ports.

Re:IPv6 Is Hard by lmm on Monday February 17, 2025 @12:36AM (#43075545)
> the same software could also just use a unique port for each console today, in IPv4+NAT.

Why solve a problem once properly in the network stack when you can add an ad-hoc workaround to each individual protocol instead?

> the console itself needs to tell the service “this is the address peers can use to communicate with me”, and thus you may as well just include the port in that call, and then you don’t need to assume port 5000 will work

And if you're behind CGNAT so your home router doesn't know what the address and port are, what then?

Not to mention the case of a multiplayer game between two people who live in the same house and a third person who doesn't. That's one that's trivial with IPv6 but difficult with every IPv4-based system I've seen.

> It solves like 10% of the difficulty of writing good p2p software. All the other problems are still there

It all helps. I mean, people mostly manage to play games with each other today, they just get disconnects or random lag every so often. Cutting down on that, even if it was only 10%, would make a lot of lives better.

Re:IPv6 Is Hard by Hikikomori on Sunday February 16, 2025 @03:29PM (#43071363)
For badly designed games maybe? There's no real reason why they need the same port forwarded, it could be any random port.
Re:IPv6 Is Hard by vel0city on Sunday February 16, 2025 @05:00PM (#43072152)
I'm dealing with the devices I've got and the software stacks they have. In the end they fight for port assignments on IPv4 and expect to just have massive port ranges assigned to them.

> Within the port range, enter the starting port and the ending port to forward. For the Nintendo Switch console, this is port 1024 through 65535.

https://en-americas-support.nintendo.com/app/answers/detail/...

Nintendo tells me to forward all high numbered ports to my console. Because obviously we're only going to have a single one in the house.

Re:IPv6 Is Hard by saurik on Monday February 17, 2025 @01:27AM (#43075860)
Fixing the broken software that somehow requires a specific port and getting NAT-PMP deployed is a hell of a lot easier than redoing all of the software and all of the networks to implement IPv6.
Re:IPv6 Is Hard by glenstein on Sunday February 16, 2025 @02:31PM (#43070898)
Is the alternative reality One where all devices can connect to all other devices and come with built-in mitigations for the problems that firewalls are normally used for?
Re:IPv6 Is Hard by ninkendo on Sunday February 16, 2025 @03:01PM (#43071151)
Maybe. In the alternate reality, we probably would have the same threats on the internet as we do today, and the same boneheaded software that misconfigures things, so my guess is that we’d still have consumer firewalls at the gateway that just default-deny everything. Maybe there would be better standards about auto-configuring these firewalls though. (Or maybe the standards we already have would have just been better supported?)

But for certain, today if we had IPv6 everywhere, it still wouldn’t let you design something like a VoIP phone (or a pure peer-to-peer version of FaceTime) that just listened for connections and let other people “call” you by connecting to your device. That software would only be usable by people who know how to configure their router, and that doesn’t make for very good market penetration. You still need something like UPnP, so you’re basically right back to where we are today. At least the connection tracking would be stateless, I guess?

Re:IPv6 Is Hard by vel0city on Sunday February 16, 2025 @03:14PM (#43071247)
> You still need something like UPnP

I have two SIP phones both wanting to register port 5061 to forward to their address. How does this work with IPv4/UPnP?

Re:IPv6 Is Hard by ninkendo on Sunday February 16, 2025 @03:50PM (#43071545)
I’m not talking about SIP, I’m talking about a hypothetical piece of software that an IPv6 proponent may typically claim that is made possible by unique GUA’s for each device. My point is that the GUA alone isn’t enough to make this work, you still need:

- UPnP or something like it - A place to register your address, since they change all the time even in IPv6

And if you need these two things anyway, you can do this with IPv4, with the added change that you also include the port when registering your address, which makes the “multiple phones in a network” thing work.

Re:IPv6 Is Hard by vel0city on Sunday February 16, 2025 @04:19PM (#43071813)
> I’m talking about a hypothetical piece of software that an IPv6 proponent may typically claim that is made possible by unique GUA’s for each device.

Like, say, a SIP client? Wanting to listen on the standard SIP port?

Or say two web servers that both want to listen on :443 and you don't want to have to reverse proxy them from another box.

> UPnP or something like it

> https://datatracker.ietf.org/doc/html/rfc6887

Port Control Protocol seems to be pretty well supported on most of the devices I own even in IPv6.

And in the end I'm pretty boned if I'm on CGNAT usually. I can pretty much never get my Switch to do matchmaking with peers on IPv4 when I'm on a CGNAT network. If we were all on IPv6, it wouldn't be a problem.

Re:IPv6 Is Hard by ninkendo on Sunday February 16, 2025 @04:29PM (#43071884)
> Like, say, a SIP client?

No, not like, say, a SIP client.

You seem pretty intent on not reading my whole comments or something. Mind responding to what I’m saying and not just making up your own arguments?

I’m saying “ipv6 alone won’t solve X”, and you’re saying “but what about Y?”

Re:IPv6 Is Hard by vel0city on Sunday February 16, 2025 @04:45PM (#43072019)
I'm saying "but what about Y" and you're acting like Y is never a valid issue that anyone ever seems to have.

So once again, how do two devices both share port 5061 on a UPnP NAT with a single public IP address? Or even worse, if they're CGNAT'd? It's a simple answer with IPv6...

Re:IPv6 Is Hard by ninkendo on Sunday February 16, 2025 @04:56PM (#43072117)
Again with the not reading. Let me try to sum up my position so we can end this whole “nuh uh!” nonsense.

IPv6 was designed in a world where we thought we’d have a truly peer-to-peer internet where anyone could just talk to someone else’s device. This obviously isn’t what happened. An ipv6 proponent may say “this is because NAT breaks the necessary assumptions”, but that’s extremely oversimplified and wrong.

The reason that, when I use my iPhone to FaceTime my mom’s iPhone, it doesn’t just use SIP to contact her phone, isn’t because IPv4 and NAT. It’s because the very idea of that is nearly impossible to implement at scale even if everyone had a unique address.

I’m aware you can’t have multiple devices behind a NAT address listen on the same port. Thank you for pointing that out, you’re very smart. But it really doesn’t address my point at all, does it?

My point being that the reason we don’t use SIP and related technologies for billions of end user devices today, isn’t because of NAT. It’s because the myriad of other problems that would need to be solved for it to work reliably, and because of NAT. Eliminating NAT wouldn’t really meaningfully change the landscape of how software works. FaceTime calls would still go through Apple servers. People would still use centralized services run in real data centers, etc.

Re:IPv6 Is Hard by vel0city on Sunday February 16, 2025 @05:15PM (#43072272)
> I’m aware you can’t have multiple devices behind a NAT address listen on the same port. Thank you for pointing that out, you’re very smart.

Ah, finally, you do acknowledge that there are issues that aren't actually solved with IPv4 and NAT. Thanks.

> But it really doesn’t address my point at all, does it?

Lets go back to the first thing I was reponding to.

> it still wouldn’t let you design something like a VoIP phone (or a pure peer-to-peer version of FaceTime) that just listened for connections and let other people “call” you by connecting to your device.

With having a public IP address, PMP enabled on my router, and DNS registration I have this today. My SIP phone here is sitting by, waiting for incoming calls. I don't need Apple's servers for this. Anyone with a SIP client and who knows the name can get to it (or trawls IPv6 space). This becomes a headache with IPv4 with multiple devices all wanting that 5061 port. Sure, one could just also tell people the port and have lots of random ports assigned, but that's just yet another bit of information to get lost, one more mapping to maintain, etc. Imagine if Amazon ran their ecommerce site off a random high number port instead of :443, think they'd get as much traffic?

Re:IPv6 Is Hard by ninkendo on Sunday February 16, 2025 @05:25PM (#43072360)
> With having a public IP address, PMP enabled on my router, and DNS registration I have this today.

That’s cool for you, congratulations.

I’m talking about the broader internet at large, and the billions of users on it, and the software that is written for these billions of users. This software does not behave the way your cool phone does. Because people’s IP’s change. They’re behind firewalls they are unable or don’t understand how to configure. We don’t write software this way for a lot of good reasons.

Now, I keep talking about this, then you bring up “but I have this use case, what about that?” Demanding an answer as if I give a shit that you want to run a SIP phone at your house, and you’re willing to configure your firewall, etc.

My whole point (!!!) is that what you’re doing is not what the billions of people using the internet are doing. When I bought my mom an iPhone, I didn’t have to tell her “ok so, FaceTime only works at your house, you have to reconfigure this DDNS service when your IP changes, you have to configure your router this way, and don’t ever leave the WiFi network or it won’t work, but thank god for ipv6, because it means dad can do all this too for his phone!” No. Because FaceTime doesn’t work that way, nor could it ever, because doing true peer to peer calling was never a thing that would have ever worked at scale. It’s not being held back by NAT. It’s being held back because it was never gonna work in the first place.*

Re:IPv6 Is Hard by vel0city on Sunday February 16, 2025 @09:46PM (#43074470)
> and you’re willing to configure your firewall

I didn't have to configure the firewall, that happened automatically with PMP. That thing you didn't even know existed until a few hours ago.

But somehow you know all that is and is not possible. All that could have been if things were different.

Re:IPv6 Is Hard by ninkendo on Sunday February 16, 2025 @11:16PM (#43075068)
Sick burn bro

I mean if you’re just going to sling ad-hominems around and invent your own argument so you have a chance at winning it, sure. I’m not aware of the specific RFC’s du jour that are used for auto-configuring routers. But after spending some time looking it up, it seems relatively niche (not as widespread as UPnP), and it appears the last 3 routers I’ve owned don’t support it. (I run an openbsd box with pf currently, but my unifi gateway before that didn’t support it, and the shitbox gateway Comcast gave me before that certainly didn’t support it. I could run a service on my openbsd box to support it but it wouldn’t make a difference because I’m perfectly capable of editing my pf.conf as it is.)

But if you’re gonna dig up other posts of mine to try and get a dig in at me, maybe at least read the rest of the post? You certainly haven’t done a good job of that so far.

Because I indicated that of course a protocol like this ought to exist, but what percentage of users of the broader internet are actually running a router that supports this? If you wanted to come out with a video calling app that only worked if your users had PMP working, what market share would you be losing out on? That’s the topic of discussion here after all (not that that’ll stop you from inventing your own discussion as you’ve continued to do.)

Re:IPv6 Is Hard by vel0city on Sunday February 16, 2025 @11:43PM (#43075235)
> I’m not aware of the specific RFC’s du jour

Funny way to say you don't know what you're talking about. If you don't know what technologies are actually out there how can you say what is and is not possible?

> but what percentage of users of the broader internet are actually running a router that supports this?

Most who aren't running their own home rolled pf setup that can't be bothered to read about "the latest" (over a decade old) RFCs.

And yeah, last I ran a UniFi gateway it supported PMP. That was several years ago. If it's a recent model device with halfway decent IPv6 support it's practically a sure thing it's got PMP support. Maybe disabled, but it supports it. Same with UPnP, might be disabled, but probably supported.

Re:IPv6 Is Hard by ninkendo on Monday February 17, 2025 @12:16AM (#43075423)
[delayed]
Re:IPv6 Is Hard by vel0city on Monday February 17, 2025 @12:57AM (#43075656)
> I guess you really enjoy feeling superior

> Sick burn bro

> My post was basically the biggest pile of sarcasm I could conjure and you still took it seriously, congratulations!

> That’s cool for you, congratulations

> not that that’ll stop you from inventing your own discussion

> I don’t think I’ve met someone that truly thinks technological progress stopped in the 1990s and that URL’s and DNS are all we actually need.

And yet you accuse me of ad homenims for pointing out your acknowledgement of not knowing of the last decade+ of networking tech and that I have a need to feel superior. Pot meet kettle buddy.

You've spent so much effort telling me what's possible or not, berating me multiple times, while acknowledging you haven't kept up with decade+ old tech.

Re:IPv6 Is Hard by Hikikomori on Sunday February 16, 2025 @04:06PM (#43071708)
Why would they need the same port?
Re:IPv6 Is Hard by vel0city on Sunday February 16, 2025 @04:22PM (#43071836)
Because they don't want to have to rely on an external service to find the right port. Just like how your browser doesn't need to be told to connect to :443 for HTTPS. If you're connecting encrypted SIP, the port is assumed to be 5061. Just like HTTP is assumed to be 80, SSH is 22, etc.
Re:IPv6 Is Hard by ninkendo on Sunday February 16, 2025 @04:40PM (#43071967)
In what world do you not need to rely on an external service to find information like this? IP addresses change, people move around, etc etc.

The topic of discussion right now is peer-to-peer software, which is the quintessential thing that is always lauded by ipv6 proponents as the killer app of ipv6, because each device has its own globally-routable IP.

But “what address do I send these packets to?” is like, 10% of the issue with designing p2p software. Users ip’s are always changing. They move around. They go behind firewalls that will block their traffic. They go behind firewalls they don’t have permission to reconfigure. This is the case in IPv4, and it will always continue to be the case even if we were 100% IPv6.

IPv4 can work today for p2p use cases if you don’t make the assumption that the port is static. But that’s like 1 of N assumptions you have to check if you’re writing peer to peer software. The other N of them are all still issues, even in IPv6.

Re:IPv6 Is Hard by vel0city on Sunday February 16, 2025 @05:19PM (#43072317)
> But “what address do I send these packets to?” is like, 10% of the issue with designing p2p software

So wouldn't it be nice to go ahead and solve that 10% of the problem instead of just limping along with it?

Re:IPv6 Is Hard by Dylan16807 on Sunday February 16, 2025 @09:49PM (#43074491)
I hope you're not implying that IPv6 solves the problem of knowing what address to connect to.

If you can avoid an explicit port, that can be nice. But anywhere you're using an IP, v6 without a port is longer than v4 with a port. An implicit port is only useful when you're using DNS. (And if you're designing a service, you can choose to use DNS records that contain the port.)

Re:IPv6 Is Hard by vel0city on Sunday February 16, 2025 @10:45PM (#43074903)
I'm all for things to start using SRV records as well!
Re:IPv6 Is Hard by Hikikomori on Sunday February 16, 2025 @04:37PM (#43071945)
But the external service needs to know your ip, so why not port as well?
Re:IPv6 Is Hard by vel0city on Sunday February 16, 2025 @04:51PM (#43072066)
Did you have to look up something to know this site is hosted on :443 or did you just make an assumption? Some kind of standardized port you connected on? Wouldn't it be nice if every device could just assume the standardized ports were available for them if they wanted them?
Re:IPv6 Is Hard by Hikikomori on Sunday February 16, 2025 @05:26PM (#43072369)
VOIP systems don't really work like random webservers though.
Re:IPv6 Is Hard by vel0city on Sunday February 16, 2025 @05:46PM (#43072546)
There's little reason why they couldn't though. Why shouldn't I just call Apple by doing sip://support.apple.com ? Why can't people just call me at sip://desk-phone.vel0city.whatever (they actually can, if they know the right name) or sip://cell.hikikomori.apple.net ?

Instead, we're locked into proprietary platforms or relying on old phone systems.

Re:IPv6 Is Hard by ninkendo on Sunday February 16, 2025 @06:02PM (#43072681)
Ok so try calling my phone at sip://ninkendo.example. Oh, I’m actually not at my house. I’m traveling and my device is moving from one cell tower to the next, getting a new IP address every few minutes. Then I get to my friends house and his router is gonna block unestablished connections so you better call me soon.

No, there’s a reason software like FaceTime, and calling in general, are mediated by centralized services and implemented as client-server. Because relying on your users to have stable IP’s, and to always be behind a properly configured firewall, would be an utterly insane way to design something.

Hence “ipv6 is a relic of a bygone era”, because in the era we live in now, IP addresses change and users move between networks constantly, and NAT is very much the least of our problems.

Re:IPv6 Is Hard by vel0city on Sunday February 16, 2025 @06:22PM (#43072844)
> my device is moving from one cell tower to the next, getting a new IP address every few minutes

You're pretty much never getting a new IP at every cell tower.

> Then I get to my friends house and his router is gonna block unestablished connections so you better call me soon.

PMP can solve that.

> Because relying on your users to have stable IP’s

Not a stable IP, but some kind of stable identity. Like a DNS name. That can be provided by someone like Apple, or Google, or whoever. It doesn't need to be ultra-centralized by only a single thing controlling it.

Re:IPv6 Is Hard by ninkendo on Sunday February 16, 2025 @06:42PM (#43073029)
Wow.

My post was basically the biggest pile of sarcasm I could conjure and you still took it seriously, congratulations!

Am I to understand your stated position is, we should have designed mobile phones to work in such a way that requires (1) dynamic DNS that instantly converges when I move to another network, and every single mobile customer getting a DNS address (2) a requirement that every network you connect to, perfectly knows to reconfigure its firewall rules to accommodate people coming and going, including cell towers? And furthermore, that that would totally be how all phones would work today, if not for IPv4 and NAT standing in the way?

I guess I’m… impressed? I don’t think I’ve met someone that truly thinks technological progress stopped in the 1990s and that URL’s and DNS are all we actually need.

I can’t wait for you to explain how you think text messaging ought to work.

Re:IPv6 Is Hard by vel0city on Sunday February 16, 2025 @08:17PM (#43073778)
> I don’t think I’ve met someone that truly thinks technological progress stopped in the 1990s and that URL’s and DNS are all we actually need

I never said this. You're putting some rather strong words in my mouth. Just giving an example of something that could have been if it wasn't for NAT and an acceptance that you need a third party platform to allow you talk. Feel free to change out the pieces to whatever.

Personally I'd like to be able to just dial a FaceTime-like client from any device instead of just what Apple blesses with accounts Apple allows. And have that stack just be the norm. I understand NAT isn't the only headache that prevents this, but it is one of the several that does.

I don't think it's crazy to think easy dynamic DNS services could have become common if advertised right. People don't know how phone numbers work but in the end they know how to use them. The tech for routers to auto configure firewall rules based on client requests exists, and potentially if everyone-has-a-public-ip was common we'd have seen less reliance on brittle edge firewalls and NAT to provide so much of our security.

Killing NAT doesn't solve all the problems, but it does solve some of them. And I'd prefer solving the ones that help give users more freedom instead of accepting things like CGNAT.

Re:IPv6 Is Hard by Dagger2 on Sunday February 16, 2025 @08:33PM (#43073904)
FWIW IPv6 can handle this scenario just fine, by letting you take your home IP with you when you move to other networks. I don't think "v6 is a relic of a bygone era" is fair to say when it has a way to handle this exact problem.
Re:IPv6 Is Hard by ninkendo on Sunday February 16, 2025 @10:37PM (#43074832)
How does ipv6 let me take my IP with me, exactly? Citation needed. I mean, I have WireGuard installed on my phone and I get a tunnel my house wherever I go, but that’s not really the same thing, is it? You’re saying there’s a way for me, wherever I go, my house, 5G, my friends house, to just have traffic routed to my phone for a consistent IP address wherever I go? Not a VPN? Through something only IPv6 provides? Could you explain what this is? Because my ISP at home won’t even give me a consistent IP, not even a stable prefix.
Re:IPv6 Is Hard by vel0city on Sunday February 16, 2025 @11:06PM (#43075018)
It kind of exists in IPv4, but is a lot messier. Also, the lack of IPv4 addresses makes this a lot harder to do something like this in IPv4.

https://datatracker.ietf.org/doc/html/rfc6275

Re:IPv6 Is Hard by Tigress8780 on Monday February 17, 2025 @01:25AM (#43075840)
We have this thing called NATMap: https://github.com/heiher/natmap

It gives you a public dynamic IP + port combination if your network is NAT1 all the way to the internet. Both IP & port being dynamic kinda complicates things, they ended up inventing a new DNS record type, "IP4P" where IPv4 address and port are encoded as an IPv6 address, and modified WireGuard/OpenVPN clients are required.

We are supposed to solve this using SRV records, but I don't think many consumer-facing apps can do this.

Re:IPv6 Is Hard by saurik on Monday February 17, 2025 @01:30AM (#43075874)
The two devices shouldn't both need to be on the one port 5061: we have numerous solutions to that problem at this point, from specifying the port as part of the connection to auto-detecting it using SRV in DNS. Yes: making some small changes to existing software to not assume hardcoded ports is required in this future... but there is no way that those changes would have been (or frankly even still are) harder than the insane solution of reimplementing and redesigning the entire world--requiring its own changes to every protocol (including SIP) and breaking a strict and extremely large superset of the same references that merely needed a port number--to support IPv6.
Re:IPv6 Is Hard by globular-toast on Sunday February 16, 2025 @03:09PM (#43071200)
Oh god, no, no, no. It's so frustrating to hear this over and over again. NAT is not a firewall. A firewall is a firewall and any reasonably component network admin uses one (and likewise any reasonably competent ISP supplies equipment with one to users who don't know any better). A little knowledge is a dangerous thing...
Re:IPv6 Is Hard by ninkendo on Sunday February 16, 2025 @03:54PM (#43071596)
Can you pick a specific thing in my post to argue against? I never claimed NAT and firewalls are the same thing. I claimed that whether you’re using IPv4 with NAT, or IPv6 with a default-deny firewall, you can’t have software just “assume” that it can listen to incoming connections and have things just work. You need to go to your router and configure something. Since approximately 0% of people in the world at large know how to do this, it means software can’t work this way in general, and IPv6 doesn’t change this.
Re:IPv6 Is Hard by globular-toast on Monday February 17, 2025 @03:17AM (#43076505)
Ok, but things "just working" isn't the only advantage of v6. Are you aware some people don't even get v4 address at all? Have you ever been unfortunate enough to have your LAN v4 range overlap with a network you VPN to (like a corporate network)? What if you want to run two web servers?
Re:IPv6 Is Hard by ninkendo on Monday February 17, 2025 @07:01AM (#43077997)
A lot of people seem to think I’m anti-ipv6… I’m not, actually. I run it at home, I evangelize for it, I think it’s the future and the sooner we move to it, the better. It solves real problems, the shortage of addresses being the most obvious.

What I’m against is the oversimplification that if we only had ipv6 from the start, that the internet would have turned out very different and we’d be directly connecting to each other through direct unsolicited connections or something.

No, there are a lot of reasons direct unsolicited peer to peer communication are not a good expectation to have on the modern internet. NAT makes it tough, yes, but so does security (you’re gonna want to firewall your network at the gateway anyway, even in v6), changing addresses, mobility, etc.

For instance, even in my network at home, I don’t think using my real GUA prefix on each device is a great idea. Because the prefix changes, I have to use ULA for any static configs (dns, etc), which means the GUA address is this extra address I don’t use, and it only complicates things. So I’m moving toward ULA-only with NAT66, which I think is a more sane choice. I get the benefits of lots of addresses, which is great, but instead of my firewall simply allowing traffic to my public stuff, I just NAT a public IP to each public thing I want.

Re:IPv6 Is Hard by felbane on Monday February 17, 2025 @08:35AM (#43078844)
Maybe I'm blind, but I haven't seen anywhere else in the thread where "we'd be directly connecting unsolicited" is mentioned apart from where you've prompted it.

I don't think any reasonable engineer expects that that end would ever be the case, even if it was one of the stated original "dreams" of IPv6.

Re:IPv6 Is Hard by ninkendo on Monday February 17, 2025 @09:21AM (#43079266)
> I don't think any reasonable engineer expects that that end would ever be the case, even if it was one of the stated original "dreams" of IPv6.

Then imagine my frustration when that'e the exact argument people are giving: https://news.ycombinator.com/item?id=43072844

Like, I come up with these scenarios as a strawman to illustrate that direct client-to-client connections aren't going to work, and people come and say "actually it totally could work! We have PCP, and DDNS! Cell towers have mobile IP's too so you're only going to change IP addresses 3 times on your drive to your friend's house! And his router will also support PCP so it could have totally worked this way!"

I literally came up with the example to sound as crazy as possible, and people still say "Yup, that's exactly how things could have worked if we had IPv6. Now look at how stupid ninkendo is for not knowing about PCP, the moron~"

Like imagine if steve jobs came on stage in 2011 to introduce FaceTime, and said "You can make video calls to other people on iPhones, it's great! But you have to know their IP address. Or subscribe to a DDNS service. Make sure to use really low TTL's on your DNS records in case you roam to a different network. Oh and you have to have a router which supports PCP. Every router you connect to must support it." Even in a world where IPv6 was everywhere, that would be insane. (Well, other commenters seem to think that's exactly how phones ought to work? Maybe I'm the crazy one?)

Re:IPv6 Is Hard by LegionMammal978 on Sunday February 16, 2025 @03:28PM (#43071360)
How would you design a NAT-based LAN that shares nothing in common with a firewall?
Re:IPv6 Is Hard by vel0city on Sunday February 16, 2025 @04:43PM (#43072007)
1 to 1 NAT isn't doing any firewalling. Source NAT isn't doing any firewalling. Static NAT isn't doing any firewalling. All of these will generally just send traffic along if there's no other firewall rule associated.
Re:IPv6 Is Hard by icedchai on Sunday February 16, 2025 @06:58PM (#43073167)
When most people say "NAT", in the home user / consumer sense, they really mean "PAT": ports mapping to multiple private IPs using a single public IP.
Re:IPv6 Is Hard by Dagger2 on Sunday February 16, 2025 @08:22PM (#43073804)
"PAT" is not doing any firewalling either.

(It does rely on state tracking, which it shares in common with stateful firewalls, but you could run a LAN with either a stateless firewall or no firewall if you really wanted to meet the "nothing in common with a firewall" requirement.)

Re:IPv6 Is Hard by XorNot on Sunday February 16, 2025 @07:01PM (#43073188)
This seems like it's conflating problems?

"All devices are routeable" is a good idea, because it means when we want devices to be routeable there's a simple and obvious way that should be done.

Where we've ended up with NAT though is worse though: we still need a lot of devices to routeable, and so we enable all sorts of workarounds and non-obvious ways to make it happen, giving both an unreasonable illusion of security and making network configuration sufficiently unintuitive we're increasing the risk of failures.

Something like UPnP for example - shouldn't exist (and in fact I have it turned off these days because UDP hole-punching works just fine, but all of this is insane).

Re:IPv6 Is Hard by aboardRat4 on Sunday February 16, 2025 @07:48PM (#43073559)
NAT is not an illusion of security, it's very practical security.

Just look at the distribution of successful attacks in 2000 and in 2025.

Re:IPv6 Is Hard by vel0city on Sunday February 16, 2025 @09:53PM (#43074514)
Yes, because NAT was the only notable change in home computing between 2000 and 2025. Totally not all the other changes that happened, 100% NAT. Yep.
Re:IPv6 Is Hard by 6SixTy on Sunday February 16, 2025 @07:31PM (#43073417)
NAT was invented to connect entire businesses to the internet that would otherwise have to manually reconfigure every single device for the internet. Keeping IPv4 going amidst address exhaustion going was a lucky coincidence of it.
Re:IPv6 Is Hard by belorn on Sunday February 16, 2025 @08:23PM (#43073817)
The model of having every router being a firewall has created a fair bit of false security, with vulnerable systems being left behind the firewall and simply waiting until a user inside the network does something unwise. It seems a common story where whole hospitals or municipalities get shut down because one host got infected and then all the unpatched system in the same network got hit.

There is also a bit of conflated use of terms. A firewall on windows is just a fancy name of permission management. A program want to open a port and the user get a prompt if they want to allow it (assuming the user has such privileges). It is indistinguishable from similar permission system found on phones that ask if an app is allowed to access contacts. The only distinguishable "feature" is that programs might not be aware that the permission was denied, thus opening a port that is not actually open. Windows programmers may know more of the specific of this.

Re:IPv6 Is Hard by AtlasBarfed on Sunday February 16, 2025 @11:20PM (#43075094)
So your idea is to open up access so all the IT orgs that can't keep their systems secure ...

... which is ... virtually all of them ...

get p0wned on a massive scale? You know, now with AI powered assaults for extra special vulnerability levels...

And then a magic wand happens, and the IT orgs that couldn't even install patches will be able to back-discover all the compromised hard drive firmwares, rootkits, and nth-level security holes after the fact?

I get a NAT wall isn't perfect security. But pretending it is NO security is disingenuous.

Re:IPv6 Is Hard by afiori on Monday February 17, 2025 @12:55AM (#43075647)
Not the parent but obviously no, but maybe if in the 90' it was the standard to not assume that the network was secure we would be in a better spot now (maybe a spot where company intranets use authentication instead of vpns
Re:IPv6 Is Hard by kstrauser on Monday February 17, 2025 @10:50AM (#43080157)
Every company in spoken to in the last few years has been moving toward zero-trust network, where you assume that every single device is on a hostile network. There’s nothing inherently safe and secure about the corp network, so treat it as if all those cubicles were connecting in from Starbucks.

IMO this is the only way forward.

Re:IPv6 Is Hard by lotsofpulp on Sunday February 16, 2025 @09:06PM (#43074157)
>The really sad thing about IPv6 is that it's a relic of a bygone era. The internet was envisioned as a thing where every device on every network could, in principle, initiate a connection to any other device on any other network. But then we started running out of addresses, ISP's wouldn't give you more than one for a household, so we started doing NAT, and that kind of sealed the internet's fate.

I thought the problem was lack of upload bandwidth for almost all households without fiber to the home. Surely, if people had symmetric broadband internet at home, then there would have been commercial solutions to allow devices to connect to each other, thereby decreasing the need for giant cloud providers.

Re:IPv6 Is Hard by redmajor12 on Monday February 17, 2025 @01:44AM (#43075939)
I don't want all my devices to have their own unique address. The internet dream that created ipv6 is dead. It's malware, spyware, surveillance capitalism now, and the more obscurity through layers of addresses, the better.
Re:IPv6 Is Hard by 7bit on Monday February 17, 2025 @04:03AM (#43076760)
Your comment comes grom a place If ignorance.

> We don't _want_ end-to-end connectivity.

YOU dont want that.

The wish to not have all devices connected to the Internet does not defeat the need of having a protocol that allows that. NAT is merely a workaround that introduced a lot of technical debt because we don't have enought IPv4 addresses. And having IPv6 does not mean that you must connect everything to the internet.

IPv6 Is good and absolutely necessary. NAT is really expensive and creates a lot of problems in large networks. Having the possibility to just hand out routsble addresses solves a lot of problems.

Re:IPv6 Is Hard by ninkendo on Monday February 17, 2025 @10:33AM (#43079986)
I'm starting to notice a pattern in these threads in HN every time IPv6 comes up. It's kinda like the vim/emacs holy war back in the day. I also see it in threads about Rust vs C++.

There's a kind of holy war, where people pick sides, and if you're "team IPv6", you look for any post that kinda vaguely smells like it defends IPv4, call them ignorant, and respond with the typical slew of reasons why IPv6 is better, NAT is a hack, you can still firewall with IPv6, etc. If you're "team IPv4" you look for the IPv6 posts and talk about how NAT is useful, IPv6 should have been less complicated, etc etc.

It's really tiresome.

Personally, I'm not on either "team". These things I believe:

- We need more addresses

- IPv6 is as good a solution as any, as no solution was going to be backwards compatible.

- We should get on with it and migrate to IPv6 as soon as possible. What's the hold up? I'm sick of running dual stack.

- But don't throw away NAT, please. I want my internal addresses to be stable and if possible, static and memorizable (An fd00::1 ULA [0] is even easier to remember than 192.168.1.1! And it won't change when my ISP suddenly hands me a new prefix.)

- But CGNAT is The Devil. Don't conflate my desire for using NAT at my house for some desire to be behind CGNAT. Again, we should get on IPv6 ASAP to banish CGNAT back to hell.

- Oh and don't pretend that IPv6 would have led to a more decentralized internet. A client/server model is inevitable for so many reasons, and true peer-to-peer where customers just communicate directly with one another is not a realistic goal, even with IPv6. Even with PMP/PCP. Even with DDNS. You just can't design software around the idea that "everyone's router is perfectly configured."

[0] No, I don't actually use fd00::/64 as my ULA prefix, I actually put my cellphone number in there :-P. The point being it's as memorizable as you want it to be.

Re:IPv6 Is Hard by yyyk on Monday February 17, 2025 @05:41PM (#43083989)
>We need more addresses

True.

>IPv6 is as good a solution as any...

There aren't any other practical solutions. Debatable if it was the best solution but it is what it is.

>We should get on with it and migrate to IPv6 as soon as possible

Most LANs will run IPv4 forever. IPv6 offers nothing to LANs larger than home labs (when SLAAC is not enough) but smaller than huge companies (when there are more than enough addresses even in IPv4. 240/4 is for every practical purpose private). The community's hostility to NAT/NPT means LAN admins will get it de facto by running another stack internally.

>I want my internal addresses to be stable and if possible, static and memorizable.

Right. But ULAs have ridiculous routing rules. It would take at least a decade for fixes to be deployed everywhere.

>Don't conflate my desire for using NAT at my house for some desire to be behind CGNAT.

Right. But most users don't care.

> A client/server model is inevitable for so many reasons.

Right.

Re:IPv6 Is Hard by ninkendo on Monday February 17, 2025 @06:40PM (#43084337)
> Right. But ULAs have ridiculous routing rules

Could you elaborate? I’m able to run ULA-only just fine, with one line in my pf.conf to route 1:1 to my GUA prefix. The NAT is stateless.

Maybe you’re referring to the fact that typical OS’s will prefer to use IPv4 over a ULA if both are available? I’ve noticed that, and indeed it’s unfortunate.

Re:IPv6 Is Hard by yyyk on Monday February 17, 2025 @07:02PM (#43084460)
>typical OS’s will prefer to use IPv4 over a ULA if both are available?

Yep. There's an RFC for this. I guess it would take a decade to be everywhere.

The Global > Local rule is also unfortunate in some configurations*, but that's more of a result of the end-to-end idea and software not realizing a device can have more than one address...

* One example from this thread: https://news.ycombinator.com/item?id=43070290

Re:IPv6 Is Hard by mzhaase on Monday February 17, 2025 @05:56AM (#43077506)
This is a misconception holding back the adoption of IPv6.

Routers have a stateful firewall meaning by default they only allow incoming packets that belong to a connection that was initiated from the inside. By default you also have this kind of firewall on every operating system. NAT adds 0 additional security.

Re:IPv6 Is Hard by jodrellblank on Monday February 17, 2025 @06:51AM (#43077908)
> "The really sad thing about IPv6 is that it's a relic of a bygone era."

Yes, and not only for the NAT reason you say; see "The world in which IPv6 was a good deisgn" by Apenwarr, from 2017: https://apenwarr.ca/log/20170810