systemd-networkd .network は systemd-nspawn コンテナでは無視されます。

systemd-networkd .network は systemd-nspawn コンテナでは無視されます。

私はsystemd-nspawnRaspberryPiでコンテナを使って遊んでいます。これまでのスタートアップはうまく機能しています。 --network-veth および --network-bridge=br0 オプションを使用しており、ブリッジは kvm 仮想マシンで正常に動作します。

コンテナIPを特定のアドレスに設定し、/etc/systemd/network/host.networkコンテナがDHCPを介してIPを取得するときに無視されるように見えるファイルを作成しようとしています。

これがファイルです。

[Match]
Name=host0

[Network]
DHCP=no
Address=192.168.0.16/24
Gateway=192.168.0.1
DNS=8.8.8.8

systemd-networkdが実行中です。

root@bluehost-debian:~# systemctl status systemd-networkd.service
● systemd-networkd.service - Network Service
   Loaded: loaded (/lib/systemd/system/systemd-networkd.service; enabled)
   Active: active (running) since Do 2016-09-01 21:10:54 UTC; 12min ago
     Docs: man:systemd-networkd.service(8)
 Main PID: 69 (systemd-network)
   Status: "Processing requests..."
   CGroup: /machine.slice/machine-bluecloud.scope/system.slice/systemd-networkd.service
           └─69 /lib/systemd/systemd-networkd

Sep 01 21:10:54 bluehost-debian systemd-networkd[69]: host0           : link configured
Sep 01 21:10:54 bluehost-debian systemd[1]: Started Network Service.
Sep 01 21:10:55 bluehost-debian systemd-networkd[69]: host0           : gained carrier
Sep 01 21:10:58 bluehost-debian systemd-networkd[69]: host0           : DHCPv4 address 192.168.0.143/24 via 192.168.0.1
Sep 01 21:10:58 bluehost-debian systemd-networkd[69]: host0           : link configured

udevは、「name」フィールドの値が大丈夫だと言いました。なぜ無視されているのですか?

udevadm info /sys/class/net/host0
P: /devices/virtual/net/host0
E: DEVPATH=/devices/virtual/net/host0
E: IFINDEX=2
E: INTERFACE=host0
E: SUBSYSTEM=net

それ以外の場合、ネットワークは正常に動作します。これを試しましたが、/etc/network/interfaces起動時には機能しません。 ifupだけが利用可能です...(allow-hotplug host0 ...)

ちょっとついていて助けてくれてありがとう。

答え1

これで、コンテナIPを特定のアドレスに設定し、コンテナがDHCPを介してIPを取得したときに無視されるように見える/etc/systemd/network/host.networkファイルを作成しようとしています。

[OK]...コンテナからsystemdをjessie-backportsから最新バージョンに更新してnetworkctlを取得しました。現在のネットワーク構成で使用されているファイルが表示されます。これは私のものではありません。私のファイル名を00-host.networkに変更し、うまくいきました...

よかったです。

明らかに、質問はhost.network最後に出ました。名前が80-host0.networkデフォルトの前にソートさ/lib/systemd/network/れるか、同じファイル名を持つファイルを指定する必要があります(または/ dev / nullを指す同じ名前のファイルを作成してマスク)。

Debianの場合は217 ... 215、バックポートの場合は230までコンテナのネットワークエラーについてお読みください。

代替案: /etc/network/interfaces

/etc/network/interfacesを試しましたが、起動時に機能しません。

/etc/network/interfacesは私にとってうまくいきます(DHCPを使用)。しかし、コンテナ内ではAllow-hotplugが機能しないかと心配され、代わりに使用しましたauto host0。これはhost0非常に初期にnspawnによって生成されたため、安全でなければなりません。

関連情報