Neutron/OFAgent/ComparisonWithOVS
两个 Neutron 代理,Open vSwitch 和 OFAgent,以不同的方式实现大部分相同的功能。
- 有什么相同之处?
- 基本架构
- 代理运行在每个计算/网络节点上。
- 它控制节点上的 OpenFlow 交换机。
- 基本架构
- 有什么不同之处?
- 以下是差异的总结。
- 注意:此列表旨在显示设计和开发方向上的差异。其中一些条目(标记为“计划中”)尚未在 Neutron master 中实现。
| openvswitch | ofagent | |
| 优点 | 可能能够使用 Open vSwitch (OVS) 特定的高级功能(如 Nicira Extensions (NX) 和 patch 端口)实现更好的性能。 | 更易于移植到其他非 OVS 交换机。由于它是一个功能齐全的 OpenFlow 控制器,因此更容易处理异步消息。 |
| OpenFlow 版本 | OpenFlow 1.0 + NX | 不带厂商扩展的 OpenFlow 1.3 |
| 如何组合流? | ovs-ofctl 命令行参数(纯文本) | 使用 Ryu ofproto 库(python 对象) |
| 如何将流安装到交换机? | 调用 ovs-ofctl 命令 | 嵌入在代理中的 OpenFlow 控制器向交换机发送 OpenFlow 消息 |
| 支持的交换机 | 仅 OVS | 包括 OVS 在内的 OpenFlow 1.3 交换机 (计划中) |
| Neutron 插件 | openvswitch 插件 (计划弃用) 或 ML2 插件 | ML2 插件 |
| 端口监控 | 通过 ovs-vsctl 命令进行 ovsdb 监控 | OpenFlow 端口统计信息。接受异步消息以监控更改 (计划中) |
| 管理协议(例如隧道端口创建) | 通过 ovs-vsctl 命令进行 ovsdb | 在适当的情况下使用标准协议,如 OF-Config。否则,使用子驱动程序 (计划中) |
| 设备 ID | Neutron 端口 ID (UUID) 存储在 ovsdb 中 | 端口名称作为 linuxbridge |
| “internal” VLAN | 802.1q 标记的 VLAN | OpenFlow 元数据 |
| 本地 ARP 响应器 | 为每个 FDB 条目安装 NX 流。目前仅隧道网络类型。 | 嵌入的 OpenFlow 控制器处理数据包传入并发送回 ARP 响应。已为所有网络类型实现。 |
| 多个桥接 | 考虑 按功能划分的桥接。 | 为了可移植性,使用单个桥接。 |
| 安全组 / 防火墙驱动程序 | 使用 NX。例如 tcp_flags NXM、learn action 或未来的 conntrack 支持 (计划中) | 可能仅使用纯 OpenFlow 实现部分规则 |
| 租户网络中的标记 VLAN | 不支持 | 支持 |
| XenAPI(代理在单独的域中) | 使用特殊的 rootwrap 支持 | 不支持 |
| L2population | 可选 | 强制 |
| DVR | 支持 | 不支持 |