web-dev-qa-db-ja.com

systemd-networkdを使用した安定したプライベートIPv6アドレス

systemd-networkdのボックスにIPv6安定プライバシーアドレスをセットアップしようとしています。

ボックスはrpirunnningarchlinux-armですが、これは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

ただし、取得したnot一時動的アドレスは、再起動。これはそうではありません。

私は間違っていますか、それとも何かが正しく構成されていませんか?

1
solsTiCe

なので systemd-networkdは、プライバシー拡張機能を使用して一時的なグローバルアドレスを生成するように構成できました(実際にはカーネル構成を使用するように指示することで)。SOII(別名RFC 7217)でも同じだと思いました。

しかし、違います。 systemd-networkdできません: https://github.com/systemd/systemd/issues/4625

1
solsTiCe

私は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
0
LopanRS