2024年4月16日发(作者:肖惜玉)
任务十三 Neutron基本运维命令及其应用
一.任务前提环境:
安装成功的先电IaaS云平台环境,可以通过Dashboard登陆云平台,也可以通过终端
连接Controller,进行命令的操作。
二.任务涉及节点:
Controller节点
三.任务目标:
1.通过命令行对子网进行变更;
2.通过dashboard界面对子网进行变更;
n Vlan网络的配置。
四. 任务内容:
1. 通过命令行对子网进行变更:
步骤一:创建Demo租户的网络(此处有视频:12-4Neutron基本运维命令及其应用)
我们可以通过tenant-create命令创建一个新的租户,创建成功后,我们通过
tenant-list命令查看租户信息,命令如下,结果如图1所示。
[root@controller ~]# keystone tenant-create --name NeutronDemo
[root@controller ~]# keystone tenant-list
图1 查看keystone租户信息的反馈结果
定义tenantID变量,将NeutronDemo租户对应的租户ID赋给该变量,通过echo命令
输出该变量值,通过neutron net-create命令为NeutronDemo租户创建网络,命令如下,
结果如图2所示。
[root@controller ~]# tenantID=`keystone tenant-list | grep NeutronDemo |
awk '{print $2}'`
[root@controller ~]# echo $tenantID
[root@controller ~]# neutron net-create --tenant-id $tenantID
NeutronDemoNet --shared --provider:network_type flat --
provider:physical_network physnet1
图2 网络创建的反馈结果
步骤二:Neutron子网变更
适用的场景:
当用户需要变更自己的当前子网时,需要对当前子网进行删除操作,子网删除可以通
过命令和Dashboard界面进行操作。
例如,在某个应用场景中,运维人员误操作将192.168.200.0/26网络写成了
192.168.200.0/24网络分配给了虚拟机实例,为保证地址划分正确,我们必须删除并重新
创建正确的子网。下面就以命令操作和Dashboard界面操作分别介绍如何删除一个已经存
在的子网并创建新的子网。
通过subnet-list命令查看现有子网,命令如下,如图3所示。
[root@controller ~]# neutron subnet-list
图3 查看现有子网的反馈结果
我们通过subnet-delete命令对现有子网进行删除,命令如下。
[root@controller jiaoben]# neutron subnet-delete subnet1
发现系统提示删除失败:
409-{u'NeutronError': {u'message': u'Unable to complete operation on subnet
9e1b4213-1778-457a-9144-51272c249fab. One or more ports have an IP allocation
from this subnet.', u'type': u'SubnetInUse', u'detail': u''}}
根据系统提示,我们可以判断子网已经被占用,初步判断有虚拟机实例占用该子网,
删除正在使用该子网的虚拟机实例,我们通过Nova命令来查看虚拟机实例的运行状态,命
令如下,结果如图4所示。
[root@controller jiaoben]# nova list
图4 查看虚拟机实例信息的反馈结果
我们可以看到有一台虚拟机实例在使用网络sharednet1,通过Neutron命令可以查看
网络与子网之间的关系,首先我们使用Neutron命令查看子网subnet1的详细信息,命令
如下,结果如图5所示。
[root@controller jiaoben]# neutron subnet-show subnet1
图5 查看子网subnet1详细信息的反馈结果
之后我们通过Neutron命令查看网络sharednet1的详细信息,命令如下,结果如图6
所示。
[root@controller jiaoben]# neutron net-show sharednet1
图6 查看网络sharednet1详细信息的反馈结果
我们对比子网表的network_id字段和网络表的id字段,发现ID值相同,均为
“f6bc9c03-7b81-4755-a5a9-0ea19177dada”,如图7所示。
图7 对比网络和子网的id字段
通过对比ID值,我们可以确定子网subnet1属于网络sharednet1,而虚拟机实例
“vm_iaas”使用的网络是sharednet1,所以我们需要对虚拟机实例“vm_iaas”进行删除
操作。我们可以通过Nova命令对其进行删除,再通过“nova list”进行查看vm_iaas实
例已经消失,命令如下,结果如图8所示。
[root@controller ~]# nova delete vm_iaas
图8 查看实例消失后的反馈结果
虚拟机实例删除后就可以对子网进行操作了,首先我们通过Neutron命令来查看已经
存在的子网,命令如下,结果如图9所示。
[root@controller ~]# neutron subnet-list
图9 查看已经存在的子网的反馈结果
现在我们通过Neutron命令对该子网进行删除,命令如下。
[root@controller ~]# neutron subnet-delete subnet1
成功后返回删除成功提示:Deleted subnet: subnet1
删除后,我们通过“neutron subnet-list”命令查看子网,返回空值,说明
“subnet1”已经被删除。
接下来创建新子网,我们要确定该子网对应的租户,在该案例中,我们要创建的子网
对应的租户是service租户,我们可以通过以下命令对tenantID变量赋值,获取service
租户的租户ID,这个租户ID在创建子网时会用到,命令如下。
[root@controller ~]# tenantID=`keystone tenant-list | grep service | awk
'{print $2}'`
将租户ID赋值给tenantID变量后,我们就可以通过Neutron命令来创建新的子网
了,在Controller节点键入,命令如下。
[root@controller ~]# neutron subnet-create --tenant-id $tenantID --
gateway 192.168.200.1 --allocation-pool start=192.168.200.3,end=192.168.200.10
sharednet1 192.168.200.0/26 --name subnet2
要注意的是,sharednet1表示新创建的子网所对应的租户网络的名称,subnet2是该
子网的名称。另外,由于子网掩码向右移动了两位,故IP地址要重新划分,我们以
192.168.200.3-192.168.200.10为例,可以根据实际情况进行变动。
创建完成后,可以通过subnet-list命令来查看子网信息,命令如下,结果如图10所
示。
[root@controller ~]# neutron subnet-list
图10 查看子网信息反馈结果
在该列表中,我们可以可以看到新创建的子网,subnet2。
至此,通过命令进行子网划分的方法以及介绍完毕,下面我们来看看如何通过
Dashboard页面来对子网进行变更操作。
2. 通过Dashboard页面对子网进行变更:
步骤一:删除正在使用该子网的虚拟机实例
首先登陆Dashboard页面,在“实例”中“项目”下,我们可以看到正在运行的虚拟
机实例,如图11所示。
图11 查看正在运行的虚拟机实例
可以看到该虚拟机实例使用的网络是我们需要更改的子网,故需先终止该虚拟机实
例,如图11所示右侧的“更多”下拉按钮,然后选择最下方的终止虚拟机选项。
终止操作会使虚拟机实例进入Deleting状态,数秒后,虚拟机实例将被终止,如图
12所示。
图12 虚拟机删除后实例栏没有任何条目
步骤二:删除已存在的子网
此时虚拟机实例已经被完全终止,接下来我们就可以对网络进行操作,点击左侧“管
理员”选项卡,在弹出的“系统面板”选项卡中打开“网络”子选项卡,如图13所示。
图13 查看dashboard界面网络栏目
选择我们在Neutron实训中创建的“sharednet1”网络,点击蓝色标亮的
“shardnet1”网络,跳转到网络详情:shardnet1页面,如图14所示。
图14 查看sharednet1网络条目
在该页面中,我们可以看到我们创建的192.168.200.0/24的子网“subnet1”,下面我
们对该子网进行删除操作,点击右侧的“更多”下拉按钮,选择“删除子网”选项,如图
15所示。
图15 通过dashboard界面删除子网
提示“成功:删除子网”则表示删除成功,如图16所示。
图16 提示删除子网成功
步骤三:创建新子网
首先点击左侧的“创建子网”按钮,在弹出的“创建子网”标签页中的子网子标签键
入子网信息如图17所示。
图17 在标签页中键入子网信息
键入完成后,点击下一步按钮,在“子网详情”子标签中键入信息,如图18所示。
图18 键入子网详情
上述操作完成后,点击右下方的“已创建”按钮,弹出“成功:已新增子
网”subnet2”.”提示后,表示新的子网已经成功创建,如图19所示。
图19 新增子网“subnet2”成功
步骤四:重新启动虚拟机实例
重新转到项目->实例标签中,通过Dashboard实训创建虚拟机实例的方式重新创建虚
拟机,待虚拟机实例成功启动后,我们可以看到Neutron已经为虚拟机实例分配了我们新
创建的子网的IP地址,如图20所示。
图20 在实例栏中查看启动的虚拟机获取到子网IP地址
至此,有关Neutron变更子网的操作已经全部结束。
n Vlan网络的配置
在实际生产环境中,使用Neutron搭建Flat网络并不常见,Neutron可以支持多种网
络模式,包括Flat、Vlan、Gre等,下面我们来介绍Vlan网络的配置过程,以及创建
Vlan网络。
步骤一:配置Ml2插件
我们对Neutron的ML2插件进行配置,首先我们配置ML2支持网络类型,使其为VLAN
网络,命令行如下所示。
Controller节点:
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ ml2 type_drivers vlan
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ ml2 tenant_network_types vlan
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ ml2_type_vlan network_vlan_ranges
physnet1:100:130
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ mechanism_drivers openvswitch
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ ovs integration_bridge br-int
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ ovs network_vlan_ranges physnet1:100:130
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ securitygroup firewall_driver
es_ridIptablesFirewallDriver
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ securitygroup enable_security_group True
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ ovs bridge_mappings physnet1:br-ex
Compute节点:
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ ml2 type_drivers vlan
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ mechanism_drivers openvswitch
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ ml2 tenant_network_types vlan
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ ml2_type_vlan network_vlan_ranges
physnet1:100:130
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ ovs integration_bridge br-int
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ ovs network_vlan_ranges physnet1:100:130
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ securitygroup firewall_driver
es_ridIptablesFirewallDriver
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ securitygroup enable_security_group True
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ ovs bridge_mappings physnet1:br-ex
我们同样也能通过修改/etc/neutron/ plugins/ml2/ml2_文件来实现同样的
效果。
步骤二:重启Neutron相关服务
下面就我们需要重启Neutron相关服务,需要注意的是在重启Compute节点的
Neutron服务前,需要重启openstack-nova-compute服务,具体启动命令如下。
Controller节点:
[root@controller ~]# service neutron-openvswitch-agent start
[root@controller ~]# service neutron-metadata-agent start
[root@controller ~]# service neutron-server start
Compute节点:
[root@compute ~]# service openstack-nova-compute restart
[root@compute ~]# service neutron-openvswitch-agent restart
[root@compute ~]# service neutron-dhcp-agent restart
[root@compute ~]# service neutron-metadata-agent restart
重启完成后,可以通过在Controller节点执行以下命令查看Neutron相关服务的运行
状态和位置信息,命令如下,结果如图21所示。
[root@controller ~]# neutron agent-list
图21 查看neutron相关服务的反馈信息
步骤三:创建Vlan网络
最后,我们通过Neutron创建一个小型Vlan网络。
首先,我们执行Neutron的net-create命令来创建虚拟外部网络,命令行如下,结果
如图22所示。
[root@controller ~]# neutron net-create ext-net --shared --
router:external=True
图22 查看创建成功的反馈信息
最后,我们创建外部子网,外部地址在100.0.0.100到10.0.0.200区间,且关闭外部
网络的DHCP功能,创建命令如下,结果如图23所示。
[root@controller ~]# neutron subnet-create ext-net --name ext-subnet --
allocation-pool start=100.0.0.100,end=100.0.0.200 --disable-dhcp --gateway
100.0.0.1 100.0.0.0/24
图23 查看子网创建的反馈信息
紧接着,我们创建虚拟机内部私有网络,命令行如下,结果如图24所示。
[root@controller ~]# neutron net-create internalnet
图24 创建虚拟机内部私有网络的反馈信息
接着,我们创建内部子网,虚拟机内部网络在192.168.200.0/24网段,命令如下,结
果如图所示。
[root@controller ~]# neutron subnet-create internalnet --name demo-subnet
--gateway 192.168.200.1 192.168.200.0/24
图25 查看内部子网创建的反馈信息
接下来,我们创建一个名为demo-router的虚拟路由器,连接内外网,命令如下,结
果如图26所示。
[root@controller ~]# neutron router-create demo-router
图26 创建demo-router虚拟路由器的反馈信息
最后,我们在虚拟路由器上添加内部接口以及外部网关,首先,我们添加一个内部接
口,命令如下。
[root@controller ~]# neutron router-interface-add demo-router demo-subnet
添加成功后,可以看到成功提示:
Added interface 18978f79-7267-4e20-90d3-de041e15958f to router demo-router.
添加一个外部网关,命令如下。
[root@controller ~]# neutron router-gateway-set demo-router ext-net
添加成功后,同样也可以看到成功提示:
Set gateway for router demo-router
至此,云平台的Vlan类型网络已经全部创建完成。
2024年4月16日发(作者:肖惜玉)
任务十三 Neutron基本运维命令及其应用
一.任务前提环境:
安装成功的先电IaaS云平台环境,可以通过Dashboard登陆云平台,也可以通过终端
连接Controller,进行命令的操作。
二.任务涉及节点:
Controller节点
三.任务目标:
1.通过命令行对子网进行变更;
2.通过dashboard界面对子网进行变更;
n Vlan网络的配置。
四. 任务内容:
1. 通过命令行对子网进行变更:
步骤一:创建Demo租户的网络(此处有视频:12-4Neutron基本运维命令及其应用)
我们可以通过tenant-create命令创建一个新的租户,创建成功后,我们通过
tenant-list命令查看租户信息,命令如下,结果如图1所示。
[root@controller ~]# keystone tenant-create --name NeutronDemo
[root@controller ~]# keystone tenant-list
图1 查看keystone租户信息的反馈结果
定义tenantID变量,将NeutronDemo租户对应的租户ID赋给该变量,通过echo命令
输出该变量值,通过neutron net-create命令为NeutronDemo租户创建网络,命令如下,
结果如图2所示。
[root@controller ~]# tenantID=`keystone tenant-list | grep NeutronDemo |
awk '{print $2}'`
[root@controller ~]# echo $tenantID
[root@controller ~]# neutron net-create --tenant-id $tenantID
NeutronDemoNet --shared --provider:network_type flat --
provider:physical_network physnet1
图2 网络创建的反馈结果
步骤二:Neutron子网变更
适用的场景:
当用户需要变更自己的当前子网时,需要对当前子网进行删除操作,子网删除可以通
过命令和Dashboard界面进行操作。
例如,在某个应用场景中,运维人员误操作将192.168.200.0/26网络写成了
192.168.200.0/24网络分配给了虚拟机实例,为保证地址划分正确,我们必须删除并重新
创建正确的子网。下面就以命令操作和Dashboard界面操作分别介绍如何删除一个已经存
在的子网并创建新的子网。
通过subnet-list命令查看现有子网,命令如下,如图3所示。
[root@controller ~]# neutron subnet-list
图3 查看现有子网的反馈结果
我们通过subnet-delete命令对现有子网进行删除,命令如下。
[root@controller jiaoben]# neutron subnet-delete subnet1
发现系统提示删除失败:
409-{u'NeutronError': {u'message': u'Unable to complete operation on subnet
9e1b4213-1778-457a-9144-51272c249fab. One or more ports have an IP allocation
from this subnet.', u'type': u'SubnetInUse', u'detail': u''}}
根据系统提示,我们可以判断子网已经被占用,初步判断有虚拟机实例占用该子网,
删除正在使用该子网的虚拟机实例,我们通过Nova命令来查看虚拟机实例的运行状态,命
令如下,结果如图4所示。
[root@controller jiaoben]# nova list
图4 查看虚拟机实例信息的反馈结果
我们可以看到有一台虚拟机实例在使用网络sharednet1,通过Neutron命令可以查看
网络与子网之间的关系,首先我们使用Neutron命令查看子网subnet1的详细信息,命令
如下,结果如图5所示。
[root@controller jiaoben]# neutron subnet-show subnet1
图5 查看子网subnet1详细信息的反馈结果
之后我们通过Neutron命令查看网络sharednet1的详细信息,命令如下,结果如图6
所示。
[root@controller jiaoben]# neutron net-show sharednet1
图6 查看网络sharednet1详细信息的反馈结果
我们对比子网表的network_id字段和网络表的id字段,发现ID值相同,均为
“f6bc9c03-7b81-4755-a5a9-0ea19177dada”,如图7所示。
图7 对比网络和子网的id字段
通过对比ID值,我们可以确定子网subnet1属于网络sharednet1,而虚拟机实例
“vm_iaas”使用的网络是sharednet1,所以我们需要对虚拟机实例“vm_iaas”进行删除
操作。我们可以通过Nova命令对其进行删除,再通过“nova list”进行查看vm_iaas实
例已经消失,命令如下,结果如图8所示。
[root@controller ~]# nova delete vm_iaas
图8 查看实例消失后的反馈结果
虚拟机实例删除后就可以对子网进行操作了,首先我们通过Neutron命令来查看已经
存在的子网,命令如下,结果如图9所示。
[root@controller ~]# neutron subnet-list
图9 查看已经存在的子网的反馈结果
现在我们通过Neutron命令对该子网进行删除,命令如下。
[root@controller ~]# neutron subnet-delete subnet1
成功后返回删除成功提示:Deleted subnet: subnet1
删除后,我们通过“neutron subnet-list”命令查看子网,返回空值,说明
“subnet1”已经被删除。
接下来创建新子网,我们要确定该子网对应的租户,在该案例中,我们要创建的子网
对应的租户是service租户,我们可以通过以下命令对tenantID变量赋值,获取service
租户的租户ID,这个租户ID在创建子网时会用到,命令如下。
[root@controller ~]# tenantID=`keystone tenant-list | grep service | awk
'{print $2}'`
将租户ID赋值给tenantID变量后,我们就可以通过Neutron命令来创建新的子网
了,在Controller节点键入,命令如下。
[root@controller ~]# neutron subnet-create --tenant-id $tenantID --
gateway 192.168.200.1 --allocation-pool start=192.168.200.3,end=192.168.200.10
sharednet1 192.168.200.0/26 --name subnet2
要注意的是,sharednet1表示新创建的子网所对应的租户网络的名称,subnet2是该
子网的名称。另外,由于子网掩码向右移动了两位,故IP地址要重新划分,我们以
192.168.200.3-192.168.200.10为例,可以根据实际情况进行变动。
创建完成后,可以通过subnet-list命令来查看子网信息,命令如下,结果如图10所
示。
[root@controller ~]# neutron subnet-list
图10 查看子网信息反馈结果
在该列表中,我们可以可以看到新创建的子网,subnet2。
至此,通过命令进行子网划分的方法以及介绍完毕,下面我们来看看如何通过
Dashboard页面来对子网进行变更操作。
2. 通过Dashboard页面对子网进行变更:
步骤一:删除正在使用该子网的虚拟机实例
首先登陆Dashboard页面,在“实例”中“项目”下,我们可以看到正在运行的虚拟
机实例,如图11所示。
图11 查看正在运行的虚拟机实例
可以看到该虚拟机实例使用的网络是我们需要更改的子网,故需先终止该虚拟机实
例,如图11所示右侧的“更多”下拉按钮,然后选择最下方的终止虚拟机选项。
终止操作会使虚拟机实例进入Deleting状态,数秒后,虚拟机实例将被终止,如图
12所示。
图12 虚拟机删除后实例栏没有任何条目
步骤二:删除已存在的子网
此时虚拟机实例已经被完全终止,接下来我们就可以对网络进行操作,点击左侧“管
理员”选项卡,在弹出的“系统面板”选项卡中打开“网络”子选项卡,如图13所示。
图13 查看dashboard界面网络栏目
选择我们在Neutron实训中创建的“sharednet1”网络,点击蓝色标亮的
“shardnet1”网络,跳转到网络详情:shardnet1页面,如图14所示。
图14 查看sharednet1网络条目
在该页面中,我们可以看到我们创建的192.168.200.0/24的子网“subnet1”,下面我
们对该子网进行删除操作,点击右侧的“更多”下拉按钮,选择“删除子网”选项,如图
15所示。
图15 通过dashboard界面删除子网
提示“成功:删除子网”则表示删除成功,如图16所示。
图16 提示删除子网成功
步骤三:创建新子网
首先点击左侧的“创建子网”按钮,在弹出的“创建子网”标签页中的子网子标签键
入子网信息如图17所示。
图17 在标签页中键入子网信息
键入完成后,点击下一步按钮,在“子网详情”子标签中键入信息,如图18所示。
图18 键入子网详情
上述操作完成后,点击右下方的“已创建”按钮,弹出“成功:已新增子
网”subnet2”.”提示后,表示新的子网已经成功创建,如图19所示。
图19 新增子网“subnet2”成功
步骤四:重新启动虚拟机实例
重新转到项目->实例标签中,通过Dashboard实训创建虚拟机实例的方式重新创建虚
拟机,待虚拟机实例成功启动后,我们可以看到Neutron已经为虚拟机实例分配了我们新
创建的子网的IP地址,如图20所示。
图20 在实例栏中查看启动的虚拟机获取到子网IP地址
至此,有关Neutron变更子网的操作已经全部结束。
n Vlan网络的配置
在实际生产环境中,使用Neutron搭建Flat网络并不常见,Neutron可以支持多种网
络模式,包括Flat、Vlan、Gre等,下面我们来介绍Vlan网络的配置过程,以及创建
Vlan网络。
步骤一:配置Ml2插件
我们对Neutron的ML2插件进行配置,首先我们配置ML2支持网络类型,使其为VLAN
网络,命令行如下所示。
Controller节点:
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ ml2 type_drivers vlan
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ ml2 tenant_network_types vlan
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ ml2_type_vlan network_vlan_ranges
physnet1:100:130
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ mechanism_drivers openvswitch
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ ovs integration_bridge br-int
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ ovs network_vlan_ranges physnet1:100:130
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ securitygroup firewall_driver
es_ridIptablesFirewallDriver
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ securitygroup enable_security_group True
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ ovs bridge_mappings physnet1:br-ex
Compute节点:
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ ml2 type_drivers vlan
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ mechanism_drivers openvswitch
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ ml2 tenant_network_types vlan
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ ml2_type_vlan network_vlan_ranges
physnet1:100:130
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ ovs integration_bridge br-int
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ ovs network_vlan_ranges physnet1:100:130
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ securitygroup firewall_driver
es_ridIptablesFirewallDriver
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ securitygroup enable_security_group True
[root@controller ~]# openstack-config --set
/etc/neutron/plugins/ml2/ml2_ ovs bridge_mappings physnet1:br-ex
我们同样也能通过修改/etc/neutron/ plugins/ml2/ml2_文件来实现同样的
效果。
步骤二:重启Neutron相关服务
下面就我们需要重启Neutron相关服务,需要注意的是在重启Compute节点的
Neutron服务前,需要重启openstack-nova-compute服务,具体启动命令如下。
Controller节点:
[root@controller ~]# service neutron-openvswitch-agent start
[root@controller ~]# service neutron-metadata-agent start
[root@controller ~]# service neutron-server start
Compute节点:
[root@compute ~]# service openstack-nova-compute restart
[root@compute ~]# service neutron-openvswitch-agent restart
[root@compute ~]# service neutron-dhcp-agent restart
[root@compute ~]# service neutron-metadata-agent restart
重启完成后,可以通过在Controller节点执行以下命令查看Neutron相关服务的运行
状态和位置信息,命令如下,结果如图21所示。
[root@controller ~]# neutron agent-list
图21 查看neutron相关服务的反馈信息
步骤三:创建Vlan网络
最后,我们通过Neutron创建一个小型Vlan网络。
首先,我们执行Neutron的net-create命令来创建虚拟外部网络,命令行如下,结果
如图22所示。
[root@controller ~]# neutron net-create ext-net --shared --
router:external=True
图22 查看创建成功的反馈信息
最后,我们创建外部子网,外部地址在100.0.0.100到10.0.0.200区间,且关闭外部
网络的DHCP功能,创建命令如下,结果如图23所示。
[root@controller ~]# neutron subnet-create ext-net --name ext-subnet --
allocation-pool start=100.0.0.100,end=100.0.0.200 --disable-dhcp --gateway
100.0.0.1 100.0.0.0/24
图23 查看子网创建的反馈信息
紧接着,我们创建虚拟机内部私有网络,命令行如下,结果如图24所示。
[root@controller ~]# neutron net-create internalnet
图24 创建虚拟机内部私有网络的反馈信息
接着,我们创建内部子网,虚拟机内部网络在192.168.200.0/24网段,命令如下,结
果如图所示。
[root@controller ~]# neutron subnet-create internalnet --name demo-subnet
--gateway 192.168.200.1 192.168.200.0/24
图25 查看内部子网创建的反馈信息
接下来,我们创建一个名为demo-router的虚拟路由器,连接内外网,命令如下,结
果如图26所示。
[root@controller ~]# neutron router-create demo-router
图26 创建demo-router虚拟路由器的反馈信息
最后,我们在虚拟路由器上添加内部接口以及外部网关,首先,我们添加一个内部接
口,命令如下。
[root@controller ~]# neutron router-interface-add demo-router demo-subnet
添加成功后,可以看到成功提示:
Added interface 18978f79-7267-4e20-90d3-de041e15958f to router demo-router.
添加一个外部网关,命令如下。
[root@controller ~]# neutron router-gateway-set demo-router ext-net
添加成功后,同样也可以看到成功提示:
Set gateway for router demo-router
至此,云平台的Vlan类型网络已经全部创建完成。