У меня есть DSL-маршрутизатор на базе Linux, работающий под управлением radvd. Поскольку префикс от моего интернет-провайдера может измениться, я должен изменить 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: 1 :: / 64, даже если префикс изменился на 2001: db8: aaaa: 2 :: / 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 работают нормально.