• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

H3C SeerEngine-DC OpenStack融合版本插件安装指导-CentOS和Kylin-R73xx-6W302

01-正文

本章节下载 01-正文  (2.06 MB)

01-正文

  录

1 概述

1.1 控制组件Neutron插件

1.2 Nova补丁

1.3 openvswitch-agent补丁

1.4 DHCP逃生相关组件

1.4.1 DHCP组件

1.4.2 Metadata组件

1.5 控制组件Neutron安全插件

2 对接注意事项

3 安装OpenStack云平台

4 控制组件预配置

5 在OpenStack节点上安装Neutron插件和补丁

5.1 安装基础环境

5.2 KVM主机Overlay场景

5.2.1 控制节点的插件安装与配置

5.2.2 计算节点的插件安装与配置

5.2.3 验证是否对接成功

5.3 KVM网络Overlay场景

5.3.1 控制节点的插件安装与配置

5.3.2 计算节点的插件安装与配置

5.3.3 (可选)DHCP逃生节点的插件安装与配置

5.3.4 验证是否对接成功

5.4 SR-IOV网络overlay VLAN场景

5.4.1 控制节点的插件安装与配置

5.4.2 计算节点的插件安装与配置

5.4.3 开启网卡SR-IOV功能

5.4.4 修改配置文件

5.4.5 验证是否对接成功

5.5 OpenStack插件对接F5或其他第三方LoadBalancer场景

5.5.1 控制节点的插件安装与配置

5.5.2 计算节点的插件安装与配置

5.5.3 配置F5环境

5.5.4 验证是否对接成功

5.6 OpenStack插件对接第三方防火墙场景

5.6.1 控制节点的插件安装与配置

5.6.2 计算节点的插件安装与配置

5.6.3 配置环境

5.6.4 验证是否对接成功

5.7 OpenStack插件对接Ironic场景

5.7.1 控制节点的插件安装与配置

5.7.2 部署Ironic场景

5.8 Metadata方案

5.8.1 控制节点的插件安装与配置

5.8.2 计算节点的插件安装与配置

5.8.3 传统VLAN及VXLAN网络隧道Metadata方案环境配置

5.8.4 传统VLAN及VXLAN网络层次化端口绑定Metadata方案环境配置

6 安装安全插件

6.1 在控制节点上安装安全插件

6.2 扩展功能

6.2.1 防火墙资源信息对比&同步

6.2.2 负载均衡资源信息对比&同步

7 非融合版本插件升级至融合版本插件

7.1 升级控制组件版本

7.2 卸载非融合版本插件

7.3 安装融合版本插件

7.4 配置控制组件界面参数

7.5 重启neutron-server服务

8 扩展功能

8.1 资源信息对比&同步

8.2 vpcconnection和floatingip命令行操作

8.3 插件运维功能

9 常见问题解答

9.1 当您的网络通过代理服务器联网时,无法使用yum命令直接访问互联网安装插件或补丁所需的Python工具包,怎么办?

9.2 使用指定目的主机的迁移方式进行虚机热迁移时,因目的主机服务异常,导致迁移失败,如何处理?

9.3 Intel X700系列网卡接收不到LLDP报文,怎么办?

9.4 当正常环境突然无法创建虚拟机实例,可能有什么原因?

9.5 Rocky及高版本环境中,热迁移过程中出现概率丢包问题,怎么办?

9.6 若Neutron数据库连接信息加密,融合插件在继承portforwardings数据表时会出现访问数据库失败,导致无法继承,怎么办?

9.7 在Kylin V10操作系统中若出现Exception ignored in和Download error on https提示,怎么办?

 


1 概述

通过安装OpenStack插件可实现SeerEngine-DC控制组件(以下简称“控制组件”)与OpenStack云平台的对接,对接完成后,控制组件可处理云平台的业务部署请求。本文主要介绍如何通过安装OpenStack插件实现与OpenStack云平台的对接。

OpenStack插件主要包含控制组件Neutron插件、Nova补丁、openvswitch-agent补丁和DHCP逃生相关组件。

1.1  控制组件Neutron插件

在OpenStack环境中,Neutron(OpenStack网络服务)用来管理所有VNI(Virtual Networking Infrastructure,虚拟网络架构),它负责向OpenStack计算服务管理的设备提供虚拟网络服务。

控制组件Neutron插件是针对控制组件推出的符合OpenStack框架要求的Neutron插件,实现了核心插件(Networks、Subnets、Routers和Ports等)的全部特性,并负责通过REST API接口将从OpenStack获取的网络配置信息,如租户的网络(Networks)、子网(Subnets)、路由器(Routers)、端口(Ports)等,同步设置到控制组件。

注意

使用插件对接OpenStack云平台后,为了避免影响用户业务,建议不要在控制组件上修改云平台下发的配置,如:在云平台中创建的虚拟链路层网络、虚拟路由器、虚拟子网等网络资源。

 

1.2  Nova补丁

Nova是OpenStack的计算控制软件,用来管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务。它负责虚拟机的创建、开机、关机、迁移等操作,并配置虚拟机的CPU、内存等信息。

在某些指定场景下(如主机Overlay、vCenter网络Overlay),需要通过Nova补丁使OpenStack创建的虚拟机能够接入控制组件所控制的网络。Kylin V10操作系统暂不支持Nova补丁的安装。

1.3  openvswitch-agent补丁

当OpenStack的计算节点使用KVM虚拟化技术且需应用层次化端口绑定功能时,开源openvswitch-agent进程可能导致开源OVS(Open vSwitch)上缺少对应VLAN的流表,通过安装openvswitch-agent补丁可解决此问题。Kylin V10操作系统暂不支持openvswitch-agent补丁的安装。

1.4  DHCP逃生相关组件

Kylin V10操作系统暂不支持DHCP逃生组件的安装。

1.4.1  DHCP组件

OpenStack和控制组件的网络Overlay场景下,当前控制组件作为DHCP Server为虚拟机或者裸金属服务器分配地址,当控制组件与南向网络失联后,虚拟机或者裸金属服务器将无法进行DHCP续约和重新分配地址。为了弥补当前的不足,可通过在DHCP逃生节点安装DHCP组件,提供网络Overlay的DHCP逃生机制,当控制组件与南向网络失联后,虚拟机或者裸金属服务器可通过独立部署的DHCP Server续约和分配地址。

1.4.2  Metadata组件

在DHCP逃生场景中,需要在DHCP逃生节点安装Metadata组件,为DHCP组件提供Metadata功能。

1.5  控制组件Neutron安全插件

控制组件Neutron安全插件是针对控制组件推出的符合OpenStack框架要求的Neutron插件,实现了安全插件(Fwaas、Lbaas和Vpnaas等)的全部特性,并负责通过REST API接口将从OpenStack获取的安全配置信息,如租户的防火墙(FW)、负载均衡(LB)、VPN等,同步设置到控制组件,为租户提供了调度安全网络资源的能力。Kylin V10操作系统暂不支持安全插件的安装。


2 对接注意事项

本文主要以控制组件单集群对接OpenStack单控制节点为例进行介绍,特殊场景需注意以下几点:

·     对接一套OpenStack,OpenStack存在多个控制节点

在OpenStack侧,请按照OpenStack单控制节点的配置方式配置所有控制节点,并保持配置参数一致。

·     对接多套OpenStack(安全插件仅支持Queens和Rocky版本OpenStack)

在每套OpenStack的所有控制节点上安装插件,并分别配置对接参数(包括控制组件Neutron插件ml2_conf.ini中cloud_region_name参数)。

[SDNCONTROLLER]

cloud_region_name = default

cloud_region_name:插件配置云平台名称,缺省值为default。此参数取值务必与控制组件中[自动化 > 数据中心网络 > 云及虚拟化对接 > OpenStack]添加的云平台名称保持一致。每套OpenStack需配置不同的cloud_region_name和不同的vxlan vni范围。不同OpenStack下所有节点的hostname不能重复。

¡     如果多套OpenStack使用独立的Keystone,注意检查控制组件侧和每个OpenStack是否对接成功,多套OpenStack能否分别对自己的租户下发业务。

¡     如果多套OpenStack共用Keystone,注意除了检查控制组件侧和每个OpenStack是否对接成功,还要检查多套OpenStack能否对同一个租户下发业务。

对接前请确认OpenStack的版本及操作系统环境,控制组件Neutron插件或Nova补丁所需的软件配置需求如下表所示。

表2-1 软件配置需求

软件配置需求

备注

OpenStack

当OpenStack使用CentOS或Kylin V10的Yum方式部署时,OpenStack软件版本及支持的操作系统如下:

·     Kilo 2015.1:支持CentOS 7.1.1503操作系统

·     Liberty:支持CentOS 7.1.1503操作系统

·     Mitaka:支持CentOS 7.1.1503操作系统

·     Newton:支持CentOS 7.2.1511操作系统

·     Ocata:支持CentOS 7.2.1511操作系统

·     Pike:支持CentOS 7.2.1511、Kylin V10操作系统

·     Queens:支持CentOS 7.4.1708操作系统

·     Rocky:支持CentOS 7.2.1511操作系统

·     Stein:支持CentOS 7.4.1708操作系统

·     Train:支持CentOS 7、CentOS8、Kylin V10操作系统

·     Ussuri:支持CentOS 8、Kylin V10操作系统

·     Victoria:支持CentOS 8、Kylin V10操作系统

·     Wallaby:支持CentOS Stream 8、Kylin V10操作系统

·     Xena:支持CentOS Stream 8操作系统

·     Yoga:支持CentOS Stream 8操作系统

 

说明

·     安全插件暂不支持Victoria、Wallaby、Xena和Yoga版本OpenStack。

·     在OpenStack Pike版本安装插件时,dnsmasq版本需为2.76,可使用命令dnsmasq -v查看版本号。

·     安装OpenStack插件前需要先访问互联网安装基础环境,请确保安装过程中系统能正常访问互联网。

 

 


3 安装OpenStack云平台

请参考OpenStack官网上指定OpenStack软件版本的安装指导手册,完成OpenStack云平台的安装和部署。确保各节点的/etc/hosts文件已配置主机名和IP地址的映射、确保OpenStack Neutron组件已完成部署。

 


4 控制组件预配置

控制组件预配置仅提供基本配置信息。涉及不同业务场景配置,请参考对应控制组件业务场景的典型配置指导。

预配置如下表所示。

表4-1 控制组件预配置

配置

菜单路径

Fabrics

[自动化 > 数据中心网络 > Fabrics > Fabrics]

VDS

[自动化 > 数据中心网络 > 公共网络设置 > 虚拟分布式交换机]

地址池

[自动化 > 数据中心网络 > 资源池 > IP地址池]

VNID池(VLAN池、VXLAN池、VLAN-VXLAN映射)

[自动化 > 数据中心网络 > 资源池 > VNID池 > VLAN]

[自动化 > 数据中心网络 > 资源池 > VNID池 > VXLAN]

[自动化 > 数据中心网络 > 资源池> VNID池 > VLAN-VXLAN映射]

为Fabric添加接入设备和边界设备

[自动化 > 数据中心网络 > Fabrics > Fabrics]

L4-L7设备、资源池及模板

[自动化 > 数据中心网络 > 资源池 > 设备资源 > 物理设备]

[自动化 > 数据中心网络 > 资源池 > 设备资源 > L4-L7物理资源池]

出口网关

[自动化 > 数据中心网络 > 公共网络设置 > 出口网关]

计算域、主机

[自动化 > 数据中心网络 > Fabrics > 计算域]

[自动化 > 数据中心网络 > Fabrics > 计算域 > 主机]

OpenStack云对接

[自动化 > 数据中心网络 > 云及虚拟化对接 > OpenStack]

 

注意

·     OpenStack云对接中添加云平台名称务必与Neutron插件ml2_conf.ini中cloud_region_name参数保持一致,区分大小写,且该配置项不可为空。

·     OpenStack云对接中VNI范围务必与云平台的VXLAN VNI范围保持一致。

 


5 在OpenStack节点上安装Neutron插件和补丁

目前支持在多个版本的OpenStack上安装控制组件Neutron插件、Nova补丁或openvswitch-agent补丁、DHCP逃生相关组件。不同版本的OpenStack都使用同一个插件安装包。

控制组件Neutron插件安装在OpenStack控制节点上,Nova补丁和openvswitch-agent补丁安装在OpenStack计算节点上,DHCP逃生相关组件安装在DHCP逃生节点。安装插件或补丁前需要在相应的OpenStack节点上安装基础环境。

5.1  安装基础环境

安装插件及补丁前,需先安装基础环境,即在线下载并安装Python工具包。

(1)     更新软件源列表。

[root@localhost ~]# yum clean all

[root@localhost ~]# yum makecache

(2)     下载并安装Python工具包。

¡     CentOS 8操作系统、CentOS Stream 8操作系统和Kylin V10操作系统(OpenStack为Train、Ussuri、Victoria和Wallaby版本)

[root@localhost ~]# yum install -y python3-pip python3-setuptools

¡     其他CentOS操作系统和Kylin V10操作系统(OpenStack为Pike版本)

[root@localhost ~]# yum install -y python-pip python-setuptools

(3)     登录控制节点,编辑/etc/hosts文件。添加控制组件上[自动化 > 数据中心网络 > Fabrics > 计算域 > 主机]中所有本OpenStack主机的IP和Name映射信息。并添加控制组件上[自动化 > 数据中心网络 > 资源池 > 设备资源 > 物理设备]中所有该场景下Leaf、Spine、Border设备的IP和Name映射信息。

[root@localhost ~]# vim /etc/hosts

127.0.0.1 localhost

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

99.0.83.75 controller

99.0.83.76 compute1

99.0.83.77 compute2

99.0.83.78 nfs-server

99.0.83.79 compute3

99.0.83.74 compute4

(4)     在控制节点安装websocket-client工具包。

¡     CentOS 8操作系统、CentOS Stream 8操作系统和Kylin V10操作系统(OpenStack为Train、Ussuri、Victoria和Wallaby版本)

[root@localhost ~]# yum install –y python3-websocket-client

¡     其他CentOS操作系统和Kylin V10操作系统(OpenStack为Pike版本)

[root@localhost ~]# yum install -y python-websocket-client

说明

·     在CentOS操作系统中,对于Python 3.8以下环境,python-websocket-client需要确保为0.56版本。Python 3.8及以上的云环境中,推荐使用0.58版本的python-websocket-client。

·     在Kylin V10操作系统中,python-websocket-client和python3-websocket-client需要确保为0.47或0.56版本。Python 3.8及以上的云环境中,推荐使用0.58版本的python-websocket-client。

·     在离线环境下,python-websocket-client建议使用.whl的基础环境离线包。

 

5.2  KVM主机Overlay场景

5.2.1  控制节点的插件安装与配置

1. 获取控制组件Neutron插件安装软件包

获取所需版本的控制组件OpenStack软件包,并将控制组件OpenStack软件包拷贝至服务器或虚拟机上的待安装目录下,或通过FTP、TFTP、SCP等文件传输协议将软件包上传到指定目录。

提示

·     使用FTP、TFTP方式上传时,请选择binary模式(二进制模式)传输,以免损坏软件包。

·     安装过程中,修改配置文件时如果参数后边括号有“以XXX为例”的说明,表示该参数取值可以根据用户需求改变,否则不能改变。

 

2. 在OpenStack控制节点上安装控制组件Neutron插件

(1)     进入控制组件OpenStack软件包(.egg/.whl/.rpm文件)的存放路径(以路径/root为例),安装控制组件OpenStack软件包。软件包的名称格式和安装方式如下,请根据实际环境中的Python版本和操作系统选择一个软件包进行安装。

¡     .egg文件:SeerEngine_DC_PLUGIN-version-py2.7.egg,其中version为软件包版本号。

CentOS操作系统(环境为Python2.7):

[root@localhost ~]# easy_install SeerEngine_DC_PLUGIN-E3608-py2.7.egg

Kylin V10操作系统(OpenStack为Pike版本):

[root@localhost ~]# easy_install SeerEngine_DC_PLUGIN-E6203-py2.7.egg

¡     .whl文件:SeerEngine_DC_PLUGIN-version-py3-none-any.whl,其中version为软件包版本号。

CentOS操作系统(环境为Python3):

[root@localhost ~]# pip3 install SeerEngine_DC_PLUGIN-E6401-py3-none-any.whl

Kylin V10操作系统(OpenStack为Train、Ussuri、Victoria和Wallaby版本):

[root@localhost ~]# pip3 install SeerEngine_DC_PLUGIN-E6401-py3-none-any.whl

¡     .rpm文件:SeerEngine_DC_PLUGIN-version-1-py2.7.noarch.rpm或SeerEngine_DC_PLUGIN-version-1-py3.6.noarch.rpm,其中version为软件包版本号。

CentOS操作系统(环境为Python2.7):

[root@localhost ~]# rpm -ivh SeerEngine_DC_PLUGIN-E6402-1-py2.7.noarch.rpm

CentOS操作系统(环境为Python3):

[root@localhost ~]# rpm -ivh SeerEngine_DC_PLUGIN-E6402-1-py3.6.noarch.rpm

说明

rpm文件不支持在Kylin V10系统上安装。

 

(2)     修改插件文件所属用户组及权限,确保与Neutron组件文件保持一致。

说明

请在安全插件中使用Octavia服务前完成此操作,否则安全插件Octavia文件的权限会被改成neutron,造成Octavia服务不可用。Octavia服务启动后,请勿再执行此操作。

¡     CentOS 8和CentOS Stream 8操作系统

[root@localhost ~]# cd /usr/local/lib/python3.6/site-packages

[root@localhost ~]# chown -R --reference=/usr/lib/python3.6/site-packages/neutron *h3c

[root@localhost ~]# chmod -R --reference=/usr/lib/python3.6/site-packages/neutron *h3c

[root@localhost ~]# cd /usr/local/bin

[root@localhost ~]# chown -R --reference=/usr/bin/neutron-server h3c*

[root@localhost ~]# chmod -R --reference=/usr/bin/neutron-server h3c*

¡     其他CentOS操作系统和Kylin V10操作系统(OpenStack为Pike版本)

[root@localhost ~]# cd /usr/lib/python2.7/site-packages

[root@localhost ~]# chown -R --reference=neutron SeerEngine*

[root@localhost ~]# chmod -R --reference=neutron SeerEngine*

[root@localhost ~]# cd /usr/bin

[root@localhost ~]# chown -R --reference=neutron-server h3c*

[root@localhost ~]# chmod -R --reference=neutron-server h3c*

¡     Kylin V10操作系统(OpenStack为Train、Ussuri、Victoria和Wallaby版本)

[root@localhost ~]# cd /usr/local/lib/python3.7/site-packages/

[root@localhost site-packages]# chown -R --reference=/usr/lib/python3.7/site-packages/neutron *h3c

[root@localhost site-packages]# chmod -R --reference=/usr/lib/python3.7/site-packages/neutron *h3c

[root@localhost site-packages]# cd /usr/local/bin

[root@localhost bin]# chown -R --reference=/usr/bin/neutron-server h3c*

[root@localhost bin]# chmod -R --reference=/usr/bin/neutron-server h3c*

(3)     安装控制组件Neutron插件。

[root@localhost bin]# cd

[root@localhost ~]# h3c-sdnplugin controller install

注意

·     执行h3c-sdnplugin controller install时,请确保/root目录下不存在neutron.conf文件,如果存在,请先删除或者移动到其他位置。

·     当厂商的Neutron基于开源Newton、Pike或Yoga版本进行二次开发时,需采用如下安装方式:[root@localhost ~]# h3c-sdnplugin controller install --neutron_version version。其中version为对应的开源版本号newton、pike或yoga。

 

3. 修改OpenStack控制节点的配置文件

