Enabling IPv6 privacy on an Ubuntu box

It was bugging me a bit that my (internal) IPv6 address was a static one, ie. it is forever and ever the same, unlike a dynamic DSL IP. I heard/read somewhere about "IPv6 Privacy Extensions" are dealing with this issue, so I looked into this.

I originally thought - without having read something about it - that the gateway/router (ie. the Router Advertisment Daemon or RAD) has to support this feature, it made kinda sense, as this one is responsible for assigning IPv6 addresses in an IPv6 network. But I was wrong.

I came back to it with this article (in German) how to enable the Privacy Extensions and I learnt very quickly that it is actually the client where this has to be enabled. So on Linux by doing a

net.ipv6.conf.IF.use_tempaddr = 2

in /etc/sysctl.conf whereby "IF" equals the interface name (most likely eth0 or wlan0) followed by a

$ sysctl -p

enables this for now and makes it even permanent. To enable this actually, you need to shutdown your interface and enable it again, this is the only way how to get a temporary interface. By setting

net.ipv6.conf.IF.temp_valid_lft

and

net.ipv6.conf.IF.temp_prefered_lft

lets you define how long these temporary addresses are valid. After getting a temporary address, have a look at

$ ip -6 addr show

and you should see a line with "scope global temporary dynamic" in it... Thats it! Well done!

You can find more information in RFC 4941.

PS: I am aware that right now IPv6 Privacy Extensions dont make a big difference as everybody has its own routed /64 range anyway.

Show Comments