Thread (32 messages) 32 messages, 9 authors, 2026-05-29

Re: Problem with IPv6 privacy addresses in 7.0

flat view

From: Stefano Brivio <hidden>
Date: 2026-05-28 05:38:55

Hi Fernando, Jakub,

On Wed, 27 May 2026 23:59:47 +0200
Fernando Fernandez Mancera [off-list ref] wrote:
On 5/27/26 11:51 PM, Chris Adams wrote:
quoted
Once upon a time, Jakub Kicinski [off-list ref] said:  
quoted
On Tue, 26 May 2026 20:06:41 -0500 Chris Adams wrote:  
quoted
quoted
Hi! Adding more people to CC. Do you know if you upgraded from 6.18
or 6.19?  
It was 6.19 to 7.0.
 
quoted
Would you be able to try testing with some commits reverted?
On a quick look the candidates would be:

cb3de96eea66 ("ipv6: preserve insertion order for same-scope addresses")  
It's this one.  
Phew, the second one was mine :)
 
quoted
I figured out that it happens after stopping a VM (and I usually
start/stop a VM for a bit in the morning, which is why it happened more
than once).  So I set up a VM with a nested VM, running up-to-date
Fedora 44, and then was able to bisect pretty easily, and it landed on
this commit.

Fedora is using NetworkManager, and IIRC NM does some part of privacy
address management (right?).  NM didn't change, so maybe this commit is
confusing something in NM?  
Sounds plausible, pretty sure we knew this commit was risky to begin
with, but we had no direct proof that it'd break real life users.

Revert is the right course of action here. Would you be willing/able
to send the revert with your problem description and a Fixes tag
pointing to the reverted commit?  
I did want to add a little more test note:

It's definitely an interaction with NetworkManager.  If I stop NM and
run my VM start/stop test, nothing unexpected happens after.  If NM is
running and I do my VM test, when the next router advertisement is
received, NM replaces the privacy addresses.
  
As someone that is experienced in NetworkManager, I can confirm it is 
related. NetworkManager is querying the IPv6 address and when the 
connection is configured with ipv6.ip6-privacy=2 (prefer-temp-addr), 
NetworkManager creates a route to make the system use the temporary 
address for outgoing connections by default.

If the order is messed up, the address picked will likely be too. One 
could argue that this is partially fault of NetworkManager and that it 
should check the timestamps or preferred times rather than order.. but 
well, the rule is "do not break userspace".

I hope this clarifies things.
Not entirely. I'm looking into this right now, but note that the purpose
of that commit is to *preserve* the order of addresses as they were
inserted, not to mess it up.

Before that, addresses were stored and returned via netlink *reversed*
compared to the insertion, which is rather surprising, also because
it's the opposite of what we do for IPv4 addresses, and caused issues
with pasta(1) as it copies addresses into containers in the same order
as reported via netlink.

Do you happen to know exactly in which way the order happens to be wrong
now?

Also note that userspace was broken and fixed a couple of times:

  https://bugs.passt.top/show_bug.cgi?id=175#c10

so I would look into fixing that properly if doable. If it takes too
long and this is causing issues for a lot of people meanwhile of course
it might make sense to revert, but I'd give it a quick try at least.

-- 
Stefano
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help