我正在摆弄systemd-nspawn
RaspberryPi 上的容器。到目前为止,启动工作正常。我使用 --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 很早就创建的。