文档库 最新最全的文档下载
当前位置:文档库 › 任务十三 Neutron基本运维命令及其应用

任务十三 Neutron基本运维命令及其应用

任务十三 Neutron基本运维命令及其应用
任务十三 Neutron基本运维命令及其应用

任务十三Neutron基本运维命令及其应用

一.任务前提环境:

安装成功的先电IaaS云平台环境,可以通过Dashboard登陆云平台,也可以通过终端连接Controller,进行命令的操作。

二.任务涉及节点:

Controller节点

三.任务目标:

1.通过命令行对子网进行变更;

2.通过dashboard界面对子网进行变更;

3.Neutron 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变更子网的操作已经全部结束。

3.Neutron 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_conf.ini ml2 type_drivers vlan

[root@controller ~]# openstack-config --set

/etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types vlan [root@controller ~]# openstack-config --set

/etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_vlan network_vlan_ranges physnet1:100:130

[root@controller ~]# openstack-config --set

/etc/neutron/plugins/ml2/ml2_conf.ini mechanism_drivers openvswitch [root@controller ~]# openstack-config --set

/etc/neutron/plugins/ml2/ml2_conf.ini ovs integration_bridge br-int [root@controller ~]# openstack-config --set

/etc/neutron/plugins/ml2/ml2_conf.ini ovs network_vlan_ranges physnet1:100:130 [root@controller ~]# openstack-config --set

/etc/neutron/plugins/ml2/ml2_conf.ini securitygroup firewall_driver

neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver [root@controller ~]# openstack-config --set

/etc/neutron/plugins/ml2/ml2_conf.ini securitygroup enable_security_group True [root@controller ~]# openstack-config --set

/etc/neutron/plugins/ml2/ml2_conf.ini ovs bridge_mappings physnet1:br-ex Compute节点:

[root@controller ~]# openstack-config --set

/etc/neutron/plugins/ml2/ml2_conf.ini ml2 type_drivers vlan

[root@controller ~]# openstack-config --set

/etc/neutron/plugins/ml2/ml2_conf.ini mechanism_drivers openvswitch [root@controller ~]# openstack-config --set

/etc/neutron/plugins/ml2/ml2_conf.ini ml2 tenant_network_types vlan [root@controller ~]# openstack-config --set

/etc/neutron/plugins/ml2/ml2_conf.ini ml2_type_vlan network_vlan_ranges physnet1:100:130

[root@controller ~]# openstack-config --set

/etc/neutron/plugins/ml2/ml2_conf.ini ovs integration_bridge br-int [root@controller ~]# openstack-config --set

/etc/neutron/plugins/ml2/ml2_conf.ini ovs network_vlan_ranges physnet1:100:130 [root@controller ~]# openstack-config --set

/etc/neutron/plugins/ml2/ml2_conf.ini securitygroup firewall_driver

neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver [root@controller ~]# openstack-config --set

/etc/neutron/plugins/ml2/ml2_conf.ini securitygroup enable_security_group True [root@controller ~]# openstack-config --set

/etc/neutron/plugins/ml2/ml2_conf.ini ovs bridge_mappings physnet1:br-ex 我们同样也能通过修改/etc/neutron/ plugins/ml2/ml2_conf.ini文件来实现同样的效果。

步骤二:重启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类型网络已经全部创建完成。

相关文档