• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

H3C SeerEngine-DC OpenStack插件安装指导-Kolla-E37xx-5W701

01-正文

本章节下载 01-正文  (434.26 KB)

docurl=/cn/Service/Document_Software/Document_Center/SDN/Catalog/Data_Center/SeerEngine-DC/Configure/Interoperability_Guides/SeerEngine-DC_OpenStack-Kolla-E37xx/202106/1416994_30005_0.htm

01-正文


1 概述

您可以通过本文了解OpenStack插件的安装过程,本文主要介绍了SeerEngine-DC Neutron插件的安装。

在OpenStack环境中,Neutron(OpenStack网络服务)用来管理所有VNI(Virtual Networking Infrastructure,虚拟网络架构),它负责向OpenStack计算服务管理的设备提供虚拟网络服务。Neutron允许租户创建高级的虚拟业务,包括防火墙(FW)、负载均衡(LB)和虚拟专用网络(VPN)。

SeerEngine-DC Neutron插件是针对SeerEngine-DC推出的符合OpenStack框架要求的Neutron插件,实现了核心插件(Networks、Subnets、Routers和Ports等)和4个扩展插件(L3_Routing、FWaaS、LBaaS和VPNaaS)的全部特性,并负责通过REST API接口将从OpenStack获取的网络配置信息,如租户的网络(Networks)、子网(Subnets)、路由器(Routers)、端口(Ports)、FW、LB、VPN等,同步设置到SeerEngine-DC。

SeerEngine-DC Neutron插件的类型及其功能如下:

·     SeerEngine-DC Neutron Core插件:为租户提供了核心的基础网络通信的能力。

·     SeerEngine-DC Neutron L3_Routing插件:为租户提供了流量在租户内进行三层转发的能力。

·     SeerEngine-DC Neutron FWaaS插件:为租户提供了部署防火墙以保护租户网络的能力。

·     SeerEngine-DC Neutron LBaaS插件:为租户提供了负载均衡的能力。

·     SeerEngine-DC Neutron VPNaaS插件:为租户提供了在公有网络中进行VPN通信的能力。

注意

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

 


2 安装前的准备工作

2.1  硬件配置需求

SeerEngine-DC Neutron插件所需的服务器或虚拟机的硬件配置需求如表2-1所示。

表2-1 硬件配置需求

CPU内核

内存

所需磁盘空间

1核及以上

2GB及以上

5GB及以上

 

2.2  软件配置需求

SeerEngine-DC Neutron插件所需的软件配置需求如表2-2所示。

表2-2 软件配置需求

软件配置需求

备注

OpenStack

当OpenStack使用Kolla-Ansible方式部署时,OpenStack软件版本支持情况如下:

·     Ocata

·     Pike

·     Queens

·     Rocky

 

说明

·     对于融合版本插件(软件包名称格式为SeerEngine_DC_PLUGIN-version-py2.7.egg),安装步骤请参见《H3C SeerEngine-DC OpenStack融合版本插件安装指导》。

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

·     安装OpenStack插件前需要确保OpenStack已正确完成部署,确认各节点的/etc/hosts文件已配置主机名和IP地址的映射、确认OpenStack Neutron扩展服务(neutron-fwaas/neutron-vpnaas/neutron-lbaas)已完成部署。具体部署步骤请参考OpenStack官网上指定OpenStack软件版本的安装指导手册。

 


3 使用Kolla-Ansible部署OpenStack

安装插件前需要先部署OpenStack,具体部署步骤请参考OpenStack官网上指定OpenStack软件版本的安装指导手册。


4 SeerEngine-DC预配置

SeerEngine-DC预配置,只提供SeerEngine-DC的基本配置信息。涉及不同业务场景配置,请参考对应SeerEngine-DC业务场景的典型配置指导。

预配置如表4-1所示。

表4-1 SeerEngine-DC预配置

配置

菜单路径

Fabrics

[基础网络>网络>Fabrics]

VDS

[租户>公共网络设置>虚拟分布式交换机]

地址池

[基础网络>资源>IP地址池]

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

[基础网络>网络> Fabrics]

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

[基础网络>资源>设备资源>物理设备]

