虚拟机上没有互联网,并且虚拟机无法访问外部(物理)网络

虚拟机上没有互联网,并且虚拟机无法访问外部(物理)网络

我已经在带有 neutron 的 centos 6.4 上安装了 openstack (packstack)。openstack 安装在使用 vmware 的单个虚拟机上。

首先我使用以下命令创建外部网络

quantum net-create public --router:external=True

然后我添加了我的外部网络子网(外部网络未使用 IP 池)

然后我创建了路由器

然后我将路由器网关设置为外部网络

我创建了安全组以允许 ssh 和 icmp。

第二步,我创建了启用 dhcp 的私有网络

然后创建路由器接口并将其连接到我的专用网络

第三步,我使用私有网络启动了实例

第四步,我生成了外部网络的浮动 IP,并将其与实例关联

问题陈述:

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

VM 无法 ping 任何外部网络设备。

我使用的是 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 link  src 192.168.122.1 
10.16.48.0/22 dev br-ex  proto kernel  scope link  src 10.16.51.208
169.254.0.0/16 dev eth0  scope link  metric 1002
169.254.0.0/16 dev br-ex  scope link  metric 1017
default via 10.16.48.1 dev br-ex 

10.16.48.0/22我的 eth0 上的外部网络在哪里(用于互联网)

10.16.186.0/24是 eth1 上的另一个接口

quantum agent-list节目

----+-------+----------------+
| id                                   | agent_type         | host                  | alive | admin_state_up |
+--------------------------------------+--------------------+-----------------------+-------+----------------+
| 4c709a4c-bf0c-4e03-a0f5-2d938fee7ae1 | L3 agent           | localhost.localdomain | :-)   | True           |
| 960a7806-dc4d-4ab1-99b0-a79dbc31600f | Open vSwitch agent | localhost.localdomain | :-)   | True           |
| d9f545e2-4a6c-43f4-8037-b807cbe27fc5 | DHCP agent         | localhost.localdomain | :-)   | True           |
+--------------------------------------+--------------------+-----------------------+-------+----------------+

答案1

所以您已经创建了一个 VMWare 虚拟服务器,并且在这个 VM 中安装了 OpenStack,它本身可以托管 VM?

然后,VMWare VM 所连接的虚拟交换机会阻止来自 OpenStack VM 的所有流量。这是一项安全措施,以确保只有 VMWare VM 可以访问虚拟交换机和外部网络。这是一个第 2 层问题,我很确定 OpenStack VM 中的 arp -an 命令不会显示网关。

您所要做的就是允许 VMWare 虚拟交换机接收多个 MAC 地址。

您可以在以下位置找到如何执行此操作这个帖子

编辑您的评论:

我不知道。我认为我知道的是,您无法访问路由器,因此,即使在第 2 层也无法访问外部网络(检查启动 arp -an 命令时网关没有显示 MAC 地址),因为 VSwitch 丢弃了 MAC 地址不是 OpenStack 服务器的数据包。

然后,您可以在 VSwitch 中禁用此功能,或者在 OpenStack 服务器上安装 ARP 代理服务。其目的是伪造虚拟机的 MAC 地址,然后将其作为 OpenStack 服务器本身出现在 VSwitch 上。

相关内容