首页 > 代码库 > 网络虚拟化基础协议之Geneve
网络虚拟化基础协议之Geneve
网络虚拟化最基础的技术莫过于分层(Overlay、Underlay),要实现分层有两种手段,一个是映射(Mapping),一个是封装(Encapsulation)。
映射,主要思路是转发时替换报文语义,如何替换将需要设备进行查询。
封装,则是把需要的报文语义添加到网包中,处理的时候一层层的解封装即可,尽量对设备透明。
不少协议都实现了封装的部分或完整功能,包括IP-in-IP、Vlan、MPLS、VXLAN、NVGRE、STT等。这些协议各有各的特点,不少都是为了简单地隔离或者通过隧道连通不同网络。特别是后面几种,设计理念大同小异,只是实现细节不同。
对通用的封装协议标准的需求已经越来越强烈,于是有了Geneve: Generic Network Virtualization Encapsulation。
Geneve的出发点是解决封装时候添加的metadata信息问题(到底多少位,该怎么用),尝试适应各种虚拟化场景,Underlay的协议是最通用的IP协议(准确的说是UDP)。
跟大部分的封装协议类似,实现Geneve一般需要两类设备:隧道终端(tunnel endpoints)和传输设备(transit devices)。前者用来处理封装头终止隧道,后者则是非必需的,通常是支持IP转发的设备。
具体来看Geneve的封装帧,从外到里依次是
外层以太头
外层IP头(V4或V6)
外层UDP头
Geneve头(变长)
内层以太头
Payload
外层以太头的FCS
其中UDP的目标端口默认是IANA分配的6081,并且支持可配置。UDP的校验和必须计算正确,也可配置为0。
Geneve支持单播、多播和广播。
映射,主要思路是转发时替换报文语义,如何替换将需要设备进行查询。
封装,则是把需要的报文语义添加到网包中,处理的时候一层层的解封装即可,尽量对设备透明。
不少协议都实现了封装的部分或完整功能,包括IP-in-IP、Vlan、MPLS、VXLAN、NVGRE、STT等。这些协议各有各的特点,不少都是为了简单地隔离或者通过隧道连通不同网络。特别是后面几种,设计理念大同小异,只是实现细节不同。
对通用的封装协议标准的需求已经越来越强烈,于是有了Geneve: Generic Network Virtualization Encapsulation。
Geneve的出发点是解决封装时候添加的metadata信息问题(到底多少位,该怎么用),尝试适应各种虚拟化场景,Underlay的协议是最通用的IP协议(准确的说是UDP)。
跟大部分的封装协议类似,实现Geneve一般需要两类设备:隧道终端(tunnel endpoints)和传输设备(transit devices)。前者用来处理封装头终止隧道,后者则是非必需的,通常是支持IP转发的设备。
具体来看Geneve的封装帧,从外到里依次是
外层以太头
外层IP头(V4或V6)
外层UDP头
Geneve头(变长)
内层以太头
Payload
外层以太头的FCS
其中UDP的目标端口默认是IANA分配的6081,并且支持可配置。UDP的校验和必须计算正确,也可配置为0。
Geneve支持单播、多播和广播。
网络虚拟化基础协议之Geneve
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。