Arch-Linux

具有 systemd-networkd 的穩定私有 IPv6 地址

  • October 21, 2019

我正在嘗試在帶有systemd-networkd的盒子上設置IPv6 穩定隱私地址

該框是一個執行archlinux -arm的**rpi,但這與archlinux相同

所以按照wiki @archlinux.org,我設置了一個stable_secretaddr_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能夠配置為使用隱私擴展來生成臨時全域地址(實際上是通過告訴它使用核心配置),我認為 SOII aka RFC 7217 也是如此。

但不是。systemd-networkd做不到:https ://github.com/systemd/systemd/issues/4625

我只是想使用 systemd-networkd,你的文章很有幫助,謝謝。使用 arch linux x64 需要輸入預設的設備核心名稱,例如:

# cat /etc/systemd/network/25-wireless.network 
[Match]
Name=wlp3s0u1  

[Network]
DHCP=yes
IPv6PrivacyExtensions=kernel

因為我設置的 udev 名稱(eth0,wlan0)不適用於 wpa_supplicant。也許穩定的隱私依賴於本地連結和臨時動態連結的*私有擴展?*在這裡,我選擇使用臨時動態地址執行 ipv6,並且也需要更改 40-ipv6.conf(現在具有穩定的隱私):

# cat /etc/sysctl.d/40-ipv6.conf
# Enable IPv6 Privacy Extensions
net.ipv6.conf.all.use_tempaddr=2
net.ipv6.conf.default.use_tempaddr=2
net.ipv6.conf.wlp3s0u1.use_tempaddr=2
net.ipv6.conf.enp5s0.use_tempaddr=2  

# Enable IPv6 stable privacy mode
net.ipv6.conf.wlp3s0u1.stable_secret=66e5:0a06:9d23:15f7:xxxx:xxxx:xxxx:xxxx
net.ipv6.conf.wlp3s0u1.addr_gen_mode=2

做了一些重啟,現在我得到了隱私擴展。並且具有相同本地地址的穩定隱私,但不是**臨時動態的。也許這就是它的工作方式。再次感謝你。

# ip addr show dev wlp3s0u1
3: wlp3s0u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
   link/ether 90:f6:52:xx:xx:xx brd ff:ff:ff:ff:ff:ff
   inet 192.168.0.3/24 brd 192.168.0.255 scope global dynamic wlp3s0u1
      valid_lft 15550560sec preferred_lft 15550560sec
   inet6 2804:d51:ef9:5d00:xxxx:xxxx:xxxx:xxxx/64 scope global temporary dynamic 
      valid_lft 86381sec preferred_lft 84583sec
   inet6 2804:d51:ef9:5d00:xxxx:xxxx:xxxx:xxxx/64 scope global dynamic mngtmpaddr noprefixroute 
      valid_lft 86381sec preferred_lft 86381sec
   inet6 fe80::7902:xxxx:xxxx:xxxx/64 scope link stable-privacy 
      valid_lft forever preferred_lft forever

引用自:https://unix.stackexchange.com/questions/539533