I have a linux-based DSL router, running radvd Because the prefix from my ISP may change, so I have to change the radvd.conf when prefix changes. For example, like this.
interface br-lan
{
AdvSendAdvert on;
MinRtrAdvInterval 20;
MaxRtrAdvInterval 60;
prefix 2001:db8:aaaa:1::/64
{
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr off;
DeprecatePrefix on;
AdvPreferredLifetime 86400;
AdvValidLifetime 1000000;
};
};
But something went wrong on one of my fedora (Fedora29, recently yum updated) notebook.
It persist using 2001:db8:aaaa:1::/64 prefix even the prefix has changed to 2001:db8:aaaa:2::/64, like this:
$ ip a s dev wlp1s0
3: wlp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether aa:aa:aa:aa:aa:aa brd ff:ff:ff:ff:ff:ff
inet 192.168.0.64/24 brd 192.168.0.255 scope global dynamic noprefixroute wlp1s0
valid_lft 63097sec preferred_lft 63097sec
inet6 2001:db8:aaaa:1:830f:530c:7d46:ad33/64 scope global dynamic noprefixroute
valid_lft 929545sec preferred_lft 15945sec
inet6 2001:db8:aaaa:2:db4e:debc:4e36:9c1d/64 scope global dynamic noprefixroute
valid_lft 999970sec preferred_lft 86370sec
inet6 fe80::a8aa:aaff:feaa:aaaa/64 scope link noprefixroute
valid_lft forever preferred_lft forever
The old & deprecated & bad address is even preferred, and will be used as source address when connecting to a remote ipv6 endpoint, and will fail.
I can delete the deprecated address manually by ip a d ... dev wlp1s0
, but it comes back after a router-advertisement package, even the package is correct and the valid_lft of deprecated address not increased. Some logs were found in /var/log/message:
Dec 18 21:40:28 fedora avahi-daemon[835]: Withdrawing address record for 2001:db8:aaaa:1:830f:530c:7d46:ad33 on wlp1s0.
Dec 18 21:41:16 fedora avahi-daemon[835]: Registering new address record for 2001:db8:aaaa:1:830f:530c:7d46:ad33 on wlp1s0.*.
Other devices in the same network, two windows10 clients and one CentOS7 works fine.