Cisco VPNaaS 与嵌入式 Cisco CSR 路由器¶
https://blueprints.launchpad.net/neutron/+spec/cisco-vpnaas-and-router-integration
通过将 Cisco IPSec 站到站 VPNaaS 解决方案与作为 Neutron 路由器的 Cisco Cloud Services Router (CSR) 集成,来增强该解决方案。这使得使用动态创建的路由器轻松配置站到站连接,使其在生产环境中具有实用性。
问题描述¶
在当前的 PoC (概念验证) Cisco VPNaaS 中,Cisco CSR VM 在 OpenStack 之外运行,并且与参考 Neutron 路由器并行。Cisco CSR 是手动启动的,并且独立于 OpenStack。路由器是静态配置的,Cisco CSR 的信息存储在 .ini 文件中,供 Cisco VPNaaS 驱动程序使用。
当建立 VPN IPSec 站到站连接时,VPNaaS 驱动程序使用 .ini 文件中的信息 [1] 与 Cisco CSR 通信并配置 VPN IPSec 站到站连接。在 Neutron 路由器上配置数据包重定向,将发送到远程端的所有数据包发送到 Cisco CSR。
存在的问题是:* Cisco CSR 需要手动启动和配置。 * .INI 文件必须手动更新(容易出错)。 * 我们实际上使用两个路由器来提供 VPNaaS 功能。
提议的变更¶
在之前的蓝图 [1] 中,Cisco VPNaaS 驱动程序被修改为在使用时从 .INI 文件中获取路由器信息,而不是在启动时获取,从而提供了一种手动动态配置 VPNaaS 的方法。
此蓝图是对驱动程序的后续重构,消除了对 .INI 文件的需求,并完全自动化了站到站连接的动态创建。这使得该解决方案对于运营商在生产中使用来说更加实用。
为此,它利用了新添加的 L3 路由器插件,该插件处理 Cisco CSR 路由器的创建和初始配置,并包含所有需要的路由器信息。
VPN 服务驱动程序直接调用 L3 路由器插件来获取路由器的管理 IP、用户名、密码、内部和外部接口名称以及 VRF。
这具有以下优势:* CSR 由 L3 路由器插件自动创建(与手动启动相反)[2]。 * IPSec 连接不再需要两个路由器。 * 不再需要 .INI 文件来存储路由器信息(从路由器插件获取)。 * 可以动态创建 IPSec 站到站连接。
用户只需创建一个 CSR 路由器,然后将其选定为 VPNaaS 配置的路由器即可。
数据模型影响¶
无。
REST API 影响¶
无。
安全影响¶
无。
通知影响¶
无。
其他最终用户影响¶
消除了运营商手动启动和配置 Cisco CSR 以及创建 .ini 文件的需求。
性能影响¶
创建 VPN 连接的时钟时间有所改善,因为 Neutron 命令将采取所有必要的操作(无需手动更改 INI 文件)。
IPv6 影响¶
预计这将在 IPv6 环境中工作。
其他部署者影响¶
不再需要手动为 VPNaaS 创建一个带外 Cisco CSR。
开发人员影响¶
无。
社区影响¶
这完成了将基于 Cisco 的 VPNaaS 解决方案合并到 Neutron 中,该解决方案与参考实现一致,而不是当前 PoC 实现使用的附加解决方案。
备选方案¶
没有替代方案可以提供自动化、动态和可扩展的解决方案。当前的机制提供了一个概念验证解决方案,但由于需要手动交互,无法满足此规范的需求。
后续蓝图将致力于将 VPN 驱动程序与 L3 配置代理集成,以减少资源需求。此蓝图是朝着该“演进”迈出的第一步。
实现¶
负责人¶
- 主要负责人
pmichali
工作项¶
删除读取包含 Cisco CSR 信息的 .ini 文件的设备驱动程序代码。
修改服务驱动程序以获取 Cisco CSR 信息并传递给设备驱动程序。
在 L3 路由器插件中创建方法以提供所需的路由器信息。
修改设备驱动程序以使用传递的信息,而不是 .ini 文件信息。
更新单元测试以反映所做的更改。
依赖项¶
没有。所有必需的组件都已经上游化。
测试¶
将相应地更新单元测试。
Tempest 测试¶
无需更改,因为是对现有实现进行重构。
功能测试¶
无需更改,因为是对现有实现进行重构。
API 测试¶
不适用。
文档影响¶
此蓝图不会更改 Openstack 文档。供应商部署/安装文档将被更新(主要是为了删除许多步骤)。
用户文档¶
无。
开发人员文档¶
不适用。