web-dev-qa-db-ja.com

Debianは静的IPv6設定を無視します

元の投稿

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

コマンドip addrが示すように、静的IPv4構成とIPv6のDHCPオプション(eth0上)は正常に機能します。

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アドレスが動的に生成されたことも示しています。

しかし、コマンドip addr add fd01::10/64 dev eth1を使用して静的IPv6アドレスを設定すると機能しますが、これはこの問題に対する適切で永続的な解決策ではありません。

編集

(1)systemdネットワークマネージャー

コマンド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
 (...)

これは、systemdネットワークマネージャーが無効になっていることを意味すると思います。

(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でもエラーが発生します。 this チュートリアルに従って静的IPv6アドレスを構成すると、このエラーメッセージが見つかりました。

(3)ホストシステム

最初は考えていなかったことの1つは、問題がホストオペレーティングシステムに関連している可能性があることです。そのため、私のホストシステムがカスタマイズされたカーネルを備えたGentooであるとは書いていません。
私は今のところ問題をまったく解決していませんが、別のホスト(今回はArchLinux)で同じ設定を使用したテストはうまくいきました。構成は実際には同じですが、ホストシステムが異なるため、私の問題はホストシステムの構成エラーに関連していると思います(たとえば、別のカーネル機能を有効にする必要があります)。
まったく同じ設定を使用していません。私の通常のホスト(Gentoo)はDebian 10を使用しており、私のArchLinuxテストマシンはDebian 11を使用しています。Debian11を私のGentooホストで使用すると、問題なく動作します。しかし、Debian 10で新しいコンテナーを作成した場合も、IP構成は期待どおりに機能します。

2
Daniel Simon

最後に、/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
Daniel Simon

私はあなたに完全な答えを与えることができるとは思わない、ただ調査するための何か...

これはあなたの設定が無視されているように私には見えません、それは何かによって上書きされているようです。 FDxx::で始まるIPv6アドレスはローカルアドレスIPです 。通常、未構成のインターフェースには、リンクローカルアドレス(FE80::で始まる)とその他のアドレスがあります。しかし、システムはこれらを表示していません。 FDxx::アドレスはランダムに表示されるだけではないため、somethingがこれらを構成しています。

以前、Debianベースのディストリビューションに複数のネットワークマネージャーが同梱されるという問題がありました。特に Beagle Bone Black が同梱されているDebianのフォークでは、通常のDebianに同梱されるDHCPクライアントの他に connman というパッケージがインストールされていました。

システムをチェックして、IPv6のネットワーク構成を他に上書きしていないかどうかを確認します。

0
Philip Couling