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报文格式

vxlan 封装三层报文 vxlan的封装_UDP

    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网络的初始化


vxlan 封装三层报文 vxlan的封装_网络_02

    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请求:


vxlan 封装三层报文 vxlan的封装_网络_03

    (1)VM1以广播的形式发送ARP请求

    (2)VTEP1把ARP请求报文被封装在IP多播报文中,并打上VXLAN标识为100

    (3)VTEP1在ip多播组内里进行多播


            本地VXLAN标识为100的虚拟局域内广播(这也是VXLAN ID的用武之地)

    (5)VM2接收到请求自己MAC的ARP请求后做出响应

    ARP响应:    

vxlan 封装三层报文 vxlan的封装_vxlan 封装三层报文_04

    (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路由的支持。同样,网关可由硬件或软件来实现。


转载于:https://blog.51cto.com/chenpiaoping/1086707