路由器通告后 Fedora 客户端保留旧地址

路由器通告后 Fedora 客户端保留旧地址

我有一个基于 Linux 的 DSL 路由器,运行着 radvd。由于我的 ISP 的前缀可能会改变,因此当前缀改变时,我必须更改 radvd.conf。例如,像这样。

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;
    };
};

但是我的一台 Fedora(Fedora29,最近 yum 更新)笔记本出现了问题。

即使前缀已更改为 2001:db8:aaaa:2::/64,它仍继续使用 2001:db8:aaaa:1::/64 前缀,如下所示:

$ 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

旧的、弃用的和坏的地址甚至被优先使用,并且将在连接到远程 ipv6 端点时用作源地址,并且会失败。我可以通过 手动删除弃用的地址ip a d ... dev wlp1s0,但它会在路由器广告包之后回来,即使包是正确的,并且弃用的地址的 valid_lft 没有增加。在 /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.*.

同一网络中的其他设备,两个windows10客户端和一个CentOS7工作正常。

相关内容