(1)     修改neutron.conf配置文件。

a.     通过vi编辑器打开neutron.conf配置文件。

[root@localhost ~]# vi /etc/neutron/neutron.conf

b.     按[i]键进入编辑模式,修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存neutron.conf配置文件并退出vi编辑器。

当OpenStack为Train、Ussuri、Victoria和Wallaby版本,且操作系统为Kylin V10时,请按照如下修改neutron.conf配置文件。

[DEFAULT]

core_plugin = ml2

service_plugins = h3c_l3_router,qos,h3c_port_forwarding

当OpenStack为Train、Ussuri、Victoria、Wallaby、Xena和Yoga版本,且操作系统为CentOS时,请按照如下修改neutron.conf配置文件。

[DEFAULT]

core_plugin = ml2

service_plugins = h3c_l3_router,qos,h3c_port_forwarding,h3c_bgp_neighbor,h3c_taas,h3c_trunk

[service_providers]

service_provider= BGP_NEIGHBOR:H3C:networking_h3c.l3_router.h3c_bgp_neighbors_driver.H3CBgpNeighborsDriver:default

service_provider= TAAS:H3C:networking_h3c.l3_router.h3c_tap_services.H3CTapServicesDriver:default

service_provider=EXROUTE:H3C:networking_h3c.l3_router.h3c_exroutes_driver.H3CExroutesDriver:default

当OpenStack为Queens、Rocky和Stein版本时,请按照如下修改neutron.conf配置文件。

[DEFAULT]

core_plugin = ml2

service_plugins = h3c_l3_router,qos,h3c_port_forwarding

当OpenStack为Pike版本时,请按照如下修改neutron.conf配置文件。

[DEFAULT]

core_plugin = ml2

service_plugins = h3c_l3_router,qos,h3c_port_forwarding

当OpenStack为Mitaka版本时,且OpenStack上配置QoS服务时,需配置以下配置项。

[DEFAULT]

core_plugin = ml2

service_plugins = h3c_l3_router,qos,h3c_bgp_neighbor,h3c_taas,h3c_trunk

[qos]

notification_drivers = message_queue,qos_h3c

[service_providers]

service_provider= BGP_NEIGHBOR:H3C:networking_h3c.l3_router.h3c_bgp_neighbors_driver.H3CBgpNeighborsDriver:default

service_provider= TAAS:H3C:networking_h3c.l3_router.h3c_tap_services.H3CTapServicesDriver:default

service_provider=EXROUTE:H3C:networking_h3c.l3_router.h3c_exroutes_driver.H3CExroutesDriver:default

当OpenStack为Liberty、Newton和Ocata版本,且OpenStack上配置QoS服务时,需配置以下配置项。

[DEFAULT]

core_plugin = ml2

service_plugins = h3c_l3_router,qos

[qos]

notification_drivers = message_queue,qos_h3c

当OpenStack为Kilo 2015.1版本时,需配置以下项。

[DEFAULT]

core_plugin = ml2

service_plugins = h3c_l3_router

注意

·     OpenStack Kilo版本不支持QoS功能,service_plugins中无需配置QoS。

·     由于开源port-forwarding存在已知问题,无法与Neutron插件L3 Plugin兼容,建议使用Neutron插件的h3c_port_forwarding Plugin。使用时请确保Neutron社区版本已解决已知BUG #1799135。

 

注意

当OpenStack为Mitaka、Pike、Queens、Rocky、Stein、Train、Ussuri、Victoria、Wallaby、Xena和Yoga版本,且操作系统为CentOS时,支持VPC互通流量过防火墙场景,但需要在neutron.conf配置文件中进行额外配置,如表5-1所示。

 

表5-1 VPC互通流量过防火墙场景的额外配置项

OpenStack版本

neutron.conf配置文件的额外配置项

Mitaka

网络云场景

[DEFAULT]

service_plugins = h3c_vpc_connection

[service_providers]

service_provider=VPC_CONNECTION:H3C:networking_h3c.vpc_connection.h3c_vpc_connection_driver.H3CVpcConnectionDriver:default

Pike

非网络云场景

[DEFAULT]

service_plugins = h3c_vpc_connection_general

api_extensions_path = /usr/lib/python2.7/site-packages/SeerEngine_DC_PLUGIN-E3608-py2.7.egg/neutron_vpc_h3c/extensions/vpcconnection_general

[service_providers]

service_provider=VPC_CONNECTION:H3C:networking_h3c.vpc_connection.h3c_vpc_connection_driver.H3CVpcConnectionDriver:default

其中,如果升级前环境中配置为service_plugins = h3c_vpc_connection_pike,建议修改配置为service_plugins = h3c_vpc_connection_general

其中api_extensions_path的配置内容可通过如下方式获取:

[root@controller ~]# python

>>> from neutron_vpc_h3c.extensions import vpcconnection_general

>>> vpcconnection_general.__path__

['/usr/lib/python2.7/site-packages/SeerEngine_DC_PLUGIN-E3608-py2.7.egg/neutron_vpc_h3c/extensions/vpcconnection_general']

Queens、Rocky和Stein

非网络云场景

[DEFAULT]

service_plugins = h3c_vpc_connection_general

api_extensions_path = /usr/lib/python2.7/site-packages/SeerEngine_DC_PLUGIN-E3608-py2.7.egg/neutron_vpc_h3c/extensions/vpcconnection_general

[service_providers]

service_provider=VPC_CONNECTION:H3C:networking_h3c.vpc_connection.h3c_vpc_connection_driver.H3CVpcConnectionDriver:default

其中api_extensions_path的配置内容可通过如下方式获取:

[root@controller ~]# python

>>> from neutron_vpc_h3c.extensions import vpcconnection_general

>>> vpcconnection_general.__path__

['/usr/lib/python2.7/site-packages/SeerEngine_DC_PLUGIN-E3608-py2.7.egg/neutron_vpc_h3c/extensions/vpcconnection_general']

Train、Ussuri、Victoria、Wallaby、 Xena和Yoga

网络云场景

[DEFAULT]

service_plugins = h3c_vpc_connection

[service_providers]

service_provider=VPC_CONNECTION:H3C:networking_h3c.vpc_connection.h3c_vpc_connection_driver.H3CVpcConnectionDriver:default

非网络云场景

[DEFAULT]

service_plugins = h3c_vpc_connection_general

api_extensions_path = /usr/local/lib/python3.6/site-packages/neutron_vpc_h3c/extensions/vpcconnection_general

[service_providers]

service_provider=VPC_CONNECTION:H3C:networking_h3c.vpc_connection.h3c_vpc_connection_driver.H3CVpcConnectionDriver:default

其中api_extensions_path的配置内容可通过如下方式获取:

[root@controller ~]# python3

>>> from neutron_vpc_h3c.extensions import vpcconnection_general

>>> vpcconnection_general.__path__

['/usr/local/lib/python3.6/site-packages/neutron_vpc_h3c/extensions/vpcconnection_general']

 

注意

由于OpenStack存在开源Bug,当neutron.conf文件中database connection为如下配置时:

[database]

connection = mysql://…(省略号表示neutron数据库连接信息)

会导致QoS功能异常,请修改为:

[database]

connection = mysql+pymysql://…(省略号表示neutron数据库连接信息)

 

各参数含义如下:

-     core_plugin:核心插件加载入口,即加载核心插件ml2到OpenStack。

-     service_plugins:扩展服务插件加载入口,即加载扩展服务插件到OpenStack。包括防火墙、负载均衡、VPN等。请根据具体的网络和安全需求进行追加配置。

-     service_provider:各种服务插件的路径。

-     notification_drivers:QoS消息通知驱动的名称。

(2)     修改ml2_conf.ini配置文件。

a.     通过vi编辑器打开ml2_conf.ini配置文件。

[root@localhost ~]# vi /etc/neutron/plugins/ml2/ml2_conf.ini

b.     按[i]键进入编辑模式,按照如下所示修改文件配置。修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存ml2_conf.ini配置文件并退出vi编辑器。

[ml2]

type_drivers = vxlan,vlan

tenant_network_types = vxlan,vlan

mechanism_drivers = ml2_h3c

extension_drivers = ml2_extension_h3c,qos,port_security

[ml2_type_vlan]

network_vlan_ranges = physicnet1:1000:2999

[ml2_type_vxlan]

vni_ranges = 1:500

表5-2 ml2_conf.ini配置文件参数说明

参数名

说明

示例值

type_drivers

驱动类型,VXLAN必须作为第一个参数。

vxlan,vlan

tenant_network_types

租户所属的网络类型。目前只支持租户所属的网络类型外网为VLAN,内网为VXLAN。

·     主机Overlay以及网络Overlay层次化端口绑定:VXLAN必须作为第一个参数。

·     网络Overlay非层次化端口绑定:VLAN必须作为第一个参数。

·     主机Overlay/网络Overlay层次化场景与网络Overlay场景混用:VXLAN作为第一个参数,同时需要注意,VLAN网络此时需要通过后台命令行、RestAPI或者管理员界面创建。

vxlan,vlan

mechanism_drivers

ml2驱动名称。当创建VLAN网络的sriov类型实例时,需配置为“sriovnicswitch,ml2_h3c,openvswitch”;当创建支持层次化的实例时,需配置为“ml2_h3c,openvswitch”。

ml2_h3c

extension_drivers

扩展驱动名称,取值包括ml2_extension_h3c、qos和port_security。当OpenStack上未开启QoS功能时,不需配置QoS驱动(Kilo 2015.1版本的OpenStack不支持配置QoS驱动);当OpenStack不需要开启端口安全功能时,不需要配置port_security(Kilo 2015.1,Liberty 2015.2和Ocata 2017.1版本的OpenStack不支持配置port_security参数)。

ml2_extension_h3c,qos,port_security

network_vlan_ranges

租户外网的VLAN ID取值范围。

physicnet1:1000:2999

vni_ranges

租户内网VXLAN ID取值范围。

1:500

 

(3)     在ml2_conf.ini配置文件中加载插件配置项。修改ml2_conf.ini配置文件。

a.     通过vi编辑器打开ml2_conf.ini配置文件。

[root@localhost ~]# vi /etc/neutron/plugins/ml2/ml2_conf.ini

b.     按[i]键进入编辑模式,按照如下所示修改文件配置。修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存ml2_conf.ini配置文件并退出vi编辑器。

[SDNCONTROLLER]

url = http://127.0.0.1:30000

username = admin

password = Pwd@12345

domain = sdn

timeout = 1800

retry = 10

vif_type = ovs

vhostuser_mode = server

white_list = False

use_neutron_credential = False

output_json_log = True

vendor_rpc_topic = VENDOR_PLUGIN

hierarchical_port_binding_physicnets  =  ANY

hierarchical_port_binding_physicnets_prefix  =  physicnet

enable_dhcp_hierarchical_port_binding = False

enable_security_group = False

enable_https = False

neutron_plugin_ca_file =

neutron_plugin_cert_file =

neutron_plugin_key_file =

enable_iam_auth = False

sdnc_rpc_url = ws://127.0.0.1:30000

sdnc_rpc_ping_interval = 60

websocket_fragment_size = 102400

enable_l3_router_rpc_notify = False

qos_rx_limit_min = 0

cloud_region_name = default

enable_h3c_l3_exroute = False

neutron_black_list =

black_list_matching =

force_vlan_port_details_qvo = True

neutron_version =

neutron_domain_name =

enable_binding_fip_dnat = False

enable_encrypted_authentication = False

enable_neutron_rpc = True

表5-3 ml2_conf.ini配置文件参数说明

参数名

说明

示例值

url

登录统一数字底盘的URL地址。统一数字底盘的URL为http://ip_address:30000或https://ip_address:30000。

http://127.0.0.1

username

登录统一数字底盘的用户名(以admin为例)。当use_neutron_credential参数取值为True时,不需要配置本参数。

admin

password

登录统一数字底盘的密码(以Pwd@12345为例)。当use_neutron_credential参数取值为True时,不需要配置本参数。如密码中包含字符“$”,需要在该字符前输入转义符“\”。

Pwd@12345

domain

控制组件所在域的域名(以sdn为例)。本参数已废弃。

sdn

timeout

Neutron-server等待控制组件响应的时间,单位为秒(以1800秒为例)。建议本参数的值设置为大于等于1800秒。

1800

retry

发送连接请求消息的尝试次数(以10为例)。

10

vif_type

默认支持的虚拟机网卡类型(以ovs为例)。取值范围为ovs、vhostuser(用于OVS DPDK方案)和None。当取值为vhostuser时,可以设置vhostuser_mode参数。如取值为None,控制组件计算域页面添加计算节点主机时,配置的主机名称必须和计算节点主机名称一致。当取值为None时,在主机Overlay环境中可自动判别网卡类型。

ovs

vhostuser_mode

默认的DPDK vhostuser模式。取值范围为server和client,缺省值为server。当vif_type配置为vhostuser时,此配置生效。

server

white_list

是否和控制组件免认证用户功能配合使用(以False为例)。

False

use_neutron_credential

是否使用OpenStack neutron用户名和密码与控制组件通信(以False为例)。

False

output_json_log

是否将控制组件Neutron插件和控制组件通信的REST API消息以JSON格式输出到OpenStack的操作日志文件(以True为例)。

True

vendor_rpc_topic

厂商的RPC topic。当其他厂商需要从控制组件Neutron插件获取neutron数据时,需要配置此参数。本参数的取值需要由H3C和其他厂商协商,缺省值为VENDOR_PLUGIN,目前取值包括:VENDOR_PLUGIN:表示本参数不生效。DP_PLUGIN:迪普的RPC topic。

VENDOR_PLUGIN

hierarchical_port_binding_physicnets

OpenStack进行层次化端口绑定时选择VLAN物理网络的策略,取值包括ANY和PREFIX,缺省值为ANY。ANY:从所有VLAN物理网络中选择一个用于分配VLAN ID。PREFIX:从所有匹配指定前缀的VLAN物理网络中选择一个用于分配VLAN ID。

ANY

hierarchical_port_binding_physicnets_prefix

匹配的VLAN物理网络名称前缀,缺省值为physicnet。仅当hierarchical_port_binding_physicnets取值为PREFIX时,本参数生效。

physicnet

enable_dhcp_hierarchical_port_binding

使能DHCP端口层次化功能,缺省值为False。

False

enable_security_group

是否开启下发OpenStack的安全组规则到控制组件的功能(以False为例)。

False

enable_https

支持HTTPS双向认证功能,缺省值为False。

False

neutron_plugin_ca_file

控制组件的CA证书存放位置,建议存放在/usr/share/neutron目录下(以/etc/neutron/ca.crt为例)。

/etc/neutron/ca.crt

neutron_plugin_cert_file

控制组件的Cert证书存放位置,建议存放在/usr/share/neutron目录下(以/etc/neutron/sna.pem为例)。

/etc/neutron/sna.pem

neutron_plugin_key_file

控制组件的Key证书存放位置,建议存放在/usr/share/neutron目录下(以/etc/neutron/sna.key为例)。

/etc/neutron/sna.key

enable_iam_auth

使能IAM接口认证,当对接统一数字底盘时,插件可配置此项为True,表示使用IAM接口完成认证。缺省值为False。本参数已废弃。

False

sdnc_rpc_url

String类型,控制组件的RPC接口URL,目前仅支持websocket类型接口,以ws://127.0.0.1:30000为例。当统一数字底盘配置为HTTPS协议时,该配置项须为wss协议。可参考url参数的填写说明,以统一数字底盘为例,如统一数字底盘的url为http://127.0.0.1,则sdnc_rpc_url应为ws://127.0.0.1。

ws://127.0.0.1:30000

sdnc_rpc_ping_interval

Int类型,向控制组件发送RPC ping心跳报文的时间间隔,单位为秒,缺省值为60。

60

websocket_fragment_size

在DHCP逃生场景下,向控制组件发送websocket消息分片的每片大小,单位Byte,取值必须不小于1024,缺省值为102400,当取值为1024代表不分片。

102400

enable_l3_router_rpc_notify

是否开启三层路由事件通过RPC通知的机制(以False为例)。

False

qos_rx_limit_min

流量入方向带宽限速最小值,单位为kbps。当OpenStack配置的QoS的流量入方向带宽限速值小于本参数时,则流量入方向带宽限速值将以本参数为准。目前仅Kilo 2015.1版本OpenStack支持配置本参数。

0

cloud_region_name

插件配置云平台名称,缺省值为default。此参数取值务必与控制组件中[自动化 > 数据中心网络 > 云及虚拟化对接 > OpenStack]添加的云平台名称保持一致。

default

enable_h3c_l3_exroute

使能扩展路由功能,缺省值为False,目前仅Mitaka、Train、Ussuri、Victoria、Wallaby、Xena和Yoga版本OpenStack支持配置此参数。Kylin V10操作系统不支持扩展路由功能,只能取值为False。当取值为True时,需要在neutron.conf文件[DEFAULT]中配置api_extensions_path,配置内容通过如下方式获取。

CentOS 8和CentOS Stream 8操作系统:

[root@controller ~]# python3

>>>from neutron_exroute_h3c import extensions

>>>extensions.__path__

['/usr/local/lib/python3.6/site-packages/neutron_exroute_h3c/extensions']

其他CentOS操作系统:

[root@controller ~]# python

>>>from neutron_exroute_h3c import extensions

>>>extensions.__path__

['/usr/lib/python2.7/site-packages/SeerEngine_DC_PLUGIN-E3608-py2.7.egg/neutron_exroute_h3c/extensions']

False

neutron_black_list

Neutron黑名单,取值为字符串,配置时需结合black_list_matching使用,默认不配置。当neutron_black_list取值为flat,且black_list_matching取值为空时,表示黑名单功能对flat类型的内部网络生效。

-

black_list_matching

黑名单匹配方式,取值为prefix或suffix。当取值为prefix时,网络名称前缀若在neutron_black_list取值范围内,则该网络被匹配至黑名单;当取值为suffix时,网络名称后缀若在neutron_black_list取值范围内,则该网络被匹配至黑名单。网络资源被匹配至黑名单后,neutron_black_list匹配的资源在云平台上创建后不会下发至控制组件;默认不配置,表示不开启黑名单功能。黑名单功能只针对二层资源生效,例如网络、子网和端口;三层资源不能使用黑名单功能,例如虚拟路由器绑定子网接口。

-

force_vlan_port_details_qvo

VLAN类型网络中的虚拟机上线后,是否在OVS桥上强制创建qvo类型的端口。当取值为true时,会强制创建qvo类型的端口;当取值为false时,会根据云平台的配置自动创建tap或qvo类型的端口。首次对接云平台业务时,建议配置为False。

True

neutron_version

Neutron版本,取值为空、pike、newton或yoga,默认为空。当厂商的Neutron基于开源Pike、Newton或Yoga版本进行二次开发时,需取值为pike、newton或yoga。

-

neutron_domain_name

当Neutron访问Keystone获取租户或Domain名称时,Neutron的权限不足,可依据当前Domain名称进行配置,使Neutron获得足够的权限,默认为空。配置方式如下:在云平台上查看Domain名称,若Domain名称为Default,则此时配置为neutron_domain_name = Default。

-

enable_binding_fip_dnat

绑定浮动IP的端口是否开启端口转发(Port forwarding),缺省值为False。

False

enable_encrypted_authentication

是否为统一数字底盘的用户名/密码进行base64解密。当取值为False时,统一数字底盘的用户名和密码不会进行解密;当取值为True时,使用base64解密算法对统一数字底盘的用户名和密码进行解密,此时统一数字底盘的用户名和密码需要输入base64加密后的取值。例如加密前用户名为admin,密码为Pwd@12345,加密命令为:echo -n 'password' |base64,加密后的用户名为YWRtaW4=,密码为UHdkQDEyMzQ1。