[基础网络>资源>设备资源>L4-L7物理资源池]

出口网关

[租户>公共网络设置>出口网关]

 


5 安装过程

目前支持在多个版本的OpenStack上安装SeerEngine-DC Neutron插件。不同版本的OpenStack上使用的SeerEngine-DC Neutron插件的安装包不同,但是安装过程相同。本文安装过程以OpenStack Ocata版本为例。

SeerEngine-DC Neutron插件安装在OpenStack控制节点上。安装插件或补丁前需要在相应的OpenStack节点上安装基础环境,具体方法请参见“5.1  安装基础环境”。

5.1  安装基础环境

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

(1)     更新软件源列表,然后下载并安装Python工具包,以CentOS操作系统为例。

[root@localhost ~]# yum clean all

[root@localhost ~]# yum makecache

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

(2)     安装Runlike工具。

[root@localhost ~]# pip install runlike

(3)     进入neutron_server容器,编辑/etc/hosts文件。添加SeerEngine-DC 上[基础网络>计算域>主机]中所有本OpenStack主机的IP和name映射信息。并添加SeerEngine-DC上[基础网络>设备资源>物理设备]中所有该场景下leaf、spine、border设备的IP和name映射信息。

-h3

5.2  安装/升级SeerEngine-DC Neutron插件

5.2.1  安装SeerEngine-DC Neutron插件

1. 获取SeerEngine-DC Neutron插件安装软件包

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

提示

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

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

 

2. 在OpenStack控制节点上安装SeerEngine-DC Neutron插件

(1)     生成neutron-server 和h3c-agent容器的启动脚本

[root@localhost ~]# runlike neutron_server>docker-neutron-server.sh

[root@localhost ~]# cp docker-neutron-server.sh  docker-h3c-agent.sh

[root@localhost ~]# sed -i 's/neutron-server/h3c-agent/g' docker-h3c-agent.sh

[root@localhost ~]# sed -i 's/neutron_server/h3c_agent/g' docker-h3c-agent.sh

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

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

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

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

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

[DEFAULT]

core_plugin = ml2

service_plugins = h3c_l3_router,firewall,lbaasv2,vpnaas,qos,h3c_vpc_connection

[service_providers]

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

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

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

service_provider=VPC_CONNECTION:H3C:networking_h3c.vpc_connection.h3c_vpc_connection_driver_match_plugin.H3CVpcConnectionMatchPluginDriver:default

注意

·     对于Pike版本插件,负载均衡支持Context类型多资源池时,需要在控制器上预配置名称为dmz或core的资源池,然后修改service_provider配置项为:LOADBALANCERV2:DMZ:networking_h3c.lb.h3c_lbplugin_driver_v2.H3CLbaasv2PluginDMZDriver:default或LOADBALANCERV2:CORE:networking_h3c.lb.h3c_lbplugin_driver_v2.H3CLbaasv2PluginCOREDriver:default。

·     配置项service_plugins中,当虚拟路由器互通的参数值配置为vpc_connection时,对应的配置项service_provider 的值需要配置为:VPC_CONNECTION:H3C:networking_h3c.l3_router.h3c_vpc_connection_driver.H3CVpcConnectionDriver:default。

·     对于Pike版本插件,如出现防火墙策略及规则的下发用时过长,可选择在service_plugins项中将防火墙插件服务由firewall修改为fwaas_h3c。

 

¡     当插件为Ocata版本,请按照如下修改neutron.conf配置文件。

[DEFAULT]

core_plugin = ml2

service_plugins = h3c_sdnplugin.l3_router.h3c_l3_router_plugin.H3CL3RouterPlugin,firewall,neutron_lbaas.services.loadbalancer.plugin.LoadBalancerPluginv2,vpnaas,qos

[service_providers]

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

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

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

[qos]

notification_drivers = message_queue,qos_h3c

注意

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

[database]

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

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

[database]

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

 

各参数含义如下:

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

¡     service_plugins:扩展服务插件加载入口,即加载扩展服务插件到OpenStack。

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

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

注意

