01-正文
本章节下载: 01-正文 (1.63 MB)
目 录
5.5 OpenStack插件对接F5或其他第三方LoadBalancer场景
5.8.3 传统VLAN及VXLAN网络隧道Metadata方案环境配置
5.8.4 传统VLAN及VXLAN网络层次化端口绑定Metadata方案环境配置
8.2 vpcconnection和floatingip命令行操作
9.1 当您的网络通过代理服务器联网时,无法使用yum命令直接访问互联网安装插件或补丁所需的Python工具包,怎么办?
9.2 使用指定目的主机的迁移方式进行虚机热迁移时,因目的主机服务异常,导致迁移失败,如何处理?
9.3 Inter X700系列网卡接收不到LLDP报文,怎么办?
9.5 Rocky及高版本环境中,热迁移过程中出现概率丢包问题,怎么办?
9.6 若Neutron数据库连接信息加密,融合插件在继承portforwardings数据表时会出现访问数据库失败,导致无法继承,怎么办?
通过安装OpenStack插件可实现SeerEngine-DC控制组件(以下简称“控制组件”)与OpenStack云平台的对接,对接完成后,控制组件可处理云平台的业务部署请求。本文主要介绍如何通过安装OpenStack插件实现与OpenStack云平台的对接。
OpenStack插件主要包含控制组件Neutron插件、Nova补丁、openvswitch-agent补丁和DHCP逃生相关组件。
在OpenStack环境中,Neutron(OpenStack网络服务)用来管理所有VNI(Virtual Networking Infrastructure,虚拟网络架构),它负责向OpenStack计算服务管理的设备提供虚拟网络服务。
控制组件Neutron插件是针对控制组件推出的符合OpenStack框架要求的Neutron插件,实现了核心插件(Networks、Subnets、Routers和Ports等)的全部特性,并负责通过REST API接口将从OpenStack获取的网络配置信息,如租户的网络(Networks)、子网(Subnets)、路由器(Routers)、端口(Ports)等,同步设置到控制组件。
使用插件对接OpenStack云平台后,为了避免影响用户业务,建议不要在控制组件上修改云平台下发的配置,如:在云平台中创建的虚拟链路层网络、虚拟路由器、虚拟子网等网络资源。
Nova是OpenStack的计算控制软件,用来管理虚拟机实例的整个生命周期,根据用户需求来提供虚拟服务。它负责虚拟机的创建、开机、关机、迁移等操作,并配置虚拟机的CPU、内存等信息。
在某些指定场景下(如主机Overlay、vCenter网络Overlay),需要通过Nova补丁使OpenStack创建的虚拟机能够接入控制组件所控制的网络。
当OpenStack的计算节点使用KVM虚拟化技术且需应用层次化端口绑定功能时,开源openvswitch-agent进程可能导致开源OVS(Open vSwitch)上缺少对应VLAN的流表,通过安装openvswitch-agent补丁可解决此问题。
OpenStack和控制组件的网络Overlay场景下,当前控制组件作为DHCP Server为虚拟机或者裸金属服务器分配地址,当控制组件与南向网络失联后,虚拟机或者裸金属服务器将无法进行DHCP续约和重新分配地址。为了弥补当前的不足,可通过在DHCP逃生节点安装DHCP组件,提供网络Overlay的DHCP逃生机制,当控制组件与南向网络失联后,虚拟机或者裸金属服务器可通过独立部署的DHCP Server续约和分配地址。
在DHCP逃生场景中,需要在DHCP逃生节点安装Metadata组件,为DHCP组件提供Metadata功能。
控制组件 Neutron安全插件是针对控制组件推出的符合OpenStack框架要求的Neutron插件,实现了安全插件(Fwaas、Lbaas和Vpnaas等)的全部特性,并负责通过REST API接口将从OpenStack获取的安全配置信息,如租户的防火墙(FW)、负载均衡(LB)、VPN等,同步设置到控制组件,为租户提供了调度安全网络资源的能力。
本文主要以控制组件单集群对接一套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补丁所需的软件配置需求如下表所示。
|
软件配置需求 |
备注 |
|
OpenStack |
当OpenStack使用Ubuntu的Apt方式部署时,OpenStack软件版本及支持的操作系统如下: · Kilo 2015.1:支持Ubuntu 14.04操作系统 · Liberty:支持Ubuntu 14.04操作系统 · Mitaka:支持Ubuntu 14.04操作系统 · Newton:支持Ubuntu 16.04操作系统 · Ocata:支持Ubuntu 16.04操作系统 · Pike:支持Ubuntu 16.04版本操作系统 · Queens:支持Ubuntu 18.04版本操作系统 · Rocky:支持Ubuntu 18.04版本操作系统 · Stein:支持Ubuntu 18.04版本操作系统 · Train:支持Ubuntu 18.04版本操作系统 · Ussuri:支持Ubuntu 20.04版本操作系统 · Victoria:支持Ubuntu 20.04 版本操作系统 · Yoga:支持Ubuntu22.04版本操作系统 |
· 安全插件暂不支持Victoria和Yoga版本OpenStack。
· 安装Pike版本OpenStack时,dnsmasq版本需为2.76,可使用命令dnsmasq -v查看版本号。
· 安装OpenStack插件前需要先访问互联网安装基础环境,所以请确保在安装过程中,系统能够正常访问互联网。
请参考OpenStack官网上指定OpenStack软件版本的安装指导手册,完成OpenStack云平台的安装和部署。确保各节点的/etc/hosts文件已配置主机名和IP地址的映射、确保OpenStack Neutron组件已完成部署。
控制组件预配置,只提供控制组件的基本配置信息。涉及不同业务场景配置,请参考对应控制组件业务场景的典型配置指导。
预配置如下表所示。
|
配置 |
菜单路径 |
|
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范围保持一致。
目前支持在多个版本的OpenStack上安装控制组件Neutron插件、Nova补丁或openvswitch-agent补丁、DHCP逃生相关组件。不同版本的OpenStack都使用同一个插件安装包。
控制组件Neutron插件安装在OpenStack控制节点上,Nova补丁和openvswitch-agent补丁安装在OpenStack计算节点上,DHCP逃生相关组件安装在DHCP逃生节点。安装插件或补丁前需要在相应的OpenStack节点上安装基础环境。
安装插件及补丁前,需先安装基础环境,即在线下载并安装Python工具包。
(1) 更新软件源列表。
sdn@ubuntu:~$ sudo apt-get update
(2) 下载并安装Python工具包。
¡ Ubuntu 20.04和22.04操作系统
sdn@ubuntu:~$ sudo apt-get install python3-pip python3-setuptools
¡ 其他Ubuntu操作系统
sdn@ubuntu:~$ sudo apt-get install python-pip python-setuptools
(3) 登录控制节点,编辑/etc/hosts文件。添加控制组件上[自动化 > 数据中心网络 > Fabrics > 计算域 > 主机]中所有本OpenStack主机的IP和Name映射信息。并添加控制组件上[自动化 > 数据中心网络 > 资源池 > 设备资源 > 物理设备]中所有该场景下Leaf、Spine、Border设备的IP和Name映射信息。
sdn@ubuntu:~$ sudo vi /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工具包。
¡ Ubuntu 20.04和22.04操作系统
sdn@ubuntu:~$ sudo pip install websocket-client==0.56
¡ 其他Ubuntu操作系统
sdn@ubuntu:~$ sudo apt-get install python-websocket-client
对于Python 3.8以下环境,python-websocket-client需要确保为0.56版本。Python 3.8及以上的云环境中,推荐使用0.58版本的python-websocket-client。在离线环境下,建议使用.whl的基础环境离线包。
获取所需版本的控制组件 OpenStack软件包,并将控制组件 OpenStack软件包拷贝至服务器或虚拟机上的待安装目录下,或通过FTP、TFTP、SCP等文件传输协议将软件包上传到指定目录。
· 使用FTP、TFTP方式上传时,请选择binary模式(二进制模式)传输,以免损坏软件包。
· 安装过程中,修改配置文件时如果参数后边括号有“以XXX为例”的说明,表示该参数取值可以根据用户需求改变,否则不能改变。
(1) 进入控制组件 OpenStack软件包(.whl/.egg文件)的存放路径(以路径/root为例),安装控制组件 OpenStack软件包。软件包的名称格式为SeerEngine_DC_PLUGIN-version-py2.7.egg或SeerEngine_DC_PLUGIN-version-py3-none-any.whl,其中version为软件包版本号。请根据实际环境中的Python版本和操作系统选择一个软件包进行安装。
¡ 20.04和22.04版本操作系统
sdn@ubuntu:~$ sudo pip install SeerEngine_DC_PLUGIN-E6402-py3-none-any.whl
¡ 18.04版本操作系统
sdn@ubuntu:~$ sudo python -m easy_install SeerEngine_DC_PLUGIN-E3608-py2.7.egg
¡ 其他版本操作系统
sdn@ubuntu:~$ sudo easy_install SeerEngine_DC_PLUGIN-E3608-py2.7.egg
(2) 修改插件文件所属用户组及权限,确保与Neutron组件文件保持一致。
¡ 20.04和22.04版本操作系统
sdn@ubuntu:~$ cd /usr/local/lib/python3.x/dist-packages
sdn@ubuntu:~$ sudo chown -R --reference=/usr/lib/python3/dist-packages/neutron *h3c
sdn@ubuntu:~$ sudo chmod -R --reference=/usr/lib/python3/dist-packages/neutron *h3c
如需使用Octavia服务,增加如下配置:
sdn@ubuntu:~$ sudo chown -R --reference=/usr/lib/python3.6/site-packages/octavia networking_sec_h3c/octavia
sdn@ubuntu:~$ sudo chmod -R --reference=/usr/lib/python3.6/site-packages/octavia networking_sec_h3c/octavia
sdn@ubuntu:~$ cd /usr/local/bin
sdn@ubuntu:~$ sudo chown -R --reference=/usr/bin/neutron-server h3c*
sdn@ubuntu:~$ sudo chmod -R --reference=/usr/bin/neutron-server h3c*
¡ 其他版本操作系统
sdn@ubuntu:~$ sudo cd /usr/local/lib/python2.7/dist-packages
sdn@ubuntu:~$ sudo chown -R --reference=/usr/lib/python2.7/dist-packages/neutron SeerEngine*
sdn@ubuntu:~$ sudo chmod -R --reference=/usr/lib/python2.7/dist-packages/neutron SeerEngine*
sdn@ubuntu:~$ sudo cd /usr/bin
sdn@ubuntu:~$ sudo chown -R --reference=neutron-server h3c*
sdn@ubuntu:~$ sudo chmod -R --reference=neutron-server h3c*
(3) 安装控制组件Neutron插件。
sdn@ubuntu:~$ sudo h3c-sdnplugin controller install
· 执行sudo h3c-sdnplugin controller install时,请确保/root目录下不存在neutron.conf文件,如果存在,请先删除或者移动到其他位置。
· 当厂商的Neutron基于开源Newton、Pike或Yoga版本进行二次开发时,需采用如下安装方式:sdn@ubuntu:~$ sudo h3c-sdnplugin controller install --neutron_version version。其中version为对应的开源版本号newton、pike或yoga。
(1) 修改neutron.conf配置文件。
a. 通过vi编辑器打开neutron.conf配置文件。
sdn@ubuntu:~$ sudo vi /etc/neutron/neutron.conf
b. 按[i]键进入编辑模式,修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存neutron.conf配置文件并退出vi编辑器。
当OpenStack为Train、Ussuri、Victoria和Yoga版本时,请按照如下修改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版本时,需配置以下配置项。
[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和Yoga版本时,支持VPC互通流量过防火墙场景,但需要在neutron.conf配置文件中进行额外配置,如下表所示。
表5-1 VPC互通流量过防火墙场景的额外配置项
|
OpenStack版本 |
neutron.conf配置文件的额外配置项 |
||
|
Mitaka |
网络云场景 |
||
|
Pike |
非网络云场景 |
其中api_extensions_path的配置内容可通过如下方式获取: |
|
|
Queens、Rocky和Stein |
非网络云场景 |
其中api_extensions_path的配置内容可通过如下方式获取: |
|
|
Train、Ussuri、Victoria和Yoga |
网络云场景 |
||
|
非网络云场景 |
其中api_extensions_path的配置内容可通过如下方式获取: |
||
由于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配置文件。
sdn@ubuntu:~$ sudo 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配置文件。
sdn@ubuntu:~$ sudo 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 [SDNCONTROLLER]参数说明
|
参数名 |
说明 |
示例值 |
|
url |
登录统一数字底盘的URL地址 。统一数字底盘的URL为http://ip_address:30000或https://ip_address:30000 |
http://127.0.0.1:30000 |
|
username |
登录统一数字底盘的用户名(以admin为例)。当use_neutron_credential参数取值为True时,不需要配置本参数 |
admin |
|
password |
登录统一数字底盘的密码(以Pwd@12345为例)。当use_neutron_credential参数取值为True时,不需要配置本参数。如密码中包含字符“$”,需要在该字符前输入转义符“\” |
|
|
domain |
控制组件所在域的域名(以sdn为例)。本参数已废弃 |
sdn |
|
timeout |
Neutron-server等待控制组件响应的时间,单位为秒(以1800秒为例)。建议本参数的值设置为大于等于1800秒 |
1800 |
|
retry |
发送连接请求消息的尝试次数 |
10 |
|
vif_type |
默认支持的虚拟机网卡类型。取值范围为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 |
|
use_neutron_credential |
是否使用OpenStack neutron用户名和密码与控制组件通信 |
False |
|
output_json_log |
是否将控制组件Neutron插件和控制组件通信的REST API消息以JSON格式输出到OpenStack的操作日志文件 |
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 |
|
enable_https |
支持HTTPS双向认证功能,缺省值为False |
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为例) |
- |
|
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消息分片的每片大小,Int类型,单位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 |
String类型,插件配置云平台名称,缺省值为default。此参数取值务必与控制组件中[自动化 > 数据中心网络 > 云及虚拟化对接 > OpenStack]添加的云平台名称保持一致 |
default |
|
enable_h3c_l3_exroute |
使能扩展路由功能,缺省值为False,目前仅Mitaka、Train、Ussuri和Victoria版本OpenStack支持配置此参数。当取值为True时,需要在neutron.conf文件[DEFAULT]中配置api_extensions_path,配置内容通过如下方式获取。 Ubuntu 20.04和22.04操作系统: 其他Ubuntu操作系统: |
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 |
False |
|
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用户密码)。
在控制组件上增加管理员用户,配置用户名为neutron,角色选择为系统管理员,密码请使用OpenStack上neutron用户对应的密码。
sdn@ubuntu:~$ sudo service neutron-server restart
neutron-server stop/waiting
neutron-server start/running, process 4583
(1) 验证控制组件 OpenStack软件包是否安装成功。若显示正确的软件版本号,则说明安装成功。
¡ Ubuntu 20.04和22.04操作系统
sdn@ubuntu:~$ sudo pip3 freeze | grep PLUGIN
SeerEngine-DC-PLUGIN===E6102
¡ 其他Ubuntu操作系统
sdn@ubuntu:~$ sudo pip freeze | grep PLUGIN
SeerEngine-DC-PLUGIN===E3608
(2) 验证neutron-server服务是否已开启。若显示neutron-server服务为running状态的运行信息,则说明启动成功。
sdn@ubuntu:~$ sudo service neutron-server status
neutron-server start/running, process 1849
升级控制组件Neutron插件时请先卸载旧版本插件,然后重新安装新版本插件。升级过程中可能造成业务中断,请谨慎操作。
当插件进行跨版本升级时,可能由于不同版本插件的配置文件中参数缺省值不同导致升级前后插件的配置不同。此时,建议用户手动修改相关参数取值以保证升级前后插件配置相同。
(1) 卸载控制组件Neutron插件。
sdn@ubuntu:~$ sudo h3c-sdnplugin controller uninstall
Restore config files
Uninstallation complete.
当厂商的Neutron基于开源Newton、Pike或Yoga版本进行二次开发时,需采用如下卸载方式:sdn@ubuntu:~$ sudo h3c-sdnplugin controller uninstall --neutron_version version。其中version为对应的开源版本号newton、pike或yoga。
(2) 卸载控制组件OpenStack软件包。
¡ Ubuntu 20.04和22.04操作系统
sdn@ubuntu:~$ sudo 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.8/dist-packages/SeerEngine_DC_PLUGIN-E6401.dist-info/*
/usr/local/lib/python3.8/dist-packages/networking_h3c/*
/usr/local/lib/python3.8/dist-packages/neutron_bgp_h3c/*
/usr/local/lib/python3.8/dist-packages/neutron_exroute_h3c/*
/usr/local/lib/python3.8/dist-packages/neutron_taas_h3c/*
/usr/local/lib/python3.8/dist-packages/neutron_trunk_h3c/*
/usr/local/lib/python3.8/dist-packages/neutron_vpc_h3c/*
Proceed (y/n)? y
Successfully uninstalled SeerEngine-DC-PLUGIN-E6401
¡ 其他Ubuntu操作系统
sdn@ubuntu:~$ sudo 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
(3) 重新安装新版本插件,具体方法请参见“控制节点的插件安装与配置”。
若还需要升级Neutron安全插件,请跳过“修改OpenStack控制节点的配置文件”步骤,待安全插件升级完成后,再重启neutron-server服务即可。升级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'] |
每次升级均需要重新获取 |
|
仅在以下场景中,需要安装Nova补丁:
· KVM类型的主机Overlay或网络Overlay组网中,如果虚拟机作为Loadbalancer成员,Loadbalancer需要感知成员状态
· vCenter类型的网络Overlay场景
获取所需版本的控制组件OpenStack软件包,并将控制组件OpenStack软件包拷贝至服务器或虚拟机上的待安装目录下,或通过FTP、TFTP、SCP等文件传输协议将软件包上传到指定目录。
使用FTP、TFTP方式上传时,请选择binary模式(二进制模式)传输,以免损坏软件包。
(1) 进入控制组件OpenStack软件包(.egg文件)的存放路径(以路径/root为例),安装控制组件OpenStack软件包。软件包的名称格式为SeerEngine_DC_PLUGIN-version-py2.7.egg,其中version为软件包版本号。
sdn@ubuntu:~$ sudo easy_install SeerEngine_DC_PLUGIN-E3608-py2.7.egg
(2) 安装Nova补丁。
sdn@ubuntu:~$ sudo h3c-sdnplugin compute install
Install the nova patch
modifying:
/usr/lib/python2.7/dist-packages/nova/virt/vmwareapi/vmops.py
modify success, backuped at: /usr/lib/python2.7/dist-packages/nova/virt/vmwareapi/vmops.py.h3c_bak
modifying部分表示控制组件Nova补丁修改的开源Nova文件以及修改前文件的备份路径。
(3) 进行环境相关配置。
a. 关闭计算节点的neutron-openvswitch-agent 服务并设为开机不启动。
sdn@ubuntu:~$ sudo service neutron-openvswitch-agent stop
sdn@ubuntu:~$ sudo systemctl disable neutron-openvswitch-agent.service
b. 在控制节点上通过neutron agent-list命令检查数据库中是否存在该计算节点的Agent。如不存在,请继续进行下一步;如存在,请通过neutron agent-delete id 命令删除,其中id 表示该计算节点的Agent ID。
sdn@ubuntu:~$ sudo neutron agent-list
| id | agent_type | host |
| 25c3d3ac-5158-4123-b505-ed619b741a52 | Open vSwitch agent | compute3
sdn@ubuntu:~$ sudo neutron agent-delete 25c3d3ac-5158-4123-b505-ed619b741a52
Deleted agent: 25c3d3ac-5158-4123-b505-ed619b741a52
c. 在计算节点上通过vi编辑器打开nova.conf配置文件。
sdn@ubuntu:~$ sudo 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
各参数含义如下:
- s1020v:是否使用S1020V虚拟交换机转发各虚拟机之间以及虚拟机与外部网络之间的流量(以False为例)。本字段已废弃。
- member_status:是否开启虚拟机上下电时修改OpenStack上负载均衡器的成员状态的功能(以True为例)。
- vds:vCenter上主机所属的VDS名称(以VDS2为例)。主机Overlay组网环境下,只能指定控制组件推送给vCenter的VDS;网络Overlay组网环境下,可根据组网需求指定任意一个已存在的VDS。
- uplink_teaming_policy:上行链路采取的聚合策略,取值包括:
loadbalance_srcid:基于源虚拟端口的路由。
loadbalance_ip:基于IP哈希的路由。
loadbalance_srcmac:基于源MAC哈希的路由。
loadbalance_loadbased:基于物理网卡负载的路由。
failover_explicit:使用明确故障切换顺序。
- ovs_bridge:修改H3C S1020V虚拟交换机网桥的名称,网桥的名称与H3C S1020V虚拟交换机上已创建的网桥名称相同(以vds1-br为例)。
- compute_driver:计算节点进行虚拟化所使用的驱动名称。
- host_ip:登录vCenter的IP地址(以127.0.0.1为例)。
- host_username:登录vCenter的用户名(以sdn为例)。
- host_password:登录vCenter的密码(以skyline123为例)。如密码中包含字符“$”,需要在该字符前输入转义符“\”。
- cluster_name:vCenter环境中集群的名称(以vcenter为例)。
- insecure:登录vCenter时不进行安全检查。
(4) 重启openstack-nova-compute服务。
sdn@ubuntu:~$ sudo service openstack-nova-compute restart
(1) 验证控制组件OpenStack软件包是否安装成功。若显示正确的软件包版本号,则说明安装成功。
sdn@ubuntu:~$ sudo pip freeze | grep PLUGIN
SeerEngine-DC-PLUGIN===E3608
(2) 验证openstack-nova-compute服务是否已开启。若显示openstack-nova-compute服务为running状态的运行信息,则说明启动成功。
sdn@ubuntu:~$ sudo service openstack-nova-compute status
nova-compute start/running, process 184
升级Nova补丁时请先卸载旧版本补丁,然后重新安装新版本补丁。升级过程中可能造成业务中断,请谨慎操作。
(1) 卸载Nova补丁。
sdn@ubuntu:~$ sudo h3c-sdnplugin compute uninstall
Uninstall the nova patch
(2) 卸载控制组件OpenStack软件包。
sdn@ubuntu:~$ sudo pip uninstall seerengine-dc-plugin
Uninstalling SeerEngine-DC-PLUGIN-E3608:
/usr/bin/h3c-sdnplugin
/usr/lib/python2.7/dist-packages/SeerEngine_DC_PLUGIN-E3608-py2.7.egg
Proceed (y/n)? y
Successfully uninstalled SeerEngine-DC-PLUGIN-E3608
(3) 重新安装新版本补丁,具体方法请参见“计算节点的插件安装与配置”。
(1) 在OpenStack侧创建VXLAN类型网络和虚拟机。
(2) 登录控制组件,查看[自动化 > 数据中心网络 > 所有租户网络 > 虚拟端口]是否存在对应虚机端口,若端口信息正确且状态为UP,则对接成功。
请参见“控制节点的插件安装与配置”章节进行安装。
使用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服务。
sdn@ubuntu:~$ sudo service neutron-server restart
neutron-server stop/waiting
neutron-server start/running, process 4583
(1) 在节点上安装并启动lldpad。
sdn@ubuntu:~$ sudo apt-get install lldpad
sdn@ubuntu:~$ sudo service lldpad enable
sdn@ubuntu:~$ sudo service lldpad start
(2) 在节点上配置上行口开启发送LLDP功能,以上行口为eno2为例。
sdn@ubuntu:~$ sudo lldptool set-lldp -i eno2 adminStatus=rxtx
sdn@ubuntu:~$ sudo lldptool -T -i eno2 -V sysName enableTx=yes
sdn@ubuntu:~$ sudo lldptool -T -i eno2 -V portDesc enableTx=yes
sdn@ubuntu:~$ sudo lldptool -T -i eno2 -V sysDesc enableTx=yes
sdn@ubuntu:~$ sudo lldptool -T -i eno2 -V sysCap enableTx=yes
仅在以下场景中,需要安装Nova补丁:
· KVM类型的主机Overlay或网络Overlay组网中,如果虚拟机作为Loadbalancer成员,Loadbalancer需要感知成员状态
· vCenter类型的网络Overlay场景
请参见“计算节点的插件安装与配置”章节进行安装。
· openvswitch-agent补丁只适用于开源场景。若第三方云修改了openvswitch-agent,则不支持安装openvswitch-agent补丁。
· 仅层次化环境需要安装openvswitch-agent补丁。Rocky及后续高版本OpenStack不需要安装openvswitch-agent补丁。
(1) 进入控制组件OpenStack软件包(.egg文件)的存放路径(以路径/root为例),安装控制组件OpenStack软件包。软件包的名称格式为SeerEngine_DC_PLUGIN-version-py2.7.egg,其中version为软件包版本号。
sdn@ubuntu:~$ sudo easy_install SeerEngine_DC_PLUGIN-E3608-py2.7.egg
(2) 安装openvswitch-agent补丁。
sdn@ubuntu:~$ sudo h3c-sdnplugin openvswitch install
(3) 重启openvswitch-agent服务。
sdn@ubuntu:~$ sudo service neutron-openvswitch-agent restart
(1) 验证控制组件OpenStack软件包是否安装成功。若显示正确的软件包版本号,则说明安装成功。
sdn@ubuntu:~$ sudo pip freeze | grep PLUGIN
SeerEngine-DC-PLUGIN===E3608
(2) 验证openvswitch-agent服务是否已开启。若显示openvswitch-agent服务为running状态的运行信息,则说明启动成功。
sdn@ubuntu:~$ sudo 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)
升级openvswitch-agent补丁时请先卸载旧版本补丁,然后重新安装新版本补丁。升级过程中可能造成业务中断,请谨慎操作。
(1) 卸载openvswitch-agent补丁。
sdn@ubuntu:~$ sudo h3c-sdnplugin openvswitch uninstall
(2) 卸载控制组件OpenStack软件包。
sdn@ubuntu:~$ sudo 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
(3) 重新安装新版本补丁,具体方法请参见“计算节点的插件安装与配置”。
使用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为例。
sdn@ubuntu:~$ sudo ovs-vsctl add-br br-ens33
(3) 网桥绑定物理端口。
sdn@ubuntu:~$ sudo ovs-vsctl add-port br-ens33 ens33
(4) 检查ovs配置。
sdn@ubuntu:~$ sudo ovs-vsctl show
(5) 删除默认网桥,名称以br-tun为例。
sdn@ubuntu:~$ sudo 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) 重启openvswicth-agent和neutron-openvswitch-agent服务,确认br-tun网桥已删除。
sdn@ubuntu:~$ sudo systemctl restart neutron-openvswitch-agent.service
sdn@ubuntu:~$ sudo systemctl restart openvswitch-agent.service
sdn@ubuntu:~$ sudo ovs-vsctl show
当业务场景需要支持DHCP逃生时,需要安装DHCP组件和Metadata组件。
当网络Overlay场景需要支持DHCP逃生时,需要安装DHCP逃生相关组件。安装/卸载/升级方式请参考《H3C SeerEngine-DC OpenStack融合插件安装指导-CentOS和Kylin》。
DHCP逃生相关组件仅支持CentOS 7.2.1511操作系统,内核版本为3.10.0-327.el7.x86_64,若内核版本与S1020V的版本不配套,请先安装内核补丁。
开源OpenStack支持VM通过DHCP和L3 Gateway两种方式从网络节点获取Metadata数据,H3C当前的Metadata方案仅支持DHCP方式。当使用H3C的Metadata方案时,请参考《H3C SeerEngine-DC OpenStack融合插件安装指导-CentOS和Kylin》。
(1) 在OpenStack侧创建VXLAN或VLAN类型网络和虚机。创建VLAN类型网络时,物理网络名称需与控制节点ml2_conf.ini文件中network_vlan_ranges配置的物理网络名称保持一致。
(2) 登录控制组件,查看[自动化 > 数据中心网络 >所有租户网络 > 虚拟端口]是否存在对应虚机端口,若端口信息正确且状态为UP,则对接成功。
请参见“控制节点的插件安装与配置”章节进行安装。
由于OpenStack社区限制,SR-IOV不支持层次化场景,目前只支持VLAN网络。
请参见“计算节点的插件安装与配置”章节进行安装。
请参考OpenStack官网SR-IOV(https://docs.openstack.org/neutron/pike/admin/config-sriov.html)配置手册进行配置。
(1) 使用root用户登录控制节点,修改配置文件”/etc/neutron/plugins/ml2/ml2_conf.ini”。
a. 编辑[ml2]标签mechanism_drivers。
[ml2]
type_drivers = vxlan,vlan
tenant_network_types = vxlan,vlan
mechanism_drivers = sriovnicswitch,ml2_h3c,openvswitch
b. 重启neutron-server服务。
(1) 在OpenStack侧创建VLAN类型网络和直连类型的端口。
(2) 创建带有该直连类型端口的虚机。
(3) 登录控制组件,查看[自动化 > 数据中心网络 >所有租户网络 > 虚拟端口]是否存在对应虚机端口,若端口信息正确且状态为UP,则对接成功。
OpenStack插件对接第三方LoadBalancer,详情配置请参考第三方对接指导,此步骤仅提供样例参考。
请参见“控制节点的插件安装与配置”章节进行安装。
请参见“计算节点的插件安装与配置”章节进行安装。
若涉及层次化或者网络overlay环境,请参见“(可选)在OpenStack计算节点上安装openvswitch-agent补丁”进行安装。
使用root用户登录控制节点,并将F5插件放置控制节点路径(以/var/log/neutron为例)下。安装包由F5提供。
请优先联系对接人员,获取以下F5插件相关软件包。
安装插件及补丁前,需先安装git工具包,networking-f5包必须通过git方式获取,缺少git文件会导致安装失败。
(1) 下载并安装git工具包。
[root@localhost ~]# yum install –y git
进入存放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
(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_con.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
(1) 重启服务
[root@localhost ~]# systemctl enable f5-openstack-agent
[root@localhost ~]# systemctl restart f5-openstack-agent
[root@localhost ~]# systemctl restart neutron-server
(1) 在OpenStack侧创建LoadBalancer v2资源。
(2) 登录控制组件,查看[自动化 > 数据中心网络 > 租户的网络 > 负载均衡]是否存在对应LoadBalancer,且控制组件无报错且参数正确,则对接成功。
· OpenStack插件对接第三方防火墙,详情配置请参考第三方对接指导,此步骤仅提供样例参考。本章节以DP第三方防火墙为例。
· 控制组件Neutron插件支持callback方式响应router事件,resource为h3c_router和h3c_router_interface。
请参见“控制节点的插件安装与配置”章节进行安装。
请参见“计算节点的插件安装与配置”章节进行安装。
若涉及层次化或者网络Overlay环境,请参见“(可选)在OpenStack计算节点上安装openvswitch-agent补丁”章节安装openvswitch补丁。
(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) 重启服务。
sdn@ubuntu:~$ sudo systemctl restart neutron-server
在控制组件上使用REST API开启第三方防火墙互联地址预下发功能。接口URI如下:
nem/v1.0/reserve_option
{
"reserve_option": {
"thirdparty_security_service_option": true
}
}
(1) 在OpenStack侧创建Firewall资并绑定Router。
(2) 登录控制组件,查看[自动化 > 数据中心网络 > 租户的网络 > 防火墙]是否存在对应Firewall,如状态正常且参数无误,则对接成功。
OpenStack插件对接Ironic,本步骤仅提供基础的搭建流程和配置,详细信息请参考对应场景典型配置指导。
请参见“控制节点的插件安装与配置”章节进行安装。
请参见Ironic相关部署手册。
Metadata方案分为传统VLAN及VXLAN网络隧道方案和传统VLAN及VXLAN网络层次化端口绑定方案。
请参见“控制节点的插件安装与配置”章节进行安装。
请参见“计算节点的插件安装与配置”章节进行安装。
若涉及层次化或者网络Overlay环境,请参见“(可选)在OpenStack计算节点上安装openvswitch-agent补丁”章节进行安装。
· 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上行口。两类上行口的配置一致
sdn@ubuntu:~$ sudo lldptool set-lldp -i ens192 adminStatus=rxtx;
sdn@ubuntu:~$ sudo lldptool -T -i ens192 -V sysName enableTx=yes;
sdn@ubuntu:~$ sudo lldptool -T -i ens192 -V portDesc enableTx=yes;
sdn@ubuntu:~$ sudo lldptool -T -i ens192 -V sysDesc enableTx=yes;
sdn@ubuntu:~$ sudo ldptool -T -i ens192 -V sysCap enableTx=yes;
sdn@ubuntu:~$ sudo lldptool -T -i ens192 -V mngAddr enableTx=yes;
sdn@ubuntu:~$ sudo lldptool -T -i ens192 -V mngAddr ipv4=100.101.0.10 //配置为上行口IP地址
sdn@ubuntu:~$ sudo lldptool -t -i ens193
sdn@ubuntu:~$ sudo lldptool set-lldp -i ens193 adminStatus=rxtx;
sdn@ubuntu:~$ sudo lldptool -T -i ens193 -V sysName enableTx=yes;
sdn@ubuntu:~$ sudo lldptool -T -i ens193 -V portDesc enableTx=yes;
sdn@ubuntu:~$ sudo lldptool -T -i ens193 -V sysDesc enableTx=yes;
sdn@ubuntu:~$ sudo lldptool -T -i ens193 -V sysCap enableTx=yes;
sdn@ubuntu:~$ sudo lldptool -T -i ens193 -V mngAddr enableTx=yes;
sdn@ubuntu:~$ sudo lldptool -T -i ens193 -V mngAddr ipv4=100.101.0.10 //虽然为vlan上行口,但需要配置为vxlan上行口IP地址
sdn@ubuntu:~$ sudo lldptool -t -i ens193
(3) dhcp agent所在节点neutron openvswitch agent进程增加配置。
sdn@ubuntu:~$ sudo vi /etc/neutron/plugins/ml2/openvswitch_agent.ini
[agent]
tunnel_types = vxlan
[ovs]
local_ip = 100.101.0.10 //配置为上行口IP地址
(4) 配置完成后重启neutron-openvswitch-agent进程。
sdn@ubuntu:~$ sudo systemctl restart neutron-openvswitch-agent
(1) 修改插件配置ml2_conf.ini文件
sdn@ubuntu:~$ sudo vi /etc/neutron/plugins/ml2/ml2_conf.ini
[SDNCONTROLLER]
enable_dhcp_hierarchical_port_binding = True
(2) 重启服务
sdn@ubuntu:~$ sudo systemctl restart neutron-server.service
(1) 编辑”/etc/neutron/plugins/ml2/openvswitch_agent.ini”文件中[ovs]标签bridge_mappings,其中冒号前的配置表示物理网络名称,须与绑定业务网卡的物理网络名称保持一致,冒号后的配置表示待手动创建OVS网桥名称,可自定义。
[ovs]
bridge_mappings = physicnet1:br-ens192
(2) 创建网桥,名称以br-ens33为例。
sdn@ubuntu:~$ sudo ovs-vsctl add-br br-ens192
(3) 网桥绑定物理端口。
sdn@ubuntu:~$ sudo ovs-vsctl add-port br-ens192 ens192
(4) 检查ovs配置。
sdn@ubuntu:~$ sudo ovs-vsctl show
(5) 删除默认网桥,名称以br-tun为例。
sdn@ubuntu:~$ sudo ovs-vsctl del-br br-tun
(6) 使能所有VLAN上行口LLDP发送,并指定上行口IP地址为mngAddr。
# ens193为vlan上行口,不需要指定IP
sdn@ubuntu:~$ sudo lldptool set-lldp -i ens193 adminStatus=rxtx;
sdn@ubuntu:~$ sudo lldptool -T -i ens193 -V sysName enableTx=yes;
sdn@ubuntu:~$ sudo lldptool -T -i ens193 -V portDesc enableTx=yes;
sdn@ubuntu:~$ sudo lldptool -T -i ens193 -V sysDesc enableTx=yes;
sdn@ubuntu:~$ sudo lldptool -T -i ens193 -V sysCap enableTx=yes;
sdn@ubuntu:~$ sudo lldptool -T -i ens193 -V mngAddr enableTx=yes;
sdn@ubuntu:~$ sudo 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) 重启服务。
sdn@ubuntu:~$ sudo systemctl restart neutron-dhcp-agent.service
sdn@ubuntu:~$ sudo systemctl restart neutron-openvswitch-agent.service
目前支持在多个版本的OpenStack上安装控制组件Neutron安全插件。不同版本的OpenStack上使用相同的控制组件Neutron安全插件。
控制组件Neutron安全插件安装在OpenStack控制节点上,安装安全插件前需要在相应的OpenStack节点上安装基础环境。
获取所需版本的安全插件软件包,并将软件包拷贝至服务器或虚拟机上的待安装目录下,或通过FTP、TFTP、SCP等文件传输协议将软件包上传到指定目录。
· 使用FTP、TFTP方式上传时,请选择binary模式(二进制模式)传输,以免损坏软件包。
· 安装过程中,修改配置文件时如果参数后边括号有“以XXX为例”的说明,表示该参数取值可以根据用户需求改变,否则不能改变。
(1) 进入安全插件软件包(.egg文件)的存放路径(以路径/root为例),安装软件包。软件包的名称格式为SeerEngine_DC_SEC_PLUGIN-version-py2.7.egg或SeerEngine_DC_SEC_PLUGIN-version-py3.6.egg,其中version为软件包版本号。请根据实际环境中的Python版本和操作系统选择一个软件包进行安装。
¡ 20.04版本操作系统
sdn@ubuntu:~$ sudo python3 -m easy_install --no-deps SeerEngine_DC_SEC_PLUGIN-E6102-py3.6.egg
¡ 18.04版本操作系统
sdn@ubuntu:~$ sudo python -m easy_install SeerEngine_DC_SEC_PLUGIN-E3608-py2.7.egg
¡ 其他版本操作系统
sdn@ubuntu:~$ sudo easy_install SeerEngine_DC_SEC_PLUGIN-E3608-py2.7.egg
(2) 修改插件文件所属用户组及权限,确保与Neutron组件文件保持一致。
¡ 20.04版本操作系统
sdn@ubuntu:~$ sudo cd /usr/local/lib/python3.6/dist-packages
sdn@ubuntu:~$ sudo chown -R --reference=/usr/lib/python3.6/dist-packages/neutron SeerEngine*
sdn@ubuntu:~$ sudo chmod -R --reference=/usr/lib/python3.6/dist-packages/neutron SeerEngine*
sdn@ubuntu:~$ sudo cd /usr/local/bin
sdn@ubuntu:~$ sudo chown -R --reference=/usr/bin/neutron-server h3c*
sdn@ubuntu:~$ sudo chmod -R --reference=/usr/bin/neutron-server h3c*
¡ 其他版本操作系统
sdn@ubuntu:~$ sudo cd /usr/local/lib/python2.7/dist-packages
sdn@ubuntu:~$ sudo chown -R --reference==/usr/lib/python2.7/dist-packages/neutron SeerEngine*
sdn@ubuntu:~$ sudo chmod -R --reference=/usr/lib/python2.7/dist-packages/neutron SeerEngine*
sdn@ubuntu:~$ sudo cd /usr/bin
sdn@ubuntu:~$ sudo chown -R --reference=neutron-server h3c*
sdn@ubuntu:~$ sudo chmod -R --reference=neutron-server h3c*
(3) 安装控制组件Neutron安全插件。
¡ 若安全插件配置了防火墙plugin的agent模式:
sdn@ubuntu:~$ sudo h3c-secplugin controller install
¡ 若安全插件配置了优化开源防火墙plugin的去agent模式(firewall_h3c),无需安装h3c_sec_agent组件,此时使用如下命令安装安全插件:
sdn@ubuntu:~$ sudo h3c-secplugin controller purge_install
执行sudo h3c-secplugin controller install或sudo h3c-secplugin controller purge_install时,请确保/root目录下不存在neutron.conf文件,如果存在,请先删除或者移动到其他位置。
(1) 修改neutron.conf配置文件。
a. 通过vi编辑器打开neutron.conf配置文件。
sdn@ubuntu:~$ sudo 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
当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
对于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为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 2. (3)安装控制组件Neutron安全插件。”。
当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) 安装控制组件Neutron安全插件后,在ml2_sec_conf_h3c.ini配置文件中加载插件配置项。修改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
各参数含义如下:
- url:登录统一数字底盘的URL地址(以https://127.0.0.1:30000为例)。
- username:登录统一数字底盘的用户名(以admin为例)。当use_neutron_credential参数取值为True时,不需要配置本参数。
- password:登录统一数字底盘的密码(以Pwd@12345为例)。当use_neutron_credential参数取值为True时,不需要配置本参数。如密码中包含字符“$”,需要在该字符前输入转义符“\”。
- domain:控制组件所在域的域名(以sdn为例)。本参数已废弃。
- timeout:Neutron-server等待控制组件响应的时间,单位为秒(以1800秒为例)。建议本参数的值设置为大于等于1800秒。
- retry:发送连接请求消息的尝试次数(以10为例)。
- white_list:是否和控制组件免认证用户功能配合使用(以False为例)。
- use_neutron_credential:是否使用OpenStack neutron用户名和密码与控制组件通信(以False为例)。
- firewall_force_audit:是否强制开启控制组件上防火墙策略的审计功能。Kilo 2015.1版本的OpenStack本参数缺省值为True;其他版本的OpenStack本参数缺省值为False。取值包括:
- True:不论OpenStack上配置的防火墙策略是否开启审计功能,防火墙策略同步到控制组件上时都强制开启该功能。
- False:OpenStack上配置的防火墙策略同步到控制组件上时,审计状态不变。
- sec_output_json_log:是否将控制组件Neutron安全插件和控制组件通信的REST API消息以JSON格式输出到OpenStack的操作日志文件(以False为例)。
- vendor_rpc_topic:厂商的RPC topic。当其他厂商需要从控制组件Neutron插件获取neutron数据时,需要配置此参数。本参数的取值需要由H3C和其他厂商协商,缺省值为VENDOR_PLUGIN,目前取值包括:
VENDOR_PLUGIN:表示本参数不生效。
DP_PLUGIN:迪普的RPC topic。
- enable_https:支持HTTPS双向认证功能,缺省值为False,目前仅Pike版本OpenStack支持配置本参数。
- neutron_plugin_ca_file:控制组件的CA证书存放位置,建议存放在/usr/share/neutron目录下,目前仅Pike版本OpenStack支持配置本参数(以/etc/neutron/ca.crt为例)。
- neutron_plugin_cert_file:控制组件的Cert证书存放位置,建议存放在/usr/share/neutron目录下,目前仅Pike版本OpenStack支持配置本参数(以/etc/neutron/sna.pem为例)。
- neutron_plugin_key_file:控制组件的Key证书存放位置,建议存放在/usr/share/neutron目录下,目前仅Pike版本OpenStack支持配置本参数(以/etc/neutron/sna.key为例)。
- enable_iam_auth:使能IAM接口认证,当对接统一数字底盘时,插件可配置此项为True,表示使用IAM接口完成认证。缺省值为False。目前仅Mitaka和Newton版本OpenStack支持配置本参数。本字段已废弃。
- enable_firewall_metadata:开启本功能时,CloudOS云平台可向控制组件下发防火墙相关定制字段,如资源池名称等。本参数仅用于对接CloudOS平台时使用。目前仅Pike版本OpenStack支持配置本参数。
- enable_router_nat_without_firewall:未配置防火墙时是否使能NAT功能。默认取值为False,当取值为True时,对于未配置防火墙的租户,如果租户下虚拟路由器已绑定外部网络,将自动创建默认的防火墙资源用于实现NAT功能。目前仅Pike版本OpenStack支持配置此参数。
- enable_firewall_object_group:是否开启插件的防火墙对象组功能,缺省值为False。当取值为True时,云平台可通过插件创建防火墙对象组。目前仅Rocky支持配置此参数。如需使用此功能,还需在云平台上进行适配,适配方式请联系技术支持工程师。
- cloud_region_name:对于单云对接控制组件场景,升级后云平台第一次对接控制组件,并且控制组件侧没有新增租户资源时,可修改cloud_region_name,并且需与控制组件界面中配置名称保持一致,设置为默认云平台。若已在控制组件侧新增租户资源,则cloud_region_name不允许修改。对于多云对接控制组件场景,第一个云平台接入时,接入原则同单云对接控制组件场景。其他云平台接入时,需将不同云平台的cloud_region_name修改为对应云平台的取值,并且与控制组件界面中配置保持一致,使用过程中不允许修改此参数。
(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服务。
sdn@ubuntu:~$ sudo service neutron-server restart
neutron-server stop/waiting
neutron-server start/running, process 4583
(7) 重启h3c-sec-agent服务(若为启用h3c-sec-agent模式)。
sdn@ubuntu:~$ sudo service h3c-sec-agent restart
h3c-sec-agent stop/waiting
h3c-sec-agent start/running, process 4585
(8) 重启octavia-api服务(适用于OpenStack Ussuri版本且需要负载均衡服务)
sdn@ubuntu:~$ sudo systemctl restart octavia-api
(1) 验证控制组件OpenStack软件包是否安装成功。若显示正确的软件版本号,则说明安装成功。
sdn@ubuntu:~$ sudo pip freeze | grep PLUGIN
SeerEngine-DC-SEC-PLUGIN===E3603P01
(2) 验证neutron-server服务是否已开启。若显示neutron-server服务为running状态的运行信息,则说明启动成功。
sdn@ubuntu:~$ sudo service neutron-server status
neutron-server start/running, process 1849
(3) 验证h3c-sec-agent服务是否已开启(若为启用h3c-sec-agent模式)。若显示h3c-sec-agent服务为running状态的运行信息,则说明启动成功。
sdn@ubuntu:~$ sudo service h3c-sec-agent status
h3c-sec-agent start/running, process 1855
(4) 验证octavia-api服务是否已启动(适用于OpenStack Ussuri版本且需要负载均衡服务)。若显示octavia-api服务状态为running,则说明已成功启动。
sdn@ubuntu:~$ sudo 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..
升级控制组件Neutron安全插件时请先卸载旧版本安全插件,然后重新安装新版本安全插件。升级过程中可能造成业务中断,请谨慎操作。
当插件进行跨版本升级时,可能由于不同版本插件的配置文件中参数缺省值不同导致升级前后插件的配置不同。此时,建议用户手动修改相关参数取值以保证升级前后插件配置相同。
(1) 卸载控制组件Neutron安全插件。
¡ 若安全插件配置了防火墙plugin的agent模式:
sdn@ubuntu:~$ sudo h3c-secplugin controller uninstall
Restore config files
Uninstallation complete.
¡ 若安全插件配置了优化开源防火墙plugin的去agent模式(firewall_h3c),此时未安装h3c_sec_agent组件,可以使用如下命令:
sdn@ubuntu:~$ sudo h3c-secplugin controller purge_uninstall
(2) 卸载控制组件OpenStack软件包。
sdn@ubuntu:~$ sudo 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
(3) 重新安装新版本插件,具体方法请参见“在控制节点上安装安全插件”。
(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-1所示。其中部分配置项参数需要废弃,如表6-2所示。
如果升级前控制组件上已配置过OpenStack云对接。升级后,需要在对应OpenStack“操作”区段,单击
按钮,进入修改OpenStack页面。在“安全参数配置”页签确认各项参数,再单击<确定>按钮。
|
升级前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服务端发送完整证书链:开启 |
|
参数 |
说明 |
|
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堆叠模式 |
本功能用于对云平台和控制组件上的防火墙信息进行对比和同步。当前仅Pike版本OpenStack支持配置本功能。
使用命令h3c-secplugin-fw-extension compare --file [绝对路径]文件名.csv进行对比。
· 如不指定“--file [绝对路径]文件名.csv”,则将比较结果保存至默认文件中,默认文件为/var/log/neutron/compare_sec_data-time.csv,其中,time为开始比较的时间。
· 如指定“--file [绝对路径]文件名.csv”,则将比较结果保存在指定的文件中,如不指定绝对路径,则文件为“/var/log/neutron/文件名.csv”。
比较完成后,生成的结果文件中包含以下字段:
· Resource:资源类型名称
· Name:资源名称
· Id:资源ID
· Tenant_id:该资源所属租户ID
· Tenant_name:该资源所属租户名称
· Status:比较结果,取值为:
¡ lost:表示控制组件端缺失,需要增加。
¡ different:表示控制组件端存在但不相同,需要更新。
¡ surplus:表示控制组件端多余,需要删除。
(1) 使用命令h3c-secplugin-fw-extension sync --file比较结果文件名.csv进行同步。如果比较文件在/var/log/neutron/下,可以直接输入文件名,否则请输入绝对路径文件名。
(2) 同步完成后,将生成同步结果文件:/var/log/neutron/sync_sec_data-time.csv,其中,time为开始同步时间。
请勿对比较结果文件的内容进行新增或修改操作。
本功能用于对云平台和控制组件上的负载均衡信息进行对比和同步。
使用命令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”。
使用命令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”。
比较完成后,生成的结果文件中包含以下字段:
· Resource:资源类型名称
· Name:资源名称
· Id:资源ID
· Tenant_id:该资源所属租户ID
· Tenant_name:该资源所属租户名称
· Status:比较结果,取值为:
¡ lost:表示控制组件端缺失,需要增加。
¡ different:表示控制组件端存在但不相同,需要更新。
¡ surplus:表示控制组件端多余,需要删除。
(1) 使用命令h3c-secplugin-lb-extension sync --file比较结果文件名.csv进行同步。如果比较文件在/var/log/neutron/下,可以直接输入文件名,否则请输入绝对路径文件名。
(2) 同步完成后,将生成同步结果文件:/var/log/neutron/sync_sec_lb_data-time.csv,其中,time为开始同步时间。
请勿对比较结果文件的内容进行新增或修改操作。
(1) 使用命令h3c-secplugin-octavia-extension sync --file比较结果文件名.csv进行同步。如果比较文件在/var/log/octavia/下,可以直接输入文件名,否则请输入绝对路径文件名。
(2) 同步完成后,将生成同步结果文件:/var/log/octavia/sync_sec_lb_data-time.csv,其中,time为开始同步时间。
请勿对比较结果文件的内容进行新增或修改操作。
由非融合版本插件升级至融合版本插件时,请按照本章节的步骤进行操作。
将控制组件版本升级至支持融合版本插件的版本。
(1) 卸载控制节点插件。
¡ E3702前的版本
sdn@ubuntu:~$ sudo h3c-vcfplugin controller uninstall
¡ E3702及之后的版本
sdn@ubuntu:~$ sudo h3c-sdnplugin controller uninstall
(2) 卸载计算节点插件。
¡ E3702前的版本
sdn@ubuntu:~$ sudo h3c-vcfplugin compute uninstall
sdn@ubuntu:~$ sudo h3c-vcfplugin openvswitch uninstall
¡ E3702及之后的版本
sdn@ubuntu:~$ sudo h3c-sdnplugin compute uninstall
sdn@ubuntu:~$ sudo h3c-sdnplugin openvswitch uninstall
(3) 在所有节点上卸载插件软件包。
¡ Ubuntu 20.04和22.04操作系统
sdn@ubuntu:~$ sudo pip3 uninstall seerengine-dc-plugin
¡ 其他Ubuntu操作系统
sdn@ubuntu:~$ sudo pip uninstall seerengine-dc-plugin
不同版本的插件卸载命令可能有差异,具体请参见对应版本的插件安装指导。
(1) 安装融合版本插件和安全插件,参见章节“在OpenStack节点上安装Neutron插件和补丁”和“安装安全插件”。
(2) 升级前后可能需要修改的neutron.conf文件配置请参见下表。
表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配置文件。
sdn@ubuntu:~$ sudo 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:1080
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,需要进行删除或者修改文件后缀。否则在下一次升级安全插件时,可能会导致部分安全插件参数被修改或初始化。
非融合版本中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 控制组件页面参数与配置项的对应关系
|
升级前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页面。在“安全参数配置”页签确认各项参数,再单击<确定>按钮。
sdn@ubuntu:~$ sudo service neutron-server restart
本功能用于对云平台和控制组件上的资源信息进行对比和同步。使用本功能前,需要在[自动化>数据中心网络>云及虚拟化对接>OpenStack]页面配置默认云平台。此功能不支持Kilo和Liberty版本OpenStack。
暂不支持如下场景:
· H3C CloudOS的网络Overlay层次化环境。
· 第三方云平台(除苏研云、爱立信云和开源OpenStack外)。
· 扩展资源(vpc-connection、bgpneighbor、exroute、trunk和taas)。仅支持自研Plugin及网络云爱立信Plugin提供的扩展资源。
使用命令h3c-sdnplugin-extension compare --file [绝对路径]文件名.csv进行对比。
· 如不指定“--file [绝对路径]文件名.csv”,则将比较结果保存至默认文件中,默认文件为/var/log/neutron/compare_data-time.csv,其中,time为开始比较的时间。
· 如指定“--file [绝对路径]文件名.csv”,则将比较结果保存在指定的文件中,如不指定绝对路径,则文件为“/var/log/neutron/文件名.csv”。
比较完成后,生成的结果文件中包含以下字段:
· Resource:资源类型名称
· Name:资源名称
· Id:资源ID
· Tenant_id:该资源所属租户ID
· Tenant_name:该资源所属租户名称
· Status:比较结果,取值为:
¡ lost:表示控制组件端缺失,需要增加。
¡ different:表示控制组件端存在但不相同,需要更新。
¡ surplus:表示控制组件端多余,需要删除。
(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为开始同步时间。
· 请勿对比较结果文件的内容进行新增或修改操作。
· 请仔细核验比较结果文件和资源统计信息,避免误操作导致环境异常。
本功能用于对云平台上的vpcconnection和floatingip资源信息进行操作。使用vpcconnection命令行功能前,云平台VPC互通流量过防火墙场景需要配置为非网络云场景。vpcconnection命令行功能不支持Kilo、Liberty、Mitaka、Newton、Ocata版本OpenStack。
使用命令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
使用命令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
登录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@controller:~# h3c-neutron health-check --config-path /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/neutron.conf
登录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
可以通过为apt命令设置HTTP代理的方法解决,具体步骤如下:
(1) 配置网络实现服务器或虚拟机能够正常访问HTTP代理服务器。
(2) 通过vi编辑器打开apt.conf配置文件。如果该配置文件不存在,则新建该文件。
sdn@ubuntu:~$ sudo vi /etc/apt/apt.conf
(3) 按[i]键进入编辑模式,按照如下所示,在打开的apt.conf配置文件中添加HTTP代理信息。添加完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存apt.conf配置文件并退出vi编辑器。
当登录HTTP代理服务器无需用户名和密码时,请按如下格式添加代理信息:
Acquire::http::proxy = http://yourproxyaddress:proxyport
当登录HTTP代理服务器需要用户名和密码时,请按如下格式添加代理信息:
Acquire::http::proxy = http:// username:password@yourproxyaddress:proxyport
¡ username:登录代理服务器的用户名(以sdn为例)。
¡ password:登录代理服务器的密码(以123456为例)。
¡ yourproxyaddress:代理服务器IP地址(以172.25.1.1为例)。
¡ proxyport:代理服务的端口号(以8080为例)。
Acquire::http::proxy "http://sdn:123456@172.25.1.1:8080";
(1) 查看迁移虚机状态,若虚机迁移动作正常回退,状态无异常,虚机业务不受影响,则此虚机无需处理。恢复目的主机后,再进行热迁移操作即可。
(2) 通过资源信息对比功能检查目的主机上是否存在残留map,若存在残留,请评估是否影响业务,如不影响业务,可不删除;如评估影响业务,请联系技术工程师协助删除。
以网卡enp61s0f3为例,解决办法如下:
(1) 查询网卡详细信息,记录bus-info的值。
sdn@ubuntu:~$ 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
(2) 提供以下两种解决方案:
方法一(如此方法命令运行失败,请使用方法二)
a. 执行如下命令。
sdn@ubuntu:~$ sudo ethtool --set-priv-flags enp61s0f3 disable-fw-lldp on
b. 查看disable-fw-lldp状态是否是on。
sdn@ubuntu:~$ ethtool --show-priv-flags enp61s0f3 | grep lldp
disable-fw-lldp : on
c. 上述命令执行后,网卡LLDP报文已可收到,为防止服务器重启此命令失效,需要将此命令写入开机自定义程序启动文件中,已保证服务器重启有效。
d. 打开开机自启文件:
sdn@ubuntu:~$ sudo vi /etc/rc.local
e. 按[i]键进入编辑模式,修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存修改。
ethtool --set-priv-flags enp61s0f3 disable-fw-lldp on
需要注意的是:此命令需配置在exit 0行之上。
方法二
f. 执行命令echo "lldp stop" > /sys/kernel/debug/i40e/bus-info/command,其中,bus-info请输入已记录的网卡对应值,并在“:”前输入转义符“\”。
sdn@ubuntu:~$ sudo -i
sdn@ubuntu:~$ echo "lldp stop" > /sys/kernel/debug/i40e/0000\:3d\:00.3/command
上述命令执行后,网卡LLDP报文已可收到,为防止服务器重启此命令失效,需要将此命令写入开机自定义程序启动文件中,已保证服务器重启有效。
g. 打开开机自启文件:
sdn@ubuntu:~$ sudo vi /etc/rc.local
h. 按[i]键进入编辑模式,添加以下配置,修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存修改。
echo "lldp stop" > /sys/kernel/debug/i40e/0000\:3d\:00.3/command
需要注意的是:此命令需配置在exit 0行之上。
(1) 查看websocket-client工具包是否安装,若未安装,则检查控制组件集群是否出现过重启
(2) 若控制组件集群重启过,则需要重启neutron-server后再进行创建虚拟机实例操作。
(3) 建议安装websocket-client工具包,并使能与控制组件的RPC连接功能,避免因控制组件集群重启导致数据丢失的问题。
热迁移过程中出现的概率丢包问题为开源bug,故需要修改开源代码,以Rocky版本为例,修改内容如下。
修改前可先将代码进行备份。
(1) 所有控制节点(Controller node)执行如下步骤。
a. 修改plugin.py文件。
vi /usr/lib/python2.7/site-packages/neutron/plugins/ml2/plugin.py
按[i]键进入编辑模式,需要修改的开源代码如下图所示。
图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。
sudo service neutron-server restart
(2) 所有计算节点执行(Compute node)执行如下步骤。
a. 修改rpc.py文件。
vi /usr/lib/python2.7/site-packages/neutron/agent/rpc.py
按[i]键进入编辑模式,需要修改的开源代码如下图所示。
图9-2 计算节点需要修改的开源代码
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。
sudo service neutron-openvswitch-agent restart
f. 修改nova.conf文件。
vi /etc/nova/nova.conf
按[i]键进入编辑模式。
[compute]
live_migration_wait_for_vif_plug=true
g. 修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存修改。
h. 执行如下命令重启openstack-nova-compute。
sudo service openstack-nova-compute restart
(1) 先卸载Neutron插件。卸载Neutron插件请参见“(可选)升级控制组件Neutron插件”。
(2) 重新安装Neutron插件,并在安装Neutron插件时指定db_connection参数。
sdn@ubuntu:~$ sudo 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
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!