-

enable_neutron_rpc

是否与neutron的消息队列建立连接,缺省值为True。

True

 

(4)     当white_list定制为True时,需要在控制组件上添加免认证用户,将免认证IP填写为Neutron-server所在主机的IP地址,“角色”选择“系统管理员”。

(5)     当use_neutron_credential定制为True时,需要进行以下配置:

a.     修改neutron.conf配置文件。

通过vi编辑器打开neutron.conf配置文件,按[i]键进入编辑模式,新增如下配置。修改完成后保存neutron.conf配置文件并退出vi编辑器。

[keystone_authtoken]

admin_user = neutron

admin_password = KEYSTONE_PASS

参数含义为:

-     admin_user:在OpenStack上进行Keystone认证使用的管理用户名称(以neutron为例)。

-     admin_password:在OpenStack上进行Keystone认证使用的管理用户密码(即替换KEYSTONE_PASS为Keystone认证使用的Neutron用户密码)。

b.     在控制组件上增加管理员用户,配置用户名为neutron,角色选择为系统管理员,密码请使用OpenStack上neutron用户对应的密码。

(6)     重启neutron-server服务。

[root@localhost ~]# service neutron-server restart

neutron-server stop/waiting

neutron-server start/running, process 4583

4. 验证控制组件Neutron插件是否安装成功

(1)     验证控制组件OpenStack软件包是否安装成功。若显示正确的软件版本号,则说明安装成功。

¡     .egg文件

CentOS操作系统(环境为Python2.7)和Kylin V10操作系统(OpenStack为Pike版本)

[root@localhost ~]# pip freeze | grep PLUGIN

SeerEngine-DC-PLUGIN===E3608

¡     .whl文件

CentOS操作系统(环境为Python3)

[root@localhost ~]# pip3 freeze | grep PLUGIN

SeerEngine-DC-PLUGIN @ file:///root/SeerEngine_DC_PLUGIN-E6402-py3-none-any.whl

Kylin V10操作系统(OpenStack为Train、Ussuri、Victoria和Wallaby版本)

[root@localhost ~]# pip3 freeze | grep PLUGIN

SeerEngine-DC-PLUGIN @ file:///root/SeerEngine_DC_PLUGIN-E6402-py3-none-any.whl

¡     .rpm文件

[root@localhost ~]# rpm -qa | grep PLUGIN

SeerEngine-DC-PLUGIN===E3608.noarch

(2)     验证neutron-server服务是否已开启。若显示neutron-server服务为running状态的运行信息,则说明启动成功。

[root@localhost ~]# service neutron-server status

neutron-server start/running, process 1849

5. (可选)升级控制组件Neutron插件

升级控制组件Neutron插件时请先卸载旧版本插件,然后重新安装新版本插件。升级过程中可能造成业务中断,请谨慎操作。

注意

当插件进行跨版本升级时,可能由于不同版本插件的配置文件中参数缺省值不同导致升级前后插件的配置不同。此时,建议用户手动修改相关参数取值以保证升级前后插件配置相同。

 

(1)     卸载控制组件Neutron插件。

[root@localhost ~]# h3c-sdnplugin controller uninstall

Restore config files

Uninstallation complete.

注意

当厂商的Neutron基于开源Newton、Pike或Yoga版本进行二次开发时,需采用如下安装方式:[root@localhost ~]# h3c-sdnplugin controller install --neutron_version version。其中version为对应的开源版本号newton、pike或yoga。

 

(2)     卸载控制组件OpenStack软件包。

¡     .egg文件和.whl文件

CentOS操作系统(环境为Python3)和Kylin V10操作系统(OpenStack为Train、Ussuri、Victoria和Wallaby版本)

[root@localhost ~]# pip3 uninstall SeerEngine-DC-PLUGIN

Found existing installation: SeerEngine-DC-PLUGIN E6401

