VxLAN详解

2022-6-17 547 6/17

VLAN

此处对VLAN做简单介绍,不做详细解释,Virtual Local Area Network,虚拟局域网,二层隔离技术,先行标准为IEEE 802.1Q,一个VLAN属于一个广播域,原理为在报文源MAC地址字段和协议类型字段之间加入4字节的802.1Q Tag,其中有12bit用于标书vlan id,即4096个,实际可用为1-4094,通过配置交换机端口模式Access、Trunk、Hybird来实现对报文的解封装(打上Tag/去掉Tag)实现。

VxLAN

VLAN的限制

1.传统vlan标签受限于4096个(12bit)标签,当租户数量剧增,又必须隔离租户,传统的vlan满足不了要求;

2.传统vlan无法满足虚拟机动态迁移,虚拟化迁移业务要求迁移后IP不变,要求提供一个无障碍接入的网络,所以必须是大2层的网络结构;

VXLAN

Virtual eXtensible Local Area Network,虚拟扩展局域网,是对传统VLAN协议的一种扩展,原理是将L2的以太帧封装到UDP报文中,并在L3网络中传输,封装8字节的vxlan头部,其中24bit的VNI数据可提供16M个vxlan id。VXLAN本质上是一种隧道技术,在源网络设备与目的网络设备之间的IP网络上,建立一条逻辑隧道,将用户侧报文经过特定的封装后通过这条隧道转发。

Vxlan术语

VxLAN详解

VNI

VXLAN Network Identifier,VXLAN网络标识符,VXLAN通过VXLAN ID来标识,其长度为24比特。VXLAN 16M个标签数解决了VLAN标签不足的缺点,相当于vlan id。

VTEP

VXLAN Tunnel End Point,VXLAN隧道端点,VXLAN的边缘设备,VXLAN的相关处理都在VTEP上进行,例如识别以太网数据帧所属的VXLAN、基于VXLAN对数据帧进行二层转发、封装/解封装报文等。VTEP可以是一台独立的物理设备,也可以是虚拟机所在服务器的虚拟交换机,可以理解为vlan的网关。

VXLAN Tunnel

两个VTEP之间点到点的逻辑隧道,VTEP为数据帧封装VXLAN头、UDP头、IP头后,通过VXLAN隧道将封装后的报文转发给远端VTEP,远端VTEP对其进行解封装。

BD

Bridge-Domain,类似于传统网络中VLAN(虚拟局域网)的概念,只不过在VXLAN网络中,它有另外一个名字BD。不同的VLAN是通过VLAN ID来进行区分的,那不同的BD是通过VNI来区分的。

VSI

Virtual Switching Instance,虚拟交换实例,VTEP上为一个VXLAN提供二层交换服务的虚拟交换实例。VSI可以看作是VTEP上的一台基于VXLAN进行二层转发的虚拟交换机,它具有传统以太网交换机的所有功能,包括源MAC地址学习、MAC地址老化、泛洪等。VSI与VXLAN一一对应。

VSI-Interface

VSI的虚拟三层接口,类似于Vlan-Interface,用来处理跨VNI即跨VXLAN的流量。VSI-Interface与VSI一一对应,在没有跨VNI流量时可以没有VSI-Interface。

二层子接口

传统VLAN网络中定义了三种不同类型的接口:Access、Trunk、Hybrid。这三种类型的接口虽然应用场景不同,但它们的最终目的是一样的:一是根据配置来检查哪些报文是允许通过的;二是判断对检查通过的报文做怎样的处理。在VXLAN网络中,VTEP上的接口也承担着类似的任务,是一个叫做“二层子接口”的逻辑接口。

VTEP和VSI关系

VxLAN详解

现有VTEP设备中,一般用“接口+VLAN”的方式来区分流量与VSI的对应关系,而VSI与VXLAN Tunnel之间既可以建立全连接,也可以根据需求进行关联。

VxlAN报文格式

VTEP会将原本报文封装新的报头,这个报头总计50字节。

VxLAN详解

Outer MAC Header

封装外层以太头,14字节,如果有VLAN TAG则为18字节。其中,源MAC地址(Outer Source MAC Address)为源VM所属VTEP的MAC地址,目的MAC地址(Outer Destination MAC Address)为到达目的VTEP的路径上下一跳设备的MAC地址。类型字段为0x0800,指示内层封装的是IP报文。

Outer IP Header

封装外层IP头,20字节。其中,源IP地址(Outer Source IP Address)为源VM所属VTEP的IP地址,目的IP地址(Outer Destination IP Address)为目的VM所属VTEP的IP地址。协议字段为0x11,指示内层封装的是UDP报文。

UDP Header

UDP报文头,8字节。其中,UDP目的端口号(UDP Destination Port)固定为4789,指示内层封装报文为VXLAN报文。UDP源端口号(UDP Source Port)为随机任意值,可以用于VTEP之间多路径负载分担的计算。

VXLAN Header

