如何配置 lxc 容器以拥有两个以太网设备 - macvlan 和 bridge?

如何配置 lxc 容器以拥有两个以太网设备 - macvlan 和 bridge?

我在 lxc 容器的网络配置方面遇到了麻烦。我希望位于一台机器上的多个容器通过 macvlan 与外界通信,但也有本地桥接器在它们与主机之间进行通信。

 ------------------------ OUTSIDE WORLD -----------------------------
    ^                          ^                             ^
    |                          |                             |
 macvlan0                   macvlan1                      macvlan2
    |                          |                             |
    v                          v                             v
   HOST <--- bridge0 ---> CONTAINER A <--- bridge0 ---> CONTAINER B

好像我错过了一些东西,因为使用lxc 网络我设法创建了为 macvlan 配置的容器(它们可以很好地与外界通信,外界也可以很好地与它们通信),我还设法创建了具有桥接连接的容器(可以很好地与主机和它们自己通信)。

我遇到的问题是,无论我做什么,都无法同时拥有两个接口。网络配置中的第一个接口始终工作正常。第二个接口始终存在,但未为其分配 IP,无论我如何尝试,它都处于非活动状态。

我尝试了很多方法,甚至不知道我该怎么做。我该如何继续?

提前致谢。

答案1

我在使用 KVM/libvirt 时遇到了类似的问题,以下 LXD 建议对我很有帮助: https://lxd.readthedocs.io/en/latest/faq/#networking-issues

确保主机网络配置由 处理network-manager,而不是netplan

重要的是设置stp: false,否则网桥将处于该learning状态长达 10 秒,这比大多数 DHCP 请求持续的时间要长。由于不存在交叉连接和造成循环的可能性,因此这样做是安全的。

相关内容