- 应用灵活部署:通过VXLAN封装后的2层以太网帧可以跨3层网络边界,让组网以及应用部署变得更加灵活,同时解决多租户网络环境中IP地址冲突问题。
- 提高网络利用率:传统以太网使用STP预防环路,STP导致网络冗余路径处于阻塞状态,VXLAN报文基于3层IP报头传输,能有效利用网络路径,支持ECMP(equal-cost multipath )和链路聚合协议。
-
Endpoint(VTEP):VXLAN使用VTEP设备对VXLAN报文进行封装与解封装,包括ARP请求报文和正常的VXLAN数据报文,VTEP将原始以太网帧通过VXLAN封装后发送至对端VTEP设备,对端VTEP接收到VXLAN报文后解封装然后根据原始MAC进行转发,VTEP可以是物理交换机、物理服务器或者其他支持VXLAN的硬件设备或软件来实现。
- 组播组:VTEP设备要加入相同的组播组,主要用于Mac地址泛洪与学习。
-
控制平面:在VXLAN的实现中,当采用组播来实现的时后,他是一种数据驱动式的泛洪与学习,没有严格意义上的控制平面,VTEP设备之间使用无状态tunnel,VTEP设备之间不会维持状态化的长连接。VXLAN需要通过组播学习远端设备地址信息,在本地构建控制平面表项。控制平面表项由VNI、Inner Source MAC、Outer Source
注:采用组播会面临一些问题,控制层面可以采用EVPN(MP-BGP)。详见:《基于EVPN的VxLAN实验》")
- 转发平面:控制平面学习地址映射信息后,转发平面负责实际数据的转发。VTEP为原始数据帧增加UDP报头,新的报头到达目的VTEP后才会被去掉,中间路径的网络设备只会根据外层包头内的目的地址进行数据转发。
VTEP发现和地址学习过程
如下图所示,举例说明采用组播实现的VxLAN场景中End System A和End System B通信过程中,ARP请求报文封装过程
- (1)终端设备A发送ARP请求,请求终端设备B的MAC地址;
- (3)VTEP-2、VTEP3加入相同的组播组,所有组成员都会收到VTEP-1发送的组播报文,解封装后检查VNI与本地VNI是否匹配,如匹配将ARP请求发送至本地网络,同时记录VNI、inner MAC、outer IP的对应关系,构建控制平面地址映射表项。如VNI不匹配则丢弃数据包。
- (4)终端设备B收到ARP请求后以单播方式发送ARP响应;
- (6)VTEP-1收到封装后的ARP响应后,解封装比对VNI,如匹配将ARP响应发送至终端设备A,同时记录VNI、inner MAC、outer IP的对应关系,构建控制平面表项;
- (7)此时VTEP-1、VTEP-2均已成功构建控制平面地址映射信息,后续VXLAN数据使用单播在VTEP-1和VTEP-2之间传输。
VxLAN单播数据流转发过程
通过上面的ARP请求,终端设备A已经有了终端B的MAC地址,VTEP-1也有了终端B对应的映射表项
- (1)终端设备A将单播报文转发给VTEP-1;
实验拓扑:构造如下图所示网络拓扑;
协议规划:ISP网络运行OSPF,启用组播,VxLAN控制面选用组播模式;