我用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服务器本身一样。