OpenStack:手动分配IP

时间:2014-01-23 10:11:11

标签: networking ubuntu ip openstack

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

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

问题是下一个:在我的企业中,据我所知,每个设备都有一个公共IP。也就是说,没有IP,例如192.168.X.X或10.0.X.X.相反,所有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。

这甚至可能吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

使用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>

注意Bridge mappings条目。它将 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,因此你必须提供自己的dhcp服务器。

第二,因为network_type是扁平的,所以不会有任何vlan包。来自您实例的数据包将在您的外部网络上流动,这就是您想要的。