VXLAN是一种网络虚似化技术,可以改进大型云计算在部署时的扩展问题,是对VLAN的一种扩展。VXLAN将传统的802.1Q VLAN标识符从12 Bits扩展至24 Bits,最大可以有1600万个唯一的二层网络分段。使用VXLAN 封装,原始数据帧会被封装成MAC in UDP,这样,就允许二层网络连接跨越三层路由网络。

从上图中可看出,除原始数据帧外,外层头部需要消耗额外Bytes,将header相加;通过内层头部的L2/L3/L4信息做Hash计算得出UDP 源端口--VTEP设备动态分配的;UDP目的端口,固定使用4789;IP首部的源IP地址为源端VTEP的IP地址,目的IP地址为目的端VTEP的IP地址;以太帧首部的源MAC地址为源端VTEP的MAC地址,目的MAC地址为到达目的端VTEP的下一跳设备的MAC地址。

VXLAN封装的Ping包
接下来,让我们看看Underlay和Overlay。


underlay是指下层的,即基础架构层,专门用于承载用户流量的传统的IP网络,只要可以提供IP包的转发即可。是可路由的IP网络;灵活的拓扑;推荐使用具备冗余路径的网络,利用ECMP实现负载均衡;支持任何路由协议。Overlay是上层的、业务层面的、用户层面的,是一个VTEP to VTEP的隧道。
在上文中提到了VTEP,那么什么是VTEP呢?VTEP的全称是Vlan Tunnel EndPoint,翻译成中文就是Vlan隧道终结点,用于VXLAN封装及解封装。每一个VTEP都用两个接口,一个用于本地Lan网络桥接转发,另一个是用于连接transit网络的IP接口。
最早为VXLAN转发提供可能的是Flood and Learn机制,虽然因其自身不可避免的缺点而甚少被使用了,但仍有了解的意义。

1、终端A要请求终端B的ARP;
2、该ARP包到达VTEP-1,VTEP-1对其进行封装:依次为VXLAN头,UDP头,外层IP头(源IP为VTEP-1,目的IP为Underlay组播组IP),外层MAC头(源MAC为VTEP-1,目的MAC为组播组MAC);
3、该包被送至所有其他VTEP节点,这些VTEP节点收到后进行解封装,从而得到最原始的ARP request包;
4、紧接着,这些VTEP将ARP request发送至本地Lan网络,如果被请求的终端B不在本地Lan网络,则该包被本地终端设备丢弃(如VTEP-3所连接的终端设备);如果被请求的终端B在本地Lan网络,则终端B收到该ARP request并回应ARP reply至本地VTEP-2节点;
5、连接终端B的VTEP-2节点收到该ARP reply后,根据VXLAN头,UDP头,外层IP头(源IP为VTEP-2,目的IP为VTEP-1),外层MAC头(源MAC为VTEP-2,目的MAC为VTEP-1)进行封装;
6、VTEP-1收到该包后,进行解封装后,得到原始的ARP reply,将该ARP reply发送给终端A;同时,通过外层头信息,VTEP-1也学习到了VTEP-2的IP以及终端B的MAC,从而构建了VXLAN ID+Remote VTEP IP+Remote MAC的映射表;
7、基于VTEP-1和VTEP-2上的映射信息,以及利用VXLAN隧道,实现终端A和B的后续单播转发;
8、VTEP-1可以选择性地为IP-B的后续ARP请求执行代理ARP,以减少传输网络上的泛洪。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69943410/viewspace-2667299/ ,如需转载,请注明出处,否则将追究法律责任。