0xC*_*22L 5 networking linux-kernel lxc namespace
因此,根据Ubuntu LXC 文档中的文档,在撰写本文时可以找到以下声明:
一个 NIC 一次只能存在于一个命名空间中,因此传递到容器中的物理 NIC 在主机上是不可用的。
现在一个物理网卡 (NIC) 可以在/etc/network/interfaces(Debian/Ubuntu) 中共享多个这样的 IP :
auto eth0 eth0:1
iface eth0 inet static
address 192.168.0.100/24
gateway 192.168.0.1
iface eth0:1 inet static
address 192.168.0.200
netmask 255.255.255.0
Run Code Online (Sandbox Code Playgroud)
也可以使用其他发行版上的相应配置来完成相同的操作。
现在的问题是:可以eth0并且eth0:1被分配到不同的命名空间,还是会自动将另一个分配给相同的命名空间?
应该可以将eth0和分配eth0:1给不同的命名空间,但请记住,这会带来安全隐患,因为您将物理网络设备暴露给容器。
因此,我只会使用veth和bridge。创建桥接并默认br0与设备桥接。eth0然后像这样配置你的 lxc 容器:
lxc.network.type=veth
lxc.network.ipv4=192.168.0.200
lxc.network.link=br0
Run Code Online (Sandbox Code Playgroud)
这将产生相同的结果,但您将为容器使用虚拟以太网接口,并且由于桥接,您还可以访问 LXC 主机所在的同一网络。