OVS:ovn为什么默认选择Geneve作为二层隧道网络协议?
首先确认 Geneve 是一种封装协议,可能提供比 VLAN 或 VXLAN 更灵活的扩展能力,这对 OVN 的多租户场景很重要。可能需要支持更多元数据字段,比如携带网络策略信息,这符合 SDN 集中控制的需求。
性能方面需要考虑封装效率和硬件支持情况,虽然 Geneve 头部稍大,但现代网卡的卸载功能可能弥补这点。另外要确认 OVN 是否需要与其他网络技术集成,Geneve 的标准化程度可能有助于跨平台兼容性。
Geneve 的 UDP 封装可能在防火墙穿越上有优势,且其协议扩展性可能更适合 OVN 未来功能迭代。不过这些推测需要验证,比如查找 OVN 官方文档中的设计决策说明,或者社区讨论中提到的具体考量点。
OVN 的核心需求是传输额外元数据,比如逻辑端口 ID。VXLAN 的固定 8 字节头部无法容纳 15bit 源端口和 16bit 目的端口,而 Geneve 的 TLV 结构正好提供可扩展性 —— 这可能是关键因素。
性能方面,Geneve 的 UDP 校验和优化值得注意:内核会跳过内层校验计算,这可能在软件层面比 VXLAN 更高效。
另外,ECMP 支持方式不同。Geneve 用 UDP 源端口标识数据流,这可能更适合 Underlay 网络的负载均衡,而 VXLAN 依赖内层报文解析。但不确定 OVN 实际部署中 ECMP 的使用频率,需要结合其网络拓扑判断。
还有一个点是标准化程度。Geneve 作为 IETF 标准,可能比 STT 更具生态优势,虽然当前硬件支持不如 VXLAN,但 DPU 已经开始适配。这可能影响 OVN 的长期技术路线选择。
总之
OVN(Open Virtual Network)选择Gene