Freescale FWaaS 插件

Launchpad蓝图

https://blueprints.launchpad.net/neutron/+spec/freescale-fwaas-plugin

注意:此蓝图提议提交到 Neutron-FWaaS 仓库。

云资源发现 (CRD) 服务旨在支持数据中心环境中的 Freescale 芯片。与 Neutron 类似,它使用 keystone 身份验证进行所有 ReSTful 调用。

问题描述

CRD 服务需要 Neutron-FWaaS 防火墙信息(如规则、策略和防火墙)来管理虚拟网络设备和 OpenFlow 控制器应用程序中的防火墙部署。

为了将此信息从 neutron 发送到 CRD,需要一个新的 FWaaS 插件。

Freescale FWaaS 插件代理从 Neutron 到 CRD 服务的 ReSTful 调用(格式化为 CRD 服务)。

它通过将防火墙相关数据(规则、策略和防火墙)更新到 CRD 数据库来支持云资源发现 (CRD) 服务。

CRD 服务管理网络节点、虚拟网络设备和 OpenFlow 控制器网络应用程序上防火墙的创建。

提议的变更

基本工作流程如下所示。

+-------------------------------+
|                               |
|       Neutron Service         |
|                               |
|    +--------------------------+
|    |  Neutron-FWaaS with      |
|    |  Freescale Firewall      |
|    |  Service Plugin          |
|    |                          |
+----+-----------+--------------+
                 |
                 |  ReST API
                 |
                 |
       +---------v-----------+
       |                     |
       |   CRD Service       |
       |                     |
       +---------------------+

Freescale 防火墙服务插件将防火墙相关数据发送到 CRD 服务器。

该插件实现以下实体上的 CRUD 操作
  • 防火墙规则

  • 防火墙策略

  • 防火墙

该插件使用现有的防火墙数据库来存储防火墙数据。

CRD 服务决定在网络节点或虚拟网络设备或 OpenFlow 控制器应用程序中创建防火墙。

创建防火墙的事件顺序流程如下

create_firewall
{
  neutron       ->  fsl_fw_plugin
  fsl_fw_plugin ->  crd_service
  fsl_fw_plugin <-- crd_service
  neutron       <-- fsl_fw_plugin
}

备选方案

数据模型影响

使用现有模型。不创建新模型。

REST API 影响

无。

IPv6 影响

无。

安全影响

无。

通知影响

无。

其他最终用户影响

无。

性能影响

可以忽略不计或没有

其他部署者影响

此更改仅影响配置了 neutron ‘service_plugins’ 为 ‘fsl_firewall’、‘core_plugin’ 为 ‘ml2’ 且 ‘ml2’ 插件配置了 ‘fslsdn’ 机制驱动程序的部署。

此服务插件使用 ‘fslsdn’ 机制驱动程序配置来联系 CRD 服务。

更新 /etc/neutron/neutron.conf 的 [DEFAULT] 部分,如下所示:

[DEFAULT]
service_plugins = fsl_firewall
core_plugin = ml2

为了启用 Freescale SDN 机制驱动程序,进行了以下配置更改。

在 /etc/neutron/plugins/ml2/ml2_conf.ini 的 [ml2] 部分,修改 ‘mechanism_drivers’ 属性,如下所示:

mechanism_drivers = fslsdn

更新 /etc/neutron/plugins/ml2/ml2_conf_fslsdn.ini,如下所示。

[ml2_fslsdn]
crd_auth_strategy = keystone
crd_url = http://127.0.0.1:9797
crd_auth_url = http://127.0.0.1:5000/v2.0/
crd_tenant_name = service
crd_password = <-service-password->
crd_user_name = <-service-username->

开发人员影响

无。

社区影响

无。

实现

负责人

主要负责人

trinath-somanchi

其他贡献者

工作项

  • Freescale FWaaS 服务插件

依赖项

测试

Tempest 测试

  • 包含代码的完整单元测试覆盖率。

  • 对于 tempest 测试覆盖率,提供第三方测试。

  • Freescale CI 报告所有影响此插件的更改。

  • 测试在一个设置中运行,该设置具有连接到活动 CRD 服务器的 OpenStack 部署 (devstack)。

功能测试

包含代码的完整单元测试覆盖率。

API 测试

无。

文档影响

用户文档

由于此插件的使用需要 ‘ml2’ 作为 core_plugin 和 ‘fslsdn’ 作为 mechanism_driver,因此将详细记录上述部署影响。

开发人员文档

除了上述文档更改外,不需要其他任何内容。

参考资料