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。
什么是VxLAN GW和VxLAN IP GW?
VxLAN IP GW:
网络设备支持VXLAN报文的封装与解封装,并根据内层报文的IP头部进行三层转发 。
VxLAN GW:
支持VXLAN报文的封装与解封装,并根据内层报文的MAC头部进行二层转发,实现VxLAN与VLAN的互通。
视频讲解什么是VxLAN:
VxLAN报文封装架构:
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)。
VxLAN控制平面实现方式:
自学习模式:利用泛洪/广播机制来实现VxLAN网络的建立;指定VxLAN ID映射到一个IP组播组,此VxLAN的VTEP都加入该组播组,通过flooding和learning机制完成学习。
如图VM Server属于同一个VxLAN 10,加入特定组播组239.1.1.1。
自学习方式一
自学习方式二
基于SDN控制器的集中式模式:SDN控制器作为控制平面,通过下发流表指导VTEP的转发;SDN控制器与所有VxLAN ED(Edge Device,边缘设备)设备建立连接(通过openflow协议),通过SDN 控制器给各VxLAN ED部署下发流表来进行VxLAN的转发。
路由协议扩展模式:通过扩展ISIS(类EVI)、bgp协议来实现VxLAN网络的建立;基于EVI邻居发现协议,通过isis扩展协议来实现控制平面和mac地址学习;VxLAN网络启用ENDP(Enhanced Neighbor DiscoveryProtocol,增强的邻居发现协议)协议,核心设备作为ENDS(Enhanced Neighbor DiscoveryServer)设备、接入设备作为ENDC(Enhanced Neighbor DiscoveryClient)设备,ISIS扩展协议来完成mac的发布和回收。
Core设备作为ENDS设备、接入设备(VTEP)作为ENDC设备,ENDC设备向ENDS设备发起注册(包括VxLAN ID、VTEP ID、network ID),ENDS发送应答包括所有ENDC设备信息,建立VxLAN控制平面。
vtep设备转发时需要的报文信息
VxLAN数据平面实现方式:
隧道机制:
源和目的VTEP之间建立隧道,负责报文的VxLAN封装和解封装,VTEP为虚拟机数据包分装了层层包头,这些新包头只会在报文到目的VTEP时才会解封装,中间路径网络设备只会根据外层包头的目的地址进行转发,对于转发路径上的网络设备,一个VxLAN报文就是一个普通IP报文。
在VTEP设备上进行VxLAN的封装解封装,根据MAC地址表(对应有对端的VTEP IP地址)转发,以虚拟机的二层转发/同一个VxLAN为例。
,