我通过 ISP 拥有本机 IPv6,并带有路由 /64 块。 IPv6 正在我的内部网络上运行。 (即我可以 ping 通ipv6.google.com
)
网络上的所有设备都分配有 IPv6 地址,除了我的 Arch Linux 桌面之外,似乎都按照 IPv6 隐私扩展建议使用临时地址。
Arch Linux 机器使用 systemd-networkd 进行网络连接,配置如下:
[Match]
Name=en*
[Network]
DHCP=yes
IPv6PrivacyExtensions=true
报告的网络配置是:
» 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
为什么arch机器使用从网卡的MAC地址派生的地址?我希望有一个生命周期较短的附加地址?
IPv6 网络设置是通过radvd
在 dd-wrt 盒子上运行来实现的。 radvd 配置是:
interface br0 {
AdvSendAdvert on;
MinRtrAdvInterval 30;
MaxRtrAdvInterval 100;
prefix ::/64 {
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
};
};
测试于http://ipv6-test.com/arch 机器上告诉我需要启用隐私扩展,并给出了 18/20 的分数。在同一网络上的其他计算机上,我得到 20/20 的分数。