VXLAN协议新定义的VXLAN头,8字节。

Flags:8 bit,RRRRIRRR。“I”位为1时,表示VXLAN头中的VXLAN ID有效;为0,表示VXLAN ID无效。“R”位保留未用,设置为0。

VXLAN ID(VNI):24 bit,用于标识一个单独的VXLAN网络。

Reserved:分别为24 bit和8 bit。保留位。

Original L2 Frame

原始以太网报文。

注意

1.从报文的封装可以看出,VXLAN头和原始二层报文是作为UDP报文的载荷存在的,在VTEP之间的网络设备,只需要根据Outer MAC Header和Outer IP Header进行转发,利用UDP Source Port进行负载分担,这一过程,与转发普通的IP报文完全相同。这样,除了VTEP设备,现网的大量设备无需更换或升级即可支持VXLAN网络。

2.原始以太网报文默认为1500字节,报文在经过VTEP时,会封装上50字节的新报文头,就变成了1550字节,VTEP设备,一般在解封装VXLAN报文时,要求VXLAN报文不能被分片,否则无法正确解封装。这就要求VTEP之间的所有网络设备的MTU最小为 1550字节,但中间的网络设备一般是不方便设置MTU的值的,那么设置虚拟机的MTU值为1450,也可以解决这个问题。

Vxlan端口模式

传统网络中定义了三种不同类型的接口:Access、Trunk、Hybrid,根据配置来检查哪些报文是允许通过的,并判断对检查通过的报文做怎样的处理。

VXLAN网络中,VTEP上的接口也承担着类似的任务和功能,不过是对二层子接口进行设置,常见的有dot1q、untag、qinq和default四种接口类型。

dot1q:对于带有VLAN Tag的报文,该类型接口只接收与指定VLAN Tag匹配的报文;对于带有VLAN Tag和外层VxLan封装的报文,该类型接口只接收外层Vxlan封装与指定VLAN Tag匹配的报文。

untag:该类型接口只接收不带VLAN Tag的报文。

qinq:该类型接口只接收带有指定VLAN Tag和指定外层Vxlan封装的报文。

default:允许接口接收所有报文,不区分报文中是否带VLAN Tag。不论是对原始报文进行VXLAN封装,还是解封装VXLAN报文,该类型接口都不会对原始报文进行任何VLAN Tag处理,包括添加、替换或剥离。

注意

VXLAN隧道两端二层子接口的配置并不一定是完全对等的。正因为这样,才可能实现属于同一网段但是不同VLAN的两个VM通过VXLAN隧道进行通信。

并不是配置了VLAN就一定不能配置Vxlan,VLAN仍可作为本地局域网二层隔离的技术,不过需要跨网甚至跨地域大二层通信时再通过VxLAN隧道转发,也就是可以根据需求自定义配置交换机接收到一个报文是通过vlan转发还是vxlan转发。

VxLAN转发原理

VxLAN详解

如图,VM1(10.10.10.1)需通过vxlan隧道与VM2(10.10.10.12通信),他们各自的VTEP设备维持一张映射关系转发表,可理解为MAC表,不过它是由MAC地址、VNI和VTEP IP组成,表示主机的MAC位于哪个VTEP节点内。转发时若映射关系转发表里没有对应信息,则VTEP节点将目的需求洪泛给其他VTEP节点,类似于ARP广播的方式,之后根据表项内容点对点转发。

VxLAN转发举例

VxLAN详解

如图,一台虚拟化服务器中有两个不同VLAN VID的虚拟机VM1(VLAN 10)和VM2(VLAN 20),要求无它们与其他虚拟机通信时需要接入VXLAN网络,其中vSwitch与VTEP的PVID为vlan20。

配置为:

1.VTEP1的物理接口10GE 1/0/1上,分别针对VM1和VM2封装不同的二层子接口,并将其分别加入不同的BD,分别配置为dot1q和untag的封装类型。

2.vSwitch的上行口配置成Trunk模式,放行vlan10、20。

3.根据VTEP1和VTEP3的IP配置VxLAN隧道

4.VTEP3进行接口配置。

详细的配置命令本处省略,这样后续VM1和VM2的流量将会进入不同的VXLAN隧道继续转发了。

VXLAN网关

通过配置BDIF来设置VXLAN网关,BDIF接口的功能与VLANIF接口类似,是基于BD创建的三层逻辑接口,用以实现不同子网之间的通信,或VXLAN网络与非VXLAN网络之间的通信。

VXLAN二层网关与三层网关

和VLAN类似,不同VNI之间的主机,以及VXLAN网络和非VXLAN网络中的主机不能直接相互通信。为了满足这些通信需求,VXLAN引入了VXLAN网关的概念。VXLAN网关分为二层网关和三层网关:

VXLAN二层网关:用于终端接入VXLAN网络,也可用于同一VXLAN网络的子网通信。

VXLAN三层网关:用于VXLAN网络中跨子网通信以及访问外部网络。

