VXLAN vs. GENEVE:隧道协议之争

随着IT环境的不断变化以及新技术的快速发展,新的客户需求下,新的隧道协议也随之被引入进来。从GRE到VXLAN、GENEVE,网络虚拟化技术得到了迅猛发展,VXLAN 已成为目前网络虚拟化Overlay的事实标准,那么,它与Geneve 有何区别与联系呢?

网络虚拟化的发展

网络虚拟化(Networking Virtualization)是在一个underlay网络上划分出多个overlay网络。原本只支持一套网络的设备,通过网络虚拟化,现在可以用来支持多套网络。

如果我们把网络中的所有节点看成一个分布式系统,那么underlay网络为这个分布式系统的各个节点提供了网络连接。而各种各样的网络虚拟化协议,则为这个分布式系统的各个节点提供了通信所使用的协议。比如说,在一个云环境里面,所有的服务器共同组成了一个部署虚机的分布式系统。underlay网络连接这个分布式系统的各个节点(各个服务器),而网络虚拟化协议用来封装各个节点之间传递的数据(虚机之间的网络数据)。

网络虚拟化本身不是一个新的技术,从其诞生之日起,各种各样的协议被提出。其中较早的是通用路由封装 (GRE),它是从物理拓扑中抽象出路由网络的一种方便的方法。虽然 GRE 是一个很好的工具,但它缺少两个主要特征,阻碍了它的多功能性:

向外部发送隧道流量或原始流量的差异信号的能力——Overlay Entropy,并允许传输网络在所有可用链路上进行哈希。

提供二层网关的能力,因为 GRE 只能封装 IP 流量。封装其他协议(如MPLS)是后来添加的,GRE 本身的属性不包括桥接能力。

由于 GRE 的可扩展性有限,随着新用例的开发,网络行业变得更具创造性。一种方法是使用以太网 over MPLS over GRE (EoMPLSoGRE) 来实现第 2 层网关用例。思科将其称为Overlay Tunnel Virtualization (OTV),其他供应商将其称为下一代 GRE 或 NVGRE。虽然OTV是成功的,但NVGRE的采用有限,主要是因为它在网络虚拟化方面出现较晚,同时下一代协议虚拟可扩展 LAN (VXLAN) 已经取得了进展。


网络虚拟化隧道协议

VXLAN 是目前网络虚拟化Overlay的事实标准。基于IP,VXLAN也有一个UDP头,因此属于基于IP/UDP的封装或隧道协议。这个家族的其他成员包括 OTV、LISP、GPE、GUE 和 GENEVE 等。重要性在于 Internet 工程任务组 (IETF) 网络虚拟化覆盖 (NVO3) 工作组中的相似性及其密切关系/起源。

VXLAN是目前网络虚拟化覆盖的实际标准。基于IP (Internet Protocol), VXLAN也有一个UDP头,因此属于基于IP/UDP的封装或隧道协议。这个家族的其他成员包括OTV、LISP、GPE、GUE和genee等。

VXLAN

VXLAN 的全称是虚拟扩展局域网(Virtual eXtensible Local Area Network),它是VMware、Arista Networks 和 Cisco 联合开发的。VXLAN技术很好地解决了现有VLAN技术无法满足大二层网络需求的问题。VXLAN 负责在三层网络中形成二层局域网段。通过在底层路由三层网络上利用 VXLAN 技术,可以减少 VLAN 的生成树和中继问题。

VXLAN在RFC 7348中被正式记录,是一个标准。每个 VXLAN 段都有一个名为 VNI 的标识符,它是 24 位的,允许将 VXLAN 值扩展到大约 1600 万个 VXLAN 段以进行处理。下图描述了 VXLAN 标头及其相关字段:

VXLAN,作为成熟的Overlay网络虚拟化隧道技术,在数字化时代,逐渐暴露出其不够灵活、缺乏扩展性的问题,其结果就是无法满足越来越多的网络要求。要满足上述需求,需要在网络数据包中进行相对灵活的调整,以支撑业务应用、支撑安全等的需求。而现有的协议基本是已经固定的字段,缺少可变的、可控的区域,难以添加和修改。

