I've set the RFC4941 ipv6 privacy extensions, as follows: net.ipv6.conf.all.use_tempaddr = 1 net.ipv6.conf.default.use_tempaddr = 1 here we can see that they are properly set: $ cat /proc/sys/net/ipv6/conf/all/use_tempaddr 1 $ cat /proc/sys/net/ipv6/conf/default/use_tempaddr 1 $ However, when I bring up eth0, it neither gets the ipv6 privacy extensions applied, now is its proc entry set: $ cat /proc/sys/net/ipv6/conf/eth0/use_tempaddr 0 $ In order for eth0 to have this set, I need to also set: net.ipv6.conf.eth0.use_tempaddr = 1 What is the point of /proc/sys/net/ipv6/conf/all/use_tempaddr or /proc/sys/net/ipv6/conf/default/use_tempaddr at if it isn't applied to all interfaces? Unsurprisingly, it also does not work with my wlan interface. Just like eth0, if the module is not loaded, because the rfkill switch is toggled on, and then I turn it off and bring the interface up, it doesn't have the ipv6 privacy extensions. Additionally, even when net.ipv6.conf.eth0.use_tempaddr is set, it is only recognized if interface state changes from down to up, which means you can't enable RFC4941 on an already running interface. This behavior is unexpected and confusing, and potentially problematic for people who are expecting something reasonable, only to be surprised later.
This sot of thing needs discussing on netdev@vger.kernel.org, it won't get handled as a bug