New patches allow building Linux IPv6-only (phoronix.com)

by Bender 188 comments 121 points
Read article View on HN

188 comments

[−] rafaelcosta 44d ago
As it should. Date notwithstanding, I would actually enjoy if there was a manually induced latency penalty for "legacy IP" that needs to be manually turned off on Linux. I know some people don't care at all, but the internet was made to be addressable. IPv6 is the only shot we have to go back to that.
[−] everdrive 44d ago
- I don't want my interfaces to have multiple IP addresses

- I don't want my devices to have public, discoverable IPs

- I like NAT and it works fine

- I don't want to use dynamic DNS just so I have set up a single home server without my ISP rotating my /64 for no reason (and no SLAAC is not an answer because I don't want multiple addresses per interface)

- I don't need an entire /48 for my home network

IPv6 won't help the internet "be addressable." Almost everyone is moving towards centralized services, and almost no one is running home servers. IPv4 is not what is holding this back.

[−] Sanzig 44d ago
Why don't you want every device to have a public IP? There seems to be a perception that this is somehow insecure, but the default configuration of any router is to firewall everything. And one small bonus of the huge size of a /64 is that port scanning is not feasible, unlike in the old days when you could trivially scan a whole IPv4 /24 of a company that forgot to configure their firewall.

NAT may work fine for your setup, but it can be a huge headache for some users, especially users on CGNAT. How many years of human effort have gone towards unnecessary NAT workarounds? With IPv6, if you want a peer-to-peer connection between firewalled peers, you do a quick UDP hole punch and you're done - since everything has a unique IP, you don't even need to worry about remapping port numbers.

Your ISP shouldn't be rotating your /64, although unfortunately many do since they are still IPv4-brained when it comes to prefix assignment. Best practice is to assign a static /56 per customer, although admittedly this isn't always followed.

And if you don't need a /48... don't use it? 99.99% of home customers will just automatically use the first /64 in the block, and that's totally fine. There's a ton of address space available, there's no drawback to giving every customer a /56 or even a /48.

[−] jrm4 44d ago
[flagged]
[−] craftkiller 44d ago
You can't correlate the number of addresses with the number of devices because IPv6 temporary addresses exist. If you enable temporary addresses, your computer will periodically randomly generate a new address and switch to it.

https://www.rfc-editor.org/rfc/rfc8981.html

[−] saltcured 44d ago
I feel like this is a silly narrowing of the problem for normal, retail users. My priority isn't masking "the number of addresses" or devices. My desire is to not have a persistent identifier to correlate all my traffic. The whole idea of temporary addresses fails at this because the network prefix becomes the correlation ID.

I'm not an IPv4 apologist though. Clearly the NAT/DHCP assignments from the ISP are essentially the same risk, with just one shallow layer of pseudo-obscurity. I'd rather have IPv6 and remind myself that my traffic is tagged with my customer ID, one way or another.

Unfortunately, I see no real hope that this will ever be mitigated. Incentives are not aligned for any ISP to actually help mask customer traffic. It seems that onion routing (i.e. Tor) is the best anyone has come up with, and I suspect that in today's world, this has become a net liability for a mundane, privacy-conscious user.

[−] throw0101c 44d ago

>

My desire is to not have a persistent identifier to correlate all my traffic.

Reboot your router. Asus (with the vendor firmware) allows you do this in a scheduled manner. You'll get a new IPv4 WAN IP (for your NAT stuff) and (with most ISPs) a new IPV6 prefix.

As it stands, if you think NAT hides an individual device, you may have a false sense of security (PDF):

* https://oasis.library.unlv.edu/cgi/viewcontent.cgi?article=1...

[−] ronsor 44d ago

> The whole idea of temporary addresses fails at this because the network prefix becomes the correlation ID.

So the same as the public IPv4 on a traditional home NAT setup?

[−] graemep 44d ago
Most home users do not have a static public IPv4 address - they have a single address that changes over time.
[−] db48x 44d ago
But most ISPs aren’t giving out static IPv6 prefixes either. Instead they are collecting logs of what addresses they’ve handed out to which customer and holding on to them for years and years in case a court requests them. Tracking visitors doesn’t need to use ip addresses simply because it’s trivial to do so with cookies or browser fingerprinting. There’s exactly zero privacy either way.
[−] graemep 44d ago

