我想创建一个通过macvlan和dhcp连接到网络的nspawn容器。我发现的所有文档都非常有启发性,但没有提供有关此设置的分步过程。
到目前为止,我所做的是使用包括systemd-container的debootstrap创建容器(基于debian的容器):
debootstrap --arch=armhf --include=systemd-container stretch /var/lib/machines/raspbian-09 http://archive.raspbian.org/raspbian
本地主机网络
运行:
systemd-nspawn -b -M raspbian-09
或
machinectl raspbian-09
带有单位文件/etc/systemd/nspawn/raspbian-09.nspawn 包含:
[Exec]
Boot=true
PrivateUsers=no
[Network]
Private=no
VirtualEthernet=no
在两种情况下,网络连接都很好。
Macvlan
对于macvlan,我可以运行以下命令:
systemd-nspawn -b -M raspbian-09 --network-macvlan=eth0
或
machinectl raspbian-09
单元文件/etc/systemd/nspawn/raspbian-09.nspawn包含:
[Exec]
Boot=true
PrivateUsers=no
[Network]
MACVLAN=eth0
在两种情况下,都无法连接到网络。
在容器中,我可以看到创建了一个接口mv-eth0:
# networkctl
IDX LINK TYPE OPERATIONAL SETUP
1 lo loopback carrier unmanaged
2 mv-eth0 ether degraded configuring
但是,没有ipv4地址:
# ip a
mv-eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet6 xxxx::xxxx:xxxx:xxxx:xxxx/64 scope link
valid_lft forever preferred_lft forever
应在主机和容器上进行哪些其他配置?
(问题也在unix stackExchange上问到)