I have native IPv6 via my ISP, with a routed /64 block. IPv6 is working on my internal network. (ie. I can ping ipv6.google.com
)
All devices on the network have IPv6 addresses allocated, and with the exception on my Arch Linux desktop seem to be using temporary addresses as per IPv6 Privacy extensions recommendations.
The Arch Linux machine is using systemd-networkd for networking with the following config:
[Match]
Name=en*
[Network]
DHCP=yes
IPv6PrivacyExtensions=true
Reported network config is:
» ip addr show dev enp4s0
2: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether XX:XX:XX:df:cd brd ff:ff:ff:ff:ff:ff
inet XX.XX.XX.XX/24 brd XX.XX.XX.255 scope global enp4s0
valid_lft forever preferred_lft forever
inet6 XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:dfcd/64 scope global noprefixroute dynamic
valid_lft 86387sec preferred_lft 14387sec
inet6 fe80::XXXX:XXXX:XXXX:dfcd/64 scope link
valid_lft forever preferred_lft forever
# use_tempaddr appears to be set correctly.
» cat /proc/sys/net/ipv6/conf/enp4s0/use_tempaddr
2
Why is the arch machine using the address derived from the MAC address of the NIC? I would expect there to be an additional address with a short lifetime?
The IPv6 network setup is via radvd
running on a dd-wrt box. The radvd config is:
interface br0 {
AdvSendAdvert on;
MinRtrAdvInterval 30;
MaxRtrAdvInterval 100;
prefix ::/64 {
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
};
};
Testing on http://ipv6-test.com/ on the arch machine tells me that I need to enable privacy extensions, and gives a score of 18/20. On other machines on the same network I get a 20/20 score.
Best Answer
This is a bug in systemd. The entry in systemd bug tracker is issue #2242, the one in Arch Linux' flyspray is FS#47557.