在 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 地址更改 -> 接受)。