オリジナル投稿
私の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
静的エントリを最初に設定すると、すべてがうまく機能します。
答え2
完全な答えを出すことはできないようです。調べてみる事項いくつかが申し上げます。
あなたの設定は無視されるようには見えませんが、何かによって上書きされるように見えます。 IPv6アドレスはFDxx::
ローカルアドレスIPで始まります。。通常設定されていないインターフェイスには、リンクローカルアドレス(で始まるFE80::
)と他のアドレスがあります。ただし、お客様のシステムにはこれらのコンテンツは表示されません。 FDxx::
住所がランダムに表示されないため、何これはすでに設定されています。
以前は複数のネットワーク管理者がいるDebianベースのディストリビューションに問題がありました。具体的には、Debian のブランチでは次のようになります。ビーグルボーンブラック、というパッケージがあります。一般的な一般的な Debian で提供される DHCP クライアントも同様です。
お使いのシステムにIPv6ネットワーク構成を上書きできる他のものがあることを確認します。
答え3
iface enp0s31f6 inet6 static
(アドレス、ネットマスク、ゲートウェイを使用)で同じ問題が設定されていますが、システムが起動すると/etc/network/interfaces
リンクip addr
ローカルIPv6アドレスのみが表示されました。
私は次の出力を確認しましたsudo systemctl status networking.service
。
root@redacted ~ # 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 Wed 2020-09-02 14:44:47 CEST; 1min 45s ago
Docs: man:interfaces(5)
Process: 467 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=1/FAILURE)
Main PID: 467 (code=exited, status=1/FAILURE)
Sep 02 14:44:47 lh-mhk01 systemd[1]: Starting Raise network interfaces...
Sep 02 14:44:47 lh-mhk01 ifup[509]: /bin/sh: 1: route: not found
Sep 02 14:44:47 lh-mhk01 ifup[467]: ifup: failed to bring up enp0s31f6
Sep 02 14:44:47 lh-mhk01 systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
Sep 02 14:44:47 lh-mhk01 systemd[1]: networking.service: Failed with result 'exit-code'.
Sep 02 14:44:47 lh-mhk01 systemd[1]: Failed to start Raise network interfaces.
この行に注意してください
Sep 02 14:44:47 lh-mhk01 ifup[509]: /bin/sh: 1: route: not found
route
解決策:このコマンドを含むパッケージをインストールしてください。
sudo apt install net-tools
再起動すると、IPv6 アドレスが正しく設定されます。