虚拟机器和外部(物理)networking上的虚拟机无法访问互联网

我用centre 6.4在centos 6.4上安装了openstack(packstack)。 openstack使用vmware安装在单个虚拟机上。

首先,我使用以下命令创build了外部networking

量子networking创造公共 – 路由器:外部=真实

然后我添加了我的外部networking子网(IP池不在外部networking中使用)

然后我创build了路由器

然后我设置我的路由器网关到外部networking

我创build了安全组来允许ssh和icmp。

第二步,我创build了启用dhcp的专用networking

然后创build路由器接口,并将其附加到我的专用networking

在第三步我启动了与私人networking的实例

第四步,我生成外部networking的浮动IP,并将其关联到实例

问题陈述:

虚拟机从dhcp获取IP(专用networking)并相互通信,但虚拟机上没有互联网

虚拟机无法ping任何外部networking设备。

我正在使用Centos 6.4。 IP路由显示

192.168.186.0/24 dev eth1 proto kernel scope link src 192.168.186.166 metric 1

192.168.122.0/24 dev virbr0 proto kernel scope链接src 192.168.122.1

10.16.48.0/22 dev br-ex proto内核作用域链接src 10.16.51.208

169.254.0.0/16 dev eth0范围链接度量标准1002

169.254.0.0/16 dev br-ex scope link metric 1017

默认通过10.16.48.1 dev br-ex

其中10.16.48.0/22是eth0上的外部networking(用于Internet)

在eth1上,10.16.186.0/24是我更加熟悉的接口

量子代理列表显示—- + ——- + —————- +

| id | agent_type | 主机| 活着| admin_state_up |

+ ————————————– + ———- ———- + ———————– + ——- ——- + ——— +

| 4c709a4c-bf0c-4e03-a0f5-2d938fee7ae1 | L3代理| localhost.localdomain | 🙂 | True |

| 960a7806-dc4d-4ab1-99b0-a79dbc31600f | 打开vSwitch代理| localhost.localdomain | 🙂 | True |

| d9f545e2-4a6c-43f4-8037-b807cbe27fc5 | DHCP代理| localhost.localdomain | 🙂 | True |

+ ————————————– + ———- ———- + ———————– + ——- ——- + ——— +

所以你已经创build了一个VMWare虚拟服务器,并且在这个虚拟机中安装了OpenStack,它自己托pipe了VMs?

然后,VMWare VM连接的虚拟交换机将阻止来自OpenStack VM的每个stream量。 这是一个安全措施,以确保只有VMWare虚拟机可以到达虚拟交换机和外部networking。 这是第2层的麻烦,我很确定OpenStack虚拟机中的arp -an命令不会显示网关。

你所要做的只是让VMWare虚拟交换机接收多个MAC地址。

你可以在这篇文章中find如何做到这一点

编辑您的意见:

我不知道。 我想我知道的是,你不能到达你的路由器,因此,即使在第二层,你也不能访问外部networking(在启动arp -an命令时检查网关没有显示MAC地址)因为VSwitch正在丢弃那些mac地址不是OpenStack服务器的那些桌面。

然后,您可以在VSwitch中禁用此function,也可以在OpenStack服务器上安装ARP代理服务。 这个想法是欺骗虚拟机的MAC地址,这些虚拟机随后会出现在VSwitch上,就像OpenStack服务器本身一样。