为 McAfee NGFW 防火墙添加防火墙驱动

https://blueprints.launchpad.net/neutron/+spec/mcafee-ngfw-fwaas-driver

实现 McAfee ngfw 防火墙的 FWaaS 驱动

问题描述

缺少对 McAfee NGFW(下一代防火墙)的支持/集成。它为云管理员/用户提供更多选择。

提议的变更

为 NGFW 添加新的防火墙驱动。(neutron 防火墙驱动,FwaasDriverBase 的子类)

为现有的参考 FWaaS 代理引入一个新的驱动。FWaaS 代理将在配置的情况下加载此新的 NGFW 防火墙驱动。现有的参考 FWaaS 代理不会有任何更改。

新的驱动从 FWaaS 代理获取用户请求,并通过 REST API 将这些请求发送到 SMC 服务器(NGFW 管理服务器)。SMC 服务器是防火墙设备的一种控制器。

新的驱动需要 SMC 服务器 IP 地址和 API 密钥(NGFW 特定的)才能与 SMC API 通信。这些信息应在代理配置文件中指定。新的驱动将从配置文件中读取这些信息,并使用这些信息建立与 SMC 服务器 REST API 接口的连接。

代理驱动将继承自基类(FwaasDriverBase)并覆盖 NGFW 特定功能的的方法。

代理将在网络节点上运行,就像今天一样。(但代理不必在网络节点上运行。未来阶段将解决这个问题。请参阅“未来工作”部分。)

图中对 L3 路由器插件的引用是为了帮助更好地理解,不属于此提案的范围 [ngfw-l3-router]

首次实现的图表

+---------------------------------+
|Neutron server                   |
|                                 |
|  +---------+                    |    +------+
|  |l3 plugin+--------------------+----+ Nova |
|  +---+-----+                    |    +--+---+
|      |        +---------------+ |       |
|      |        |firewall plugin| |       |
|      |        +-----+---------+ |       |
+------|--------------|-----------+       |
       |              |                   |
       |              |openstack rpc      |
       |              |topic:L3_AGENT     |
       |              |                   |
       |        +-----|---------+         |
       |        |     | l3 agent|         |
       |        | +---+--+      |         |
       |        | |fwaas |      |         |
       |        | |driver|      |         |
       |        | +-+----+      |         |
       |        +---|-----------+         |
       |            |                     |
       |            | provider network    |
       |            | cloud admin manages |
 +-----+------------++                    |
 |SMC VM(product)    |                    |
 |(management server)|<-------------------+ spin up/down
 +----+--------------+                    |
      |                                   |
      | tenant network:                   |
      |  cloud admin manages              |
 +----+----------------+                  |
 |SG-engine VM(product)|                  |
 |(actual service)     |<-----------------+ spin up/down
 +--+--+---------------+                    add/remove interfaces
    |  |
    |  |...
    |  |
 tenant networks for cloud user

未来工作

一旦 l3 routervm 插件和配置代理合并,并且配置代理得到增强以支持防火墙服务,防火墙驱动程序将在第三阶段实现。 [config-agent] [modular-l3-router-plugin] (允许多种类型的路由器将由 [modular-l3-router-plugin] 处理。这是不同的主题。)

图中对 L3 路由器插件的引用是为了帮助更好地理解,不属于此提案的范围。有关详细信息,请参阅 [ngfw-l3-router]

配置代理的主要区别在于,fwaas 代理绑定到网络节点并托管在物理节点上实例化的 fwaas 实例,而配置代理不绑定到网络节点或服务 vm,后者服务于 fwaas 实例,只要它可以接收 RPC 并与 fwaas 管理服务通信,就可以在任何地方运行。此方向与其他类似活动保持一致。 [fwaas-csr1kv], [fwaas-tcs]

与 l3-routervm 插件和配置代理一起实现的图表

+---------------------------------+
|Neutron server                   |
|                                 |
|  +---------+                    |      +------+
|  |l3 plugin+--------------------+------+ Nova |
|  +---+-----+                    |      +--+---+
|      |        +---------------+ |         |
|      |        |firewall plugin| |         |
|      |        +-----+---------+ |         |
+------|--------------|-----------+         |
       |              |                     |
       |              |openstack rpc        |
       |              |                     |
+---------------------|--------+            |
|      |              |        |            |
|  +------+       +---+--+     |            |
|  |router|       |fwaas |     |            |
|  |driver|       |driver|     |            |
|  +---+--+       +-+----+     |            |
|      |            |          |            |
|      |  config    |          |            |
|      |  agent     |          |            |
+------|------------|----------+            |
       |            |                       |
       |            | provider network:     |
       |            | cloud admin manageses |
 +-----+------------++                      |
 |SMC VM             |                      |
 |(management server)|<---------------------+ spin up/down
 +----+--------------+                      |
      |                                     |
      | tenant network:                     |
      |  cloud admin manages                |
 +----+-----------+                         |
 |SG-engine VM    |                         |
 |(actual service)|<------------------------+ spin up/down
 +--+--+----------+                           add/remove interfaces
    |  |
    |  |...
    |  |
 tenant networks for cloud user

数据模型影响

REST API 影响

安全影响

无 尽管此 NGFW 驱动程序为云用户提供了另一种安全选择,但本节是关于系统潜在影响的。不涉及用户影响。

通知影响

其他最终用户影响

用户将拥有另一个防火墙提供商的选择。

性能影响

IPv6 影响

其他部署者影响

将引入新的驱动程序服务提供商。希望使用 NGFW 的部署者需要配置以使用 l3 路由器插件和防火墙驱动程序。

开发人员影响

社区影响

NGFW fwaas 驱动程序为云用户提供了更多 Neutron FWaaS 的选择。因此,它促进了 Neutron FWaaS。

备选方案

实现

负责人

主要负责人

rui-zang yalei-wang yamahata

其他贡献者

工作项

  • FWaaS 驱动

  • 测试

  • 第三方 CI

一旦 l3 routervm 插件和配置代理合并 * 将防火墙驱动程序重构为配置代理的驱动程序

依赖项

测试

将添加第三方测试。

Tempest 测试

将向 Intel CI 添加第三方测试。

功能测试

将添加场景测试以验证 NGFW 驱动程序实现。

API 测试

文档影响

将更新管理员指南。

用户文档

将添加另一个 FWaaS 后端选择。

开发人员文档

参考资料