Openvswitch 与 NSH 支持在 Neutron 中的应用¶
- 日期:
2017-06-21 15:00
- 标签:
Openvswitch,neutron,SFC,NSH
Launchpad 蓝图
本文档介绍在 Neutron 中实现 Open vSwitch NSH 协议支持所需的工作,该协议用于服务功能链 (Service Function Chaining)。
问题描述¶
根据 * https://datatracker.ietf.org/doc/draft-ietf-sfc-nsh/ 网络服务头 (Network Service Header, NSH) 被插入到数据包或帧中,以实现服务功能路径。它还提供了一种沿实例化服务路径进行元数据交换的机制。NSH 协议用作 SFC 封装,这是支持服务功能链 (SFC) 架构所必需的,如 RFC7665 中定义的那样。
目前 Openvswitch 不支持 NSH 协议。因此,向 Open vSwitch 添加 NSH 支持的唯一方法是使用 Yi Yang 的补丁 (https://github.com/yyang13/ovs_nsh_patches)。
提议的变更¶
提议的更改是使用现有的 Neutron Ansible Role 在用户通过 Openstack-Ansible 项目中的特定配置选择该功能时安装带有 NSH 支持的 Open vSwitch。我们打算仅配置 Neutron 组件,不使用上述功能进行端到端测试。
带有 NSH 支持的 Open vSwitch 的安装将通过使用特定软件包来解决,这些软件包将在 NSH 功能包含在 Open vSwitch 项目的后续版本中之前保存在私有仓库中。
备选方案¶
创建不使用 NSH 的 SFC 的替代方案是端口链技术。上述技术使用 Neutron 端口来引导流量到服务链,并且不了解附加到这些 Neutron 端口的实际服务。
Playbook/Role 影响¶
os_neutron role 将被修改为可选地安装带有 NSH 支持的 Open vSwitch。建议添加一个额外的变量,以便用户可以决定是否需要在 Open vSwitch 安装中添加 NSH 支持。当 neutron_plugin_type 变量设置为 ml2.ovs 或 ml2.dragonflow 并且 ovs_nsh_support 变量设置为 true 时,Open vSwitch 将安装 NSH 支持。因此,在 neutron_pre_install.yml 中将添加一个额外的任务,该任务将添加包含 ovs_nsh 包的分发特定仓库。
升级影响¶
这是 OpenStack-Ansible 中 Open vSwitch 与 NSH 支持的首次实现,因此目前没有升级问题。
安全影响¶
没有安全影响
性能影响¶
将 NSH 支持添加到 Open vSwitch 不会对当前的 OpenStack-Ansible 安装产生任何性能影响,因为系统只需要安装一些额外的软件包。
最终用户影响¶
最终用户将能够使用 NSH 协议创建服务功能链。他们还可以使用 OpenDaylight 作为网络后端,通过 sfc 组件支持通过 NSH 协议创建 SFC。
部署者影响¶
部署者需要确保包含 ovs_nsh 包的特定仓库已添加到系统中,并且已安装了适当的 Open vSwitch 包。
开发人员影响¶
开发人员的影响非常小,因为 Open vSwitch 的 NSH 支持是可选的,并且可以在扩展或修改 Neutron role 时忽略。
依赖项¶
没有依赖关系
实现¶
负责人¶
- 主要负责人
Dimitrios Markou (mardim)
工作项¶
添加 ovs_nsh 包的特定 PPA
安装支持 NSH 协议的 Open vSwitch
记录新功能
测试¶
应运行现有测试,因为唯一的变化是当选择 NSH 支持时,Open vSwitch 的安装由特定仓库管理。
文档影响¶
应记录新的功能 *Open vSwitch 与 NSH 支持*,解释部署所需的配置参数。
参考资料¶
Open vSwitch 与 OpenStack-Ansible 的场景
NSH ietf 草案
SFC RFC 7665
Openvswitch-NSH 包的 PPA
Centos 上的 Openvswitch-NSH 包