VXLAN 技术解析-(1)VXLAN简述
VXLAN简述
VXLAN,Virtual Extensible LAN,顾名思义,是VLAN的扩展版本。VXLAN技术主要用来增强在云计算环境下网络的扩展能力。
VXLAN使用UDP报文将Ethernet报文封装起来,从而实现跨IP的数据传输,其使用的UDP端口号为4789。VXLAN的端设备称为VTEP,VXLAN tunnel endpoint,一般由物理交换机(Nexus 5600/9000)或虚拟交换机(Open vSwitch/Nexus 1000v)的端口承担,负责VXLAN报文的封装与解封装。
VLAN提供了逻辑的二层边界和广播域。和传统VLAN相比,VXLAN扩展了以下功能:
1.提供了跨三层的二层联通能力,通俗讲就是二层隧道。
2.使用24bit的VNID,大大扩展了原有12bit VLAN ID提供的二层逻辑域。24bit意味着最多有1600多万个相互区分的标识符。
3.在数据中心Fabric内使用ECMP路由代替STP更好地利用链路带宽。
VXLAN最早由VMware和Cisco提出,并陆续得到其他厂商的贡献和支持,如Arista、Broadcom、Citrix、Intel和Redhat等。现在被标准化为IETF RFC7348。
VXLAN报文格式
VXLAN是一种将二层数据帧封装在UDP报文中的技术。VXLAN将原始二层帧,加上VXLAN报头,封装在UDP协议中,以此穿越三层网络。
VXLAN引入了8字节的VXLAN报头,包含了24bit的VNID和一些保留比特。加上UDP/IP/Ethernet报文头,比原始的Ethernet帧,增加了50字节的开销。
详细报文格式见下图:
VXLAN数据包封装与解封装路径(以单播为例)
VXLAN使用VTEPs间无状态的隧道在三层网络中传递二层数据。一个以单播为例的VXLAN数据包封装与解封装路径如下图所示:
如图中所示,Host-A与Host-B通过在VTEP-1和VTEP-2上建立的隧道,VXLAN子网10,实现相互通信。此案例假定两边的地址学习已经完成,且在两边的VTEP上存在相应的MAC-to-VTEP映射。
OTV和VXLAN的对比
如果之前对OTV有过接触,可能会对两者之间的应用场景产生疑问。共同作为二层扩展技术,两者的区别又在哪些呢?以下是个人理解,仅供参考。
Overlay Transport Virtualization和Virtual Extensible LAN,从名字上就可以看出两者之间的着眼点有本质区别,一个着重于隧道功能,一个基于对现有LAN的扩展。
OTV设计的初衷就是跨DCI的二层打通,从控制层面入手,关注路由,利用arp cache抑制广播流量。VXLAN设计的初衷是DC内的二层打通,最开始是从数据层面解决问题,使用三层组播处理BUM (Broadcast, Unknown Unicast, and Multicast) 流量。随着VXLAN控制层面(MP-BGP E×××)的完善,跨DCI的VXLAN设计也会成为可选项。
OTV的数据传输报文封装为 Ethernet over MPLS over GRE,本质上是一种隧道技术。VXLAN使用MAC in UDP封装,在UDP协议中封装VXLAN报头。VXLAN报头中VNID扩充了VLAN ID的能力,原生支持多租户的云化需求。
转载于:https://blog.51cto.com/c2014/1829179