《云数据中心网络与SDN:技术架构与实现》——1.12.4 Geneve

举报
华章计算机 发表于 2019/06/06 13:37:30 2019/06/06
【摘要】 本书摘自《云数据中心网络与SDN: 技术架构与实现》——书中第1章,第1.12.4节,作者是张晨。

1.12.4 Geneve

Geneve(Generic Network Virtualization Encapsulation,RFC Draft)是NVo3工作组对VxLAN、NvGRE和STT进行总结后提出的一种网络虚拟化技术,希望形成一种通用的封装格式,以便支持数据中心中隧道机制的后续演化。Geneve是于2015年提出的,仍处于草案阶段,不过从Draft中的设计来看,确实是博采众长,具备相当的潜力。目前,很多的vSwitch已经对Geneve提供了支持,一些SmartNIC也能够实现Geneve的硬件卸载。

Geneve采用了VxLAN的思路,是一种MACinUDP的隧道,其封装格式如图1-39所示。之所以没用MACinGRE或者MACinTCP,估计是工作组考虑到GRE头部的可扩展性比较差,不具备可演进的能力。而用TCP头的话,如果仍保持TCP的特性,则维护有连接的隧道开销过大;如果像STT一样处理为无状态的,那么又会存在Middle Box的穿越问题。相比之下,UDP头就没有那么多问题,Geneve作为一种应用层协议不存在可扩展性的问题,而UDP本身的无连接特性又不会带来开销和兼容的问题。至于分片,Geneve建议使用Path MTU Discovery(RFC 1191)来探测传输路径上的MTU。

image.png

图1-39 Geneve封装格式

Geneve封装的是以太网帧,外层的报头可以为IPv4也可以为IPv6。UDP Src Port常通过哈希获得,可用于ECMP;Dst Port为IANA分配给Geneve的6081。对于UDP Checksum,Geneve与VxLAN的处理办法相同,并建议使用NIC去做卸载。Geneve Header中的O位为OAM标识,当O位置1的时候,Geneve携带的为控制信令而非Ethernet payload,VNI为24位的租户标识。Geneve Header还提供了TLV格式的Options,以支持后续的功能扩展。

下面再来谈一些Geneve草案中除了封装格式以外的内容,借以简单地分析一下端到端NVo3隧道未来的演进思路。Geneve可采用头端复制的伪广播,不再要求IP Fabric具备组播的能力,降低要求的同时简化了运维的配置工作。Geneve希望底层IP Fabric的传输能够考虑到隧道传输的需求,这在NvGRE和STT的草案中也都提到过,Overlay应该映射出一些字段给Underlay做参考,而不是死守着对传输透明的原则不放。参考NvGRE的设计,Geneve希望可以将VNI作为ECMP的一个参考字段,未来TLV中的一些Option也可能会被用来细粒度地标识流量,以支持精细化的业务定制。参考STT的设计,Geneve讨论了NIC Offload问题,以提升传输性能。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。