我有基于 Openstack Icehouse 版本的云系统。现在我想在现有云中测试 Openstack (Juno) 的新版本。所有主机和客户机都使用 Ubuntu 14.04 作为操作系统。KVM 是我正在使用的虚拟机管理程序。
因此,我在云上创建了虚拟机,并在其上安装了 Openstack Juno 的组件。但是这些虚拟机上的网络连接存在问题。
Openstack 安装指南说道:
如果您将 OpenStack 节点构建为虚拟机,则必须配置虚拟机管理程序以允许外部网络上的混杂模式。
但它没有说明如何做到这一点。我也没能通过谷歌搜索找到这些信息。我尝试了很多方法,比如使用命令在各种接口上启用混杂模式:ifconfig eth0 promisc
但都没有用。那么我如何在虚拟机管理程序上启用混杂模式呢?
编辑:使用时,ifconfig
我看到我的接口处于状态UP BROADCAST RUNNING PROMISC
。此外,我之前在物理主机上安装时也使用过类似的安装,没有任何问题。
答案1
ifconfig eth0 promisc
是启用接口混杂模式的正确命令。如果不起作用,请尝试添加此行/etc/rc.local
并重新启动。
ifconfig eth0 up
ifconfig eth0 promisc
答案2
外部网络是指连接到互联网(通常使用公共 IP 池或类似网络)、云之外的其他资源等的网络。您使用的是 Neutron 还是 Nova 网络?这有点重要,但您应该使网桥或您正在使用的任何网络抽象成为混杂的,而不是连接到它的 NIC。然后 nic 应该效仿。
原因是我们需要在虚拟交换机级别执行数据包检查,以确定这些数据包应该去往何处。这应该在虚拟机管理程序级别完成。听起来您正在嵌套虚拟机管理程序,这可能会带来需要处理的问题。是这样吗?
答案3
Ben Pfaff 谈 2013 年回复(一探究竟):
VMware 在这里犯了一个严重且令人困惑的命名错误。“混杂模式”有特定的含义。
[…]
VMware vSwitch 所称的“混杂模式”则截然不同。在 VMware vNIC 上配置混杂模式时,vSwitch 会将 vSwitch 收到的每个数据包的副本发送到该 vNIC。这样做的效果要好得多:vNIC 不会收到交换机尚不知道正确目的地的少数零散数据包,而是会收到每个数据包。