GENEVE

GENEVE(Generic Network Virtualization Encapsulation)是2016-2017年开源界出现的一种新型开源数据虚拟化封装(隧道)协议,它设计的初衷就是解决当前数据传输缺乏灵活性,难以满足用户在安全,在业务应用支撑上的各种灵活要求。

Geneve 只定义了一种封装数据格式,不包括控制平面的信息。GENEVE 相较于 VXLAN 封装的关键优势在于其灵活性以及通过 IANA(国际互联网代理成员管理局)来指定选项类别。VXLAN包含一个 24 位的隧道标识符字段。GENEVE则是通过一组可以设置的 TLV 选项实现可扩展性。供应商可以根据自己的需要灵活选择,不受24位的限制。

2020年11月,IETF(全球互联网技术任务组)正式出版了详细的白皮书(RFC:8926),标志着该技术已经足够成熟。目前,Cisco已经用于数据中心场景,而Juniper、VMware、Amazon、Oracle、IBM、Ericsson等公司也已经开始了实际研究开发在实际项目中使用各自Geneve 标准的私有协议服务最终客户。

VXLAN vs. GENEVE

从表面来看,VXLAN 和 Geneve 提供的功能相同,都是在三层 IP 数据包内封装和传输二层帧。两者都使用 UDP 协议来实现其功能。然而,两种隧道协议还是有较大的区别。VXLAN 帧的标头长度是 8 字节,而 Geneve 的标头长度是 16 字节。此外,VXLAN不具备传输安全、服务链和带内遥测。Geneve 解决了 VXLAN 的一些主要缺点:

VXLAN缺少协议标识符字段。VXLAN进一步的多路复用/多路分解需要在负载地址中提供协议标识符,而 VXLAN 缺少该协议标识符。

VXLAN不能发送不属于客户端的包帧,即对方无法区分是否是客户端包。

VXLAN 中的所有字段都是固定的,无法通过使用可扩展字段实现互操作性,GENEVE 的最大特点是拥有灵活的可变长区域,提供了更为灵活的空间。


比较 VXLAN 和 GENEVE 封装格式

Geneve 用例的覆盖范围与VXLAN今天能够做的差不多。像单播/组播流量的桥接和路由等用例,无论是IPv4、IPv6还是多租户,VXLAN(与BGP EVPN一起)已经可用了近十年。有了GENEVE,所有这些用例都可以通过另一种封装方法访问。

通过 GENEVE 协议,我们可以在网络数据传输中做到很多以前难以完成的工作,比如:
提升数据安全:在数据包中,通过传输安全值等元数据,以更好的防止数据篡改,保障数据安全。用户也可以基于此构建私有链,从而进一步提升对数据的保护。
无接触数据处理:基于存放在 GENEVE 协议头中的元数据,系统不需要完整解开数据包,就可以知道哪个应用需要此数据,或者该如何处理此数据,从而可以完成数据的预处理。

下表展示了两种协议之间的区别:

总 结

总的来说,当只有一个供应商环境时,VXLAN 可以正常工作,但是当客户环境中有多个供应商且相对比较复杂时,Geneve 是首选技术。另外,还有一点需要强调的是,Geneve 的更改仅在数据平面上,而对控制平面没有更改。GENEVE 中可变区域的引入提供了更为灵活的空间去实现更多的新业务需求。

当前,GENEVE 协议的利用还在不断发掘中,相信随着 GENEVE 的深入利用,未来可以在工业互联网安全、车联网安全、SASE架构、SaaS传输甚至是未来元宇宙场景的发挥更大的作用。

*本文系SDNLAB编译自ipwithease、思科博客


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/25982.html
分享到:
相关文章
条评论

登录后才可以评论

SDNLAB君 发表于22-10-18
0