lxc vm 访问主机外

lxc vm 访问主机外

在 Debian 64 位上,我配置了一个如下 lxc:

主机 ip:172.16.0.25 此主机上的 vm guest :172.16.0.44

我已经在主机上完成了桥接

auto eth0 
iface eth0 inet manual
        up ifconfig eth0 0.0.0.0 up
        down ifconfig eth0 down

auto br0 
iface br0 inet static
        bridge_ports eth0
        bridge_fd       0
        address 172.16.0.25
        netmask 255.255.255.0
        gateway 172.16.0.52

在客户方面,我改变了配置

lxc.utsname = myGuest
lxc.network.type = veth
lxc.network.flags = up
lxc.network.link = br0
lxc.network.name = eth0
lxc.network.hwaddr = 00:FF:12:34:56:78
lxc.network.ipv4 = 172.16.0.44/24

当我运行虚拟机时:我的主机(172.16.0.25)和我的客户机(172.16.0.44)可以互相 ping 通,但现在,同一网络(172.16.0.0)上的其他物理机器看不到我的客户机。

我的客人也遇到了同样的问题,他们只能看到其主机的 IP!

事实上,我希望获得与 VmWare Workstation 上的桥接网络相同的行为。VmWare 执行什么样的路由才能在网络上“随处可见”?

(顺便说一句,我的主机已经在 ESX 服务器上了,但我认为在这个级别上它与此无关)

答案1

您的主机使用 VMware 进行虚拟化,然后将其插入虚拟交换机,该交换机不希望显示比 VMware 虚拟化服务器更多的 MAC 地址(因此 VMware 客户端内部没有 lxc)。因此,这肯定是一个第 2 层问题:VMWare(至少是 VSwitch)收到的数据包的 MAC 地址与主机 MAC 地址不同,并丢弃它们。因此,客户端无法到达其主机外部,因为它应该通过 Vswitch 来执行此操作。

一种解决方法是在 Vswitch 上启用不同的 mac 地址。通过编辑 Vswitch 上的设置来执行此操作(在 VMware 主机上,配置、网络,选择 lxc 主机连接到的 vswitch,属性、编辑、安全、MAC 地址更改 -> 接受)。

相关内容