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 告诉我“名称”字段的值应该没问题。为什么会被忽略呢?

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 配置为特定地址并创建一个 /etc/systemd/network/host.network 文件,当容器通过 DHCP 获取其 IP 时,该文件似乎被忽略。

好的...在容器中,我将 systemd 从 jessie-backports 更新到最新版本,从而获得了 networkctl。这向我显示了当前用于网络配置的文件。这不是我的。将我的文件重命名为 00-host.network,这样就成功了...

做得好。

需要明确的是,问题是host.network最后出现的。您需要提供一个文件,其名称排序 80-host0.network在默认值之前/lib/systemd/network/,或者具有相同的文件名(或通过创建具有相同名称的文件来屏蔽它,指向 /dev/null)。

阅读有关容器中网络错误的信息,直到 217...debian 为 215,向后移植为 230。

替代方案:/etc/network/interfaces

尝试了 /etc/network/interfaces 但这在启动时不起作用,只能使用 ifup... (allow-hotplug host0 ...)

/etc/network/interfaces 对我来说工作得很好(使用 DHCP)。但是我担心allow-hotplug可能无法在容器内工作,所以我改用了auto host0。这应该是安全的,因为host0它是由 nspawn 很早就创建的。

相关内容