·     在neutrone_server配置目录(/etc/kolla/neutron-server/)下,同一service的service_provider只能配置一次,请确保firewall 在neutron.conf配置service_provider后,fwaas_driver.ini中不再配置service_provider。Lbaas和pnaas也遵循同样的配置规则。

·     为确保h3c_agent可以正常加载driver,请将/etc/kolla/neutron-server/fwaas_driver.ini的[fwaas]下的driver修改为networking_h3c.fw.h3c_fwplugin_driver.H3CfwaasDriver。

 

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

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

[root@localhost ~]# vi /etc/kolla/neutron-server/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

各参数含义如下:

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

·     tenant_network_types:租户所属的网络类型,VXLAN必须作为第一个参数。目前只支持租户所属的网络类型外网为VLAN,内网为VXLAN。

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

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

·     network_vlan_ranges:租户外网的VLAN ID取值范围(以physicnet1:1000:2999为例)。

·     vni_ranges:租户内网VXLAN ID取值范(以1:500为例)。

(4)     修改neutron.conf配置文件,增加插件配置项。

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

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

b.     按[i]键进入编辑模式,增加如下所示的配置项,对于配置文件中已存在的配置项,请保留原有配置。修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存配置文件并退出vi编辑器。

[SDNCONTROLLER]

url = http://127.0.0.1:10080

username = admin

password = admin@123

domain = sdn

timeout = 1800

retry = 10

vif_type = ovs

vnic_type = ovs

vhostuser_mode = server

hybrid_vnic = True

ip_mac_binding = True

denyflow_age =300

white_list = False

auto_create_tenant_to_sdnc = True

router_binding_public_vrf = False

enable_subnet_dhcp = True

dhcp_lease_time = 365

firewall_type = GATEWAY

fw_share_by_tenant = False

lb_type = GATEWAY

resource_mode = NFV

resource_share_count = 1

auto_delete_tenant_to_sdnc = True

auto_create_resource = True

nfv_ha = True

vds_name = VDS1

enable_metadata = False

use_neutron_credential = False

enable_security_group = True

disable_internal_l3flow_offload = True

firewall_force_audit = True

enable_l3_router_rpc_notify = False

output_json_log = False

lb_enable_snat = False

empty_rule_action = deny

enable_l3_vxlan = False

l3_vni_ranges = 10000:10100

vendor_rpc_topic = VENDOR_PLUGIN

vsr_descriptor_name = VSR_IRF

vlb_descriptor_name = VLB_IRF

vfw_descriptor_name = VFW_IRF

hierarchical_port_binding_physicnets  =  ANY

hierarchical_port_binding_physicnets_prefix  =  physicnet

network_force_flat = True

directly_external = OFF

directly_external_suffix = DMZ

generate_vrf_based_on_router_name = False

enable_dhcp_hierarchical_port_binding = False

enable_multi_segments = False

enable_https = False

neutron_plugin_ca_file =

neutron_plugin_cert_file =

neutron_plugin_key_file =

router_route_type = None

enable_router_nat_without_firewall = False

cgsr_fw_context_limit = 10

force_vip_port_device_owner_none = False

cloud_identity_mode = disable

custom_cloud_name = openstack-1

enable_multi_gateways = False

tenant_gateway_name = None

tenant_gw_selection_strategy = match_first

enable_iam_auth = True

enable_sdnc_rpc = False

sdnc_rpc_url = ws://99.0.82.55:8080

sdnc_rpc_ping_interval = 60

websocket_fragment_size = 102400

lb_member_slow_shutdown = False

enable_network_l3vni = False

各参数含义如下:

