VxLAN技术基础

2021-05-07 11:34:24 6746

一、VxLAN技术发展的背景

数据中心网络中存在的几个问题

(1)VLAN数量不足

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

(2)虚拟化部署带来的大二层需求

虚拟机的动态迁移一直限定在二层网络中,无法在不同网段之间迁移大二层的需求带来了的问题防环路问题,原有的STP显然不能满足数据中心大二层的需求,从而出现了TRILL、SPB等新数据中心技术,落地情况一般

(3)多租户IP地址冲突问题

云数据中心通过主机虚拟化需要为不同的用户提供服务,而用户可能使用相同的IP地址,为了隔离用户流量,需要添加额外网关、地址翻译、vpn等技术,增加了组网的复杂性

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

在传统基于IP子网区域划分,虚拟机如果跨三层迁移后,网关需要发生变化必然会导致较长时间的业务中断,这个在传统的组网中是无法调和的矛盾

二、VxLAN的几个概念

1.overlay网络叠加技术

overlay网络

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

Overlay分为主机overlay、网络overlay、混合overlay


1.png


2. VxLAN技术

(1)VxLAN

虚拟可扩展局域网(virtual extensible lan),是overlay技术的一种,通过隧道机制在现有网络上构建一个叠加的网络从而绕过现有VLAN标签的限制

(2)VNI

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

(3)VTEP

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

3. VxLAN的报文封装


2.png


(1)VxLAN标签

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

(2)UDP包头

标准UDP包头,目的端口号为IANA分配的4798,源端口是数据帧本身的二层桢头的哈希结构,可以用作为流量负载分担的依据

(3)外层三层包头

外层ip包头的ip地址为隧道两端的VTEP设备地址,如果Hypervisor承担了VTEP工作则了服务器网卡地址,如果VTEP为接入交换机,则IP地址为出端口上的 IP地址或者三层接口地址、loopback地址

(4)外层二层包头

外层二层包头为报文在普通网络中做二、三层转发的MAC地址(目的mac为目的VTEP设备的 硬件mac或者三层网关的MAC)

4.报文举例


3.png


5.VxLAN GW和VxLAN IP GW


4.jpg


VxLAN IP GW

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

VxLAN GW

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

三、VxLAN技术原理

1.VxLAN的控制平面

VxLAN的控制平面实现方式分为3类

(1)自学习模式

利用泛洪/广播机制来实现VxLAN网络的建立

(2)基于SDN Controller的集中式模式

SDN Controller作为控制平面,通过下发流表指导VTEP的转发

(3)路由协议扩展模式

通过扩展isis(类EVI)、bgp协议来实现VxLAN网络的建立


5.jpg


2.VxLAN的控制平面—自学习模式

指定VxLAN ID映射到一个IP组播组,此VxLAN的VTEP都加入该组播组,通过flooding和learning机制完成学习

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


6.jpg


7.jpg


3.VxLAN的控制平面—基于controller方式

基于sdn controller方式的控制平面和地址学习

SDN controller与所有VxLAN ED设备建立连接(通过openflow协议),通过SDN controller给各VxLAN ED部署下发流表来进行VxLAN的转发


8.png


image.png


4.VxLAN的控制平面—基于isis协议

基于isis扩展协议的控制平面和mac地址学习

基于EVI邻居发现协议,通过isis扩展协议来实现控制平面和mac地址学习VxLAN网络启用ENDP协议,核心设备作为ENDS设备、接入设备作为ENDC设备,ISIS扩展协议来完成mac的发布和回收


10.png


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


11.jpg


5. VxLAN的数据平面

隧道机制

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


12.jpg


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


13.jpg


6. VXLAN如何解决数据中心网络中的问题

(1)VLAN数量不足

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

(2)虚拟化部署带来的大二层需求

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

(3)多租户IP地址冲突问题

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

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

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

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

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

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

VM的IP GW的VTEP IP和GW VMAC 相同,VM在迁移前后无感知网络的变化,对应的网关MAC没发生变化。







提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: