OpenDaylight 与 Neutron 中的 BGPVPN 支持¶
- 日期:
2017-11-17 16:30
- 标签:
OpenDaylight,Open vSwitch,neutron,BGPVPN,L3,DC-GW
Launchpad 蓝图
本规范介绍了通过 Openstack-Ansible 配置的 OpenDaylight 所需的工作,以支持具有扩展 L3 支持的 Openstack 部署。
问题描述¶
自 Beryllium 版本起,OpenDaylight 就支持 BGPVPN。Openstack 可以通过将 neutron 配置为使用 BGPVPN 服务插件来利用此功能。
此外,还需要与 OpenDaylight 一起安装 quagga/zrpcd 及其依赖包,才能将 OpenDaylight 配置为 BGP 扬声器。
提议的变更¶
为了将 OpenDaylight 配置为与部署者基础设施集成的 BGP 扬声器,将编写一个新的 OpenStack-Ansible playbook,其中包含安装 quagga 及其所需包的必需 ansible 任务。OpenDaylight 配置作为 BGP 扬声器的接线将在 neutron 角色中完成,该角色配置 OpenDaylight(有关详细信息,请参阅 playbook/role impact)。
最初支持的发行版将是 CentOS 和 Ubuntu。
备选方案¶
neutron 中还有其他 bgpvpn 后端驱动程序可用,例如 BaGPipe、OpenContrail 驱动程序和 Nuage Network 驱动程序,用于配置 BGPVPN。
Playbook/Role 影响¶
新的 playbook 将添加到 OpenStack-Ansible 中,该 playbook 安装 quagga 并配置 OpenDaylight 作为 BGP 扬声器。此 playbook 将在 neutron 服务器节点上执行 neutron playbook 之后(在 ha 部署的情况下,在三个 neutron 服务器容器中选择一个),因为 quagga 只需要安装在 OpenDaylight 节点之一上,并运行额外的 karaf CLI 命令将其设为 BGP 扬声器。
建议在 neutron_plugin_base 中添加一个额外的变量,覆盖默认 ODL 行为,并触发 BGPVP 的使用。当 neutron_plugin_type 变量设置为 ml2.opendaylight 时,neutron_plugin_base 列表变量包含 networking_bgpvpn.neutron.services.plugin.BGPVPNPlugin` 项目,则 neutron 服务器节点将安装/配置为 OpenDaylight 和 Quagga。
升级影响¶
这是 OpenDaylight 与 Quagga 的首次实现,因此目前没有升级问题。
安全影响¶
Networking-bgpvpn 配置需要为朝向 OpenDaylight 的北向认证设置用户名和密码。部署者应该能够配置这些凭据。
默认情况下,控制器和交换机之间的通信将不安全。使用 TLS 保护通信被认为是一个延伸目标,部署者需要在生产环境中考虑这种安全影响。有关 OpenDaylight 和 OpenvSwitch 之间安全通信的更多信息,请参阅 参考。
性能影响¶
对于选择采用这种部署方法的人员,需要在 neutron 服务器上安装一些额外的软件包,这会使安装过程稍长一些。
还需要额外的资源来在系统上运行 OpenDaylight SDN 控制器。但是,在 Neutron API 调用中的性能应该至少为最低限度。
最终用户影响¶
最终用户将通过 Neutron 获得一个新的网络和 BGPVPN API。这将使他们能够创建 bgpvpn 场景(例如,路由器和网络与 BGPVPN 的关联)。这将需要一些文档,其中包含故障排除步骤,以验证 OpenDaylight 是否正常工作,以及指向 OpenDaylight 官方文档的指针。
预计不会对 Horizon 或其他 OpenStack 组件进行更改。
部署者影响¶
正在部署新的工件,即 OpenDaylight 的 Karaf 运行时、quagga/zrpcd、thrift 和 networking-odl pip 包。OpenDaylight 需要大约 2.5G 的 RAM 才能正常工作,在使用 OpenStack 时,需要在其运行的主机上考虑这一点。
此外,部署者需要确保在所有网络节点(即计算主机和运行 neutron 代理的主机)上部署了版本 >= 2.8 的 OpenvSwitch。
开发人员影响¶
开发人员有一个新的 playbook 来维护,其范围非常有限,并且不在所有部署的路径上。
开发人员的影响非常小,所有 BGPVPN 部署任务都是可选的,可以忽略。任务不会被跳过,而是不会匹配任何主机以用于新的 playbook。这样,如果我们为每个开发人员/部署者提供 playbook,影响将是最小的。
依赖项¶
没有依赖关系
实现¶
负责人¶
- 主要负责人
Periyasamy Palanisamy (epalper) Dimitrios Markou (mardim)
工作项¶
添加用于安装/配置 quagga/zrpcd 的新 playbook
配置 ODL 作为 BGP 扬声器的任务
使 neutron 角色配置为使用 OpenDaylight BGPVPN 驱动程序
创建一个新的测试并验证它是否通过
记录新功能
测试¶
作为 Neutron 后端的替代方案,这个新场景应该提供与现有后端相同的功能,因此应该运行现有的测试。
也可以实现一个专门针对 OpenDaylight 的测试,就像目前有 Calico 或 DragonFlow 的测试一样。
文档影响¶
新的场景 *OpenDaylight+BGPVPN* 将被记录,解释部署它所需的配置参数。
参考资料¶
OpenDaylight 场景与 OpenStack-Ansible
https://docs.openstack.org/openstack-ansible-os_neutron/latest/app-opendaylight.html
https://git.openstack.org/cgit/openstack/openstack-ansible-specs/tree/specs/pike/opendaylight.rst
打包和安装 quagga/zrpcd 包
与 OpenDaylight 的 BGP 对等
在 neutron 中启用 BGPVPN 机制驱动程序