创建OpenStack网络和子网

时间:2020-02-23 14:30:20  来源:igfitidea点击:

本教程基于OpenStack Ocata Release和OpenStack中子网络服务。

什么是提供者网络?

在在OpenStack上启动实例之前,必须创建必要的虚拟网络基础架构。
实例使用提供者(外部)网络通过第2层(桥接/切换)连接到物理网络基础架构。
该网络包括DHCP服务器,可以为实例提供IP地址。

以下是显示提供商网络的概述(来源:Opentack)的图表:

创建提供商网络(在控制器节点上)

如何在控制器节点上创建提供商网络(不含VLAN):

openstack network create  --share --external \
  --provider-physical-network provider \
  --provider-network-type flat provider

如何在控制器节点上创建提供商网络(使用VLAN):

openstack network create --share --external \
--provider-physical-network provider \
--provider-network-type vlan \
--provider-segment 203 provider

使用的选项说明:

--share:  allows all projects to use the virtual network.
--external: defines the virtual network to be external, for internal network, use --internal.
--provider-physical-network provider : connect the flat virtual network to the flat (native/untagged) physical network
--provider-network-type: specifies network type, flat or vlan
--provider-segment: defines vlan id

使用VLAN ID替换203.
此VLAN ID将用于计算节点上。

确认确实使用命令成功创建了网络:

$openstack network list

我们应该获得类似于下面的

ml2_conf.ini文件应该有一行:

[ml2_type_flat]
flat_networks = provider

在提供商网络上创建IPv4子网:

既然我们已添加提供商网络,下一步是为网络定义子网。

openstack subnet create --subnet-range 192.168.10.0/24 \
--gateway 192.168.10.1 --network provider \
--allocation-pool start=192.168.10.10,end=192.168.10.200 \
--dns-nameserver 8.8.4.4 provider-v4

如果我们有公共IP池,请用它替换192.168.10.0。

在提供商网络上创建IPv6子网(可选)

如果我们希望分配给启动实例的IPv6地址,请创建如下所示的IPv6子网:

openstack subnet create --subnet-range fd00:203:0:113::/64 \
--gateway fd00:203:0:113::1 --ip-version 6 \
--ipv6-address-mode slaac --network provider \
--dns-nameserver 2001:4860:4860::8844 provider-v6

确认设置:

[Hyman@theitroad ~(keystone)]$openstack subnet list

使用这些设置,我们应该准备好配置计算节点。

配置计算节点:

在我们计算节点上,我们应该在提供程序网络上使用已配置的VLAN ID标记接口。
在我的情况下,这是VLAN 203.我的VLAN接口有以下配置:

[Hyman@theitroad ~]# cat /etc/sysconfig/network-scripts/ifcfg-p55p2.203 
DEVICE=p55p2.203
VLAN=yes
ONBOOT=yes
MTU=1500
DEFROUTE=no
NM_CONTROLLED=no
IPV6INIT=no

请注意,使用的基本系统是CentOS 7.3.
配置将为Ubuntu Base OS而有所不同。

在计算节点上,文件 linuxbridge_agent.ini:应该有如下映射:

physical_interface_mappings = provider:p55p2

一旦在计算节点上配置了Linux桥,将创建一个桥梁。
见下文

从上面的输出,我们可以看到名为BRQA54AF9D4-D2的桥,其界面为P55P2.203.
P55P2.203是与物理接口P55P2相关联的子接口

我们已准备好在先前创建的提供商网络上创建新实例:

openstack server create --flavor m1.tiny --image CoreOS-x86_64 \
 --nic net-id=a54af9d4-d297-45b6-a98c-79d84add5f2e --security-group default \
 --key-name josphat coreos-test-vm