01-正文
本章节下载: 01-正文 (188.29 KB)
在OpenStack环境中,Neutron(OpenStack网络服务)用来管理所有VNI(Virtual Networking Infrastructure,虚拟网络架构),它负责向OpenStack计算服务管理的设备提供虚拟网络服务。Neutron允许租户创建高级的虚拟业务,包括防火墙(FW)、负载均衡(LB)和虚拟专用网络(VPN)。
VCF Neutron插件是针对VCF控制器推出的符合OpenStack框架要求的Neutron插件,实现了核心插件(Networks、Subnets和Ports等)和4个扩展插件(L3_Routing、FWaaS、LBaaS和VPNaaS)的全部特性,并负责通过REST API接口将从OpenStack获取的网络配置信息,如租户的网络(Networks)、子网(Subnets)、路由器(Routers)、端口(Ports)、FW、LB、VPN等,同步设置到VCF控制器。
VCF Neutron插件的类型及其功能如下:
· VCF Neutron Core插件:为租户提供了核心的基础网络通信的能力。
· VCF Neutron L3_Routing插件:为租户提供了流量在租户内进行三层转发的能力。
· VCF Neutron FWaaS插件:为租户提供了部署防火墙以保护租户网络的能力。
· VCF Neutron LBaaS插件:为租户提供了负载均衡的能力。
· VCF Neutron VPNaaS插件:为租户提供了在公有网络中进行VPN通信的能力。
VCF Neutron插件所需的服务器或虚拟机的硬件配置需求如表2-1所示。
CPU内核 |
内存 |
所需磁盘空间 |
1核及以上 |
2GB及以上 |
5GB及以上 |
VCF Neutron插件所需的软件配置需求如表2-2所示。
软件配置需求 |
备注 |
OpenStack |
支持OpenStack软件版本juno 2014.2、操作系统SUSE Linux Enterprise Server 11 SP3 (x86_64) |
· 安装VCF Neutron插件前需要先访问互联网安装基础环境,所以请确保在安装过程中,系统能够正常访问互联网。
· 安装VCF Neutron插件前需要确保OpenStack已正确完成部署,例如确认各节点的/etc/hosts文件已配置主机名和IP地址的映射。关于OpenStack的部署,具体请参考OpenStack官网上指定OpenStack软件版本的安装指导手册。
VCF Neutron插件安装在OpenStack控制节点上。安装插件前需要在相应的OpenStack节点上安装基础环境,具体方法请参见“3.1 安装基础环境”。
安装插件前,需先安装基础环境,即在线下载并安装Python工具包。
[root@localhost ~]# zypper install –y python-pip python-setuptools
VCF Neutron插件软件包打包在VCF OpenStack软件包中,访问网址http://www.h3c.com/cn/Software_Download,依次点击“SDN -> H3C Virtual Converged Framework控制器”,下载所需版本的VCF OpenStack软件包,并将VCF OpenStack软件包拷贝至服务器或虚拟机上的待安装目录下,或通过FTP、TFTP、SCP等文件传输协议将软件包上传到指定目录。
· 使用FTP、TFTP方式上传时,请选择binary模式(二进制模式)传输,以免损坏软件包。
· 安装过程中,修改配置文件时如果参数后边括号有“以XXX为例”的说明,表示该参数取值可以根据用户需求改变,否则不能改变。
(1) 进入VCF OpenStack软件包(.egg文件)的存放路径(以路径/root为例),安装VCF OpenStack软件包。软件包的名称格式为VCF_CONTROLLER_PLUGIN-version1_version2-py2.7.egg,其中version1为软件包版本号,version2为OpenStack版本号。
[root@localhost ~]# easy_install --no-deps VCF_CONTROLLER_PLUGIN-D2156_juno_2014.2-py2.7.egg
Processing VCF_CONTROLLER_PLUGIN-D2156_juno_2014.2-py2.7.egg
creating /usr/local/lib64/python2.6/site-packages/VCF_CONTROLLER_PLUGIN-D2156_juno_2014.2-py2.7.egg
Extracting VCF_CONTROLLER_PLUGIN-D2156_juno_2014.2-py2.7.egg to /usr/local/lib64/python2.6/site-packages
Adding VCF-CONTROLLER-PLUGIN D2156-juno-2014.2 to easy-install.pth file
Installing h3c-vcfplugin script to /usr/local/bin
Installing h3c-agent script to /usr/local/bin
Installed /usr/local/lib64/python2.6/site-packages/VCF_CONTROLLER_PLUGIN-D2156_juno_2014.2-py2.7.egg
Processing dependencies for VCF-CONTROLLER-PLUGIN==D2156-juno-2014.2
Finished processing dependencies for VCF-CONTROLLER-PLUGIN==D2156-juno-2014.2
--no-deps参数表示忽略安装过程中软件包的依赖关系,如果不指定本参数,可能导致安装失败。
(2) 安装VCF Neutron插件。
[root@localhost ~]# h3c-vcfplugin controller install
(3) 通过vi编辑器打开neutron.conf配置文件。
[root@localhost ~]# vi /etc/neutron/neutron.conf
(4) 按[i]键进入编辑模式,按照如下所示,修改neutron.conf文件的配置。
[DEFAULT]
core_plugin = ml2
service_plugins = h3c_vcfplugin.l3_router.h3c_l3_router_plugin.H3CL3RouterPlugin,firewall,lbaas,vpnaas
[service_providers]
service_provider=FIREWALL:H3C:h3c_vcfplugin.fw.h3c_fwplugin_driver.H3CFwaasDriver:default
service_provider=LOADBALANCER:H3C:h3c_vcfplugin.lb.h3c_lbplugin_driver.H3CLbaasPluginDriver:default
service_provider=VPN:H3C:h3c_vcfplugin.vpn.h3c_vpnplugin_driver.H3CVpnPluginDriver:default
各参数含义如下:
· core_plugin:核心插件加载入口,即加载核心插件ml2到OpenStack。
· service_plugins:扩展服务插件加载入口,即加载扩展服务插件到OpenStack。
· service_provider:各种服务插件的路径。
(5) 修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存neutron.conf文件并退出vi编辑器。
:wq
(6) 通过vi编辑器打开ml2_conf.ini配置文件。
[root@localhost ~]# vi /etc/neutron/plugins/ml2/ml2_conf.ini
(7) 按[i]键进入编辑模式,按照如下所示,修改ml2_conf.ini文件的配置。
[ml2]
type_drivers = vxlan,vlan
tenant_network_types = vxlan,vlan
mechanism_drivers = ml2_h3c
extension_drivers = ml2_extension_h3c
[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驱动名称。
· extension_drivers:ml2扩展驱动名称。
· network_vlan_ranges:租户外网的VLAN ID取值范围(以physicnet1:1000:2999为例)。
· vni_ranges:租户内网的VXLAN ID取值范围(以1:500为例)。
(8) 修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存ml2_conf.ini文件并退出vi编辑器。
:wq
(9) 通过vi编辑器打开local_settings配置文件,按[i]键进入编辑模式,在OPENSTACK_NEUTRON_NETWORK配置项,开启OpenStack WEB的LB/FW/VPN功能配置页面。
[root@localhost ~]# vi /etc/openstack-dashboard/local_settings
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',
}
各参数含义如下:
· enable_lb:是否开启OpenStack负载均衡功能配置页面(以True为例)。
· enable_firewall:是否开启OpenStack防火墙功能配置页面(以True为例)。
· enable_vpn:是否开启OpenStack VPN功能配置页面(以True为例)。
(10) 修改添加完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存local_settings文件并退出vi编辑器。
:wq
(11) 通过vi编辑器打开ml2_conf_h3c.ini配置文件。
[root@localhost ~]# vi /etc/neutron/plugins/ml2/ml2_conf_h3c.ini
(12) 按[i]键进入编辑模式,按照如下所示,修改ml2_conf_h3c.ini文件配置。
[VCFCONTROLLER]
url = https://127.0.0.1:8443
username = sdn
password = skyline123
domain = sdn
timeout = 300
retry = 10
vnic_type=ovs
hybrid_vnic = True
default_tenant_mode = False
ip_mac_binding = False
denyflow_age =300
white_list = False
binddefaultrouter = False
auto_create_tenant_to_vcfc = True
router_binding_public_vrf = False
enable_subnet_dhcp = True
dhcp_lease_time = 365
firewall_type = SERVICE_CHAIN
lb_type = GATEWAY
resource_mode = NFV
auto_delete_tenant_to_vcfc = 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
vendor_rpc_topic = VENDOR_PLUGIN
各参数含义如下:
· url:登录VCF控制器的URL地址(以https://127.0.0.1:8443为例)。
· username:登录VCF控制器的用户名(以sdn为例)。当use_neutron_credential参数取值为True时,不需要配置本参数。
· password:登录VCF控制器的密码(以skyline123为例)。当use_neutron_credential参数取值为True时,不需要配置本参数。
· domain:VCF控制器所在域的域名(以sdn为例)。
· timeout:openstack-neutron等待VCF控制器响应的时间,单位为秒(以300秒为例)。
· retry:发送连接请求消息的尝试次数(以10为例)。
· vnic_type:默认支持的虚拟机网卡类型(以ovs为例)。
· hybrid_vnic:是否开启OpenStack VLAN网络映射到VCF控制器VXLAN网络的功能(以True为例)。
· default_tenant_mode:是否开启默认租户模式,开启后所有租户都使用默认租户的VNF资源(以False为例)。
· ip_mac_binding:是否开启IP和MAC绑定功能(以False为例)。
· denyflow_age:VDS防欺骗流表项的老化时间,取值范围为1~3600的整数,单位为秒(以300秒为例)。
· white_list:是否和VCF控制器免认证用户功能配合使用(以False为例)。
· binddefaultrouter:是否开启将网络绑定到VCF控制器的defaultRouter功能(以False为例)。
· auto_create_tenant_to_vcfc:是否开启在VCF控制器上自动创建租户的功能(以True为例)。
· router_binding_public_vrf:创建虚拟路由器时是否配置使用公网VRF(以False为例)。
· enable_subnet_dhcp:创建子网时是否开启DHCP功能(以True为例)。
· dhcp_lease_time:DHCP地址池中分配给子网的IP地址的租约有效期限,单位为天(以365天为例)。
· firewall_type:在VCF控制器上创建的防火墙模式,取值包括:
¡ SERVICE_CHAIN:服务链型防火墙。仅resource_mode取值为NFV时支持配置本模式。
¡ CGSR:网关服务型防火墙。每个网关服务型防火墙单独使用一个Context。仅resource_mode取值为CORE_GATEWAY时支持配置本模式。
· lb_type:在VCF控制器上创建的负载均衡器模式,取值包括:
¡ GATEWAY:网关型负载均衡器。仅resource_mode取值为NFV时支持配置本模式。
¡ SERVICE_CHAIN:服务链型负载均衡器。同一租户下的服务链型负载均衡器共用同一个VNF,不同租户下的服务链型负载均衡器使用不同的VNF。仅resource_mode取值为NFV时支持配置本模式。
¡ CGSR:网关服务型负载均衡器。同一租户下的网关服务型负载均衡器共用同一个Context,不同租户下的网关服务型负载均衡器使用不同的Context。仅resource_mode取值为CORE_GATEWAY时支持配置本模式。
· resource_mode:在VCF控制器上创建的资源类型,取值包括:
¡ SELF_GATEWAY:独立网关资源。
¡ NFV:VNF资源。
¡ CORE_GATEWAY:网关服务资源。
· auto_delete_tenant_to_vcfc:是否开启从VCF控制器上自动删除租户的功能(以True为例)。
· auto_create_resource:是否开启自动创建资源的功能(以True为例)。
· nfv_ha:NFV类型的资源是否支持堆叠(以True为例)。
· vds_name:VDS(Virtual Distributed Switch,虚拟分布式交换机)名称(以VDS1为例)。当在VCF控制器上删除并重新创建相同名称的VDS后,请重启OpenStack控制节点的neutron-server服务和h3c-agent服务使配置生效。
· enable_metadata:是否开启OpenStack的metadata功能(以False为例)。开启本功能时,需配置enable_l3_router_rpc_notify参数为True。
· use_neutron_credential:是否使用OpenStack neutron用户名和密码与VCF控制器通信(以False为例)。
· enable_security_group:是否开启下发OpenStack的安全组规则到VCF控制器的功能(以True为例)。
· disable_internal_l3flow_offload:是否开启东西向流量通过网关进行转发的功能(以True为例)。
· firewall_force_audit:是否强制开启VCF控制器上防火墙策略的审计功能(以True为例)。如果配置为True,不论OpenStack上配置的防火墙策略是否开启审计功能,防火墙策略同步到VCF控制器上时都强制开启该功能;如果配置为False,OpenStack上配置的防火墙策略同步到VCF控制器上时,审计状态不变。
· enable_l3_router_rpc_notify:是否开启三层路由事件通过RPC通知的机制(以False为例)。
· output_json_log:是否将VCF Neutron插件和VCF控制器通信的REST API消息以JSON格式输出到OpenStack的操作日志文件(以False为例)。
· lb_enable_snat:是否开启VCF控制器上负载均衡器的源IP地址转换功能(以False为例)。
· empty_rule_action:设置VCF控制器上安全策略的空规则行为。目前仅支持deny。
· vendor_rpc_topic:厂商的RPC topic。当其他厂商需要从VCF Neutron插件获取neutron数据时,需要配置此参数。本参数的取值需要由H3C和其他厂商协商,缺省值为VENDOR_PLUGIN,目前取值包括:
¡ VENDOR_PLUGIN:表示本参数不生效。
¡ DP_PLUGIN:迪普的RPC topic。
(13) 修改完成后,按[ESC]键退出编辑模式,再输入:wq,按回车,保存ml2_conf_h3c.ini文件并退出vi编辑器。
:wq
(14) 当white_list定制为True时,则需要完成如下步骤:
· 删除ml2_conf_h3c.ini配置文件中username、password和domain这三个字段。
· 在VCF控制器上添加免认证用户,步骤为:在VCF控制器的Web页面中单击[控制器/系统管理/认证管理]菜单项,进入认证管理页面,单击<增加>按钮,在弹出的添加记录对话框中,将“IP”填写为openstack-neutron所在主机的IP地址,“角色”选择“管理员”,单击<应用>按钮完成操作。
(15) 当binddefaultrouter定制为True时,需要在VCF控制器上配置默认虚拟路由器,步骤为:在VCF控制器的Web页面中单击[虚拟网络/虚拟路由器]菜单项,进入虚拟路由器配置页面,单击<创建虚拟路由器>按钮,在弹出的对话框中配置名称为defaultRouter,租户选择为default,选择“使用公网VRF”,单击<应用>按钮完成操作。
(16) 当use_neutron_credential定制为True时,需要在VCF控制器上增加管理员用户,步骤为:在VCF控制器的Web界面中单击[控制器/系统管理/用户配置]菜单项,进入用户配置页面,单击<增加用户>按钮,在弹出的对话框中配置用户名为neutron,角色选择为管理员,密码请使用OpenStack上neutron用户对应的密码,单击<应用>按钮完成操作。
(17) 重启openstack-neutron服务。
[root@localhost ~]# service openstack-neutron restart
openstack-neutron stop/waiting
openstack-neutron start/running, process 4583
(18) 重启h3c-agent服务。
[root@localhost ~]# service h3c-agent restart
h3c-agent stop/waiting
h3c-agent start/running, process 4678
(1) 验证VCF OpenStack软件包是否安装成功。若显示正确的软件版本号和OpenStack版本号,则说明安装成功。
[root@localhost ~]# pip freeze | grep VCF
VCF-CONTROLLER-PLUGIN==D2156-juno-2014.2
(2) 验证openstack-neutron服务是否已开启。若显示openstack-neutron服务为running状态的运行信息,则说明启动成功。
[root@localhost ~]# service openstack-neutron status
openstack-neutron start/running, process 1849
(3) 验证h3c-agent服务是否已开启。若显示h3c-agent服务为running状态的运行信息,则说明启动成功。
[root@localhost ~]# service h3c-agent status
h3c-agent start/running, process 4678
您可以通过如下方法卸载VCF Neutron插件。卸载时请先卸载VCF Neutron插件,然后再卸载VCF OpenStack软件包。
(1) 卸载VCF Neutron插件。卸载时可以选择是否保留数据库卸载:
· 不保留数据库卸载:选择y,表示卸载VCF Neutron插件的同时将删除其连接的数据库。当选择此方式卸载时,如果OpenStack上配置了SERVICE_CHAIN类型防火墙、GATEWAY或SERVICE_CHAIN类型负载均衡,建议用户先在OpenStack上删除这些服务配置,再进行卸载操作。
· 保留数据库卸载:选择n,表示仅卸载VCF Neutron插件,不删除其连接的数据库。重新安装新版本的VCF Neutron插件时,VCF Neutron插件将自动读取原数据库中的配置文件。
[root@localhost ~]# h3c-vcfplugin controller uninstall
Uninstall the neutron plugin
whether to drop database tables:(y/n):
(2) 卸载VCF OpenStack软件包。
[root@localhost ~]# pip uninstall VCF-CONTROLLER-PLUGIN
Uninstalling VCF-CONTROLLER-PLUGIN:
/usr/local/lib64/python2.6/site-packages/ VCF_CONTROLLER_PLUGIN-D2156_juno_2014.2-py2.7.egg
Proceed (y/n)? y
Successfully uninstalled VCF-CONTROLLER-PLUGIN
升级VCF Neutron插件时请先卸载旧版本插件,具体方法请参见“3.3 卸载VCF Neutron插件”,然后重新安装新版本插件,具体方法请参见“3.2 安装VCF Neutron插件”。升级过程中可能造成业务中断,请谨慎操作。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!