Cisco VPNaaS 与嵌入式 Cisco CSR 路由器

包含您的 Launchpad 蓝图的 URL

https://blueprints.launchpad.net/neutron/+spec/cisco-vpnaas-with-cisco-csr-router

通过与运行作为 Neutron 路由器的 Cisco Cloud Services Router (CSR) 集成,来增强 Cisco IPSec 站点到站点 VPNaaS 解决方案。

问题描述

在当前的 Proof of Concept Cisco VPNaaS 中,Cisco CSR VM 在 OpenStack 之外运行,并且与参考 Neutron 路由器并行。Cisco CSR 是手动启动的,并且独立于 OpenStack。路由器是静态配置的,Cisco CSR 的信息存储在 .ini 文件中,供 Cisco VPNaaS 驱动程序使用。

当建立 VPN IPSec 站点到站点连接时,VPNaaS 驱动程序使用 .ini 信息与 Cisco CSR 通信并配置 VPN IPSec 站点到站点连接。Neutron 路由器上配置了一个数据包重定向,将发送到远程端的所有数据包发送到 Cisco CSR。

这些问题包括:* Cisco CSR 是手动启动和配置的。 * 所有 Cisco CSR 的静态配置都在 Neutron 启动之前建立。 * 我们实际上使用两个路由器来提供 VPNaaS 功能。

提议的变更

一个单独的蓝图,cisco-routing-service-vm [2],将提供一个 Cisco CSR VM 作为 Neutron 路由器,动态创建和配置 Cisco CSR,当创建指定此类型的路由器时。

此蓝图建议更新 Cisco VPNaaS 驱动程序以与此“嵌入式”Cisco CSR 协同工作。VPNaaS 驱动程序将动态获取 Cisco CSR 的信息(用户、密码、管理 IP 等),而不是像当前那样从配置文件中静态获取,以便可以配置 VPN IPSec 连接。

结合起来,这两个蓝图将允许自动创建和配置 Cisco CSR,动态配置 VPNaaS 连接,并消除对第二个路由器和数据包重定向的需求。

具体来说,在 VPNaaS 的上下文中,用户可以创建一个基于 CSR1kV VM 的 Neutron 路由器,然后创建一个具有 IPsec 站点到站点连接的 VPN 服务,该服务将使用该路由器。

为了减轻对 Cisco Routing Service VM 蓝图 [2] 的依赖风险,VPN 实现可以分阶段进行。在第一阶段,代码将尝试从 L3 插件获取 CSR 的信息,但如果不可用,可以读取 INI 文件中的配置(如设备驱动程序中当前所做的那样)。

用户可以手动设置一个带外 CSR(如今天所做的那样),更新 INI 文件,然后继续创建 VPN 服务和连接。当 cisco-routing-service-vm [2] 上游化时,执行回退 INI 文件读取的 VPN 代码可以删除。

备选方案

使用当前的带外 Cisco CSR,VPNaaS 驱动程序可以随时重新读取 .ini 文件以获取更新的路由器信息。这允许动态创建 VPNaaS 连接,但仍然需要手动启动和配置 CSR(以及使用双路由器)。

数据模型影响

无。

REST API 影响

无。

安全影响

无。

通知影响

无。

其他最终用户影响

消除了操作员手动启动和配置 Cisco CSR 以及创建 .ini 文件的需要。

性能影响

对 VPNaaS 性能没有影响。

其他部署者影响

部署变得更加容易。

开发人员影响

无。

实现

负责人

主要负责人

pmichali

工作项

  • 删除读取 Cisco CSR 信息的设备驱动程序代码。

  • 修改服务驱动程序以获取 Cisco CSR 信息并传递给设备驱动程序。

  • 修改设备驱动程序以使用传递的信息,而不是 .ini 文件信息。

  • 更新单元测试以反映所做的更改。

依赖项

需要 cisco-routing-service-vm 蓝图的实现,该蓝图将 Cisco CSR 作为 Neutron 路由器提供,并管理路由器的生命周期。

测试

单元测试将相应更新。cisco-routing-service-vm BP 将具有 Tempest 测试。目前,没有针对 VPNaaS 的 Tempest 功能测试,但随着它们可用,将为 Cisco CSR 实现创建第三方测试。

文档影响

无。

参考资料