·     url:登录SNA Center的URL地址(以http://127.0.0.1:10080为例)。

·     username:登录SNA Center的用户名(以admin为例)。当use_neutron_credential参数取值为True时,不需要配置本参数。

·     password:登录SNA Center的密码(以admin@123为例)。当use_neutron_credential参数取值为True时,不需要配置本参数。

·     domain:SeerEngine-DC所在域的域名(以sdn为例)。

·     timeout:Neutron-server等待SeerEngine-DC响应的时间,单位为秒(以1800秒为例)。建议本参数的值设置为大于等于1800秒。

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

·     vif_type:默认支持的虚拟机网卡类型。取值范围为ovs和vhostuser(用于OVS DPDK方案)。当取值为vhostuser时,可以设置vhostuser_mode参数。仅Pike版本插件支持配置本参数。

·     vnic_type:默认支持的虚拟机网卡类型,取值包括ovs和vhostuser 。仅Ocata(不含)之前的版本支持配置本参数。

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

·     hybrid_vnic:是否开启OpenStack VLAN网络映射到SeerEngine-DC VXLAN网络的功能(以True为例)。

·     ip_mac_binding:是否开启IP和MAC绑定功能(以False为例)。

·     denyflow_age:VDS防欺骗流表项的老化时间,取值范围为1~3600的整数,单位为秒(以300秒为例)。

·     white_list:是否和SeerEngine-DC免认证用户功能配合使用(以False为例)。

·     auto_create_tenant_to_sdnc:是否开启在SeerEngine-DC上自动创建租户的功能(以True为例)。

·     router_binding_public_vrf:创建虚拟路由器时是否配置使用公网VRF,对于弱控组网,不支持配置为True(以False为例)。

·     enable_subnet_dhcp:创建子网时是否开启DHCP功能(以True为例)。

·     dhcp_lease_time:DHCP地址池中分配给子网的IP地址的租约有效期限,单位为天(以365天为例)。

·     firewall_type:在SeerEngine-DC上创建的防火墙模式,取值包括:

¡     CGSR:以Context承载的网关服务型防火墙。每个网关服务型防火墙单独使用一个Context。仅resource_mode取值为CORE_GATEWAY时支持配置本模式。

¡     CGSR_SHARE:以Context承载的网关服务型防火墙。不同租户下的网关服务型防火墙共用同一个Context。仅resource_mode取值为CORE_GATEWAY时支持配置本模式。

¡     CGSR_SHARE_BY_COUNT:以Context承载的网关服务型防火墙。当Context数量达到cgsr_fw_context_limit指定的阈值后,将进入资源共享模式。仅resource_mode取值为CORE_GATEWAY时本取值有效;仅Pike版本支持配置本模式。

¡     NFV_CGSR:以VNF承载的网关服务型防火墙。每个网关服务型防火墙单独使用一个VNF。仅resource_mode取值为CORE_GATEWAY时支持配置本模式。

·     fw_share_by_tenant:当防火墙创建模式为CGSR_SHARE时,是否开启单个租户独享一个网关服务型防火墙Context,并且租户内服务资源共享该Context(以False为例)。

·     lb_type:在SeerEngine-DC上创建的负载均衡器模式,取值包括:

¡     CGSR:以Context承载的网关服务型负载均衡器。同一租户下的网关服务型负载均衡器共用同一个Context,不同租户下的网关服务型负载均衡器使用不同的Context。仅resource_mode取值为CORE_GATEWAY时支持配置本模式。

¡     CGSR_SHARE:以Context承载的网关服务型负载均衡器。不同租户下的网关服务型负载均衡器共用同一个Context。仅resource_mode取值为CORE_GATEWAY时支持配置本模式。

¡     NFV_CGSR:以VNF承载的网关服务型负载均衡器。同一租户下的网关服务型负载均衡器共用同一个VNF,不同租户下的网关服务型负载均衡器使用不同的VNF。仅resource_mode取值为CORE_GATEWAY时支持配置本模式。

·     resource_mode:在SeerEngine-DC上创建的资源类型,取值包括:

¡     CORE_GATEWAY:网关服务资源。

¡     NFV:VNF资源。本参数已废弃。

·     resource_share_count:表示资源节点可被资源共享的次数。取值范围为1~65535的整数,缺省值为1,表示不共享。

·     auto_delete_tenant_to_sdnc:是否开启从SeerEngine-DC上自动删除租户的功能(以True为例)。

·     auto_create_resource:是否开启自动创建资源的功能(以True为例)。

·     nfv_ha:NFV和NFV_SHARE类型的资源是否支持堆叠(以True为例)。

·     vds_name:VDS(Virtual Distributed Switch,虚拟分布式交换机)名称(以VDS1为例)。当在SeerEngine-DC上删除并重新创建相同名称的VDS后,请重启OpenStack控制节点的neutron-server服务和h3c-agent服务使配置生效。

·     enable_metadata:是否开启OpenStack的metadata功能(以False为例)。开启本功能时,需配置enable_l3_router_rpc_notify参数为True。

·     use_neutron_credential:是否使用OpenStack neutron用户名和密码与SeerEngine-DC通信(以False为例)。

·     enable_security_group:是否开启下发OpenStack的安全组规则到SeerEngine-DC的功能(以True为例)。

·     disable_internal_l3flow_offload:是否开启东西向流量通过网关进行转发的功能(以True为例)。

·     firewall_force_audit:是否强制开启SeerEngine-DC上防火墙策略的审计功能。Kilo 2015.1版本的插件本参数缺省值为True;其他版本的插件本参数缺省值为False。取值包括:

¡     True:不论OpenStack上配置的防火墙策略是否开启审计功能,防火墙策略同步到SeerEngine-DC上时都强制开启该功能。

¡     False:OpenStack上配置的防火墙策略同步到SeerEngine-DC上时,审计状态不变。

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

·     output_json_log:是否将SeerEngine-DC Neutron插件和SeerEngine-DC通信的REST API消息以JSON格式输出到OpenStack的操作日志文件(以False为例)。

·     lb_enable_snat:是否开启SeerEngine-DC上负载均衡器的源IP地址转换功能(以False为例)。

·     empty_rule_action:设置SeerEngine-DC上安全策略的空规则行为,取值包括deny和permit。

·     enable_l3_vxlan:是否开启SeerEngine-DC上不同虚拟路由器间的三层流量通过L3VNI(三层VXLAN ID)标识的功能(以False为例)。

·     l3_vni_ranges:L3VNI的取值范围(以10000:10100为例)。

·     vendor_rpc_topic:厂商的RPC topic。当其他厂商需要从SeerEngine-DC Neutron插件获取neutron数据时,需要配置此参数。本参数的取值需要由H3C和其他厂商协商,缺省值为VENDOR_PLUGIN,目前取值包括:

¡     VENDOR_PLUGIN:表示本参数不生效。

¡     DP_PLUGIN:迪普的RPC topic。

·     vsr_descriptor_name:通过VNFM3.0创建VNF虚拟网关资源时使用的VNF Descriptor名称(以VSR_IRF为例)。仅resource_mode取值为NFV时支持配置本参数,且本参数的取值必须与控制器的VNFM模块上已配置的指定VNF Descriptor名称保持一致。

·     vlb_descriptor_name:通过VNFM3.0创建虚拟负载均衡资源时使用的VNF Descriptor名称(以VLB_IRF为例)。仅resource_mode取值为NFV时支持配置本参数,且本参数的取值必须与控制器的VNFM模块上已配置的指定VNF Descriptor名称保持一致。

·     vfw_descriptor_name:通过VNFM3.0创建虚拟防火墙资源时使用的VNF Descriptor名称(以VFW_IRF为例)。仅resource_mode取值为NFV时支持配置本参数,且本参数的取值必须与控制器的VNFM模块上已配置的指定VNF Descriptor名称保持一致。

·     hierarchical_port_binding_physicnets:OpenStack进行层次化端口绑定时选择VLAN物理网络的策略,取值包括ANY和PREFIX,缺省值为ANY。

¡     ANY:从所有VLAN物理网络中选择一个用于分配VLAN ID。

¡     PREFIX:从所有匹配指定前缀的VLAN物理网络中选择一个用于分配VLAN ID。

·     hierarchical_port_binding_physicnets_prefix:匹配的VLAN物理网络名称前缀,缺省值为physicnet。仅当hierarchical_port_binding_physicnets取值为PREFIX时,本参数生效。目前仅Ocata和Pike版本插件支持配置本参数。

·     network_force_flat:是否开启强制转换外部网络为Flat网络的功能(以True为例)。当外部网络类型为VXLAN时,仅支持设置本参数为True。

·     directly_external:出外网流量是否通过网关直接转发到外网,缺省值为OFF。当directly_external取值为ANY时,外部网络必须为VLAN类型且network_force_flat必须为False。本参数的取值包括:

¡     ANY:出外网流量通过网关直接转发到外网。

¡     OFF:出外网流量通过网关转发到防火墙,再由防火墙转发到外网。

¡     SUFFIX:通过匹配虚拟路由器名称后缀决定虚拟路由器出外网流量的转发方式。在directly_external_suffix参数中配置匹配的虚拟路由器名称后缀,匹配该名称后缀的虚拟路由器将通过网关直接转发流量外网,不匹配该名称后缀的虚拟路由器将通过网关转发到防火墙,再由防火墙转发到外网。

·     directly_external_suffix:匹配的虚拟路由器名称后缀(以DMZ为例)。仅当directly_external取值为SUFFIX时,本参数生效。

·     generate_vrf_based_on_router_name:是否将OpenSatck上配置的虚拟路由器名称作为VRF名称并下发给SeerEngine-DC,缺省值为False(以False为例)。当取值为True时,请确保OpenStack上配置的虚拟路由器名称符合如下规范:最长31个字符,区分大小写,仅支持字母和数字。

·     enable_dhcp_hierarchical_port_binding:使能DHCP端口层次化功能,缺省值为False,目前仅Pike版本插件支持配置本参数。

·     enable_multi_segments:是否使能多出口功能,取值为True时,支持虚拟路由器通过多个出口网关访问外网,缺省值为False,。如需使能多出口功能,需要配置本字段为True,且配置项network_force_flat需配置为False,同时在OpenStack控制节点上修改/etc/neutron/plugins/ml2/ml2_conf.ini文件,将[ml2_type_vlan]中的network_vlan_ranges名称配置为控制器出口网关的名称。目前仅Pike版本插件支持配置本参数。

·     enable_https:支持HTTPS双向认证功能,缺省值为False,目前仅Pike、Mitaka和Newton版本插件支持配置本参数。

·     neutron_plugin_ca_file:控制器的CA证书存放位置,建议存放在/usr/share/neutron目录下,目前仅Pike、Mitaka和Newton版本插件支持配置本参数。

·     neutron_plugin_cert_file:控制器的Cert证书存放位置,建议存放在/usr/share/neutron目录下,目前仅Pike、Mitaka和Newton版本插件支持配置本参数。

·     neutron_plugin_key_file :控制器的Key证书存放位置,建议存放在/usr/share/neutron目录下,目前仅Pike、Mitaka和Newton版本插件支持配置本参数。

·     router_route_type:路由表项类型。取值包括None、401和402,缺省值为None。目前仅Pike版本插件支持配置此参数。

¡     None:表示普通路由。

¡     401:表示该路由是扩展的路由,且下一跳是上线的虚拟端口IP地址。

¡     402:表示该路由是扩展的路由,且下一跳是非上线的虚拟端口IP地址。

·     enable_router_nat_without_firewall:未配置防火墙时是否使能NAT功能。默认取值为False,当取值为True时,对于未配置防火墙的租户,如果租户下虚拟路由器已绑定外部网络,将自动创建默认的防火墙资源用于实现NAT功能。目前仅Pike版本插件支持配置此参数。

·     cgsr_fw_context_limit:以Context承载的网关资源型防火墙的Context数量阈值,取值为整数。当创建的Context数量达到此阈值时,则开启资源共享模式,仅当firewall_type取值为CGSR_SHARE_BY_COUNT时本参数有效。仅Pike版本支持配置此参数。

·     force_vip_port_device_owner_none:是否支持LB vport device_owner字段,当取值为False时,支持下发此字段,适用于LB紧耦合方案;当取值为True时,不支持下发此字段,适用于LB松耦合方案,缺省值为False。

·     cloud_identity_mode:是否开启多云平台功能。取值为disable(默认值)、region和custom。目前仅Rocky版本插件支持配置此参数。

¡     disable:插件下发资源到控制器时不携带"cloud_region_name"字段。

¡     region:插件下发资源到控制器时携带"cloud_region_name"字段,值为云平台的region name,多云平台对接控制器时不同的云平台需要配置为不同的region name。

¡     custom:插件下发资源到控制器时携带"cloud_region_name"字段,值为插件"custom_cloud_name"配置项的值,多云对接控制器时不同的云平台需要配置插件"custom_cloud_name"配置项为不同值。

·     custom_cloud_name:插件配置cloud_region_name,缺省值为openstack-1。仅当cloud_identity_mode取值为custom时本参数生效。目前仅Rocky支持配置此参数。

·     enable_multi_gateways:为租户使能多出口网关功能。当OpenStack环境未配置Segments时,取值为True时,可通过支持不同虚拟路由器通过不同的出口网关访问外网,从而实现租户的多出口功能。缺省值为False。目前仅Pike、Queens和Rocky版本插件支持配置本参数。

·     tenant_gateway_name:指定租户绑定的出口网关名称,默认为None,当配置项tenant_gw_selection_strategy配置为“match_gateway_name”时有效,此时需配置为控制器侧已有出口网关的网关名称。目前仅Pike、Rocky支持配置此参数。

·     tenant_gw_selection_strategy:租户出口网关选择策略,默认为“match_first”,即选取第一个出口网关;当配置为“match_gateway_name”时,与配置项tenant_gateway_name同时生效。目前仅Pike、Rocky支持配置此参数。

·     enable_iam_auth:使能IAM接口认证,当对接SNA Center时,插件可配置此项为True,表示使用IAM接口完成认证。缺省值为False。目前仅Mitaka和Newton版本插件支持配置本参数。

·     enable_sdnc_rpc:在DHCP逃生场景下,是否使能插件与控制器的RPC连接功能,默认值为False。目前仅Pike版本插件支持配置此参数。

·     sdnc_rpc_url:控制器的RPC接口URL,目前仅支持websocket类型接口,默认值为“ws://127.0.0.1:1080”。

·     sdnc_rpc_ping_interval:向控制器发送RPC ping心跳报文的时间间隔,单位为秒,缺省为60秒。

·     websocket_fragment_size:在DHCP逃生场景下,插件向控制器发送websocket消息分片的每片大小,单位为Byte,取值范围为不小于1024的整数。缺省值为102400,配置为1024表示不分片。

·     lb_member_slow_shutdown:创建LB实服务器时是否开启慢宕功能,当取值为True时,表示开启,False表示不开启,缺省值为False。

·     enable_network_l3vni:创建外部网络时是否下发L3VNI,该配置仅在enable_l3_vxlan配置为True时才可生效。当取值为True时,表示开启,False表示不开启,缺省值为False。

(5)     当white_list定制为True时,则需要完成如下步骤:

·     删除ml2_conf_h3c.ini配置文件中username、password和domain这三个字段。

·     在控制器上添加免认证用户,将免认证IP填写为Neutron-server所在主机的IP地址,“角色”选择“管理员”。

(6)     当binddefaultrouter定制为True时,需要在SeerEngine-DC上配置默认虚拟路由器,步骤为:在SeerEngine-DC的Web页面中单击[租户>全部租户]菜单项,在租户页面列表中单击default租户的名称,进入租户网络&服务页面;再单击[您的网络>虚拟路由器]菜单项,进入虚拟路由器配置页面,单击<增加>按钮,在弹出的页面中配置名称为defaultRouter,在“高级配置”页签中选择“使用公网VRF”,单击<应用>按钮完成操作。

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

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

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

[keystone_authtoken]

admin_user = neutron

admin_password = 123456

参数含义为:

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

¡     admin_password:在OpenStack上进行Keystone认证使用的管理用户密码(以123456为例)。

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

(8)     拷贝插件安装包到neutron_server容器:

[root@localhost ~]# docker cp SeerEngine_DC_PLUGIN-D3601_ocata_2017.1-py2.7.egg neutron_server:/

(9)     进入neutron_server容器,安装插件软件包。

[root@localhost ~]# neutron_server_image=$(docker ps --format {{.Image}} --filter name=neutron_server)

[root@localhost ~]# docker exec -it -u root --name $neutron_server_image bash

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

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

说明

执行h3c-sdnplugin controller install命令时可能会报错,请忽略。

 

(10)     生成neutron-server和h3c-agent容器镜像。

[root@localhost ~]# neutron_server_image=$(docker ps --format {{.Image}} --filter name=neutron_server)

[root@localhost ~]# h3c_agent_image=$(echo $neutron_server_image | sed 's/neutron-server/h3c-agent/')

[root@localhost ~]# docker commit $neutron_server_image kolla/neutron-server-h3c

[root@localhost ~]# docker rm -f neutron_server

[root@localhost ~]# docker tag $neutron_server_image kolla/neutron-server-origin

[root@localhost ~]# docker rmi $neutron_server_image

[root@localhost ~]# docker tag kolla/neutron-server-h3c $neutron_server_image

[root@localhost ~]# docker tag kolla/neutron-server-h3c $h3c_agent_image

[root@localhost ~]# docker rmi kolla/neutron-server-h3c

(11)     拷贝neutron-server配置至h3c-agent目录,并修改配置。

[root@localhost ~]# cp -pR /etc/kolla/neutron-server /etc/kolla/h3c-agent

[root@localhost ~]# sed -i 's/neutron-server/h3c-agent/g' /etc/kolla/h3c-agent/config.json

(12)     启动neutron-server容器和h3c-agent容器。

[root@localhost ~]# source docker-neutron-server.sh

[root@localhost ~]# source docker-h3c-agent.sh

(13)     查看容器启动状态,显示为Up表示已启动。

[root@localhost ~]# docker ps --filter "name=neutron_server"

CONTAINER ID        IMAGE                                      COMMAND                  CREATED             STATUS              PORTS               NAMES

289e4e132a9b        kolla/centos-source-neutron-server:ocata   "dumb-init --single-?   1 minutes ago        Up 1 minutes                              neutron_server

[root@localhost ~]# docker ps --filter "name=h3c_agent"

CONTAINER ID        IMAGE                                      COMMAND                  CREATED             STATUS              PORTS               NAMES

c334f7ec9857        kolla/centos-source-h3c-agent:ocata   "dumb-init --single-?   1 minutes ago        Up 1 minutes                              h3c_agent

5.2.2  升级SeerEngine-DC Neutron插件

升级SeerEngine-DC Neutron插件时重新安装新版本插件即可,具体方法请参见“5.2.1  安装SeerEngine-DC Neutron插件”。升级过程中可能造成业务中断,请谨慎操作。

注意

当插件进行版本升级时,因Kolla环境无法自动继承插件配置项,故在升级新版本插件前,请先对配置文件“/etc/kolla/neutron-server/neutron.conf”和“/etc/kolla/neutron-server/ml2_conf.ini”的配置信息进行备份,升级插件后请根据备份的配置手动修改相关参数取值以保证升级前后插件配置相同。

 

6 扩展功能

6.1  配置网络节点的Metadata服务

开源OpenStack支持VM通过DHCP和L3 Gateway两种方式从网络节点获取Metadata数据,我司当前的Metadata方案仅支持DHCP方式。当使用我司的Metadata方案时,请按如下步骤配置网络节点的Metadata服务。

1. 按照OpenStack安装指导正确配置Metadata服务

OpenStack安装指导请从OpenStack官网下载,请参照该手册正确配置网络节点的Metadata服务。

2. 修改网络节点通过DHCP方式提供Metadata服务

(1)     通过vi编辑器打开dhcp_agent.ini配置文件。

[root@network ~]# vi /etc/kolla/neutron-dhcp-agent/dhcp_agent.ini

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

[DEFAULT]

force_metadata = True

参数含义如下:

·     force_metadata:强制网络节点通过DHCP方式提供Metadata服务。

(3)     重启dhcp-agent容器。

[root@network ~]# docker restart neutron_dhcp_agent


7 常见问题解答

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

2. 插件安装成功后,与云平台对接出现异常时应该如何处理?

按照本文档中的步骤进行了正确的配置和安装后,对接云平台时出现问题时,请联系云平台厂商定位是否云平台侧的配置存在问题,排除云平台侧问题后,如仍然存在问题,请联系售后工程师进行处理。

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们