> Instead they are collecting logs of what addresses they’ve handed out to which customer and holding on to them for years and years in case a court requests them.

They are only supposed to hang on to them for a limited time according to the law where I live (six months AFAIK). Courts are also unwilling to accept IPv4 addresses as proof of identity.

> Tracking visitors doesn’t need to use ip addresses simply because it’s trivial to do so with cookies or browser fingerprinting

Cookies can be deleted. Browser fingerprinting can be made unreliable.

Its not zero privacy either way. Privacy is not a binary. Giving out more information reduces your privacy.

[−] throw0101c 44d ago

>

Most home users do not have a static public IPv4 address - they have a single address that changes over time.

I'd be curious to know the statistics on this: I would hazard to guess that for most ISPs, if your router/modem does not reboot, your IPv4 address (and IPv6 prefix) will not change.

[−] jrm4 42d ago
[flagged]
[−] jrm4 44d ago
[flagged]
[−] craftkiller 44d ago
Temporary addresses are enabled by default in OSX, windows, android, and iOS. That's what, like 95% of the consumer non-server market? As for Linux, that's going to be up to each distro to decide what their defaults are. It looks like they are _not_ the default on FreeBSD, which makes sense because that OS is primarily targeting servers (even though I use it on my laptop).
[−] zekica 44d ago
Temporary addresses are used by any Linux distro using NetworkManager (all desktop ones). For server distros, it can differ.
[−] Levitating 44d ago
In Gnome it's just a toggle in the network settings
[−] password4321 44d ago

>

ALL THE HEAVY LIFTING THERE

> MUCH MORE IMPORTANT

I haven't done the exhaustive research but props in advance for being the only person shouting in caps on HN. Definitely one way to proclaim one's not AI-ness without forced spelling errors.

[−] jrm4 44d ago
Didn't even think about that. Interesting.
[−] electronsoup 44d ago
and most OS do enable it by default
[−] iamnothere 44d ago
I don’t want some of my devices to be publicly addressable at all, even if I mess up something at the firewall while updating the rules. NAT provides this by default.

I don’t want a static address either (although static addresses should be freely available to those who want them). Having a rotating IP provides a small privacy benefit. People who have upset other people during an online gaming session will understand; revenge DDoS is not unheard of in the gaming world.

[−] craftkiller 44d ago

> I don’t want some of my devices to be publicly addressable at all, even if I mess up something at the firewall while updating the rules. NAT provides this by default.

Do you ever connect your laptop to any network other than your home network? For example, public wifi hotspots, hotel wifi, tech conferences, etc? If so, you need to be running a firewall _on your laptop_ anyway because your router is no longer there to save you from the other people on that network.

It's also a good idea even inside your home network, because one compromised device on your network could then lead to all your other firewall-less devices being exploited.

[−] UltraSane 44d ago
You can have IPv6 firewalls emulate the behavior of NAT so it blocks unsolicited inbound traffic while allowing outbound traffic. If you get a /48 form your ISP you could rotate to a new IP address every second for the rest of your life.
[−] ac29 44d ago

> I don’t want some of my devices to be publicly addressable at all, even if I mess up something at the firewall while updating the rules. NAT provides this by default.

This feels like a strawman. If you are making the sort of change that accidentally disables your IPv6 firewall completely, you could accidentally make a change that exposed IPv4 devices as well (accidentally enabling DMZ, or setting up port forwarding incorrectly for example).

[−] cyberax 44d ago

> Why don't you want every device to have a public IP?

Suddenly, your smart lightbulb is accessible by everyone. Not a great idea.

> With IPv6, if you want a peer-to-peer connection between firewalled peers, you do a quick UDP hole punch and you're done - since everything has a unique IP, you don't even need to worry about remapping port numbers.

There is no guarantee with IPv6 that hole punching works. It _usually_ does like with IPv4.

[−] zadikian 44d ago
Many routers don't firewall by default. Lemme check later, but pretty sure my basic ASUS router doesn't either.
[−] iso1631 44d ago
My ISP doesn't rotate my /48

However if I change my ISP I get a new one, and that means a renumbering.

[−] ErroneousBosh 44d ago

> Why don't you want every device to have a public IP?