Uninstalling SeerEngine-DC-PLUGIN-E6401:

  Would remove:

    /usr/local/bin/h3c-sdnplugin

    /usr/local/bin/h3c-sdnplugin-extension

    /usr/local/lib/python3.6/site-packages/SeerEngine_DC_PLUGIN-E6401.dist-info/*

    /usr/local/lib/python3.6/site-packages/networking_h3c/*

    /usr/local/lib/python3.6/site-packages/neutron_bgp_h3c/*

    /usr/local/lib/python3.6/site-packages/neutron_exroute_h3c/*

    /usr/local/lib/python3.6/site-packages/neutron_taas_h3c/*

    /usr/local/lib/python3.6/site-packages/neutron_trunk_h3c/*

    /usr/local/lib/python3.6/site-packages/neutron_vpc_h3c/*

Proceed (Y/n)? y

  Successfully uninstalled SeerEngine-DC-PLUGIN-E6401

CentOS操作系统(环境为Python2.7)和Kylin V10操作系统(OpenStack为Pike版本)

[root@localhost ~]# pip uninstall SeerEngine-DC-PLUGIN

Uninstalling SeerEngine-DC-PLUGIN-E3608:

  /usr/bin/h3c-sdnplugin

  /usr/lib/python2.7/site-packages/SeerEngine_DC_PLUGIN-E3608-py2.7.egg

Proceed (y/n)? y

  Successfully uninstalled SeerEngine-DC-PLUGIN-E3608

¡     .rpm文件

[root@localhost ~]# rpm -e SeerEngine_DC_PLUGIN

(3)     重新安装新版本插件,具体方法请参见“5.2.1  控制节点的插件安装与配置”。

说明

若还需要升级Neutron安全插件,请跳过“重启neutron-server服务。”步骤,待安全插件升级完成后,再重启neutron-server服务即可。升级Neutron安全插件具体步骤请参见“(可选)升级控制组件Neutron安全插件”。

 

升级前后可能需要修改的neutron.conf文件配置请参见下表。

表5-4 升级前后neutron.conf文件配置修改项

配置

升级前

升级后

说明

service_plugins

port_forwarding

h3c_port_forwarding

-

service_plugins

h3c_vpc_connection_pike

h3c_vpc_connection_general

-

api_extensions_path

api_extensions_path的配置内容可通过如下方式获取:

[root@controller ~]# python

>>> from neutron_vpc_h3c.extensions import vpcconnection_general

>>> vpcconnection_general.__path__

['/usr/lib/python2.7/site-packages/SeerEngine_DC_PLUGIN-E3608-py2.7.egg/neutron_vpc_h3c/extensions/vpcconnection_general']

每次升级均需要重新获取

 

5.2.2  计算节点的插件安装与配置

仅在以下场景中,需要安装Nova补丁:

·     KVM类型的主机Overlay或网络Overlay组网中,如果虚拟机作为Loadbalancer成员,Loadbalancer需要感知成员状态

·     vCenter类型的网络Overlay场景

1. 获取Nova补丁安装软件包

获取所需版本的控制组件OpenStack软件包,并将控制组件OpenStack软件包拷贝至服务器或虚拟机上的待安装目录下,或通过FTP、TFTP、SCP等文件传输协议将软件包上传到指定目录。

提示

使用FTP、TFTP方式上传时,请选择binary模式(二进制模式)传输,以免损坏软件包。

 

2. 安装Nova补丁

(1)     进入控制组件OpenStack软件包(.egg/.rpm文件)的存放路径(以路径/root为例),安装控制组件OpenStack软件包。软件包的名称格式为SeerEngine_DC_PLUGIN-version1-py2.7.egg或SeerEngine_DC_PLUGIN-version1.noarch.rpm,其中version1为软件包版本号。请根据实际环境中的Python版本和操作系统选择一个软件包进行安装。

¡     .egg文件

[root@localhost ~]# easy_install SeerEngine_DC_PLUGIN-E3608-py2.7.egg

¡     .rpm文件

[root@localhost ~]# rpm -ivh SeerEngine_DC_PLUGIN-E3608.noarch.rpm

(2)     安装Nova补丁。

[root@localhost ~]# h3c-sdnplugin compute install

Install the nova patch

 

modifying:

/usr/lib/python2.7/site-packages/nova/virt/vmwareapi/vmops.py

modify success, backuped at: /usr/lib/python2.7/site-packages/nova/virt/vmwareapi/vmops.py.h3c_bak

说明

modifying部分表示控制组件Nova补丁修改的开源Nova文件以及修改前文件的备份路径。

 

(3)     进行环境相关配置。

a.     关闭计算节点的neutron-openvswitch-agent服务并设为开机不启动。

[root@localhost ~]# service neutron-openvswitch-agent stop

[root@localhost ~]# systemctl disable neutron-openvswitch-agent.service

b.     在控制节点上通过neutron agent-list命令检查数据库中是否存在该计算节点的Agent。如不存在,请继续进行下一步;如存在,请通过neutron agent-delete id 命令删除,其中id 表示该计算节点的Agent ID。

[root@localhost ~]# neutron agent-list

| id                                   | agent_type         | host     |

| 25c3d3ac-5158-4123-b505-ed619b741a52 | Open vSwitch agent | compute3

[root@localhost ~]# neutron agent-delete 25c3d3ac-5158-4123-b505-ed619b741a52

Deleted agent: 25c3d3ac-5158-4123-b505-ed619b741a52

c.     在计算节点上通过vi编辑器打开nova.conf配置文件。

[root@localhost ~]# vi /etc/nova/nova.conf

d.     按[i]键进入编辑模式,按照如下所示修改文件配置。修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存nova.conf配置文件并退出vi编辑器。

计算节点的Hypervisor类型为KVM时,配置文件如下:

[s1020v]

s1020v = False

member_status = True

[neutron]

ovs_bridge = vds1-br

计算节点的Hypervisor类型为VMware vCenter时,配置文件如下:

[DEFAULT]

compute_driver = vmwareapi.VMwareVCDriver

[vmware]

host_ip = 127.0.0.1

host_username = sdn

host_password = skyline123

cluster_name = vcenter

insecure = True

[s1020v]

s1020v = False

vds = VDS2

(4)     重启openstack-nova-compute服务。

[root@localhost ~]# service openstack-nova-compute restart

表5-5 nova.conf配置文件参数说明

参数

说明

示例值

s1020v

是否使用S1020V虚拟交换机转发各虚拟机之间以及虚拟机与外部网络之间的流量(以False为例)。本字段已废弃

False

member_status

是否开启虚拟机上下电时修改OpenStack上负载均衡器的成员状态的功能

True

vds

vCenter上主机所属的VDS名称(以VDS2为例)。主机Overlay组网环境下,只能指定控制组件推送给vCenter的VDS;网络Overlay组网环境下,可根据组网需求指定任意一个已存在的VDS

VDS2

uplink_teaming_policy

上行链路采取的聚合策略,取值包括:

·     loadbalance_srcid:基于源虚拟端口的路由

·     loadbalance_ip:基于IP哈希的路由

·     loadbalance_srcmac:基于源MAC哈希的路由

·     loadbalance_loadbased:基于物理网卡负载的路由

·     failover_explicit:使用明确故障切换顺序

loadbalance_srcid

ovs_bridge

修改H3C S1020V虚拟交换机网桥的名称,网桥的名称与H3C S1020V虚拟交换机上已创建的网桥名称相同(以vds1-br为例)

vds1-br

compute_driver

计算节点进行虚拟化所使用的驱动名称

vmwareapi.VMwareVCDriver

host_ip

登录vCenter的IP地址

127.0.0.1

host_username

登录vCenter的用户名

sdn

host_password

登录vCenter的密码(如果密码中包含字符“$”,需要在该字符前输入转义符“\”)

skyline123

cluster_name

vCenter环境中集群的名称

vcenter

insecure

登录vCenter时不进行安全检查

True

 

3. 验证Nova补丁是否安装成功

(1)     验证控制组件OpenStack软件包是否安装成功。若显示正确的软件包版本号,则说明安装成功。

¡     .egg文件

[root@localhost ~]# pip freeze | grep PLUGIN

SeerEngine-DC-PLUGIN===E3608

¡     .rpm文件

[root@localhost ~]# rpm -qa | grep PLUGIN

SeerEngine-DC-PLUGIN===E3608.noarch

(2)     验证openstack-nova-compute服务是否已开启。若显示openstack-nova-compute服务为running状态的运行信息,则说明启动成功。

[root@localhost ~]# service openstack-nova-compute status

nova-compute start/running, process 184

4. (可选)升级Nova补丁

升级Nova补丁时请先卸载旧版本补丁,然后重新安装新版本补丁。升级过程中可能造成业务中断,请谨慎操作。

(1)     卸载Nova补丁。

[root@localhost ~]# h3c-sdnplugin compute uninstall

Uninstall the nova patch

(2)     卸载控制组件OpenStack软件包。

¡     .egg文件

[root@localhost ~]# pip uninstall SeerEngine-DC-PLUGIN

Uninstalling SeerEngine-DC-PLUGIN-E3608:

  /usr/bin/h3c-sdnplugin

  /usr/lib/python2.7/site-packages/SeerEngine_DC_PLUGIN-E3608-py2.7.egg

Proceed (y/n)? y

  Successfully uninstalled SeerEngine-DC-PLUGIN-E3608

¡     .rpm文件

[root@localhost ~]# rpm -e SeerEngine_DC_PLUGIN

(3)     重新安装新版本补丁,具体方法请参见“5.2.2  计算节点的插件安装与配置”。

5.2.3  验证是否对接成功

(1)     在OpenStack侧创建VXLAN类型网络和虚拟机。

(2)     登录控制组件,查看[自动化 > 数据中心网络 >所有租户网络 > 虚拟端口]是否存在对应虚机端口,若端口信息正确且状态为UP,则对接成功。

5.3  KVM网络Overlay场景

5.3.1  控制节点的插件安装与配置

1. 安装控制组件Neutron插件

请参见“5.2.1  控制节点的插件安装与配置”章节进行安装。

2. 修改配置文件

使用root用户登录控制节点,修改配置文件”/etc/neutron/plugins/ml2/ml2_conf.ini”。

注意

控制节点ml2_conf.ini文件中network_vlan_ranges需要配置所有计算节点的物理网络名称和VLAN范围,并且不同计算节点openvswitch_agent.ini文件中bridge_mappings需配置不同的物理网络名称。

 

(1)     编辑[ml2_type_vlan]标签network_vlan_ranges,其中冒号前表示物理网络名称,冒号后表示VLAN范围。

[ml2]

type_drivers = vxlan,vlan

tenant_network_types = vxlan,vlan

mechanism_drivers = ml2_h3c,openvswitch

[ml2_type_vlan]

network_vlan_ranges = physicnet1:1000:1999,physicnet2:2000:2999

[ml2_type_vxlan]

vni_ranges = 1:500

(2)     重启neutron-server服务。

[root@localhost ~]# service neutron-server restart

neutron-server stop/waiting

neutron-server start/running, process 4583

5.3.2  计算节点的插件安装与配置

1. 安装LLDP服务

·     CentOS 8和CentOS Stream 8操作系统

在节点上安装并启动lldpd。

[root@localhost ~]# yum install -y lldpd

[root@localhost ~]# systemctl enable lldpd.service

[root@localhost ~]# systemctl start lldpd.service

·     其他CentOS操作系统

a.     在节点上安装并启动lldpad。

[root@localhost ~]# yum install -y lldpad

[root@localhost ~]# systemctl enable lldpad.service

[root@localhost ~]# systemctl start lldpad.service

b.     在节点上配置上行口开启发送LLDP功能,以上行口为eno2为例。

[root@localhost ~]# lldptool set-lldp -i eno2 adminStatus=rxtx;

[root@localhost ~]# lldptool -T -i eno2 -V sysName enableTx=yes;

[root@localhost ~]# lldptool -T -i eno2 -V portDesc enableTx=yes;

[root@localhost ~]# lldptool -T -i eno2 -V sysDesc enableTx=yes;

[root@localhost ~]# lldptool -T -i eno2 -V sysCap enableTx=yes;

2. (可选)安装Nova补丁

仅在以下场景中,需要安装Nova补丁:

·     KVM类型的主机Overlay或网络Overlay组网中,如果虚拟机作为Loadbalancer成员,Loadbalancer需要感知成员状态

·     vCenter类型的网络Overlay场景

请参见“5.2.2  计算节点的插件安装与配置”章节进行安装。

3. (可选)在OpenStack计算节点上安装openvswitch-agent补丁

说明

·     openvswitch-agent补丁只适用于开源场景。若第三方云修改了openvswitch-agent,则不支持安装openvswitch-agent补丁。

·     仅层次化环境需要安装openvswitch-agent补丁。Rocky版本及后续高版本OpenStack不需要安装openvswitch-agent补丁。

·     Kylin V10操作系统不支持安装openvswitch-agent补丁。

 

(1)     进入控制组件OpenStack软件包(.egg/.rpm文件)的存放路径(以路径/root为例),安装控制组件OpenStack软件包。软件包的名称格式为SeerEngine_DC_PLUGIN-version-py2.7.egg或SeerEngine_DC_PLUGIN-version.noarch.rpm,其中version为软件包版本号。请根据实际环境中的Python版本和操作系统选择一个软件包进行安装。

¡     .egg文件

[root@localhost ~]# easy_install SeerEngine_DC_PLUGIN-E3608-py2.7.egg

¡     .rpm文件

[root@localhost ~]# rpm -ivh SeerEngine_DC_PLUGIN-E3608-1.noarch.rpm

(2)     安装openvswitch-agent补丁。

[root@localhost ~]# h3c-sdnplugin openvswitch install

(3)     重启openvswitch-agent服务。

[root@localhost ~]# service neutron-openvswitch-agent restart

4. (可选)验证openvswitch-agent补丁是否安装成功

(1)     验证控制组件OpenStack软件包是否安装成功。若显示正确的软件包版本号,则说明安装成功。

¡     .egg文件

[root@localhost ~]# pip freeze | grep PLUGIN

SeerEngine-DC-PLUGIN===E3608

¡     .rpm文件

[root@localhost ~]# rpm -qa | grep PLUGIN

SeerEngine-DC-PLUGIN===E3608.noarch

(2)     验证openvswitch-agent服务是否已开启。若显示openvswitch-agent服务为running状态的运行信息,则说明启动成功。

[root@localhost ~]# service neutron-openvswitch-agent status

Redirecting to /bin/systemctl status  neutron-openvswitch-agent.service

neutron-openvswitch-agent.service - OpenStack Neutron Open vSwitch Agent

   Loaded: loaded (/usr/lib/systemd/system/neutron-openvswitch-agent.service; enabled; vendor preset: disabled)

   Active: active (running) since Mon 2016-12-05 16:58:18 CST; 18h ago

Main PID: 807 (neutron-openvsw)

5. (可选)升级openvswitch-agent补丁

升级openvswitch-agent补丁时请先卸载旧版本补丁,然后重新安装新版本补丁。升级过程中可能造成业务中断,请谨慎操作。

(1)     卸载openvswitch-agent补丁。

[root@localhost ~]# h3c-sdnplugin openvswitch uninstall

(2)     卸载控制组件OpenStack软件包。

¡     .egg文件

[root@localhost ~]# pip uninstall SeerEngine-DC-PLUGIN

Uninstalling SeerEngine-DC-PLUGIN-E3608:

  /usr/bin/h3c-sdnplugin

  /usr/lib/python2.7/site-packages/SeerEngine_DC_PLUGIN-E3608-py2.7.egg

Proceed (y/n)? y

  Successfully uninstalled SeerEngine-DC-PLUGIN-E3608

¡     .rpm文件

[root@localhost ~]# rpm -e SeerEngine_DC_PLUGIN

(3)     重新安装新版本补丁,具体方法请参见“3. (可选)在OpenStack计算节点上安装openvswitch-agent补丁

6. 进行环境相关配置

使用root用户登录计算节点,修改配置文件”/etc/neutron/plugins/ml2/openvswitch_agent.ini”。

注意

单个或多个计算节点openvswitch_agent.ini文件中bridge_mappings需配置不同的物理网络名称。

 

(1)     编辑[ovs]标签bridge_mappings,其中冒号前的配置表示物理网络名称,须与绑定业务网卡的物理网络名称保持一致,冒号后的配置表示待手动创建OVS网桥名称,可自定义。

[ovs]

bridge_mappings = physicnet1:br-ens33

(2)     创建网桥,名称以br-ens33为例。

[root@localhost ~]# ovs-vsctl add-br br-ens33

(3)     网桥绑定物理端口。

[root@localhost ~]# ovs-vsctl add-port br-ens33 ens33

(4)     检查ovs配置。

[root@localhost ~]# ovs-vsctl show

(5)     删除默认网桥,名称以br-tun为例。

[root@localhost ~]# ovs-vsctl del-br br-tun

(6)     修改配置文件”/etc/neutron/plugins/ml2/openvswitch_agent.ini”,注释掉所有与隧道相关的参数。

[agent]

# tunnel_types = vxlan

# vxlan_udp_port = 4789

# l2_population = true

[ovs]

# tunnel_bridge = br-tun

# local_ip = 192.168.1.100

(7)     重启openvswitch-agent和neutron-openvswitch-agent服务,确认br-tun网桥已删除。

[root@localhost ~]# systemctl restart neutron-openvswitch-agent.service

[root@localhost ~]# systemctl restart openvswitch-agent.service

[root@localhost ~]# ovs-vsctl show

5.3.3  (可选)DHCP逃生节点的插件安装与配置

当业务场景需要支持DHCP逃生时,需要额外的节点作为DHCP逃生节点,并在该节点上安装DHCP组件和Metadata组件。

DHCP逃生相关组件仅支持如下操作系统:

·     CentOS 7.2.1511操作系统,内核版本为3.10.0-327.el7.x86_64,若内核版本与S1020V的版本不配套,请先安装内核补丁。具体配置流程请参见“CentOS 7.2.1511操作系统”。

·     OpenEuler 21.10 ARM操作系统。具体配置流程请参见“OpenEuler 21.10 ARM操作系统”。

启用DHCP逃生节点前,请确保完成以下任务:

(1)     停用非逃生网络节点的DHCP服务和Metadata服务。

[root@localhost ~]# systemctl stop neutron-dhcp-agent

[root@localhost ~]# systemctl stop neutron-metadata-agent

(2)     删除网络中所有的DHCP类型端口。

2. CentOS 7.2.1511操作系统

安装基础组件

(1)     在DHCP逃生节点安装websocket-client工具包。

[root@localhost ~]# yum install -y python-websocket-client

说明

对于Python 3.8以下环境,python-websocket-client需要确保为0.56版本。Python 3.8及以上的云环境中,推荐使用0.58版本的python-websocket-client。在离线环境下,建议使用.whl的基础环境离线包。

 

(2)     在DHCP逃生节点上安装S1020V,并完成桥配置、控制组件配置。具体步骤请参见H3C S1020V虚拟交换机的安装指导。

[root@localhost ~]# rpm -ivh --force s1020v-centos71-3.10.0-229.el7.x86_64-x86_64.rpm

获取DHCP组件和Metadata组件安装软件包

DHCP逃生相关组件软件包打包在控制组件OpenStack插件包中,获取所需版本的控制组件OpenStack插件包,并将软件包拷贝至服务器或虚拟机上的待安装目录下,或通过FTP、TFTP、SCP等文件传输协议将软件包上传到指定目录。

提示

使用FTP、TFTP方式上传时,请选择binary模式(二进制模式)传输,以免损坏软件包。

 

在DHCP逃生节点安装DHCP组件

(1)     ‍进入控制组件OpenStack软件包(.egg/.rpm文件)的存放路径(以路径/root为例),安装控制组件OpenStack DHCP软件包。软件包的名称格式为SeerEngine_DC_PLUGIN-DHCP-version1-py2.7.egg,其中version1为软件包版本号。

[root@localhost ~]# easy_install SeerEngine_DC_PLUGIN-DHCP_E3608_2017.10-py2.7.egg

验证DHCP软件包是否安装成功。

[root@localhost ~]# pip freeze | grep PLUGIN

SeerEngine-DC-PLUGIN===DHCP-E3608-2017.10

(2)     安装DHCP组件。

[root@localhost ~]# h3c-sdnplugin dhcp install

Install Environment dependent packages

Preparing…                         ########## [100%]

Updating / installing…

python2-six-1.10.0-9.el7     ########## [  1%]

………

Install config files

Install services

Installation complete

Please do not remove the *.h3c_bak files.

(3)     修改DHCP组件配置文件。

a.     在DHCP逃生节点上通过vi编辑器打开h3c_dhcp_agent.ini配置文件。

[root@localhost ~]# vi /etc/neutron/h3c_dhcp_agent.ini

b.     按[i]键进入编辑模式,按照如下所示修改文件配置。

[DEFAULT]

interface_driver = openvswitch

dhcp_driver = networking_h3c.agent.dhcp.driver.dhcp.Dnsmasq

enable_isolated_metadata = true

force_metadata = true

ovs_integration_bridge = br0

[h3c]

transport_url = ws://127.0.0.1:8080

websocket_fragment_size = 102400

[ovs]

ovsdb_interface = vsctl

[SDNCONTROLLER]

url = http://127.0.0.1:30000

username = admin

password = Pwd@12345

timeout = 1800

retry = 10

enable_https = False

neutron_plugin_ca_file =

neutron_plugin_cert_file =

neutron_plugin_key_file =

c.     如果使用证书认证,需添加以下配置。

[h3c]

ca_file = /etc/neutron/ca.crt

cert_file = /etc/neutron/sna.pem

key_file = /etc/neutron/sna.key

key_password = KEY_PASSWORD

insecure = false

d.     修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车键,保存配置文件并退出vi编辑器。

表5-6 h3c_dhcp_agent.ini配置文件参数说明

参数

说明

[DEFAULT]

interface_driver

管理虚拟端口的驱动,建议保持默认

dhcp_driver

管理DHCP服务的驱动,建议保持默认

enable_isolated_metadata

控制Nova计算服务是否为每个实例启用独立的元数据服务代理,建议保持默认

force_metadata

是否强制实例使用元数据服务获取元数据信息

ovs_integration_bridge

DHCP port上线的虚拟交换机桥

[h3c]

transport_url

控制组件的RPC接口URL,目前仅支持websocket类型接口,以ws://127.0.0.1:30000为例。当统一数字底盘配置为HTTPS协议时,该配置项需为wss协议。

websocket_fragment_size

向控制组件发送websocket消息分片的大小,单位为Byte,取值范围为不小于1024的整数。缺省值为102400,配置为1024表示不分片

[ovs]

ovsdb_interface

OVS数据库交互的命令行,无需修改

[SDNCONTROLLER]

url

登录统一数字底盘的URL地址。以http://127.0.0.1:30000为例

username

登录统一数字底盘的用户名(以admin为例)

password

登录统一数字底盘的密码(以Pwd@12345为例)。如密码中包含字符“$”,需要在该字符前输入转义符“\”

timeout

Neutron-server等待控制组件响应的时间,单位为秒(以1800秒为例)。建议本参数的值设置为大于等于1800秒

retry

发送连接请求消息的尝试次数(以10为例)

enable_https

支持HTTPS双向认证功能,缺省值为False

neutron_plugin_ca_file

控制组件的CA证书存放位置,建议存放在/usr/share/neutron目录下

neutron_plugin_cert_file

控制组件的Cert证书存放位置,建议存放在/usr/share/neutron目录下

neutron_plugin_key_file

控制组件的Key证书存放位置,建议存放在/usr/share/neutron目录下

[h3c]

ca_file

控制组件的CA证书存放位置,建议存放在/usr/share/neutron目录下(以/etc/neutron/ca.crt为例)

cert_file

控制组件的Cert证书存放位置,建议存放在/usr/share/neutron目录下(以/etc/neutron/sna.pem为例)

key_file

控制组件的Key证书存放位置,建议存放在/usr/share/neutron目录下(以/etc/neutron/sna.key为例)

key_password

证书的认证密码,即替换KEY_PASSWORD为证书的认证密码

insecure

是否开启websocket证书认证,取值为true或false,默认为false。当使用证书认证时,需配置为false,即关闭websocket证书认证。

 

(4)     启动DHCP组件。

[root@localhost ~]# systemctl enable h3c-dhcp-agent.service

[root@localhost ~]# systemctl start h3c-dhcp-agent.service

启动后可以查询DHCP组件的状态。

[root@localhost ~]# systemctl status h3c-dhcp-agent.service

在DHCP逃生节点安装Metadata组件

(1)     ‍进入控制组件OpenStack软件包(.egg/.rpm文件)的存放路径(以路径/root为例),安装控制组件OpenStack Metadata软件包。软件包的名称格式为SeerEngine_DC_PLUGIN-version1-py2.7.egg,其中version1为软件包版本号。

[root@localhost ~]# easy_install SeerEngine_DC_PLUGIN-DHCP_E3608-2017.10-py2.7.egg

(2)     安装逃生服务的Metadata组件。

[root@localhost ~]# h3c-sdnplugin metadata install

Install config files

Install services

Installation complete

Please do not remove the *.h3c_bak files.

(3)     修改Metadata组件配置文件。

a.     在DHCP逃生节点上通过vi编辑器打开h3c_metadata_agent.ini配置文件。

[root@localhost ~]# vi /etc/neutron/h3c_metadata_agent.ini

b.     按[i]键进入编辑模式,按照如下所示修改文件配置。

[DEFAULT]

nova_metadata_host = controller

nova_metadata_port = 8775

metadata_proxy_shared_secret = METADATA_SECRET

enable_keystone_authtoken = True

[keysone_authtoken]

auth_uri = http://controller:5000

auth_url = http://controller:35357

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = neutron

password = NEUTRON_PASSWORD

[SDNCONTROLLER]

url = https://127.0.0.1:30000

username = admin

password = Pwd@12345

enable_https = False

timeout = 1800

retry = 10

neutron_plugin_ca_file =

neutron_plugin_cert_file =

neutron_plugin_key_file =

c.     修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车键,保存配置文件并退出vi编辑器。

表5-7 h3c_metadata_agent.ini参数说明

参数

说明

[DEFAULT]

nova_metadata_host

Nova metadata服务的IP地址或DNS名称。以controller为例

nova_metadata_port

Nova metadata服务的TCP端口。以8775为例

metadata_proxy_shared_secret

Metadata服务加密参数。将举例中METADATA_SECRET替换为Nova metadata服务中metadata_proxy_shared_secret的取值

enable_keystone_authtoken

是否启用neutron api功能

·     取值为True时需配置[keystone_authtoken]认证项

·     取值为False时需配置[SDNCONTROLLER]认证项

[keysone_authtoken]

auth_uri

keystone身份认证服务的URI。以http://controller:5000为例

auth_url

keystone身份认证服务的URL。以http://controller:35357为例

auth_type

keystone身份认证类型。以password为例,建议保持默认

project_domain_name

keystone中neutron组件项目domain名称。以default为例

user_domain_name

keystone中neutron组件用户domain名称。以default为例

project_name

keystone中neutron组件项目名称。以service为例,建议保持默认

username

keystone中neutron组件的用户名,以neutron为例

password

将NEUTRON_PASSWORD替换为keystone中neutron组件的密码

[SDNCONTROLLER]

url

登录统一数字底盘的URL地址。以https://127.0.0.1:30000为例

username

登录统一数字底盘的用户名(以admin为例)

password

登录统一数字底盘的密码(以Pwd@12345为例)。如密码中包含字符“$”,需要在该字符前输入转义符“\”

timeout

Neutron-server等待控制组件响应的时间,单位为秒(以1800秒为例)。建议本参数的值设置为大于等于1800秒

retry

发送连接请求消息的尝试次数(以10为例)

enable_https

支持HTTPS双向认证功能,缺省值为False

neutron_plugin_ca_file

控制组件的CA证书存放位置,建议存放在/usr/share/neutron目录下(以/etc/neutron/ca.crt为例)

neutron_plugin_cert_file

控制组件的Cert证书存放位置,建议存放在/usr/share/neutron目录下(以/etc/neutron/sna.pem为例)

neutron_plugin_key_file

控制组件的Key证书存放位置,建议存放在/usr/share/neutron目录下(以/etc/neutron/sna.key为例)

 

(4)     启动Metadata组件。

[root@localhost ~]# systemctl enable h3c-metadata-agent.service

[root@localhost ~]# systemctl start h3c-metadata-agent.service

卸载DHCP逃生相关组件

您可以通过如下方法卸载逃生服务相关组件。卸载时请先卸载DHCP组件和Metadata组件,然后再卸载控制组件OpenStack软件包。

(1)     ‍卸载DHCP组件。

[root@localhost ~]# h3c-sdnplugin dhcp uninstall

Remove services

Removed symlink /etc/system/system/multi-user.target.wants/h3c-dhcp-agent.service.

Backup config files

Uninstallation complete

(2)     卸载Metadata组件。

[root@localhost ~]# h3c-sdnplugin metadata uninstall

Remove services

Removed symlink /etc/system/system/multi-user.target.wants/h3c-metadata-agent.service.

Backup config files

Uninstallation complete

(3)     卸载控制组件OpenStack软件包。

[root@localhost ~]# pip uninstall SeerEngine-DC-PLUGIN

Uninstalling SeerEngine-DC-PLUGIN-DHCP_E3608-2017.10:

  /usr/bin/h3c-sdnplugin

  /usr/lib/python2.7/site-packages/SeerEngine_DC_PLUGIN-DHCP_E3608-2017.10 -py2.7.egg

Proceed (y/n)? y

  Successfully uninstalled SeerEngine-DC-PLUGIN-DHCP_E3608-2017.10

升级DHCP逃生相关组件

升级组件时请先卸载旧版本,然后重新安装新版本。升级过程中可能造成业务中断,请谨慎操作。

3. OpenEuler 21.10 ARM操作系统

安装基础组件

(1)     在DHCP逃生节点安装websocket-client工具包。

[root@localhost ~]# yum install -y python-websocket-client

说明

对于Python 3.8以下环境,python-websocket-client需要确保为0.56版本。Python 3.8及以上的云环境中,推荐使用0.58版本的python-websocket-client。

 

(2)     在DHCP逃生节点上安装S1020V,并完成桥配置、控制组件配置。具体步骤请参见H3C S1020V虚拟交换机的安装指导。

获取DHCP组件和Metadata组件安装软件包

DHCP逃生相关组件软件包打包在控制组件OpenStack插件软件包中,获取所需版本的控制组件OpenStack插件软件包,并将软件包拷贝至服务器或虚拟机上的待安装目录下,或通过FTP、TFTP、SCP等文件传输协议将软件包上传到指定目录。

提示

使用FTP、TFTP方式上传时,请选择binary模式(二进制模式)传输,以免损坏软件包。

 

在DHCP逃生节点安装DHCP组件

(1)     ‍进入控制组件OpenStack软件包(.egg文件)的存放路径(以路径/root为例),安装控制组件OpenStack DHCP软件包。软件包的名称格式为SeerEngine_DC_PLUGIN-DHCP_version1_ARM-py2.7.egg,其中version1为软件版本号。

[root@localhost ~]# easy_install SeerEngine_DC_PLUGIN-DHCP_E6602_ARM-py2.7.egg

¡     验证DHCP软件包是否安装成功。

[root@localhost ~]# pip freeze | grep PLUGIN

SeerEngine-DC-PLUGIN===DHCP-E6602-ARM

(2)     安装DHCP组件。

先安装依赖的rpms文件,其文件夹路径可通过如下方式获取:

[root@controller ~]# python

>>> import networking_h3c

>>> networking_h3c.__path__

['/usr/lib/python2.7/site-packages/SeerEngine_DC_PLUGIN-DHCP_E6602_ARM-py2.7.egg/networking_h3c']

>>> exit()

[root@controller ~]# cd /usr/lib/python2.7/site-packages/SeerEngine_DC_PLUGIN-DHCP_E6602_ARM-py2.7.egg/networking_h3c/rpms

[root@controller ~]rpm -ivh * --nodeps --force

warning: c-ares-1.16.1-3.oe1.aarch64.rpm: Header V3 RSA/SHA1 Signature, key ID b25e7f66: NOKEY

Verifying...                          ################################# [100%]

Preparing...                          ################################# [100%]

Updating / installing...

   1:python2-six-1.15.0-2.oe1         ################################# [  1%]

   2:……

再安装DHCP组件。

[root@controller ~]h3c-sdnplugin dhcp install

Install config files

Install services

Installation complete.

Please do not remove the *.h3c_bak files.

(3)     修改DHCP组件配置文件。

a.     在DHCP逃生节点上通过vi编辑器打开h3c_dhcp_agent.ini配置文件。

[root@localhost ~]# vi /etc/neutron/h3c_dhcp_agent.ini

b.     按[i]键进入编辑模式,按照如下所示修改文件配置。

[DEFAULT]

interface_driver = openvswitch

dhcp_driver = networking_h3c.agent.dhcp.driver.dhcp.Dnsmasq

enable_isolated_metadata = true

force_metadata = true

ovs_integration_bridge = br0

[h3c]

transport_url = ws://127.0.0.1:30000

[ovs]

ovsdb_interface = vsctl

[SDNCONTROLLER]

url = http://127.0.0.1:30000

username = admin

password = Pwd@12345

enable_encrypted_authentication = False

timeout = 1800

retry = 10

enable_https = False

neutron_plugin_ca_file =

neutron_plugin_cert_file =

neutron_plugin_key_file =

c.     修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车键,保存配置文件并退出vi编辑器。

表5-8 h3c_dhcp_agent.ini参数说明

参数

说明

[DEFAULT]

interface_driver

管理虚拟端口的驱动,建议保持默认

dhcp_driver

管理DHCP服务的驱动,建议保持默认

enable_isolated_metadata

控制Nova计算服务是否为每个实例启用独立的元数据服务代理,建议保持默认

force_metadata

是否强制实例使用元数据服务获取元数据信息

ovs_integration_bridge

DHCP port上线的虚拟交换机桥

[h3c]

transport_url

控制组件的RPC接口URL,目前仅支持websocket类型接口,以ws://127.0.0.1:30000为例。当统一数字底盘配置为HTTPS协议时,该配置项须为wss协议

[ovs]

ovsdb_interface

OVS数据库交互的命令行,无需修改

[SDNCONTROLLER]

url

登录统一数字底盘的URL地址。以http://127.0.0.1:30000为例

username

登录统一数字底盘的用户名(以admin为例)

password

登录统一数字底盘的密码(以Pwd@12345为例)。如密码中包含字符“$”,需要在该字符前输入转义符“\”

timeout

Neutron-server等待控制组件响应的时间,单位为秒(以1800秒为例)。建议本参数的值设置为大于等于1800秒

retry

发送连接请求消息的尝试次数(以10为例)

enable_encrypted_authentication

是否为统一数字底盘的用户名/密码进行base64解密。当取值为False时,统一数字底盘的用户名和密码不会进行解密;当取值为True时,使用base64解密算法对统一数字底盘的用户名和密码进行解密,此时统一数字底盘的用户名和密码需要输入base64加密后的取值。例如加密前用户名为admin,密码为Pwd@12345,加密命令为:echo -n 'password' |base64,加密后的用户名为YWRtaW4=,密码为UHdkQDEyMzQ1

enable_https

支持HTTPS双向认证功能,缺省值为False

neutron_plugin_ca_file

控制组件的CA证书存放位置,建议存放在/usr/share/neutron目录下(以/etc/neutron/ca.crt为例)

neutron_plugin_cert_file

控制组件的Cert证书存放位置,建议存放在/usr/share/neutron目录下(以/etc/neutron/sna.pem为例)

neutron_plugin_key_file

控制组件的Key证书存放位置,建议存放在/usr/share/neutron目录下(以/etc/neutron/sna.key为例)

 

(4)     启动DHCP组件。

[root@localhost ~]# systemctl enable h3c-dhcp-agent.service

[root@localhost ~]# systemctl start h3c-dhcp-agent.service

启动后可以查询DHCP组件的状态。

[root@localhost ~]# systemctl status h3c-dhcp-agent.service

在DHCP逃生节点安装Metadata组件

(1)     ‍进入控制组件OpenStack软件包(.egg文件)的存放路径(以路径/root为例),安装控制组件OpenStack Metadata软件包。软件包的名称格式为

¡     SeerEngine_DC_PLUGIN-DHCP_version1_ARM-py2.7.egg,其中version1为软件版本号。

[root@localhost ~]# easy_install SeerEngine_DC_PLUGIN-DHCP_E6602_ARM-py2.7.egg

验证Metadata软件包是否安装成功。

[root@localhost ~]# pip freeze | grep PLUGIN

SeerEngine-DC-PLUGIN===DHCP-E6602-ARM

(2)     安装逃生服务的Metadata组件。

[root@localhost ~]# h3c-sdnplugin metadata install

Install config files

Install services

Installation complete

Please do not remove the *.h3c_bak files.

(3)     修改Metadata组件配置文件。

a.     在DHCP逃生节点上通过vi编辑器打开h3c_metadata_agent.ini配置文件。

[root@localhost ~]# vi /etc/neutron/h3c_metadata_agent.ini

b.     按[i]键进入编辑模式,按照如下所示修改文件配置。

[DEFAULT]

nova_metadata_host = controller

nova_metadata_port = 8775

metadata_proxy_shared_secret = METADATA_SECRET

enable_keystone_authtoken = True

[keystone_authtoken]

auth_uri = http://controller:5000

auth_url = http://controller:35357

auth_type = password

project_domain_name = default

user_domain_name = default

project_name = service

username = neutron

password = NEUTRON_PASSWORD

[SDNCONTROLLER]

url = http://127.0.0.1:30000

username = admin

password = Pwd@12345

enable_encrypted_authentication = False

timeout = 1800

retry = 10

enable_https = False

neutron_plugin_ca_file =

neutron_plugin_cert_file =

neutron_plugin_key_file =

c.     修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车键,保存配置文件并退出vi编辑器。

说明

[DEFAULT]配置组可根据实际情况进行配置,本文所列出的值仅为示例。

 

表5-9 h3c_metadata_agent.ini参数说明

参数

说明

[DEFAULT]

nova_metadata_host

Nova metadata服务的IP地址或DNS名称

nova_metadata_port

Nova metadata服务的TCP端口

metadata_proxy_shared_secret

Metadata服务加密参数。将举例中METADATA_SECRET替换为Nova metadata服务中metadata_proxy_shared_secret的取值

enable_keystone_authtoken

是否启用neutron api功能

·     取值为True时需配置[keystone_authtoken]认证项

·     取值为False时需配置[SDNCONTROLLER]认证项

[keystone_authtoken]

auth_uri

keystone身份认证服务的URI

auth_url

keystone身份认证服务的URL

auth_type

keystone身份认证类型。以password为例,建议保持默认

project_domain_name

keystone中neutron组件项目domain名称

user_domain_name

keystone中neutron组件用户domain名称

project_name

keystone中neutron组件项目名称。以service为例,建议保持默认

username (keystone)

keystone中neutron组件的用户名

password (keystone)

keystone中neutron组件的密码

[SDNCONTROLLER]

url

登录统一数字底盘的URL地址

username

登录统一数字底盘的用户名

password

登录统一数字底盘的密码(以Pwd@12345为例)。如密码中包含字符“$”,需要在该字符前输入转义符“\”

timeout

Neutron-server等待控制组件响应的时间,单位为秒(以1800秒为例)。建议本参数的值设置为大于等于1800秒

retry

发送连接请求消息的尝试次数

enable_encrypted_authentication

是否为统一数字底盘的用户名/密码进行base64解密。当取值为False时,统一数字底盘的用户名和密码不会进行解密;当取值为True时,使用base64解密算法对统一数字底盘的用户名和密码进行解密,此时统一数字底盘的用户名和密码需要输入base64加密后的取值。例如加密前用户名为admin,密码为Pwd@12345,加密命令为:echo -n 'password' |base64,加密后的用户名为YWRtaW4=,密码为UHdkQDEyMzQ1

enable_https

支持HTTPS双向认证功能,缺省值为False

neutron_plugin_ca_file

控制组件的CA证书存放位置,建议存放在/usr/share/neutron目录下(以/etc/neutron/ca.crt为例)

neutron_plugin_cert_file

控制组件的Cert证书存放位置,建议存放在/usr/share/neutron目录下(以/etc/neutron/sna.pem为例)

neutron_plugin_key_file

控制组件的Key证书存放位置,建议存放在/usr/share/neutron目录下(以/etc/neutron/sna.key为例)

 

(4)     启动Metadata组件。

[root@localhost ~]# systemctl enable h3c-metadata-agent.service

[root@localhost ~]# systemctl start h3c-metadata-agent.service

卸载DHCP逃生相关组件

您可以通过如下方法卸载逃生服务相关组件。卸载时请先卸载DHCP组件和Metadata组件,然后再卸载控制组件OpenStack软件包。

(1)     ‍卸载DHCP组件。

[root@localhost ~]# h3c-sdnplugin dhcp uninstall

Remove services

Removed symlink /etc/system/system/multi-user.target.wants/h3c-dhcp-agent.service.

Backup config files

Uninstallation complete

(2)     卸载Metadata组件。

[root@localhost ~]# h3c-sdnplugin metadata uninstall

Remove services

Removed symlink /etc/system/system/multi-user.target.wants/h3c-metadata-agent.service.

Backup config files

Uninstallation complete

(3)     卸载控制组件OpenStack软件包。

[root@localhost ~]# pip uninstall SeerEngine-DC-PLUGIN

Found existing installation: SeerEngine-DC-PLUGIN DHCP-E6601-ARM

Uninstalling SeerEngine-DC-PLUGIN-DHCP-E6601-ARM:

  Would remove:

    /usr/bin/h3c-dhcp-agent

    /usr/bin/h3c-metadata-agent

    /usr/bin/h3c-sdnplugin

    /usr/lib/python2.7/site-packages/SeerEngine_DC_PLUGIN-DHCP_E6601_ARM-py2.7.egg

Proceed (y/n)? y

  Successfully uninstalled SeerEngine-DC-PLUGIN-DHCP-E6601-ARM

升级DHCP逃生相关组件

升级组件时请先卸载旧版本,然后重新安装新版本。升级过程中可能造成业务中断,请谨慎操作。

5.3.4  验证是否对接成功

(1)     在OpenStack侧创建VXLAN或VLAN类型网络和虚机。创建VLAN类型网络时,物理网络名称需与控制节点ml2_conf.ini文件中network_vlan_ranges配置的物理网络名称保持一致。

(2)     登录控制组件,查看[自动化 > 数据中心网络 > 所有租户网络 > 虚拟端口]是否存在对应虚机端口,若端口信息正确且状态为UP,则对接成功。

5.4  SR-IOV网络overlay VLAN场景

5.4.1  控制节点的插件安装与配置

请参见“5.2.1  控制节点的插件安装与配置”章节进行安装。

提示

由于OpenStack社区限制,SR-IOV不支持层次化场景,目前只支持VLAN网络。

 

5.4.2  计算节点的插件安装与配置

请参见“5.2.2  计算节点的插件安装与配置”章节进行安装。

5.4.3  开启网卡SR-IOV功能

请参考OpenStack官网SR-IOVhttps://docs.openstack.org/neutron/pike/admin/config-sriov.html配置手册进行配置。

5.4.4  修改配置文件

(1)     使用root用户登录控制节点,修改配置文件”/etc/neutron/plugins/ml2/ml2_conf.ini”。

(2)     编辑[ml2]标签mechanism_drivers。

[ml2]

type_drivers = vxlan,vlan

tenant_network_types = vxlan,vlan

mechanism_drivers = sriovnicswitch,ml2_h3c,openvswitch

(3)     重启neutron-server服务。

5.4.5  验证是否对接成功

(1)     在OpenStack侧创建VLAN类型网络和直连类型的端口。

(2)     创建带有该直连类型端口的虚机。

(3)     登录控制组件,查看[自动化 > 数据中心网络 > 所有租户网络 > 虚拟端口]是否存在对应虚机端口,若端口信息正确且状态为UP,则对接成功。

5.5  OpenStack插件对接F5或其他第三方LoadBalancer场景

提示

·     OpenStack插件对接第三方LoadBalancer,详情配置请参考第三方对接指导,此步骤仅提供样例参考。

·     Kylin V10不支持对接F5或其他第三方LoadBalancer场景。

 

5.5.1  控制节点的插件安装与配置

请参见“5.2.1  控制节点的插件安装与配置”章节进行安装。

5.5.2  计算节点的插件安装与配置

1. (可选)安装Nova补丁

请参见“5.2.2  计算节点的插件安装与配置”章节进行安装。

2. (可选)安装openvswitch补丁

若涉及层次化或者网络overlay环境,请参见“5.2.2  计算节点的插件安装与配置”中的安装openvswitch补丁章节进行安装。

5.5.3  配置F5环境

使用root用户登录控制节点,并将F5插件放置控制节点路径(以/var/log/neutron为例)下。安装包由F5提供。

提示

请优先联系对接人员,获取以下F5插件相关软件包。

 

1. 安装基础环境

安装插件及补丁前,需先安装git工具包,networking-f5包必须通过git方式获取,缺少git文件会导致安装失败。

下载并安装git工具包。

[root@localhost ~]# yum install –y git

2. 安装F5插件

进入存放F5插件路径下,执行安装:

(1)     安装F5基础包

[root@neutron ~]# rpm -ivh f5-icontrol-rest-1.3.9-1.el7.noarch.rpm

[root@neutron ~]# rpm -ivh f5-sdk-3.0.11-1.el7.noarch.rpm

(2)     安装F5 LBv2 plugin driver包

[root@neutron ~]# tar xvf f5.tgz -C /usr/lib/python2.7/site-packages/neutron_lbaas/drivers/

(3)     安装F5 LBv2 plugin driver核心实现包

[root@neutron ~]# rpm -ivh f5-openstack-lbaasv2-driver-12.0.0-1.el7.noarch.rpm

(4)     安装F5 agent

[root@neutron ~]# rpm -ivh f5-openstack-agent-9.7.0-35.el7.noarch.rpm

(5)     安装F5 ML2 Plugin driver——f5networks

[root@neutron ~]# git clone https://github.com/F5Networks/networking-f5.git

[root@neutron ~]# cd networking-f5/

[root@networking-f5 ~]# python setup.py install

3. 修改配置文件

(1)     编辑/etc/neutron/neutron.conf文件:

a.     修改service_plugins,若存在LBaaSV1配置,则删除LBaaSV1配置,增加LBaaSV2配置,其他配置保持不变。

[DEFAULT]

core_plugin = ml2

service_plugins = …,neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2

b.     配置为F5 service_providers。

[service_providers]

service_provider=LOADBALANCERV2:F5Networks:neutron_lbaas.drivers.f5.driver_v2.F5LBaaSV2Driver:default

c.     并添加如下配置:

[DEFAULT]

unlegacy_setting_placeholder_driver_side = special_driver_side

debug = true  

port_normal_or_baremetal = baremetal

to_delete_last_port = False

(2)     编辑/etc/neutron/plugins/ml2/ml2_conf.ini文件。

a.     修改配置如下:

[ml2]

type_drivers = vxlan,vlan

tenant_network_types = vxlan,vlan

mechanism_drivers = ml2_h3c,...,f5networks  //f5networks需放置在ml2_h3c后面

[ml2_type_vlan]

//自定义vlan范围,用逗号“,”隔开,增加F5网络出口,划分单独的vlan

network_vlan_ranges = physicnet1:1000:2999,f5network:3000:3200

[ml2_type_vxlan]

vni_ranges = 1:500  //自定义vxlan范围

(3)     编辑/etc/neutron/services/f5/f5-openstack-agent.ini文件。

a.     修改配置如下:

[DEFAULT]

debug = True

// F5单机模式配置为standalone,F5主备双机模式配置为pair。

f5_ha_type = standalone

// “f5network”为F5的网络出口,“5.0“为F5上创建的Trunk名称。

f5_external_physical_mappings = f5network:5.0:True,default:5.0:True

icontrol_hostname = 31.1.1.135   //F5的管理口地址

icontrol_username = admin   //F5 WEB账号

icontrol_password = admin    //F5 WEB密码

f5_network_segment_physical_network = f5network   //F5的网络出口

f5_global_routed_mode = False

agent_id = f5_cluster1    //F5 agent host标识

b.     注释如下配置。

#f5_vtep_folder = None

#f5_vtep_selfip_name = None

4. 重启服务

重启服务。

[root@localhost ~]# systemctl enable f5-openstack-agent

[root@localhost ~]# systemctl restart f5-openstack-agent

[root@localhost ~]# systemctl restart neutron-server

5.5.4  验证是否对接成功

(1)     在OpenStack侧创建LoadBalancer v2资源。

(2)     登录控制组件,查看[自动化 > 数据中心网络 >租户的网络 > 负载均衡]是否存在对应LoadBalancer,且控制组件无报错且参数正确,则对接成功。

5.6  OpenStack插件对接第三方防火墙场景

提示

·     OpenStack插件对接第三方防火墙,详情配置请参考第三方对接指导,此步骤仅提供样例参考。本章节以DP第三方防火墙为例。

·     控制组件Neutron插件支持callback方式响应router事件,resource为h3c_router和h3c_router_interface。

 

5.6.1  控制节点的插件安装与配置

请参见“5.2.1  控制节点的插件安装与配置”章节进行安装。

5.6.2  计算节点的插件安装与配置

1. (可选)安装Nova补丁

请参见“5.2.2  计算节点的插件安装与配置”章节进行安装。

2. (可选)安装openvswitch补丁

若涉及层次化或者网络Overlay环境,请参见“5.2.2  计算节点的插件安装与配置”章节安装openvswitch补丁。

5.6.3  配置环境

1. 修改配置项

(1)     按照第三方防火墙对接指导安装配置基础环境。

(2)     使用root用户登录控制节点,修改ml2_conf.ini文件,加载DP RPC topic。

[SDNCONTROLLER]

vendor_rpc_topic = DP_PLUGIN

(3)     修改Neutron Firewall配置文件加载DP Driver。

vim /etc/neutron/fwaas_driver.ini

[fwaas]

driver= neutron.services.firewall.drivers.linux.dp_fwaas.FwaasDriver

enabled = True

(4)     重启服务。

[root@localhost ~]# systemctl restart neutron-server

2. 控制组件配置

控制组件上使用REST API开启第三方防火墙互联地址预下发开关功能。接口URI如下:

nem/v1.0/reserve_option

{

  "reserve_option": {

    "thirdparty_security_service_option": true

  }

}

5.6.4  验证是否对接成功

(1)     在OpenStack侧创建Firewall资并绑定Router。

(2)     登录控制组件,查看[自动化 > 数据中心网络 >租户的网络 > 防火墙]是否存在对应Firewall,如状态正常且参数无误,则对接成功。

5.7  OpenStack插件对接Ironic场景

提示

OpenStack插件对接Ironic,本步骤仅提供基础的搭建流程和配置,详细信息请参考对应场景典型配置指导。

 

5.7.1  控制节点的插件安装与配置

请参见“5.2.1  控制节点的插件安装与配置”章节进行安装。

5.7.2  部署Ironic场景

请参见Ironic相关部署手册。

5.8  Metadata方案

Metadata方案分为传统VLAN及VXLAN网络隧道方案和传统VLAN及VXLAN网络层次化端口绑定方案。

5.8.1  控制节点的插件安装与配置

请参见“5.2.1  控制节点的插件安装与配置”章节进行安装。

5.8.2  计算节点的插件安装与配置

1. (可选)安装Nova补丁

请参见“5.2.2  计算节点的插件安装与配置”章节进行安装。

2. (可选)安装openvswitch补丁

若涉及层次化或者网络Overlay环境,请参见“5.2.2  计算节点的插件安装与配置”章节进行安装。

5.8.3  传统VLAN及VXLAN网络隧道Metadata方案环境配置

注意

·     M-LAG组网不支持此方案配置。

·     以下操作需要依次在所有dhcp agent所在节点进行配置并重启进程。dhcp agent所在节点需要三个物理接口:管理业务接口、VLAN数据业务接口和VXLAN数据业务接口。

 

(1)     为VXLAN上行口配置IP地址。

ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 100.101.0.10  netmask 255.255.255.0  broadcast 100.101.0.255

        inet6 fe80::250:56ff:fe89:6b8a  prefixlen 64  scopeid 0x20<link>

        ether 00:50:56:89:6b:8a  txqueuelen 1000  (Ethernet)

        RX packets 5612  bytes 452681 (442.0 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 142  bytes 14443 (14.1 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

(2)     使能所有VLAN和VXLAN上行口LLDP发送,并指定上行口IP地址为mngAddr。

# ens192为vxlan上行口,ens193为vlan上行口。两类上行口的配置一致

[root@localhost ~]# lldptool set-lldp -i ens192 adminStatus=rxtx;

[root@localhost ~]# lldptool -T -i ens192 -V sysName enableTx=yes;

[root@localhost ~]# lldptool -T -i ens192 -V portDesc enableTx=yes;

[root@localhost ~]# lldptool -T -i ens192 -V sysDesc enableTx=yes;

[root@localhost ~]# lldptool -T -i ens192 -V sysCap enableTx=yes;

[root@localhost ~]# lldptool -T -i ens192 -V mngAddr enableTx=yes;

[root@localhost ~]# lldptool -T -i ens192 -V mngAddr ipv4=100.101.0.10   //配置为上行口IP地址

[root@localhost ~]# lldptool -t -i ens193

[root@localhost ~]# lldptool set-lldp -i ens193 adminStatus=rxtx;

[root@localhost ~]# lldptool -T -i ens193 -V sysName enableTx=yes;

[root@localhost ~]# lldptool -T -i ens193 -V portDesc enableTx=yes;

[root@localhost ~]# lldptool -T -i ens193 -V sysDesc enableTx=yes;

[root@localhost ~]# lldptool -T -i ens193 -V sysCap enableTx=yes;

[root@localhost ~]# lldptool -T -i ens193 -V mngAddr enableTx=yes;

[root@localhost ~]# lldptool -T -i ens193 -V mngAddr ipv4=100.101.0.10   //虽然为vlan上行口,但需要配置为vxlan上行口IP地址

[root@localhost ~]# lldptool -t -i ens193

(3)     dhcp agent所在节点neutron openvswitch agent进程增加配置。

[root@localhost ~]# vi /etc/neutron/plugins/ml2/openvswitch_agent.ini

[agent]

tunnel_types = vxlan

[ovs]

local_ip = 100.101.0.10  //配置为上行口IP地址

(4)     配置完成后重启neutron-openvswitch-agent进程。

[root@localhost ~]# systemctl restart neutron-openvswitch-agent

5.8.4  传统VLAN及VXLAN网络层次化端口绑定Metadata方案环境配置

1. 控制节点

(1)     修改插件配置ml2_conf.ini文件

[root@localhost ~]# vi /etc/neutron/plugins/ml2/ml2_conf.ini

[SDNCONTROLLER]

enable_dhcp_hierarchical_port_binding = True

(2)     重启服务

[root@localhost ~]# systemctl restart neutron-server.service

2. 网络节点

(1)     编辑”/etc/neutron/plugins/ml2/openvswitch_agent.ini”文件中[ovs]标签bridge_mappings,其中冒号前的配置表示物理网络名称,须与绑定业务网卡的物理网络名称保持一致,冒号后的配置表示待手动创建OVS网桥名称,可自定义。

[ovs]

bridge_mappings = physicnet1:br-ens192

(2)     创建网桥,名称以br-ens33为例。

[root@localhost ~]# ovs-vsctl add-br br-ens192

(3)     网桥绑定物理端口。

[root@localhost ~]# ovs-vsctl add-port br-ens192 ens192

(4)     检查OVS配置。

[root@localhost ~]# ovs-vsctl show

(5)     删除默认网桥,名称以br-tun。

[root@localhost ~]# ovs-vsctl del-br br-tun

(6)     使能所有VLAN上行口LLDP发送,并指定上行口IP地址为mngAddr。

# ens193为vlan上行口,不需要指定IP

[root@localhost ~]# lldptool set-lldp -i ens193 adminStatus=rxtx;

[root@localhost ~]# lldptool -T -i ens193 -V sysName enableTx=yes;

[root@localhost ~]# lldptool -T -i ens193 -V portDesc enableTx=yes;

[root@localhost ~]# lldptool -T -i ens193 -V sysDesc enableTx=yes;

[root@localhost ~]# lldptool -T -i ens193 -V sysCap enableTx=yes;

[root@localhost ~]# lldptool -T -i ens193 -V mngAddr enableTx=yes;

[root@localhost ~]# lldptool -T -i ens193

(7)     修改配置文件“/etc/neutron/plugins/ml2/openvswitch_agent.ini”,注释掉所有与隧道相关的参数。

[agent]

# tunnel_types = vxlan

# vxlan_udp_port = 4789

# l2_population = true

[ovs]

# tunnel_bridge = br-tun

# local_ip = 192.168.1.100

(8)     修改配置文件“/etc/neutron/dhcp_agent.ini”。

[DEFAULT]

interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver

dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq

enable_isolated_metadata = true

force_metadata = true

(9)     重启服务。

[root@localhost ~]# systemctl restart neutron-dhcp-agent.service

[root@localhost ~]# systemctl restart neutron-openvswitch-agent.service


6 安装安全插件

目前支持在多个版本的OpenStack上安装控制组件安全插件。不同版本的OpenStack上使用相同的控制组件安全插件。

控制组件安全插件安装在OpenStack控制节点上,安装安全插件前需要在相应的OpenStack节点上安装基础环境。

Kylin V10操作系统不支持安全插件的安装。

6.1  在控制节点上安装安全插件

1. 获取安全插件安装软件包

获取所需版本的安全插件软件包,并将软件包拷贝至服务器或虚拟机上的待安装目录下,或通过FTP、TFTP、SCP等文件传输协议将软件包上传到指定目录。

提示

·     使用FTP、TFTP方式上传时,请选择binary模式(二进制模式)传输,以免损坏软件包。

·     安装过程中,修改配置文件时如果参数后边括号有“以XXX为例”的说明,表示该参数取值可以根据用户需求改变,否则不能改变。

 

2. 在OpenStack控制节点上安装安全插件

(1)     进入安全插件软件包(.egg/.rpm文件)的存放路径(以路径/root为例),安装软件包。请根据实际环境中的Python版本和操作系统选择一个软件包进行安装。

¡     CentOS 8和CentOS Stream 8操作系统软件包的名称格式为SeerEngine_DC_SEC_PLUGIN-version-py3.6.egg或SeerEngine_DC_SEC_PLUGIN-version-1-py3.6.noarch.rpm,其中version为软件包版本号。

.egg文件

[root@localhost ~]# easy_install SeerEngine_DC_SEC_PLUGIN-E3603P01-py3.6.egg

.rpm文件

[root@localhost ~]# rpm -ivh SeerEngine_DC_SEC_PLUGIN-E3603P01-1-py3.6.noarch.rpm

¡     其它CentOS操作系统软件包的名称格式为SeerEngine_DC_SEC_PLUGIN-version-py2.7.egg或SeerEngine_DC_SEC_PLUGIN-version-1-py2.7.noarch.rpm,其中version为软件包版本号。

.egg文件

[root@localhost ~]# easy_install SeerEngine_DC_SEC_PLUGIN-E6401-py2.7.egg

.rpm文件

[root@localhost ~]# rpm -ivh SeerEngine_DC_SEC_PLUGIN-E6401-1-py2.7.noarch.rpm

(2)     修改插件文件所属用户组及权限,确保与Neutron组件文件保持一致。

¡     CentOS 8和CentOS Stream 8操作系统

[root@localhost ~]# cd /usr/local/lib/python3.6/site-packages

[root@localhost ~]# chown -R --reference=/usr/lib/python3.6/site-packages/neutron SeerEngine*

[root@localhost ~]# chmod -R --reference=/usr/lib/python3.6/site-packages/neutron SeerEngine*

如需使用Octavia服务,增加如下配置:

[root@localhost ~]# chown -R --reference=/usr/lib/python3.6/site-packages/octavia networking_sec_h3c/octavia

[root@localhost ~]# chmod -R --reference=/usr/lib/python3.6/site-packages/octavia networking_sec_h3c/octavia

[root@localhost ~]# cd /usr/local/bin

[root@localhost ~]# chown -R --reference=/usr/bin/neutron-server h3c*

[root@localhost ~]# chmod -R --reference=/usr/bin/neutron-server h3c*

¡     其它CentOS操作系统

[root@localhost ~]# cd /usr/lib/python2.7/site-packages

[root@localhost ~]# chown -R --reference=neutron SeerEngine*

[root@localhost ~]# chmod -R --reference=neutron SeerEngine*

[root@localhost ~]# cd /usr/bin

[root@localhost ~]# chown -R --reference=neutron-server h3c*

[root@localhost ~]# chmod -R --reference=neutron-server h3c*

(3)     安装安全插件。

¡     若安全插件配置了防火墙plugin的agent模式:

[root@localhost ~]# h3c-secplugin controller install

¡     若安全插件配置了优化开源防火墙plugin的去agent模式(firewall_h3c),无需安装h3c_sec_agent组件,此时使用如下命令安装安全插件:

[root@localhost ~]# h3c-secplugin controller purge_install

注意

执行h3c-secplugin controller installh3c-secplugin controller purge_install时,请确保/root目录下不存在neutron.conf文件,如果存在,请先删除或者移动到其他位置。

 

3. 修改OpenStack控制节点的配置文件

(1)     修改neutron.conf配置文件。

a.     通过vi编辑器打开neutron.conf配置文件。

[root@localhost ~]# vi /etc/neutron/neutron.conf

b.     按[i]键进入编辑模式,修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存neutron.conf配置文件并退出vi编辑器。

当OpenStack为Pike和Queens版本时,支持防火墙服务firewall、fwaas_h3c和firewall_h3c。以使用firewall为例,请按照如下修改neutron.conf配置文件。

[DEFAULT]

service_plugins = firewall,h3c_security_core,lbaasv2,vpnaas

 

[service_providers]

service_provider=FIREWALL:H3C:networking_sec_h3c.fw.h3c_fwplugin_driver.H3CFwaasDriver:default

service_provider=LOADBALANCERV2:H3C:networking_sec_h3c.lb.h3c_lbplugin_driver_v2.H3CLbaasv2PluginDriver:default

service_provider=VPN:H3C:networking_sec_h3c.vpn.h3c_vpnplugin_driver.H3CVpnPluginDriver:default

注意

对于Pike版本OpenStack,负载均衡支持Context类型多资源池时,需要在控制组件上预配置名称为dmz或core的资源池,然后修改service_provider配置项为:

LOADBALANCERV2:DMZ:networking_sec_h3c.lb.h3c_lbplugin_driver_v2.H3CLbaasv2PluginDMZDriver:default或

LOADBALANCERV2:CORE:networking_sec_h3c.lb.h3c_lbplugin_driver_v2.H3CLbaasv2PluginCOREDriver:default。

 

当OpenStack为Rocky版本时,支持防火墙服务firewall、fwaas_h3c、firewall_h3c和firewall_v2。

以使用防火墙服务firewall为例,请按照如下修改neutron.conf配置文件。

[DEFAULT]

service_plugins = firewall,h3c_security_core,lbaasv2,vpnaas

 

[service_providers]

service_provider=FIREWALL:H3C:networking_sec_h3c.fw.h3c_fwplugin_driver.H3CFwaasDriver:default

service_provider=LOADBALANCERV2:H3C:networking_sec_h3c.lb.h3c_lbplugin_driver_v2.H3CLbaasv2PluginDriver:default

service_provider=VPN:H3C:networking_sec_h3c.vpn.h3c_vpnplugin_driver.H3CVpnPluginDriver:default

以使用防火墙服务firewall_v2为例,请按照如下修改neutron.conf配置文件。

[DEFAULT]

service_plugins = h3c_l3_router,firewall_v2,segments,h3c_security_core

[service_providers]

service_provider = FIREWALL_V2:H3C:networking_sec_h3c.fw2.h3c_fwpluginv2_driver.H3CFwaasV2Driver:default

当OpenStack为Kilo2015.1、Liberty和Mitaka版本时,且OpenStack上配置的负载均衡服务版本为V1时,请按照如下修改neutron.conf的配置文件(Newton和Ocata版本上配置VPN服务时,VPN的service_provider需作如下修改)。

[DEFAULT]

service_plugins = firewall,lbaas,vpnaas

 

[service_providers]

service_provider=FIREWALL:H3C:networking_sec_h3c.fw.h3c_fwplugin_driver.H3CFwaasDriver:default

service_provider=LOADBALANCER:H3C:networking_sec_h3c.lb.h3c_lbplugin_driver.H3CLbaasPluginDriver:default

service_provider=VPN:H3C:networking_sec_h3c.vpn.h3c_vpnplugin_ko_driver.H3CVpnPluginDriver:default

当OpenStack为Ussuri版本时,安全插件支持配置防火墙服务和负载均衡服务,防火墙服务仅支持firewall_v2,负载均衡服务仅支持Octavia。请按照如下修改neutron.conf配置文件:

[DEFAULT]

service_plugins=firewall_v2,h3c_security_core

[service_providers]

service_provider=FIREWALL_V2:H3C:networking_sec_h3c.fw2.h3c_fwpluginv2_driver.H3CFwaasV2Driver:default

service_provider=LOADBALANCERV2:Octavia:neutron_lbaas.drivers.octavia.driver.OctaviaDriver:default

请按照如下修改/etc/octavia/octavia.conf配置文件:

[api_settings]

enabled_provider_drivers=h3clb:The H3C lb driver

h3clb=octavia.api.drivers.h3clb_driver.driver:H3cProviderDriver

[controller_worker]

network_driver=allowed_address_pairs_driver

[oslo_concurrency]

lock_path=/var/lib/octavia/tmp

[SEC_SDNCONTROLLER]

url=http://127.0.0.1:30000

username=admin

password=Pwd@12345

domain=sdn

timeout=1800

retry=10

white_list=False

use_neutron_credential=False

sec_output_json_log=True

enable_iam_auth=False

enable_https=False

cloud_region_name=default

其中,[SEC_SDNCONTROLLER]配置块的参数说明请参见表6-1

当OpenStack为Stein和Train版本时,安全插件仅支持配置防火墙服务,防火墙服务仅支持firewall_v2。请按照如下修改neutron.conf配置文件。

[DEFAULT]

service_plugins = firewall_v2

[service_providers]

service_provider=FIREWALL_V2:H3C:networking_sec_h3c.fw2.h3c_fwpluginv2_driver.H3CFwaasV2Driver:default

注意

·     当OpenStack版本为Newton和Ocata时,仅支持配置负载均衡V2服务。

·     当OpenStack版本为Pike、Queens和Rocky时,配置VPN服务需注意service_provider与Kilo2015.1、Liberty、Mitaka、Newton和Ocata版本service_provider的区别。

 

各参数含义如下:

-     service_plugins:扩展服务插件加载入口,即加载扩展服务插件到OpenStack。包括防火墙、负载均衡、VPN等。请根据具体的网络和安全需求进行追加配置。

-     service_provider:服务插件的路径。

注意

目前安全插件支持配置如下防火墙服务:

·     开源防火墙plugin的agent模式:firewall。

·     优化防火墙策略及规则下发时间过长的agent模式:fwaas_h3c。

·     优化开源防火墙plugin的去agent模式:firewall_h3c。(执行安装安全插件命令h3c-secplugin controller install后,会自动运行h3c-sec-agent进程。当安全插件配置为去agent模式时,需要关闭并禁止启动h3c-sec-agent进程,即systemctl stop h3c-sec-agent和systemctl disable h3c-sec-agent。)

·     基于H3C自研的防火墙2.0服务:firewall_v2(仅支持Rocky、Stein、Train和Ussuri版本OpenStack)。

配置防火墙服务时,必须在service_plugin中配置安全核心服务h3c_security_core。

 

(2)     修改local_settings配置文件。

a.     通过vi编辑器打开local_settings配置文件。

[root@localhost ~]# vi /etc/openstack-dashboard/local_settings

b.     按[i]进入编辑模式,按照如下所示,在OPENSTACK_NEUTRON_NETWORK配置项,开启OpenStack WEB的LB/FW/VPN功能配置页面。修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存local_settings配置文件并退出vi编辑器。

OPENSTACK_NEUTRON_NETWORK = {

'enable_lb': True,

'enable_firewall': True,

'enable_quotas': True,

'enable_vpn': True,

# The profile_support option is used to detect if an external router can be

# configured via the dashboard. When using specific plugins the

# profile_support can be turned on if needed.

'profile_support': None,

#'profile_support': 'cisco',

}

(3)     修改ml2_sec_conf_h3c.ini配置文件。

a.     通过vi编辑器打开ml2_sec_conf_h3c.ini配置文件。

[root@localhost ~]# vi /etc/neutron/plugins/ml2/ml2_sec_conf_h3c.ini

b.     按[i]键进入编辑模式,按照如下所示修改文件配置。修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存ml2_sec_conf_h3c.ini配置文件并退出vi编辑器。

[SEC_SDNCONTROLLER]

url = https://127.0.0.1:30000

username = admin

password = Pwd@12345

domain = sdn

timeout = 1800

retry = 10

white_list = False

use_neutron_credential = False

firewall_force_audit = False

sec_output_json_log = False

vendor_rpc_topic = VENDOR_PLUGIN

enable_https = False

neutron_plugin_ca_file =

neutron_plugin_cert_file =

neutron_plugin_key_file =

enable_iam_auth = False

enable_firewall_metadata = False

enable_router_nat_without_firewall = False

enable_firewall_object_group = False

cloud_region_name = default

表6-1 ml2_sec_conf_h3c.ini配置文件参数说明

参数

说明

示例值

url

登录统一数字底盘的URL地址(以https://127.0.0.1为例)。

https://127.0.0.1

username

登录统一数字底盘的用户名(以admin为例)。当use_neutron_credential参数取值为True时,不需要配置本参数。

admin

password

登录统一数字底盘的密码(以Pwd@12345为例)。当use_neutron_credential参数取值为True时,不需要配置本参数。如密码中包含字符“$”,需要在该字符前输入转义符“\”。

Pwd@12345

domain

控制组件所在域的域名(以sdn为例)。本参数已废弃。

-

timeout

Neutron-server等待控制组件响应的时间,单位为秒(以1800秒为例)。建议本参数的值设置为大于等于1800秒。

1800

retry

发送连接请求消息的尝试次数(以10为例)。

10

white_list

是否和控制组件免认证用户功能配合使用(以False为例)。

False

use_neutron_credential

是否使用OpenStack neutron用户名和密码与控制组件通信(以False为例)。

False

firewall_force_audit

是否强制开启控制组件上防火墙策略的审计功能。Kilo 2015.1版本的OpenStack本参数缺省值为True;其他版本的OpenStack本参数缺省值为False。取值包括:

·     True:不论OpenStack上配置的防火墙策略是否开启审计功能,防火墙策略同步到控制组件上时都强制开启该功能。

·     False:OpenStack上配置的防火墙策略同步到控制组件上时,审计状态不变。

False

sec_output_json_log

是否将控制组件Neutron安全插件和控制组件通信的REST API消息以JSON格式输出到OpenStack的操作日志文件(以False为例)。

False

vendor_rpc_topic

厂商的RPC topic。当其他厂商需要从控制组件Neutron插件获取neutron数据时,需要配置此参数。本参数的取值需要由H3C和其他厂商协商,缺省值为VENDOR_PLUGIN,目前取值包括:

·     VENDOR_PLUGIN:表示本参数不生效。

·     DP_PLUGIN:迪普的RPC topic。

VENDOR_PLUGIN

enable_https

是否支持HTTPS双向认证功能。缺省值为False。目前仅Pike版本OpenStack支持配置该参数。

False

neutron_plugin_ca_file

控制组件的CA证书存放位置。建议存放在/usr/share/neutron目录下。目前仅Pike版本OpenStack支持配置该参数。

-

neutron_plugin_cert_file

控制组件的Cert证书存放位置。建议存放在/usr/share/neutron目录下。目前仅Pike版本OpenStack支持配置该参数。

-

neutron_plugin_key_file

控制组件的Key证书存放位置。建议存放在/usr/share/neutron目录下。目前仅Pike版本OpenStack支持配置该参数。

-

enable_iam_auth

是否使能IAM接口认证。当对接统一数字底盘时,插件可配置此项为True,表示使用IAM接口完成认证。缺省值为False。目前仅Mitaka和Newton版本OpenStack支持配置该参数。本参数已废弃。

False

enable_firewall_metadata

开启本功能时,CloudOS云平台可向控制组件下发防火墙相关定制字段,如资源池名称等。本参数仅用于对接CloudOS平台时使用。目前仅Pike版本OpenStack支持配置该参数。

False

enable_router_nat_without_firewall

未配置防火墙时是否使能NAT功能。默认取值为False。当取值为True时,对于未配置防火墙的租户,如果租户下虚拟路由器已绑定外部网络,将自动创建默认的防火墙资源用于实现NAT功能。目前仅Pike版本OpenStack支持配置该参数。

False

enable_firewall_object_group

是否开启插件的防火墙对象组功能。缺省值为False。当取值为True时,云平台可通过插件创建防火墙对象组。目前仅Rocky支持配置该参数。如果需要使用此功能,还需在云平台上进行适配,适配方式请联系技术支持工程师。

False

cloud_region_name

对于单云对接控制组件场景,升级后云平台第一次对接控制组件,并且控制组件侧没有新增租户资源时,可修改cloud_region_name,并且需与控制组件界面中配置名称保持一致,设置为默认云平台。若已在控制组件侧新增租户资源,则cloud_region_name不允许修改。对于多云对接控制组件场景,第一个云平台接入时,接入原则同单云对接控制组件场景。其他云平台接入时,需将不同云平台的cloud_region_name修改为对应云平台的取值,并且与控制组件界面中配置保持一致,使用过程中不允许修改此参数。

Default

 

(4)     当white_list定制为True时,则需要完成如下步骤:

¡     删除ml2_sec_conf_h3c.ini配置文件[SEC_SDNCONTROLLER]中username、password和domain这三个字段。

¡     在控制组件上添加免认证用户,将免认证IP填写为Neutron-server所在主机的IP地址,“角色”选择“系统管理员”。

(5)     当use_neutron_credential定制为True时,需要进行以下配置:

a.     修改neutron.conf配置文件。

通过vi编辑器打开neutron.conf配置文件,按[i]键进入编辑模式,新增如下配置。修改完成后保存neutron.conf配置文件并退出vi编辑器。

[keystone_authtoken]

admin_user = neutron

admin_password = KEYSTONE_PASS

参数含义为:

-     admin_user:在OpenStack上进行Keystone认证使用的管理用户名称(以neutron为例)。

-     admin_password:在OpenStack上进行Keystone认证使用的管理用户密码(即替换KEYSTONE_PASS为Keystone认证使用的Neutron用户密码)。

b.     在控制组件上增加管理员用户,配置用户名为neutron,角色选择为系统管理员,密码请使用OpenStack上neutron用户对应的密码。

(6)     重启neutron-server服务。

[root@localhost ~]# service neutron-server restart

neutron-server stop/waiting

neutron-server start/running, process 4583

(7)     重启h3c-sec-agent服务(若启用h3c-sec-agent模式)。

[root@localhost ~]# service h3c-sec-agent restart

h3c-sec-agent stop/waiting

h3c-sec-agent start/running, process 4585

(8)     重启octavia-api服务(适用于OpenStack Ussuri版本且需要负载均衡服务)

[root@controller bin]# systemctl restart octavia-api

[root@controller bin]#

4. 验证控制组件Neutron安全插件是否安装成功

(1)     验证安全插件软件包是否安装成功。若显示正确的软件版本号,则说明安装成功。

¡     .egg文件

[root@localhost ~]# pip freeze | grep PLUGIN

SeerEngine-DC-SEC-PLUGIN===E3603P01

¡     .rpm文件

[root@localhost ~]# rpm -qa | grep PLUGIN

SeerEngine-DC-SEC-PLUGIN===E3603P01.noarch

SeerEngine-DC-SEC-PLUGIN===E7201

(2)     验证neutron-server服务是否已开启。若显示neutron-server服务为running状态的运行信息,则说明启动成功。

[root@localhost ~]# service neutron-server status

neutron-server start/running, process 1849

(3)     验证h3c-sec-agent服务是否已开启。若显示h3c-sec-agent服务为running状态的运行信息,则说明启动成功。

[root@localhost ~]# sudo service h3c-sec-agent status

(4)     h3c-sec-agent start/running, process 1855

(5)     验证octavia-api服务是否已启动(适用于OpenStack Ussuri版本且需要负载均衡服务)。若显示octavia-api服务状态为running,则说明已成功启动。

[root@controller bin]# systemctl status octavia-api

● octavia-api.service - OpenStack Octavia API service

   Loaded: loaded (/usr/lib/systemd/system/octavia-api.service; disabled; vendor preset: disabled)

   Active: active (running) since Mon 2025-05-12 11:58:08 CST; 1min 18s ago

 Main PID: 2111200 (octavia-api)

    Tasks: 1 (limit: 62320)

   Memory: 114.3M

   CGroup: /system.slice/octavia-api.service

           └─2111200 /usr/bin/python3 /usr/bin/octavia-api --config-file /usr/share/octavia/octavia-dist.conf --config-file /etc/octavia/octavia.conf --config-dir /etc/octavia/conf.d/comm>

5. (可选)升级控制组件Neutron安全插件

升级控制组件Neutron安全插件时请先卸载旧版本安全插件,然后重新安装新版本安全插件。升级过程中可能造成业务中断,请谨慎操作。

注意

当插件进行跨版本升级时,可能由于不同版本插件的配置文件中参数缺省值不同导致升级前后插件的配置不同。此时,建议用户手动修改相关参数取值以保证升级前后插件配置相同。

 

(1)     卸载控制组件Neutron安全插件。

¡     若安全插件配置了防火墙plugin的agent模式:

[root@localhost ~]# h3c-secplugin controller uninstall

Restore config files

Uninstallation complete.

¡     若安全插件配置了优化开源防火墙plugin的去agent模式(firewall_h3c),此时未安装h3c_sec_agent组件,可以使用如下命令:

[root@localhost ~]# h3c-secplugin controller purge_uninstall

(2)     卸载控制组件OpenStack软件包。

¡     .egg文件

[root@localhost ~]# pip uninstall seerengine-dc-sec-plugin

Uninstalling SeerEngine-DC-SEC-PLUGIN-E3603P01:

  /usr/bin/h3c-secplugin

  /usr/lib/python2.7/site-packages/SeerEngine_DC_SEC_PLUGIN-E3603P01-py2.7.egg

Proceed (y/n)? y

  Successfully uninstalled SeerEngine-DC-SEC-PLUGIN-E3603P01

¡     .rpm文件

[root@localhost ~]# rpm -e SeerEngine_DC_SEC_PLUGIN

(3)     重新安装新版本插件,具体方法请参见“6.1  在控制节点上安装安全插件”

(4)     若融合插件从E6503及之前版本升级到E6503之后版本(或者E6601及之后版本),因部分参数从ml2_sec_conf_h3c.ini中迁移至控制组件Web页面,安装当前版本插件和控制组件后,需要在控制组件页面中将对应的参数取值手动配置为升级前的取值。

a.     将控制节点/etc/neutron/plugins/ml2路径下的“ml2_sec_conf_h3c.ini.bak”或“ml2_sec_conf_h3c.ini.h3c_bak”文件保存到本地。

b.     进入控制组件的OpenStack配置页面,根据“ml2_sec_conf_h3c.ini.bak”或“ml2_sec_conf_h3c.ini.h3c_bak”文件中的配置信息修改对应OpenStack的参数,控制组件页面参数与配置项的对应关系如表6-2所示。其中部分配置项参数需要废弃,如表6-3所示。

注意

如果升级前控制组件上已配置过OpenStack云对接。升级后,需要在对应OpenStack“操作”区段,单击按钮,进入修改OpenStack页面。在“安全参数配置”页签确认各项参数,再单击<确定>按钮。

 

表6-2 控制组件页面参数与配置项的对应关系

升级前ml2_sec_conf_h3c.ini文件配置项

升级后控制组件页面参数名称

directly_external:OFF

防火墙业务:全部开启

directly_external:ANY

防火墙业务:全部关闭

directly_external:SUFFIX

directly_external_suffix:name(name为虚拟路由器名称后缀)

防火墙业务:指定后缀的虚拟路由器关闭

tenant_gw_selection_strategy:match_gateway_name

tenant_gateway_name:name(name为出口网关名称)

外网配置模式:单Segment

租户出口网关策略:匹配出口网关名称

enable_multi_gateways:True

外网配置模式:单Segment

租户出口网关策略:匹配虚拟路由器外部网络的物理网络名称

enable_multi_segments:True

外网配置模式:多Segment

租户出口网关策略:匹配外部网络的Segment物理网络名称

auto_create_resource:True

自动创建资源:开启

resource_mode:CORE_GATEWAY

firewall_type:CGSR

防火墙资源类型:服务网关

防火墙资源模式:独享

resource_mode:CORE_GATEWAY

firewall_type:CGSR_SHARE

防火墙资源类型:服务网关

防火墙资源模式:共享

resource_mode:CORE_GATEWAY

firewall_type:NFV_CGSR

防火墙资源类型:服务网关

防火墙资源模式:NFV

resource_mode:SERVICE_LEAF

firewall_type:ACSR

防火墙资源类型:SERVICE LEAF

防火墙资源模式:独享

resource_mode:SERVICE_LEAF

firewall_type:ACSR_SHARE

防火墙资源类型:SERVICE LEAF

防火墙资源模式:共享

lb_type:CGSR

LB资源模式:独享

lb_type:CGSR_SHARE

LB资源模式:共享

lb_type:NFV_CGSR

LB资源模式:NFV

resource_share_count:1

资源节点共享数:1

lb_resource_mode:SP

LB资源池模式:单资源池

lb_resource_mode:MP

LB资源池模式:多资源池

lb_enable_snat:True

LB源地址转换:开启

lb_member_slow_shutdown:True

LB实服务器慢宕:开启

enable_lb_xff:True

LB源IP透传:开启

enable_lb_certchain:True

SSL服务端发送完整证书链:开启

 

表6-3 升级中的废弃参数说明

参数

说明

firewall_type

在控制组件上创建的防火墙模式,废弃取值CGSR_SHARE_BY_COUNT。

CGSR_SHARE_BY_COUNT:以Context承载的网关服务型防火墙。当Context数量达到cgsr_fw_context_limit指定的阈值后,将进入资源共享模式。仅resource_mode取值为CORE_GATEWAY时本取值有效;仅Pike版本OpenStack支持配置本模式

fw_share_by_tenant

当防火墙创建模式为CGSR_SHARE或ACSR_SHARE时,是否开启单个租户独享一个网关服务型防火墙Context,并且租户内服务资源共享该Context(以False为例)

cgsr_fw_context_limit

以Context承载的网关资源型防火墙的Context数量阈值,取值为整数。当创建的Context数量达到此阈值时,则开启资源共享模式,仅当firewall_type取值为CGSR_SHARE_BY_COUNT时本参数有效。仅Pike版本OpenStack支持配置此参数

nfv_ha

开启NFV堆叠模式

 

6.2  扩展功能

6.2.1  防火墙资源信息对比&同步

本功能用于对云平台和控制组件上的防火墙信息进行对比和同步。当前仅Pike版本OpenStack支持配置本功能。

1. 资源信息对比

使用命令h3c-secplugin-fw-extension compare --file [绝对路径]文件名.csv进行对比。

·     如不指定“--file [绝对路径]文件名.csv,则将比较结果保存至默认文件中,默认文件为/var/log/neutron/compare_sec_data-time.csv,其中,time为开始比较的时间。

·     如指定“--file [绝对路径]文件名.csv,则将比较结果保存在指定的文件中,如不指定绝对路径,则文件为“/var/log/neutron/文件名.csv”。

2. 比较命令结果

比较完成后,生成的结果文件中包含以下字段:

·     Resource:资源类型名称

·     Name:资源名称

·     Id:资源ID

·     Tenant_id:该资源所属租户ID

·     Tenant_name:该资源所属租户名称

·     Status:比较结果,取值为:

¡     lost:表示控制组件端缺失,需要增加。

¡     different:表示控制组件端存在但不相同,需要更新。

¡     surplus:表示控制组件端多余,需要删除。

3. 资源信息同步

(1)     使用命令h3c-secplugin-fw-extension  sync --file比较结果文件名.csv进行同步。如果比较文件在/var/log/neutron/下,可以直接输入文件名,否则请输入绝对路径文件名。

(2)     同步完成后,将生成同步结果文件:/var/log/neutron/sync_sec_data-time.csv,其中,time为开始同步时间。

注意

请勿对比较结果文件的内容进行新增或修改操作。

 

6.2.2  负载均衡资源信息对比&同步

本功能用于对云平台和控制组件上的负载均衡信息进行对比和同步。

1. 基于neutron-lbaasv2的资源信息对比

使用命令h3c-secplugin-lb-extension compare --file [绝对路径]文件名.csv进行对比。

·     如不指定“--file [绝对路径]文件名.csv,则将比较结果保存至默认文件中,默认文件为/var/log/neutron/compare_sec_lbv2_data-time.csv,其中,time为开始比较的时间。

·     指定“--file [绝对路径]文件名.csv,则将比较结果保存在指定的文件中,如不指定绝对路径,则文件为“/var/log/neutron/文件名.csv”。

2. 基于Octavia的资源信息对比

使用命令h3c-secplugin-octavia-extension compare --file [绝对路径]文件名.csv进行对比。

·     如不指定“--file [绝对路径]文件名.csv,则将比较结果保存至默认文件中,默认文件为/var/log/octavia/compare_sec_lbv2_data-time.csv,其中,time为开始比较的时间。

·     如指定“--file [绝对路径]文件名.csv,则将比较结果保存在指定的文件中,如不指定绝对路径,则文件为“/var/log/octavia/文件名.csv”。

3. 比较命令结果

比较完成后,生成的结果文件中包含以下字段:

·     Resource:资源类型名称

·     Name:资源名称

·     Id:资源ID

·     Tenant_id:该资源所属租户ID

·     Tenant_name:该资源所属租户名称

·     Status:比较结果,取值为:

¡     lost:表示控制组件端缺失,需要增加。

¡     different:表示控制组件端存在但不相同,需要更新。

¡     surplus:表示控制组件端多余,需要删除。

4. 基于neutron-lbaasv2的资源信息同步

(1)     使用命令h3c-secplugin-lb-extension  sync --file比较结果文件名.csv进行同步。如果比较文件在/var/log/neutron/下,可以直接输入文件名,否则请输入绝对路径文件名。

(2)     同步完成后,将生成同步结果文件:/var/log/neutron/sync_sec_lb_data-time.csv其中,time为开始同步时间。

注意

请勿对比较结果文件的内容进行新增或修改操作。

 

5. 基于Octavia的资源信息同步

(1)     使用命令h3c-secplugin-octavia-extension  sync --file比较结果文件名.csv进行同步。如果比较文件在/var/log/octavia/下,可以直接输入文件名,否则请输入绝对路径文件名。

(2)     同步完成后,将生成同步结果文件:/var/log/octavia/sync_sec_lb_data-time.csv其中,time为开始同步时间。

注意

请勿对比较结果文件的内容进行新增或修改操作。

 

 


7 非融合版本插件升级至融合版本插件

由非融合版本插件升级至融合版本插件时,请按照本章节的步骤进行操作。

7.1  升级控制组件版本

将控制组件版本升级至支持融合版本插件的版本。

7.2  卸载非融合版本插件

(1)     卸载控制节点插件。

¡     E3702前的版本

[root@localhost ~]# h3c-vcfplugin controller uninstall

¡     E3702及之后的版本

[root@localhost ~]# h3c-sdnplugin controller uninstall

(2)     卸载计算节点插件。

¡     E3702前的版本

[root@localhost ~]# h3c-vcfplugin compute uninstall

[root@localhost ~]# h3c-vcfplugin openvswitch uninstall

¡     E3702及之后的版本

[root@localhost ~]# h3c-sdnplugin compute uninstall

[root@localhost ~]# h3c-sdnplugin openvswitch uninstall

(3)     卸载DHCP逃生节点插件

¡     E3702前的版本

[root@localhost ~]# h3c-vcfplugin dhcp uninstall

[root@localhost ~]# h3c-vcfplugin metadata uninstall

¡     E3702及之后的版本

[root@localhost ~]# h3c-sdnplugin dhcp uninstall

[root@localhost ~]# h3c-sdnplugin metadata uninstall

(4)     在所有节点上卸载插件软件包。

¡     CentOS 8和CentOS Stream 8操作系统

[root@localhost ~]# pip3 uninstall SeerEngine-DC-PLUGIN

¡     其他CentOS操作系统

[root@localhost ~]# pip uninstall SeerEngine-DC-PLUGIN

说明

不同版本的插件卸载命令可能有差异,具体请参见对应版本的插件安装指导。

 

7.3  安装融合版本插件

(1)     安装融合版本插件和安全插件,参见章节“5 在OpenStack节点上安装Neutron插件和补丁”和“6 安装安全插件”。

(2)     升级前后可能需要修改的neutron.conf文件配置请参见表7-1

表7-1 升级前后neutron.conf文件配置修改项

配置

升级前

升级后

说明

service_plugins

port_forwarding

h3c_port_forwarding

-

service_plugins

h3c_vpc_connection_pike

h3c_vpc_connection_general

-

api_extensions_path

api_extensions_path的配置内容可通过如下方式获取:

[root@controller ~]# python

>>> from neutron_vpc_h3c.extensions import vpcconnection_general

>>> vpcconnection_general.__path__

['/usr/lib/python2.7/site-packages/SeerEngine_DC_PLUGIN-E3608-py2.7.egg/neutron_vpc_h3c/extensions/vpcconnection_general']

每次升级均需要重新获取

 

(3)     通过vi编辑器打开ml2_conf.ini配置文件。

[root@localhost ~]# vi /etc/neutron/plugins/ml2/ml2_conf.ini

(4)     按[i]键进入编辑模式,按照如下所示修改文件配置。修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存ml2_conf.ini配置文件并退出vi编辑器。

[SDNCONTROLLER]

sdnc_rpc_url = ws://127.0.0.1:30000

sdnc_rpc_ping_interval = 60

websocket_fragment_size = 102400

cloud_region_name = default

各参数修改方式如下:

¡     sdnc_rpc_url:当需要支持Metadata功能或使用DHCP逃生时,本参数需配置为统一数字底盘的IP地址和Websocket端口号。如统一数字底盘的URL为http://127.0.0.1:30000,则sdnc_rpc_url应为ws://127.0.0.1:30000。

¡     cloud_region_name:对于单云对接控制组件场景,升级后云平台第一次对接控制组件,并且控制组件侧没有新增租户资源时,可修改cloud_region_name,并且需与控制组件界面中配置名称保持一致,设置为默认云平台。若已在控制组件侧新增租户资源,则cloud_region_name不允许修改。对于多云对接控制组件场景,第一个云平台接入时,接入原则同单云对接控制组件场景。其他云平台接入时,需将不同云平台的cloud_region_name修改为对应云平台的取值,并且与控制组件界面中配置保持一致,使用过程中不允许修改此参数。不同云平台需配置不同的vxlan vni_ranges。

(5)     对非融合插件的备份文件,比如ml2_conf_h3c.ini.bak或者ml2_conf_h3c.ini.h3c_bak,需要进行删除或者修改文件后缀。否则在下一次升级安全插件时,可能会导致部分安全插件参数被修改或初始化。

7.4  配置控制组件界面参数

非融合版本中ml2_conf_h3c.ini配置文件中的部分参数已迁移至控制组件Web页面,安装融合版本插件后,需要在控制组件页面中将对应的参数取值手动配置为升级前的取值。

(1)     将控制节点/etc/neutron/plugins/ml2路径下的“ml2_conf_h3c.ini.bak或“ml2_conf_h3c.ini.h3c_bak”文件保存到本地。

(2)     进入控制组件的OpenStack配置页面,根据ml2_conf_h3c.ini.bak或“ml2_conf_h3c.ini.h3c_bak”文件中的配置信息修改对应OpenStack的参数,控制组件页面参数与配置项的对应关系如表7-2所示。

表7-2 控制组件页面参数与配置项的对应关系

升级前ml2_conf_h3c.ini文件配置项

升级后控制组件页面参数名称

cloud_region_name

名称

hybrid_vnic

网络类型转换

enable_metadata:True

enable_dhcp_hierarchical_port_binding:True

网络接入策略:VLAN

enable_metadata:True

enable_dhcp_hierarchical_port_binding:False

网络接入策略:VXLAN

enable_metadata:False

enable_dhcp_hierarchical_port_binding:False

网络接入策略:不接入

ip_mac_binding

IP-MAC防欺骗

directly_external:OFF

防火墙业务:全部开启

directly_external:ANY

防火墙业务:全部关闭

directly_external:SUFFIX

directly_external_suffix:name(name为虚拟路由器名称后缀)

防火墙业务:指定后缀的虚拟路由器关闭

tenant_gw_selection_strategy:match_gateway_name

tenant_gateway_name:name(name为出口网关名称)

外网配置模式:单Segment

租户出口网关策略:匹配出口网关名称

enable_multi_gateways:True

外网配置模式:单Segment

租户出口网关策略:匹配虚拟路由器外部网络的物理网络名称

enable_bind_router_gateway_with_specified_name:True

说明

该参数只在非融合插件OpenStack Mitaka版本中使用。enable_bind_router_gateway_with_specified_name参数的优先级高于tenant_gw_selection_strategy。

外网配置模式:单Segment

租户出口网关策略:匹配虚拟路由器外部网络名称

enable_multi_segments:True

外网配置模式:多Segment

租户出口网关策略:匹配外部网络的Segment物理网络名称

deploy_network_resource_gateway

外网预配置出口网关

network_force_flat

外网强制转换为Flat

enable_network_l3vni:False

自动分配外网L3VNI:关闭

dhcp_lease_time

DHCP租约时长

generate_vrf_based_on_router_name:False

虚拟路由器VRF名称生成方式:自动生成

generate_vrf_based_on_router_name:True

虚拟路由器VRF名称生成方式:使用虚拟路由器名称

vds_name

默认VDS:指定默认VDS

auto_create_resource:True

自动创建资源:开启

resource_mode:CORE_GATEWAY

firewall_type:CGSR

防火墙资源类型:服务网关

防火墙资源模式:独享

resource_mode:CORE_GATEWAY

firewall_type:CGSR_SHARE

防火墙资源类型:服务网关

防火墙资源模式:共享

resource_mode:CORE_GATEWAY

firewall_type:NFV_CGSR

防火墙资源类型:服务网关

防火墙资源模式:NFV

resource_mode:SERVICE_LEAF

firewall_type:ACSR

防火墙资源类型:SERVICE LEAF

防火墙资源模式:独享

resource_mode:SERVICE_LEAF

firewall_type:ACSR_SHARE

防火墙资源类型:SERVICE LEAF

防火墙资源模式:共享

lb_type:CGSR

LB资源模式:独享(服务网关)

resource_mode:CORE_GATEWAY

lb_type:CGSR_SHARE

资源类型:服务网关

LB资源模式:共享(服务网关)

resource_mode:CORE_GATEWAY

lb_type:NFV_CGSR

资源类型:服务网关

LB资源模式:NFV(服务网关)

resource_share_count:1

资源节点共享数:1

lb_resource_mode:SP

LB资源池模式:单资源池

lb_resource_mode:MP

LB资源池模式:多资源池

nfv_ha:True

开启NFV堆叠:开启

lb_enable_snat:True

LB源地址转换:开启

lb_member_slow_shutdown:True

LB实服务器慢宕:开启

enable_lb_xff:True

LB源IP透传:开启

enable_lb_certchain:True

SSL服务端发送完整证书链:开启

 

表7-3 升级中的废弃参数说明

参数

说明

firewall_type

在控制组件上创建的防火墙模式,废弃取值CGSR_SHARE_BY_COUNT。

CGSR_SHARE_BY_COUNT:以Context承载的网关服务型防火墙。当Context数量达到cgsr_fw_context_limit指定的阈值后,将进入资源共享模式。仅resource_mode取值为CORE_GATEWAY时本取值有效;仅Pike版本OpenStack支持配置本模式

fw_share_by_tenant

当防火墙创建模式为CGSR_SHARE或ACSR_SHARE时,是否开启单个租户独享一个网关服务型防火墙Context,并且租户内服务资源共享该Context(以False为例)

cgsr_fw_context_limit

以Context承载的网关资源型防火墙的Context数量阈值,取值为整数。当创建的Context数量达到此阈值时,则开启资源共享模式,仅当firewall_type取值为CGSR_SHARE_BY_COUNT时本参数有效。仅Pike版本OpenStack支持配置此参数

nfv_ha

开启NFV堆叠模式

 

升级后,控制组件上还需进行如下配置:

(3)     在控制组件页面配置VNI范围,与升级前ml2_conf.ini文件配置项的vni_ranges保持一致。

(4)     控制组件上必须存在VXLAN池,VXLAN池和与升级前ml2_conf.ini文件配置项的vni_ranges范围不能存在冲突,VXLAN池的范围建议包含升级前ml2_conf_h3c.ini文件配置项的l3_vni_ranges范围。

注意

如果升级前控制组件上已配置过OpenStack云对接。升级后,需要在对应OpenStack“操作”区段,单击按钮,进入修改OpenStack页面。在“安全参数配置”页签确认各项参数,再单击<确定>按钮。

 

7.5  重启neutron-server服务

[root@localhost ~]# service neutron-server restart


8 扩展功能

8.1  资源信息对比&同步

本功能用于对云平台和控制组件上的资源信息进行对比和同步。使用本功能前,需要在[自动化>数据中心网络>云及虚拟化对接>OpenStack]页面配置默认云平台。此功能不支持Kilo和Liberty版本OpenStack。

说明

暂不支持如下场景:

·     H3C CloudOS的网络Overlay层次化环境。

·     第三方云平台(除苏研云、爱立信云和开源OpenStack)。

·     扩展资源(vpc-connection、bgpneighbor、exroute、trunk和taas)。仅支持自研Plugin及网络云爱立信Plugin提供的扩展资源。

 

1. 资源信息对比

使用命令h3c-sdnplugin-extension compare --file [绝对路径]文件名.csv进行对比。

·     如不指定“--file [绝对路径]文件名.csv,则将比较结果保存至默认文件中,默认文件为/var/log/neutron/compare_data-time.csv,其中,time为开始比较的时间。

·     如指定“--file [绝对路径]文件名.csv,则将比较结果保存在指定的文件中,如不指定绝对路径,则文件为“/var/log/neutron/文件名.csv”。

2. 比较命令结果

比较完成后,生成的结果文件中包含以下字段:

·     Resource:资源类型名称

·     Name:资源名称

·     Id:资源ID

·     Tenant_id:该资源所属租户ID

·     Tenant_name:该资源所属租户名称

·     Status:比较结果,取值为:

¡     lost:表示控制组件端缺失,需要增加。

¡     different:表示控制组件端存在但不相同,需要更新。

¡     surplus:表示控制组件端多余,需要删除。

3. 资源信息同步

(1)     使用命令h3c-sdnplugin-extension sync --file比较结果文件名.csv进行同步。若文件在/var/log/neutron/下,可以直接输入文件名,否则请输入绝对路径文件名。

如需指定同步结果文件存放路径,可通过命令h3c-sdnplugin-extension sync --file 比较结果文件名.csv  --sync_result_file 同步结果文件名.csv。如果想把同步结果文件保存到/var/log/neutron/下,可以直接输入文件名,否则请输入绝对路径文件名。

说明

插件配置项enable_security_group由True置为False后,在执行对比操作时控制组件侧可能出现存在安全组和端口已绑定安全组的差异情况,需执行两次同步操作将该差异消除。

 

(2)     执行命令后,会在同步之前展示资源统计信息,并提示用户进行确认,两次确认后(输入yes表示确认,no表示退出),开始同步资源。

(3)     同步完成后,如果指定了--sync_result_file 同步结果文件名.csv,同步结果将会保存到指定的文件中。否则将生成默认同步结果文件:/var/log/neutron/sync_data-time.csv,其中,time为开始同步时间。

注意

·     请勿对比较结果文件的内容进行新增或修改操作。

·     请仔细核验比较结果文件和资源统计信息,避免误操作导致环境异常。

 

8.2  vpcconnection和floatingip命令行操作

本功能用于对云平台上的vpcconnection和floatingip资源信息进行操作。使用vpcconnection命令行功能前,云平台VPC互通流量过防火墙场景需要配置为非网络云场景。vpcconnection命令行功能不支持Kilo、Liberty、Mitaka、Newton、Ocata版本OpenStack。

1. vpcconnection资源操作

使用命令neutron h3c-vpcconnection进行操作。

命令行

说明

neutron h3c-vpcconnection-list

查询全部vpcconnection

neutron h3c-vpcconnection-show uuid

查询一条vpcconnection;uuid为vpcconnection的uuid

neutron h3c-vpcconnection-create

创建vpcconnection

neutron h3c-vpcconnection-update

更新vpcconnection

neutron h3c-vpcconnection-delete uuid

删除vpcconnection;uuid为vpcconnection的uuid

 

以创建vpcconnection为例。

[root@controller ~]# neutron h3c-vpcconnection-create --tenant-id b5450fb690a245edbfdb202ada84cae9 --fw_enabled False --local-subnets b323aa83-83d1-4b21-b81a-4ee243c9da00 --peer-subnets dd275c26-2b33-4884-8fcf-129f7d895d14 --local-cidrs 1.1.1.1/24 --peer-cidrs 3.3.3.3/24 --local-router d331cde9-747b-40f8-b598-b291fddeb306 --peer-router 39a866f3-70a5-4dc4-ab7c-af0cc2d1146f

2. floatingip资源操作

使用命令neutron h3c-floatingip进行操作。

命令行

说明

neutron h3c-floatingip-list

查询全部floatingip

neutron h3c-floatingip-show uuid

查询一条floatingip;uuid为floatingip的UUID

neutron h3c-floatingip-create

创建floatingip

neutron h3c-floatingip-update

更新floatingip

neutron h3c-floatingip-delete uuid

删除floatingip;uuid为floatingip的UUID

neutron h3c-floatingip-associate

关联floatingip和port

neutron h3c-floatingip-disassociate

解除关联floatingip和port

 

以创建floatingip为例。

[root@controller ~]# neutron h3c-floatingip-create --port-id b2f2e5bd-0007-4423-9c8e-249ca1712c85 f33ff85a-aad0-4cc2-96f5-1e648b4bc168

8.3  插件运维功能

1. 健康检查操作

登录OpenStack控制节点,使用命令h3c-neutron health-check进行操作,用于检查配置项填写情况、主要进程的运行状态和依赖包安装情况。

·     判断/etc/neutron/plugins/ml2/ml2_conf.ini中[ml2]下的type_drivers、tenant_network_types、mechanism_drivers、extension_drivers;[ml2_type_vlan]下的network_vlan_ranges;[ml2_type_vxlan]下的vni_ranges是否存在拼写错误。

·     判断/etc/neutron/plugins/ml2/ml2_conf.ini中[SDNCONTROLLER]下的参数是否存在拼写错误,并打印默认值和当前配置值;检查网络插件和控制组件的连接状态;检查url和sdnc_rpc_url配置一致性;提供enable_dhcp_hierarchical_port_binding参数的配置建议。

·     检查neutron服务运行状态是否正确。

·     检查websocket-client依赖包是否安装。

举例如下:

[root@pcontroller ~]# h3c-neutron health-check --config-path /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/neutron.conf

2. 配置巡检操作

登录OpenStack控制节点,使用如下命令进行巡检,检查插件配置是否一致。

h3c-neutron config-check --host-ip host-ip --username username –-password password --port port --output-name output-name  --show-same {y,n} --config-path config-path

该命令用于检查远程节点的云平台配置和当前节点配置是否一致。

表8-1 巡检命令参数说明

参数

说明

host-ip

必填字段,表示远程neutron-server节点的IP地址

username

必填字段,表示远程neutron-server节点SSH登录权限的用户名称

password

必填字段,表示远程neutron-server节点SSH登录权限的用户的密码

port

可选参数,表示远程neutron-server节点SSH连接端口号,默认端口为22

output-name

可选参数,检查操作输出文件的名称。执行配置巡检操作后,检查结果将会输出为一个格式为txt的文件,存放在“/var/log/neutron”目录下

show-same

可选参数,用来配置是否显示插件配置项相同的记录。取值为“n”表示不显示相同的记录,“y”表示显示相同的记录,默认配置为“n”。当命令中存在output-name参数时,show-same参数无效,相同配置均会显示

config-path

必填参数,用来配置本端和远端检查配置文件的绝对路径。默认为“/etc/neutron/neutron.conf”和“/etc/neutron/plugins/ml2/ml2_conf.ini”,两个路径之间用空格隔开

 

举例如下:

·     示例1:

检查当前节点与远程节点“192.168.247.56”的配置是否一致,并直接在命令行界面展示差异项。其中远程节点的用户名为root,密码为123456。

h3c-neutron config-check --config-path /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/neutron.conf --host-ip 192.168.247.56 --username root --password 123456

·     示例2:

检查当前节点与远程节点“192.168.247.56”的配置是否一致,并将检查结果(包括差异项和相同项)输出至txt文件,文件名称为“test”。

h3c-neutron config-check --config-path /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/neutron.conf --host-ip 192.168.247.56 --username root --password 123456 --port 22 --show-same y --output-name test


9 常见问题解答

9.1  当您的网络通过代理服务器联网时,无法使用yum命令直接访问互联网安装插件或补丁所需的Python工具包,怎么办?

可以通过为yum命令设置HTTP代理的方法解决,具体步骤如下:

(1)     配置网络实现服务器或虚拟机能够正常访问HTTP代理服务器。

(2)     通过vi编辑器修改yum.conf配置文件。如果该配置文件不存在,则新建该文件。

[root@localhost ~]# vi /etc/yum.conf

(3)     按[i]键进入编辑模式,按照如下所示,在打开的yum.conf配置文件中添加HTTP代理信息。添加完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存yum.conf配置文件并退出vi编辑器。

¡     当登录HTTP代理服务器无需用户名和密码时,请按如下格式添加代理信息:

proxy = http://yourproxyaddress:proxyport

¡     当登录HTTP代理服务器需要用户名和密码时,请按如下格式添加代理信息:

proxy = http://yourproxyaddress:proxyport

proxy_username=username

proxy_password=password

-     username:登录代理服务器的用户名(以sdn为例)。

-     password:登录代理服务器的密码(以123456为例)。

-     yourproxyaddress:代理服务器IP地址(以172.25.1.1为例)。

-     proxyport:代理服务的端口号(以8080为例)。

proxy = http://172.25.1.1:8080

proxy_username = sdn

proxy_password = 123456

9.2  使用指定目的主机的迁移方式进行虚机热迁移时,因目的主机服务异常,导致迁移失败,如何处理?

(1)     查看迁移虚机状态,若虚机迁移动作正常回退,状态无异常,虚机业务不受影响,则此虚机无需处理。恢复目的主机后,再进行热迁移操作即可。

(2)     通过资源信息对比功能检查目的主机上是否存在残留map,若存在残留,请评估是否影响业务,如不影响业务,可不删除;如评估影响业务,请联系技术工程师协助删除。

9.3  Intel X700系列网卡接收不到LLDP报文,怎么办?

以网卡enp61s0f3为例,解决办法如下:

(1)     查询并记录系统内核信息。

[root@localhost ~]# uname -r

3.10.0-957.1.3.el7.x86_64

(2)     查询网卡详细信息,记录firmware-version和bus-info的值。

[root@localhost ~]# ethtool -i enp61s0f3

driver: i40e

version: 2.8.20-k

firmware-version: 3.33 0x80000f0c 1.1767.0

expansion-rom-version:

bus-info: 0000:3d:00.3

supports-statistics: yes

supports-test: yes

supports-eeprom-access: yes

supports-register-dump: yes

supports-priv-flags: yes

(3)     根据内核版本和网卡固件版本的不同,有以下两种解决方案:

当内核高于kernel-3.10.0-957.el7且网卡固件版本(firmware-version)大于等于4时

a.     执行如下命令。

[root@localhost ~]# ethtool --set-priv-flags enp61s0f3 disable-fw-lldp on

b.     查看disable-fw-lldp状态是否是on。

[root@localhost ~]# ethtool --show-priv-flags enp61s0f3  | grep lldp

disable-fw-lldp       : on

c.     上述命令执行后,网卡LLDP报文已可收到,为防止服务器重启此命令失效,需要将此命令写入开机自定义程序启动文件中,以保证服务器重启有效。

d.     打开开机自启文件:

[root@localhost ~]# vi /etc/rc.d/rc.local

e.     按[i]键进入编辑模式,修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存修改。

ethtool --set-priv-flags enp61s0f3  disable-fw-lldp on

f.     设置文件权限为可执行文件。

[root@localhost ~]# chmod 755 /etc/rc.d/rc.local

内核版本小于kernel-3.10.0-957.el7或者网卡固件版本(firmware-version)小于4时

a.     ‍执行命令echo "lldp stop" > /sys/kernel/debug/i40e/bus-info/command,其中,bus-info请输入已记录的网卡对应值,并在“:”前输入转义符“\”。

[root@localhost ~]# echo "lldp stop" > /sys/kernel/debug/i40e/0000\:3d\:00.3/command

上述命令执行后,网卡LLDP报文已可收到,为防止服务器重启此命令失效,需要将此命令写入开机自定义程序启动文件中,以保证服务器重启有效。

b.     打开开机自启文件:

[root@localhost ~]# vi /etc/rc.d/rc.local

c.     按[i]键进入编辑模式,添加以下配置,修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存修改。

echo "lldp stop" > /sys/kernel/debug/i40e/0000\:3d\:00.3/command

d.     设置文件权限为可执行文件。

[root@localhost ~]# chmod 755 /etc/rc.d/rc.local

9.4  当正常环境突然无法创建虚拟机实例,可能有什么原因?

(1)     查看websocket-client工具包是否安装,若未安装,则检查控制组件集群是否出现过重启。

(2)     若控制组件集群重启过,则需要重启neutron-server后再进行创建虚拟机实例操作。

(3)     建议安装websocket-client工具包,并使能与控制组件的RPC连接功能,避免因控制组件集群重启导致数据丢失的问题。

9.5  Rocky及高版本环境中,热迁移过程中出现概率丢包问题,怎么办?

热迁移过程中出现的概率丢包问题为开源bug,故需要修改开源代码,以Rocky版本为例,修改内容如下。

说明

修改前可先将代码进行备份。

 

(1)     所有控制节点(Controller node)执行如下步骤:

a.     修改plugin.py文件。

vi /usr/lib/python2.7/site-packages/neutron/plugins/ml2/plugin.py

按[i]键进入编辑模式,需要修改的开源代码如表9-1所示。

表9-1 控制节点需要修改的开源代码

 

b.     修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存修改。

c.     修改ml2_conf.ini文件。

vi /etc/neutron/plugins/ml2/ml2_conf.ini

[securitygroup]

firewall_driver = iptables_hybrid

enable_security_group = true

d.     修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存修改。

e.     执行如下命令重启neutron-server。

systemctl restart neutron-server

(2)     所有计算节点(Compute node)执行如下步骤。

a.     修改rpc.py文件。

vi /usr/lib/python2.7/site-packages/neutron/agent/rpc.py

按[i]键进入编辑模式,需要修改的开源代码如图9-1所示。

图9-1 计算节点需要修改的开源代码

 

b.     修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存修改。

c.     修改openvswitch_agent.ini文件。

vi /etc/neutron/plugins/ml2/openvswitch_agent.ini

按[i]键进入编辑模式

[securitygroup]

firewall_driver = iptables_hybrid

enable_security_group = true

d.     修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存修改。

e.     执行如下命令重启neutron-openvswitch-agent。

systemctl restart neutron-openvswitch-agent

f.     修改nova.conf文件。

vi /etc/nova/nova.conf

按[i]键进入编辑模式。

[compute]

live_migration_wait_for_vif_plug=true

g.     修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存修改。

h.     执行如下命令重启openstack-nova-compute。

systemctl restart openstack-nova-compute

9.6  若Neutron数据库连接信息加密,融合插件在继承portforwardings数据表时会出现访问数据库失败,导致无法继承,怎么办?

(1)     先卸载Neutron插件。卸载Neutron插件请参见“5.2.1  5. (1)卸载控制组件Neutron插件。”。

(2)     重新安装Neutron插件,并在安装Neutron插件时指定db_connection参数。

[root@localhost ~]# h3c-sdnplugin controller install --db_connection mysql+pymysql://neutron:PASSWORD@controller/neutron

db_connection参数的取值为neutron.conf文件中[database]配置组connection的值,其中Neutron数据库的访问密码为未加密的密码。

connection = mysql+pymysql://neutron:PASSWORD@controller/neutron

9.7  在Kylin V10操作系统中若出现Exception ignored in和Download error on https提示,怎么办?

若出现以下提示,可直接忽略。

·     Exception ignored in: …

·     Download error on https: …

图9-2 Exception ignored in提示示例

 

图9-3 Download error on https提示示例

 

 

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们