VXLAN集中式网关与分布式网关

VXLAN集中式网关

集中式网关是指将三层网关集中部署在一台设备上,所有跨子网的流量都经过这个三层网关转发,实现流量的集中管理。

VxLAN详解

优点是集中管理,缺点是路径不是最优,随着网络流量增大可能存在ARP表项性能瓶颈,不利于后期扩展。

VXLAN分布式网关

通过部署分布式网关可以解决集中式网关部署的缺点。VXLAN分布式网关是指在典型的“Spine-Leaf”组网结构下,将Leaf节点作为VXLAN隧道端点VTEP,每个Leaf节点都可作为VXLAN三层网关(同时也是VXLAN二层网关),Spine节点不感知VXLAN隧道,只作为VXLAN报文的转发节点。如下图所示,Server1和Server2不在同一个网段,但是都连接到同一个Leaf节点。Server1和Server2通信时,流量只需要在该Leaf节点上转发,不再需要经过Spine节点。

VxLAN详解

部署分布式网关时:

Spine节点:关注于高速IP转发,强调的是设备的高速转发能力。
Leaf节点:
作为VXLAN网络中的二层网关设备,与物理服务器或VM对接,用于解决终端租户接入VXLAN虚拟网络的问题。
作为VXLAN网络中的三层网关设备,进行VXLAN报文封装/解封装,实现跨子网的终端租户通信,以及外部网络的访问。

优点是Leaf节点既可以做VXLAN二层网关,也可以做VXLAN三层网关,部署灵活,且只需要学习自身连接服务器的ARP表项,性能无瓶颈,扩展能力强。

VXLAN隧道如何建立

手工方式建立VXLAN隧道

这种方式需要用户手动指定VXLAN隧道的源IP为本端VTEP的IP、目的IP为对端VTEP的IP,也就是人为地在本端VTEP和对端VTEP之间建立静态VXLAN隧道。

自动方式建立VXLAN隧道

在网络规模很小的情况下,手工建立还可以接受,但是一旦涉及大规模网络或者频繁的租户业务连接需求,手工建立就显得很吃力且不好维护,此时就需要自动化的配置配置方式。

控制平面-Control Plane

自动建立VXLAN本质是将控制平面和数据平面分开,通过将各VTEP设备控制平面通过统一方式接入,实现自动化的配置维护。

控制平面的功能

VTEP邻居发现:VXLAN网络中的VTEP数量众多,类型不同,纯手工配置VTEP非常困难也不利于大规模部署。VXLAN的控制平面应该具有自动发现VTEP邻居、自动建立VXLAN Tunnel、自动进行关联等功能。

虚拟机信息同步:虚拟机信息同步主要是指MAC及ARP的同步。上线的虚拟机信息需要在各VTEP上同步,下线的虚拟机信息要能够在各VTEP上删除或老化,迁移的虚拟机信息要能够从旧VTEP转移到新VTEP。

此外,不同的控制平面协议还能实现自动部署、灵活调整、策略下发等功能。

不同控制平面技术

基于SDN Controller的控制平面

SDN Controller可以是一个或者一组硬件设备,也可以是一套软件。Controller与网络中所有设备建立连接,整个VXLAN网络的数据转发都由Controller来管理。Controller与设备连接的接口称为南向接口,可以使用OpenFlow、Netconf等协议;对用户提供服务的接口称为北向接口,也可以提供API以便与其他管理平台对接或进行深度开发。

VxLAN详解

基于VXLAN-ISIS的控制平面

为私有协议,目前已基本不再使用。基于VXLAN-ISIS的控制平面利用ENDP(Enhanced Neighbor Discovery Protocol,增强邻居发现协议)和VXLAN-ISIS两个协议共同完成VXLAN所需的自动建立隧道和信息同步功能。这种控制平面利用ISIS协议的可扩展特性来同步VXLAN建立和流量转发所需要的信息,是早期VXLAN控制平面探索时期的成果之一。

基于EVPN的控制平面

Ethernet Virtual Private Network,目前EVPN是最主流的Vxlan控制协议,可以在网络设备上直接进行配置。EVPN统一了各种VPN业务的控制面,利用BGP扩展协议来传递二层或三层的可达性信息,实现了转发面和控制面的分离。EVPN解决传统L2VPN的无法实现负载分担、网络资源的消耗较高等不足,同时也可以对L3VPN业务进行承载,降低了协议的复杂程度。EVPN还将IP VPN流量均衡和部署灵活的优势引入到了以太网中。种种优势使其广泛应用于大型数据中心二层网络互连场景。

VxLAN详解

EVPN+VXLAN也成为了目前一种主流的构建SDN网络的方式。

参考资源:华为-什么是VXLAN

视频讲解-华为CloudEngine系列交换机VXLAN特性介绍

第一部分

第二部分

 

 

 

 

 

 

 

 

 

 

- THE END -
Tag:

Tenkms

12月01日00:06

最后修改:2023年12月1日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论