What would be the advantage in it?

[−] qalmakka 44d ago
NAT is arguably a very broken solution.IPv4 isn't meant to be doing address translation, period. NAT creates all sorts of issues because in the end you're still pretending all communications are end to end, just with a proxy. We had to invent STUN and all sorts of hole punching techniques just to make things work decently, but they are lacking and have lots of issues we can't fix without changing IPv4. I do see why some people may like it, but it isn't a security measure and there are like a billion different ways to have better, more reliable security with IPv6. The "I don't want my devices to have public, discoverable IPs" is moot when you have literally billions of addresses assigned to you. with the /48 your ISP is supposed to assign you you may have 4 billion devices connected, each one with a set of 281 trillion unique addresses. You could randomly pick an IP per TCP/UDP connection and not exhaust them in _centuries_. The whole argument is kind of moot IMHO, we have ways to do privacy on top of IPv6 that don't require fucking up your network stack and having rendezvous servers setting that up.

We may also argue that NAT basically forces you to rely on cloud services - even doing a basic peer to peer VoIP call is a poor experience as soon as you have 2 layers of NAT. We had to move to centralised services because IPv4 made hosting your own content extremely hard, causing little interest in symmetrical DSL/fiber, leading to less interest into ensuring peer to peer connections between consumers are fast enough, which lead to the rise of cloud and so on. I truly believe that the Internet would be way different today if people could just access their computers from anywhere back in the '00s without having to know networking

[−] blueflow 44d ago

> I like NAT

I'm in favor of having society overrule you. NAT is a horrible kludge and not okay. Never was.

[−] zdp7 42d ago
Maybe you don't need the addresses, but there are other advantages. If we made the move, I suspect we could give you the experience you want and the one I want. I personally do want to host my own services. My phone is configured to send my pictures to Google and my personal NAS. Centralized services mean you have to trust that provider. These days I don't. I intend to leave centralized services so I know my content isn't training AI or the doorbell isn't spying on me or my neighbors. But, no instead we should force everyone to share the same IP addresses and run less efficient routing.
[−] knorker 44d ago
So run fc00::/7 addresses with IPv6 NAT.

That addresses all of your concerns, and you have that option.

[−] doubled112 44d ago
I recently changed ISPs and have IPv6 for the first time. I mostly felt the same way, but have learned to get over it. Some things took some getting used to.

An "ip address show" is messy with so many addresses.

Those public IPs are randomized on most devices, so one is created and more static but goes mostly unused. The randomly generated IPs aren't useful inbound for long. I don't think you could brute force scan that kind of address space, and the address used to connect to the Internet will be different in a few hours.

Having a public address doesn't worry me. At home I have a firewall at the edge. It is set to block everything incoming. Hosts have firewalls too. They also block everything. Back in the day, my PC got a real public IP too.

NAT really is nice for keeping internal/external separate mentally.

I'm lucky enough my current ISP does not rotate my IPv6 range. This, ironically, means I no longer need dynamic DNS. My IPv4 address changes daily.

