VxLAN技术发展的背景:

VxLAN的发展得益于在IDC网络中存在如下几个原因:

4094个VLAN在云计算数据中心有可能不够;

虚拟化部署带来的大二层需求;

虚拟机的动态迁移一直限定在二层网络中,无法在不同网段之间迁移

大二层网络中的防环路问题,原有的STP显然不能满足数据中心大二层的需求,从

而出现了TRILL、SPB等新数据中心技术,但是目前落地情况一般。

多租户IP地址冲突问题,云数据中心通过主机虚拟化需要为不同的用户提供服务,而

用户可能使用相同的IP地址,为了隔离用户流量,需要添加额外网关、地址翻译、vpn等技术,增加了组网的复杂性。

基于IP子网区域划分极大限制了虚拟机动态迁移功能,在传统基于IP子网区域划分,虚拟机如果跨三层迁移后,网关需要发生变化必然会导致较长时间的业务中断,这个在传

统的组网架构中是无法调和的矛盾。

如何解决以上问题?

VLAN数量不足问题:

VNI取代VLAN用来表示不同的VxLAN网络,VNI是一个24位进制表示,可以扩展

到1600万 个网段

 虚拟化部署带来的大二层需求:

虚拟机可以跨三层网络迁移,不在需要大二层

 多租户IP地址冲突问题:

在VxLAN网络中根据VM mac地址表转发(对应VTEP地址的),并非根据VM IP转发只需要控制不同VxLAN的互通即可解决

 基于IP子网区域划分极大限制了虚拟机动态迁移功能:

VxLAN实现了计算资源与物理网络的无关性和二层网络在三层网络的扩展

 VM迁移后Ingress方向上寻址问题:

通过控制平面(扩展协议、SDN controller或者GARP来更新MAC表(对应VTEP

地址的)

 VM迁移后egress方向上的网关不变问题:

VM的IP GW的VTEP IP和GW VMAC 相同,VM在迁移前后无感知网络的变化,

对应的网关MAC没发生变化

VxLAN网络中的几个概念:

什么是VxLAN?

虚拟可扩展局域网(virtual extensible lan),是overlay技

术的一种,通过隧道机制在现有网络上构建一个叠加的网络从

而绕过现有VLAN标签的限制。

什么是VNI?

VNI(VxLAN Network Identifier)虚拟扩展本地网络标示符,VNI取代VLAN用来表示不同的VxLAN网络,是一个24位进制表示,可以扩展到2的24次方个网段。

什么是VTEP?

VTEP(VxLAN Tunnel End Point)虚拟扩展本地网络隧道终结节点,上行方向将虚拟机(服务器)产生的数据封装到UDP包头内发送出去,下行方向将收到的VxLAN报文解封装后发给虚拟机(服务器),VTEP之间建立了两点之间的隧道(VTEP可以为软件、硬件服务器或者网路设备、隧道是无状态的)。

什么是overlay网络叠加技术?

overlay网络是建立在已有网络上的虚拟网络,逻辑节点和逻辑链路构成了overlay网络,overlay网络是为了解决传统网络无法提供的功能和服务。Overlay分为主机overlay、网络overlay、混合overlay。

vlan全套教程(3分钟带你学习VxLAN)(1)

什么是VxLAN GW和VxLAN IP GW?

vlan全套教程(3分钟带你学习VxLAN)(2)

VxLAN IP GW:

网络设备支持VXLAN报文的封装与解封装,并根据内层报文的IP头部进行三层转发 。

 VxLAN GW:

支持VXLAN报文的封装与解封装,并根据内层报文的MAC头部进行二层转发,实现VxLAN与VLAN的互通。

视频讲解什么是VxLAN:

VxLAN报文封装架构:

vlan全套教程(3分钟带你学习VxLAN)(3)

VxLAN标签:

标志位(8bits),一个有效的VxLAN网络ID(VNI),第5个bit的I标

志位必须设置为1;余下的7个bit的标志位是保留的,必须设置为0,VxLAN网络ID(VNI),长24bit,用于标识一个单独的VxLAN网络。

UDP包头:

标准UDP包头,目的端口号为IANA分配的4798,源端口是数据帧本

身的二层桢头的哈希结构,可以用作为流量负载分担的依据。

外层三层包头:

外层IP包头的IP地址为隧道两端的VTEP设备地址,如果Hypervisor承

担了VTEP工作则了服务器网卡地址,如果VTEP为接入交换机,则IP地

址为出端口上的 IP地址或者三层接口地址、loopback地址。

外层二层包头:

外层二层包头为报文在普通网络中做二、三层转发的MAC地址(目的

MAC为目的VTEP设备的 硬件MAC或者三层网关的MAC)。

vlan全套教程(3分钟带你学习VxLAN)(4)

VxLAN控制平面实现方式:

自学习模式:利用泛洪/广播机制来实现VxLAN网络的建立;指定VxLAN ID映射到一个IP组播组,此VxLAN的VTEP都加入该组播组,通过flooding和learning机制完成学习。

如图VM Server属于同一个VxLAN 10,加入特定组播组239.1.1.1。

vlan全套教程(3分钟带你学习VxLAN)(5)

自学习方式一

vlan全套教程(3分钟带你学习VxLAN)(6)

自学习方式二

 基于SDN控制器的集中式模式:SDN控制器作为控制平面,通过下发流表指导VTEP的转发;SDN控制器与所有VxLAN ED(Edge Device,边缘设备)设备建立连接(通过openflow协议),通过SDN 控制器给各VxLAN ED部署下发流表来进行VxLAN的转发。

vlan全套教程(3分钟带你学习VxLAN)(7)

 路由协议扩展模式:通过扩展ISIS(类EVI)、bgp协议来实现VxLAN网络的建立;基于EVI邻居发现协议,通过isis扩展协议来实现控制平面和mac地址学习;VxLAN网络启用ENDP(Enhanced Neighbor DiscoveryProtocol,增强的邻居发现协议)协议,核心设备作为ENDS(Enhanced Neighbor DiscoveryServer)设备、接入设备作为ENDC(Enhanced Neighbor DiscoveryClient)设备,ISIS扩展协议来完成mac的发布和回收。

vlan全套教程(3分钟带你学习VxLAN)(8)

Core设备作为ENDS设备、接入设备(VTEP)作为ENDC设备,ENDC设备向ENDS设备发起注册(包括VxLAN ID、VTEP ID、network ID),ENDS发送应答包括所有ENDC设备信息,建立VxLAN控制平面。

vlan全套教程(3分钟带你学习VxLAN)(9)

vlan全套教程(3分钟带你学习VxLAN)(10)

vtep设备转发时需要的报文信息

VxLAN数据平面实现方式:

隧道机制:

 源和目的VTEP之间建立隧道,负责报文的VxLAN封装和解封装,VTEP为虚拟机数据包分装了层层包头,这些新包头只会在报文到目的VTEP时才会解封装,中间路径网络设备只会根据外层包头的目的地址进行转发,对于转发路径上的网络设备,一个VxLAN报文就是一个普通IP报文。

vlan全套教程(3分钟带你学习VxLAN)(11)

在VTEP设备上进行VxLAN的封装解封装,根据MAC地址表(对应有对端的VTEP IP地址)转发,以虚拟机的二层转发/同一个VxLAN为例。

vlan全套教程(3分钟带你学习VxLAN)(12)

,