1、概述
(1)VXLAN是建立在物理IP(overlay)网络之上的虚拟以太网
使用UDP封装完整的内层以太帧,封装报文头共五十个字节
(2)VXLAN使用24位VXLAN网络标识符(VLAN为12位)
最大支持16,000,000个逻辑网络
(3)VXLAN可跨越物理三层网络
使用UDP封装能在三层物理网络上建立二层逻辑网络
(4)VXLAN利用ip多播封装广播和多播报文
在VXLAN网内广播或多播的报文被封装在ip多播中,如ARP报文
(5)VXLAN利用ECMP(等价多路径负载均衡)
对不同数据流使用不同UDP源端口
(6)VXLAN已提交到ITEF,启动标准化进程
与Cisco, Citrix, Red Hat, Broadcom,Arista等厂商协作
2、VXLAN解决的具体技术问题
(1)VLAN的数量限制:4094个VLAN远不能满足大规模云计算中心的需求,XVLAN最大支持 16,000,000个逻辑网络
(2)物理网络基础设施的限制:基于IP子网的区域划分限制了需要二层网络连通性的应用负载 的部署
(3)ToR交换机MAC表耗尽:虚拟化以及东西向流量导致更多的MAC表项
(4)汇聚层STP(生成树协议)高负荷:由于大量VLAN配置在大量接口,汇聚层交换机的压力大
增。
3、VXLAN报文格式
Outer header:封装VXLAN的UDP报文头,VXLAN封装在UDP报文的数据部分。
VXLAN Header:VXLAN报文头,包括:
F:未使用
I:表示VXLAN Network ID有效
Reserved:未使用
VXLAN Network ID:24bit,标识VXLAN网络标识,类似VLAN的ID,
只是必VLAN所表示的范围大很多
4、VXLAN网络的初始化
VTEP :VXLAN隧道终端 (VXLAN Tunneling End Point),用于多VXLAN报文进行封装/解封 装,包括mac请求报文和正常VXLAN数据报文,在一端封装报文后通过隧道向另一端VTEP发送封装报文,另一端VTEP接收到封装的报文解封装后根据被封装的MAC地址进行转发。VTEP可由支持VXLAN的硬件设备或软件来实现。
VM1及VM2连接到VXLAN网络100, 两个VXLAN主机加入IP多播组239.119.1.1
5、VXLAN网络交互过程
以ARP交互为例,其他数据报的交互类似
ARP请求:
(1)VM1以广播的形式发送ARP请求
(2)VTEP1把ARP请求报文被封装在IP多播报文中,并打上VXLAN标识为100
(3)VTEP1在ip多播组内里进行多播
(4)VTEP2接收到ip多播报文后对内层MAC地址到外层ip地址的映射进行学习,并解封装后在
本地VXLAN标识为100的虚拟局域内广播(这也是VXLAN ID的用武之地)
(5)VM2接收到请求自己MAC的ARP请求后做出响应
ARP响应:
(1)VM2准备ARP响应报文后向VM1发送响应报文
(2)VTEP2接收到VM2的响应报文后把它封装在ip单播报文中(VXLAN标识依然为100),然 后向VM1发送单播
(3)VTEP1接收到单播报文后,学习内层MAC到外层ip地址的映射,解封装并根据被封装内容 的目的MAC地址转发给VM1
(4)VM1接收到ARP应答报文,ARP交互结束
6、VXLAN网络和非VXLAN网络连接
必须使用VXLAN的网关才能把VXLAN网络和外部网络进行桥接和完成VXLAN ID和VLAN ID之间的映射和路由,和VLAN一样,虚拟局域网之间的通信需要三层设备的支持,即VXLAN虚拟局域网之间的通信也需要VXLAN路由的支持。同样,网关可由硬件或软件来实现。