我正在尝试在带有systemd-networkd的盒子上设置IPv6 稳定隐私地址。
该框是一个运行archlinux -arm的rpi,但这与archlinux相同
所以按照wiki @archlinux.org,我设置了一个stable_secret并addr_gen_mode=2
用于内核配置,然后告诉systemd-networkd使用内核配置(还有其他方法吗?)
# cat /etc/sysctl.d/40-ipv6.conf
net.ipv6.conf.eth0.use_tempaddr=2
net.ipv6.conf.eth0.stable_secret=dead:beaf:dead:beaf:dead:beaf:dead:beaf
net.ipv6.conf.eth0.addr_gen_mode=2
# cat /etc/systemd/network/eth0.network
[Match]
Name=eth0
[Network]
DHCP=ipv4
IPv6PrivacyExtensions=kernel
但这不起作用。甚至没有启用稳定隐私。
所以我添加了一个[Address]
部分eth0.network
[Address]
ManageTemporaryAddress=false
最后,由于本地链接(“范围链接”)被标记 为eth0的 stable-privacy,因此启用了stable-privacy
$ ip addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether b8:27:eb:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 192.168.44.106/24 brd 192.168.44.255 scope global dynamic eth0
valid_lft 42796sec preferred_lft 42796sec
inet6 xxxx:xxx:xxx:xxxx:80c1:77d4:f72b:b132/64 scope global temporary dynamic
valid_lft 85998sec preferred_lft 85829sec
inet6 xxxx:xxx:xxx:xxxx:baxx:xxff:fxxx:xxxx/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 85998sec preferred_lft 85998sec
inet6 fe80::24e2:14e:ad9e:df8/64 scope link stable-privacy
valid_lft forever preferred_lft forever
但是,我希望我在每次重新启动时都不会更改临时动态地址。不是这种情况。
我错了,还是配置错误?
我只是想使用 systemd-networkd,你的帖子很有帮助,谢谢。使用 arch linux x64 需要输入默认的设备内核名称,例如:
因为我设置的 udev 名称(eth0,wlan0)不适用于 wpa_supplicant。也许稳定的隐私依赖于本地链接和临时动态链接的私有扩展?在这里,我选择使用临时动态地址运行 ipv6,并且也需要更改 40-ipv6.conf(现在具有稳定的隐私):
做了一些重启,现在我得到了隐私扩展。并且具有相同本地地址的稳定隐私,但不是临时动态的。也许这就是它的工作方式。再次感谢你。
由于
systemd-networkd
能够配置为使用隐私扩展来生成临时全局地址(实际上是通过告诉它使用内核配置),我认为 SOII aka RFC 7217 也是一样的。但不是。systemd-networkd做不到:https ://github.com/systemd/systemd/issues/4625