【问题标题】:OpenStack: Assigning IPs manuallyOpenStack:手动分配 IP
【发布时间】:2014-01-23 10:11:10
【问题描述】:

我正在按照官方文档 (http://docs.openstack.org/havana/install-guide/install/apt/content/index.html) 在 Ubuntu Server 12.04 LTS 上部署 OpenStack Havana。我使用的是单节点安装,所以一台物理机同时充当控制器节点和计算节点。

现在,除了网络,我一切正常。我应该说我没有使用 Neutron,只是使用 Nova Network。另外,我应该说我远不是网络专家。

问题是下一个问题:据我所知,在我的企业中,每台设备都有一个公共 IP。也就是说,没有 192.168.X.X 或 10.0.X.X 之类的 IP。相反,所有 IP 都位于公共子网中,例如 A.B.0.0/16。特别是,我的部门分配了子网 A.B.C.0/24,因此我们所有的设备都应该分配一个该范围内的 IP。网关已分配 IP A.B.C.2。

到目前为止,我还无法正确配置网络。我想做的是:

  • 使用nova network create,创建一个与物理机相同的新网络:

    nova network-create vmnet --fixed-range-v4=A.B.C.0/24 --gateway=A.B.C.2 --dns1=8.8.8.8 --dns2=4.4.4.4
    
  • 然后,手动为每个虚拟机分配 IP。如果在该子网中分配了 IP,它将覆盖现有计算机中的其他 IP。因此,当我将适配器设置为“桥适配器”时,我想要做的几乎就是我可以用 VirtualBox 做的事情,即在来宾操作系统中手动分配 IP。

这可能吗?

非常感谢。

【问题讨论】:

  • 首先我必须告诉你,在 Openstack 中可以这样做。
  • 但在我可以帮助您之前,我们需要了解您真正需要什么。如果真的需要 Openstack,那么选择 neutron-network 而不是 nova-network。下一步是进行平面网络 [docs.openstack.org/havana/install-guide/install/apt/content/…(在此处解释)。配置根本无法用语言来解释,但是如果您遵循文档并知道自己在做什么,就可以做到。但是,使用 LXC 也可以很容易地在与主机相同的网络中实现实例。
  • 谢谢!我会按照指示进行的。关于 OpenStack,它是一个外部约束,所以我不能在那里真正做出决定。我会和 Neutron 一起去试试。
  • 按照我的回答中的配置。如果您遇到问题,请回到这里。

标签: networking ubuntu ip openstack


【解决方案1】:

使用 Neutron 网络并专门使用 ovs 插件。因为我在下面给出的说明只适用于它。

您必须在 '/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini' 中使用以下配置设置 ovs 插件

[OVS]
tenant_network_type = gre
network_vlan_ranges = EXTNet
enable_tunneling = True
tunnel_type = gre
tunnel_id_ranges = 1:1000
integration_bridge = br-int
tunnel_bridge = br-tun
bridge_mappings = EXTNet:br-ex
local_ip = <your machine IP here>

注意桥映射条目。它将 EXTNet 映射到 br-ex。稍后在 Openstack 中创建网络时,您将使用此 EXTNet 作为提供者物理网络。现在,您必须将连接到企业网络的主机接口之一添加到 br-ex。添加它后,您可能无法通过该接口访问您的主机,因此请始终为此使用辅助接口。

完成设置后,请执行以下操作。

quantum net-create EXTNet --provider:physical_network EXTNet --provider:network_type flat 
quantum net-update EXTNet --router:external True
quantum net-update EXTNet --shared True
quantum subnet-create --name EXTSubnet --gateway <external network gateway> EXTNet    <external network CIDR> --enable_dhcp False

可能还有其他方法。但我已经测试过这种方法,因此推荐。

成功创建子网后,只需在其中启动实例即可。

这里要注意的一点是,由于您在子网中禁用了 dhcp,openstack 将不会在其上运行 dnsmasq ahd,因此您应该提供自己的 dhcp 服务器。

其次,由于network_type是flat,所以不会有任何vlan数据包。来自您的实例的数据包将在您的外部网络上流动,这正是您想要的。

【讨论】:

  • 嗨@Akilesh!我首先按照 OpenStack 安装指南安装了 neutron。不幸的是,它不像前几章那样清楚,但我仍然认为我做得对。我遵循了在专用控制器节点上安装网络支持的步骤,然后是计算节点的步骤。然后我按照您的指示创建了网络(只需将quantum 更改为neutron)。现在我可以创建以错误告终且无法删除的实例(除非再次使用 nova-network 而不是 Neutron)
  • 最后,我想我在 OpenStack Dashboard (Horizo​​n) 中的一些屏幕截图中看到了对 Neutron 的支持,具有从 UI 管理网络的功能。你知道如何安装吗?谢谢。
  • 抱歉耽搁了。安装开放堆栈仪表板就像在 Ubuntu 中安装同名软件包一样简单。但我必须警告您,并非所有可以从 CLI 完成的事情都可以从仪表板完成。其次,在启动时遇到问题很常见,但可以通过查看 nova api 日志来解决。
  • 切换回 nova 并不令人鼓舞。它减少了您的选择。如果你是游戏,那么我们可以商定一个共同的时间,用中子网络为你解决这个问题。我已经做了十几次了。
  • 我已经安装了 Horizo​​n,只是想知道是否可以从那里进行 Neutron 管理(我看到的一些屏幕截图表明这是可能的)。但这并不重要。我有一个脚本,用于在新的 Ubuntu 12.04 中部署 OpenStack,只有 Keystone、Glance 和 Nova,所以我可以很容易地到达那里。然后,我正在尝试扩展脚本来安装和配置 Neutron,也许你可以帮助我。我在UTC+1,也许我们可以安排一些会议?可能有一些小的配置问题。问候!
猜你喜欢
  • 1970-01-01
  • 2016-04-25
  • 1970-01-01
  • 1970-01-01
  • 2018-06-07
  • 2019-04-06
  • 1970-01-01
  • 1970-01-01
  • 2020-11-11
相关资源
最近更新 更多