Comment 0 for bug 994931

Revision history for this message
Malcolm Scott (malcscott) wrote :

$ uname -a
Linux expvr-alnilam 3.2.0-24-generic-pae #37-Ubuntu SMP Wed Apr 25 10:47:59 UTC 2012 i686 i686 i386 GNU/Linux

$ sysctl net.ipv6.conf.eth2.use_tempaddr
net.ipv6.conf.eth2.use_tempaddr = 2
# (as per the default /etc/sysctl.d/10-ipv6-privacy.conf in 12.04)

# Add a static IPv6 address:
$ sudo ip addr add 2001:470:9321:f003::1122/64 dev eth2

# Verify that it has been set up, and that a temporary address and a SLAAC address also exist:
$ ip -6 addr list dev eth2
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 2001:470:9321:f003:74e3:aa2b:7ee5:c002/64 scope global temporary dynamic
       valid_lft 86393sec preferred_lft 14393sec
    inet6 2001:470:9321:f003:6c97:24ff:fe3f:263b/64 scope global dynamic
       valid_lft 86393sec preferred_lft 14393sec
    inet6 2001:470:9321:f003::1122/64 scope global
       valid_lft forever preferred_lft forever
    inet6 fe80::6c97:24ff:fe3f:263b/64 scope link
       valid_lft forever preferred_lft forever

# Disable RFC 4941 temporary addresses:
$ sudo sysctl net.ipv6.conf.eth2.use_tempaddr=0
net.ipv6.conf.eth2.use_tempaddr = 0

$ ip -6 addr list dev eth2
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
    inet6 fe80::6c97:24ff:fe3f:263b/64 scope link tentative
       valid_lft forever preferred_lft forever

I.e. on setting use_tempaddr=0, _all_ IPv6 addresses are removed, including statically-configured and non-temporary SLAAC-configured addresses. (The link-local address reappears quickly but the 'tentative' flag indicates that it has been newly re-added. The SLAAC address reappears after a slightly longer interval as the kernel continues to undergo SLAAC, but the static address is gone forever unless manually reinstated.)

The same happens if use_tempaddr is changed from 0 back to 2.

The expected outcome is that only temporary addresses are affected by a change to use_tempaddr.