A residential account usually gets a /56, what are you talking about? Nowhere near a /48! (I'm just being funny here...)

There are reasons to need direct connectivity that aren't hosting a server. Voice and video calls no longer need TURN/STUN. A bunch of workarounds required for online gaming become unnecessary. Be creative.

[−] Guvante 44d ago
NAT only matters in so far as you don't technically need a firewall to block incoming traffic since if it fails a NAT lookup you know to drop the traffic.

But from a security standpoint you can just do the same tracking for the same result. That is just technically a firewall at that point.

[−] UltraSane 44d ago
NAT is a horrible, HORRIBLE hack that makes everything in networking much more complicated. IP networking is very elegant when everyone is using globally unique addresses and a ugly mess when Carrier NAT is used.
[−] throwaway27448 44d ago
How is a public address any worse than NAT? You can always choose to not respond.
[−] bigstrat2003 44d ago
NAT demonstrably does not work fine. We have piles of ugly hacks (STUN, etc) that exist only because NAT does. If you really want to keep NAT then nothing stops you from running it on IPv6, but the rest of us shouldn't suffer because of your network design goals.
[−] t0mas88 44d ago
IPv4 is not holding back home setups, nobody cares about NAT at home.

The place where it hurts is small VPSs, from AWS to mom and pop hosters, the cost of addresses is becoming significant compared to low cost VPSs.

[−] kevvok 44d ago
It’s not implemented in the Linux kernel, but the latency penalty you’re describing is part of the “Happy Eyeballs” algorithm: https://en.wikipedia.org/wiki/Happy_Eyeballs
[−] apitman 44d ago
As sad as it makes me to admit, I don't think IPv6 is ever going to happen without government intervention. Adoption is flat at under 50% over the past year. IPv6 doesn't benefit big tech. SNI routing and NAT work pretty well for centralized platforms. AWS will gladly rent us IPv4 addresses until the end of time.
[−] nurettin 44d ago

> enjoy if there was a manually induced latency penalty for "legacy IP" that needs to be manually turned off on Linux

That sounds so bad, it probably will be a windows feature.

[−] hulitu 43d ago

> I would actually enjoy if there was a manually induced latency penalty for "legacy IP" that needs to be manually turned off on Linux

Use the source, Luke. Why not start with yourself ?

[−] nslsm 44d ago
This reminds me of the ways the governments screw over people to force them to do things they don’t want to.
[−] sidewndr46 44d ago
Why, so you can inflict some personal pain on people without IPv6 access?
[−] huijzer 44d ago
Please no. I used to have a Dutch ISP a few months ago that did not support IPv6 yet. (Odido. Same ISP that leaked my data in a big hack.)
[−] hrmtst93837 44d ago
[flagged]
[−] petcat 44d ago
It will be a neat experiment, but I think most software will break and will remain broken indefinitely and then people will turn to LLMs to try to automate fixing all of it and that will turn into a mess just due to the sheer amount of changes required with little scrutiny.
[−] Incipient 44d ago
The main thing I don't like is type-ability. Even now I type in 192.168.1.14 to connect to my mates computer to play satisfactory. No way in heck am I trying in an ip6!
[−] ThrowawayTestr 44d ago
When I was in grade school I did a presentation on ipv6 and how it was the future of the Internet. That was like 20 years ago.
[−] zamadatix 44d ago
Good stuff (both the joke and the genuine proposal of splitting the config options for IPv4 and IPv6).
[−] bornfreddy 44d ago
IPv6 vs. 4 is like Python 3 vs. 2, just worse.
[−] knorker 44d ago
I would like this option, to make it easier to run a CI environment truly IPv6-only. As in socket() to create a v4 socket should fail.

seccomp could only do this partially, in that there are other avenues (e.g. io_uring), and I want it to be the case throughout the boot process.

[−] 1970-01-01 44d ago
The best pranks are the ones that succeed to rattle an individual. Build it!
[−] porridgeraisin 44d ago
I suppose this will lead to a classic torvalds rant. I will be watching r/linusrants
[−] CookieCrisp 44d ago
We’re so close guys! Another 25 years and we might almost be there!
[−] Daegalus 44d ago
great, now can we convince the rest of the internet to start adding AAAA records and ipv6 endpoints for things. Github is still a nightmare to use DNS64 and NAT64 to access those from IPv6 only machines.

Or all the Container based stuff that still falls flat with ipv6 only modes. Docker still shits the bed if you dont give it ipv4 unless you do a lot of manual overrides to things. A bunch of Envoy based gateway proxies fail on internal ipv6 resources in a k8s cluster that runs on ARM64.

There is just a bunch of nonsense you have to deal with if you choose the ipv6-only route

Dont get me started on CDNs like Bunny or Load Balancers as a service like those from Hetzner, UpCloud, etc that don't work with ipv6 origins.

Source: Trying to run a ipv6 only self-hosted box on hetzner.

[−] VoodooJuJu 44d ago
[dead]
[−] calvinmorrison 44d ago
[flagged]
[−] iamnothere 44d ago
This may be a “joke”, but it’s disturbing to see people clamoring to deny others their freedom in a FOSS context.

Want to use IPv6? Fine. But don’t try to remove v4 support from people who have built stable networks around it.

You won’t be able to force the world to switch to IPv6 with tricks like this, any more than you can force old industrial machines to stop using ancient 486es as controllers. There is a lot of old equipment in the world.

IPv6 was built to work alongside v4, and there is no reason to change that.