オリジナル投稿
私のDebianコンテナ(LXDで実行)に静的IPv6アドレスを設定しようとしていますが、システムは私の設定を無視し続けます。
現在私の/etc/network/interfaces
姿はこんな感じです。
auto eth0
iface eth0 inet dhcp
iface eth0 inet6 dhcp
auto eth1
iface eth1 inet static
address 10.1.0.10/16
gateway 10.1.0.1
iface eth1 inet6 static
address fd01::10/64
gateway fd01::1
autoconf 0
静的IPv4設定とIPv6(eth0)のDHCPオプションは、次のip addr
コマンドに示すように正しく機能します。
76: eth0@if77: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:16:3e:53:50:bc brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 10.0.0.10/16 brd 10.0.255.255 scope global dynamic eth0
valid_lft 84286sec preferred_lft 84286sec
inet6 fd00::10/128 scope global
valid_lft forever preferred_lft forever
78: eth1@if79: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:16:3e:83:c3:49 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 10.1.0.10/16 brd 10.1.255.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fd01::658:fe25:52de:cc45/64 scope global dynamic mngtmpaddr
valid_lft 3372sec preferred_lft 3372sec
しかし、私のシステムは常に静的IPv6構成部分を無視し、事前設定されたアドレスを使用するのではなく、常に独自の動的IPv6アドレスを生成します。上記の出力はまた、このインターフェイスのIPアドレスが動的に生成されたことを示しています。
ただし、コマンドを使用して静的IPv6アドレスを設定するとip addr add fd01::10/64 dev eth1
機能しますが、この問題に対する適切で永続的な解決策ではありません。
編集する
(1)システムネットワーク管理者
このコマンドは、networkctl list
次の出力を返します。
IDX LINK TYPE OPERATIONAL SETUP
WARNING: systemd-networkd is not running, output will be incomplete.
(...)
16 eth0 ether n/a unmanaged
18 eth1 ether n/a unmanaged
(...)
私はこれがシステムネットワーク管理者が無効になったことを意味すると思います。
(2)/etc/init.d/networking
/etc/init.d/networking
コンテナを再起動してサービスログをインポートすると、systemctl status networking.service
次のメッセージが表示されます。
● networking.service - Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2020-02-08 00:22:06 UTC; 1min 31s ago
Docs: man:interfaces(5)
Process: 31 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=1/FAILURE)
Main PID: 31 (code=exited, status=1/FAILURE)
Feb 08 00:22:06 Core dhclient[112]: message status code Success: "all addresses still on link"
Feb 08 00:22:06 Core ifup[137]: RTNETLINK answers: File exists
Feb 08 00:22:06 Core ifup[31]: ifup: failed to bring up eth1
Feb 08 00:22:06 Core systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
Feb 08 00:22:06 Core systemd[1]: networking.service: Failed with result 'exit-code'.
Feb 08 00:22:06 Core systemd[1]: Failed to start Raise network interfaces.
静的IPv6アドレスを使用するようにeth0を設定すると、eth0でもエラーが発生します。私はこのエラーメッセージを見つけました:これ固定IPv6アドレスを設定するためのチュートリアル。
(3)ホストシステム
私が最初に考えなかったことの1つは、問題が私のホストオペレーティングシステムに関連している可能性があることです。だから私は私のホストシステムがカスタムカーネルを備えたGentooと書いていません。
私は同じ設定を使用しません。私の一般的なホスト(Gentoo)はDebian 10を使用し、私のArchLinuxテストコンピュータはDebian 11を使用します。私のGentooホストでDebian 11を使用するとうまくいきます。また、Debian 10 を使用して新しいコンテナを作成すると、IP 設定は期待どおりに機能します。
まだ問題を解決していませんが、別のホスト(今回はArchLinux)で同じ設定でテストしても問題なく動作しました。設定は実際には同じですが、ホストシステムが異なるため、私の問題はホストシステムの誤った設定に関連していると思います(たとえば、他のカーネル機能を有効にする必要があります)。
ベストアンサー1
最後に、ファイル内の項目の順序を変更して問題を解決しました/etc/network/interfaces
。これで、次のようになります。
auto eth1
iface eth1 inet static
address 10.1.0.10/16
gateway 10.1.0.1
iface eth1 inet6 static
address fd01::10/64
gateway fd01::1
auto eth0
iface eth0 inet dhcp
iface eth0 inet6 dhcp
静的エントリを最初に設定すると、すべてがうまく機能します。