什么是VXLAN - 华为

什么是VXLAN - 华为

VXLAN,英文全称为 Virtual eXtensible Local Area Network,中文通常称为虚拟可扩展局域网,是一种典型的网络虚拟化技术。它通过在三层IP网络之上构建二层虚拟网络,把原始以太网帧封装在UDP报文中传输,从而实现跨三层网络的二层互通。简单理解,VXLAN让服务器、虚拟机、容器或裸金属主机即使分布在不同机房、不同机架、不同三层网络中,也可以像连接在同一个二层交换网络中一样通信。

在华为CloudEngine数据中心交换机、园区数据中心网络、云资源池网络以及多租户虚拟化场景中,VXLAN是非常重要的基础能力。它通常与EVPN、BGP、NVE接口、VTEP、VNI、Bridge Domain、VBDIF等概念一起出现,用来解决传统VLAN规模不足、二层网络扩展困难、虚拟机迁移受限、多租户隔离复杂等问题。

本文围绕“什么是VXLAN”展开,重点介绍VXLAN为什么产生、VXLAN与VLAN的区别、VTEP和VNI的作用、VXLAN报文如何封装、VXLAN隧道如何建立、集中式和分布式VXLAN网关的差异、VXLAN网络中的转发流程,以及BGP EVPN在VXLAN网络中的典型应用。文中的配置命令以华为CloudEngine交换机常见VRP风格为例,不同产品型号和软件版本在命令细节上可能存在差异,实际部署时应以对应设备的产品文档为准。

为什么需要VXLAN

传统数据中心网络大量使用VLAN进行二层隔离。VLAN通过在以太网帧中插入802.1Q标签来区分不同广播域,一个VLAN ID为12bit,理论上最多支持4096个VLAN,其中部分VLAN还会被系统保留,实际可用数量更少。在传统企业网络中,4096个VLAN通常已经足够,但在云计算和大规模虚拟化场景中,这个数量很快就会成为瓶颈。

例如,一个云平台可能同时承载成千上万个租户,每个租户还可能需要多个网络,如业务网、管理网、存储网、备份网、测试网等。如果仍然使用VLAN为每个租户或每个业务网络做隔离,VLAN ID很快就会耗尽。同时,VLAN是一种二层技术,二层网络的扩展依赖生成树、堆叠、M-LAG、TRILL、SPB等技术进行环路控制或链路冗余,规模越大,管理越复杂,故障域也越大。

数据中心网络的另一个核心诉求是虚拟机迁移。虚拟机从一台物理服务器迁移到另一台物理服务器后,如果希望IP地址不变、网关不变、业务不中断,那么迁移前后的服务器通常需要处于同一个二层网络。传统VLAN要求这个二层网络在物理层面被打通,这会导致二层域横向拉伸,网络边界模糊,广播范围扩大,故障影响面增加。

VXLAN的出现正是为了解决这些问题。VXLAN使用24bit的VNI来标识一个虚拟网络,理论上可以提供约1677万个逻辑网络,远远超过VLAN的4096个。VXLAN把二层以太网帧封装在三层UDP报文中,让Underlay网络只需要提供IP可达能力,不再要求物理网络处处二层打通。这样,网络架构可以采用更稳定、更可扩展的三层Leaf-Spine模型,而业务仍然可以获得类似二层网络的体验。

从华为数据中心网络的角度看,VXLAN的价值主要体现在以下几个方面:第一,扩展租户网络数量,满足大规模云资源池需求;第二,解耦Overlay业务网络和Underlay物理网络,提高网络设计灵活性;第三,支持跨机架、跨资源池、跨数据中心的二层互通;第四,便于与BGP EVPN结合,实现控制平面自动发现、MAC/IP路由发布、ARP抑制和分布式网关等能力;第五,便于自动化平台统一编排,提升云网络交付效率。

VXLAN与VLAN之间有何不同

VLAN和VXLAN都可以用于逻辑隔离,但两者所处层次、扩展能力和转发机制差异很大。VLAN更接近传统二层交换技术,适用于规模较小、边界清晰的局域网隔离;VXLAN则是Overlay网络技术,适用于大规模数据中心、云网络和多租户环境。

对比项 VLAN VXLAN
标识字段 VLAN ID,12bit VNI,24bit
可用规模 理论4096个 理论约1677万个
网络层次 二层隔离技术 二层Overlay over 三层Underlay
转发依赖 传统二层交换、MAC学习、STP等 VTEP封装解封装,Underlay基于IP转发
跨三层能力 原生不支持跨三层二层互通 支持跨三层构建二层虚拟网络
多租户适配 规模有限,规划复杂 适合大规模多租户隔离
控制平面 主要依赖数据平面学习 可结合BGP EVPN发布MAC/IP路由
常见应用 园区、传统服务器区、小型数据中心 云数据中心、虚拟化、容器、资源池网络

VLAN的报文在物理网络中仍然是普通二层帧,交换机根据目的MAC和VLAN ID进行转发。VXLAN则会在原始以太网帧外增加VXLAN头、UDP头、外层IP头和外层以太网头。Underlay设备只需要识别外层IP地址,把报文转发到目标VTEP即可,不需要关心内层租户MAC、内层IP或租户VLAN。

举个简单例子,服务器A和服务器B属于同一个租户网络,但它们分别接入不同机房的不同Leaf交换机。如果使用VLAN,要实现二层互通,就需要把同一个VLAN从服务器A所在接入交换机一路透传到服务器B所在接入交换机,中间设备都要感知这个VLAN。使用VXLAN后,只需要在两端VTEP上把本地接入VLAN映射到同一个VNI,中间Underlay网络仅负责三层转发,不需要配置租户VLAN,也不需要感知租户二层信息。

VXLAN的核心概念

理解VXLAN,需要先掌握几个关键组件:VTEP、VNI、NVE接口、Bridge Domain、Underlay网络和Overlay网络。这些概念是配置和排障VXLAN时最常见的关键词。

什么是VTEP

VTEP是 VXLAN Tunnel Endpoint 的缩写,即VXLAN隧道端点。VTEP负责对原始以太网帧进行VXLAN封装和解封装,是连接传统二层网络和VXLAN Overlay网络的边界设备。在华为CloudEngine交换机中,VTEP通常由Leaf交换机承担,也可以由虚拟交换机、网关设备或软件网关承担。

当本地服务器发送普通以太网帧进入VXLAN网络时,入口VTEP会根据接入接口、VLAN、Bridge Domain等信息判断该报文属于哪个VXLAN网络,然后给报文加上对应VNI,再封装外层UDP/IP头,把报文发送到远端VTEP。远端VTEP收到后,去掉外层封装,还原出原始以太网帧,再转发给本地服务器或虚拟机。

VTEP必须具备一个在Underlay网络中可达的源IP地址,这个地址通常配置在Loopback接口上。使用Loopback作为VTEP源地址的好处是稳定性更高,不依赖某一条物理链路;只要Underlay路由可达,VXLAN隧道就可以保持连通。在华为设备配置中,NVE接口下的source通常就指向这个Loopback地址。

什么是VNI

VNI是 VXLAN Network Identifier 的缩写,即VXLAN网络标识。它是VXLAN头中的24bit字段,用来标识一个独立的二层虚拟网络。可以把VNI理解为VXLAN中的“增强版VLAN ID”,但VNI并不是简单替代VLAN,而是在Overlay网络中标识租户网络或业务网络的逻辑标识。

例如,租户A的Web网络可以使用VNI 5010,租户A的数据库网络可以使用VNI 5020,租户B的Web网络可以使用VNI 6010。即使不同租户内部使用相同的IP地址段,只要VNI不同,VXLAN网络就会保持隔离。VTEP在转发报文时会同时参考VNI和MAC/IP等信息,避免不同租户之间的二层信息混淆。

在华为CloudEngine交换机中,VNI通常与Bridge Domain绑定。Bridge Domain可以理解为设备上的二层广播域,接入侧VLAN、子接口或物理接口被加入BD后,再通过BD关联VXLAN VNI,从而实现本地二层网络与VXLAN Overlay网络的映射。

什么是NVE接口

NVE是 Network Virtualization Edge 的缩写,表示网络虚拟化边缘接口。在华为设备中,VXLAN隧道相关参数通常配置在NVE接口下,例如指定VTEP源地址、配置VNI与远端VTEP的关系、指定通过BGP EVPN动态建立头端复制列表等。NVE接口不是普通物理接口,而是一个逻辑接口,用于承载VXLAN隧道功能。

一个典型的静态VXLAN配置中,NVE接口会指定源Loopback地址,并在对应VNI下配置远端VTEP地址。例如,VNI 5010需要与远端VTEP 10.1.1.2建立VXLAN隧道,就可以在NVE接口下配置该VNI的head-end peer-list。这样,当本地VTEP需要向远端VTEP发送属于VNI 5010的报文时,就知道应该封装到哪个目的VTEP IP。

什么是Underlay和Overlay

Underlay是底层物理网络,负责提供IP可达能力。它通常由Leaf-Spine交换机、路由协议、物理链路和三层接口组成。在VXLAN网络中,Underlay不需要理解租户VLAN、租户MAC或租户IP,只需要保证各个VTEP的Loopback地址之间可以互通。

Overlay是叠加在Underlay之上的虚拟网络,由VXLAN隧道、VNI、VTEP和租户二层/三层转发表组成。用户业务看到的是Overlay网络,而物理网络转发的是经过封装的外层IP报文。Overlay和Underlay解耦后,物理网络可以按照高性能三层架构设计,业务网络可以按租户、应用、环境灵活创建和删除。

VXLAN报文是如何封装的

VXLAN采用MAC-in-UDP封装方式,也就是把原始二层以太网帧作为载荷,封装到UDP报文中传输。一个VXLAN报文从外到内通常包括外层以太网头、外层IP头、UDP头、VXLAN头和内层以太网帧。

外层以太网头用于Underlay网络中逐跳转发,源MAC和目的MAC会随着每一跳三层转发而变化。外层IP头中的源IP是本端VTEP地址,目的IP是远端VTEP地址。UDP头用于承载VXLAN数据,目的端口通常为4789。VXLAN头中最重要的字段是VNI,用来标识该报文属于哪个VXLAN虚拟网络。内层以太网帧则是租户真实的业务报文,包括租户源MAC、目的MAC、可选VLAN标签、内层IP和上层协议数据。

可以用如下结构理解VXLAN封装:

1
2
3
4
5
外层以太网头
外层IP头:源IP=本端VTEP,目的IP=远端VTEP
UDP头:目的端口=4789
VXLAN头:VNI=租户网络标识
内层以太网帧:源MAC/目的MAC/内层IP/业务数据

当服务器A向服务器B发送报文时,如果A和B位于不同VTEP下但属于同一个VNI,入口VTEP会先查找本地MAC表或EVPN表项,确定服务器B的MAC对应的远端VTEP。然后入口VTEP封装VXLAN报文,外层目的IP设置为远端VTEP地址。Underlay网络中的Spine设备只根据外层IP转发,不感知内层业务。远端VTEP收到后,检查VXLAN头中的VNI,解封装后把内层以太网帧转发给服务器B。

VXLAN封装会增加报文长度,通常增加约50字节左右的额外开销。因此,Underlay网络的MTU需要相应增大。如果服务器侧MTU为1500,Underlay链路最好配置为1550、1600或更高,在数据中心中常见做法是把Underlay接口MTU设置为9216等巨帧值,以避免VXLAN封装后报文被分片或丢弃。

VXLAN隧道是如何建立的

VXLAN隧道本质上是VTEP之间的逻辑关系。只要两个VTEP在Underlay网络中IP可达,并且它们针对相同VNI建立了对端关系,就可以通过VXLAN封装传输租户报文。VXLAN隧道的建立方式主要有静态方式和动态方式两类。

静态方式建立VXLAN隧道

静态方式需要管理员手工指定每个VNI对应的远端VTEP地址。在小规模环境中,这种方式简单直接,便于理解。例如,两台Leaf交换机分别作为VTEP,Loopback地址为10.1.1.1和10.1.1.2,租户网络使用VNI 5010,则可以在两端手工配置对端VTEP。

以下为华为CloudEngine交换机上静态VXLAN的简化示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
system-view
#
l2vpn enable
#
interface LoopBack0
ip address 10.1.1.1 32
#
bridge-domain 10
vxlan vni 5010
#
interface 10GE1/0/1.10 mode l2
encapsulation dot1q vid 10
bridge-domain 10
#
interface Nve1
source 10.1.1.1
vni 5010 head-end peer-list 10.1.1.2
#
commit

在远端VTEP上,需要把NVE源地址改为10.1.1.2,并把peer-list指向10.1.1.1。这样两端就可以针对VNI 5010建立VXLAN隧道。接入侧服务器如果通过VLAN 10接入,则本地VLAN 10会映射到Bridge Domain 10,再映射到VNI 5010,最终通过VXLAN隧道跨三层转发。

静态方式的优点是配置逻辑清晰,不依赖复杂控制平面;缺点是扩展性较差。假设有100台VTEP,每个VTEP都要与其他VTEP建立关系,手工配置peer-list会非常繁琐,而且新增或删除VTEP时容易漏配。静态方式更适合实验环境、小型资源池、固定拓扑或临时验证,不适合大规模云数据中心。

动态方式建立VXLAN隧道

动态方式通常使用BGP EVPN作为控制平面。VTEP之间通过BGP EVPN发布和学习MAC地址、IP地址、VNI、远端VTEP地址以及BUM流量转发信息。这样,管理员不需要在每台设备上手工维护所有远端VTEP列表,网络可以根据EVPN路由自动发现隧道端点并建立转发表。

在BGP EVPN VXLAN网络中,Underlay可以运行OSPF、IS-IS或BGP来保证VTEP Loopback地址可达;Overlay控制平面运行BGP EVPN,用于发布租户网络信息。常见设计是在Leaf之间建立iBGP EVPN邻居,或者通过Spine作为Route Reflector反射EVPN路由,减少Leaf之间的全互联邻居数量。

简化的EVPN配置片段如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
system-view
#
l2vpn enable
evpn-overlay enable
#
interface LoopBack0
ip address 10.1.1.1 32
#
bridge-domain 10
vxlan vni 5010
evpn
route-distinguisher 10.1.1.1:10
vpn-target 65000:5010 export-extcommunity
vpn-target 65000:5010 import-extcommunity
#
interface Nve1
source 10.1.1.1
vni 5010 head-end peer-list protocol bgp
#
bgp 65000
peer 10.255.0.1 as-number 65000
peer 10.255.0.1 connect-interface LoopBack0
#
l2vpn-family evpn
peer 10.255.0.1 enable
#
commit

这个示例中,evpn-overlay enable用于使能EVPN Overlay能力;Bridge Domain下绑定VNI 5010,并配置EVPN的RD和RT;NVE接口下通过protocol bgp表示VNI的远端VTEP信息由BGP EVPN动态学习;BGP的l2vpn-family evpn用于建立EVPN地址族邻居。实际部署中还需要完整配置Underlay路由、BGP邻居、Route Reflector、接入接口、网关接口和相关安全策略。

哪些VTEP之间需要建立VXLAN隧道

并不是网络中所有设备之间都需要建立VXLAN隧道。只有承载相同VNI并且存在互通需求的VTEP之间,才需要建立对应的VXLAN转发关系。比如Leaf1和Leaf2都承载VNI 5010,那么它们之间需要能够转发VNI 5010的VXLAN报文;如果Leaf3只承载VNI 6010,而不承载VNI 5010,那么Leaf1没有必要为VNI 5010向Leaf3发送BUM流量或单播流量。

在静态VXLAN场景中,管理员需要手工判断哪些VTEP承载同一VNI,并配置对应的peer-list。如果配置过多,会造成无意义的BUM复制,浪费带宽;如果配置过少,则可能导致某些站点无法互通。在BGP EVPN场景中,设备会根据EVPN路由和RT导入导出策略自动判断某个VNI的成员关系。RT相当于EVPN路由的过滤和导入策略,只有RT匹配的VTEP才会导入对应租户网络的路由。

从规划角度看,VNI、BD、RT、RD、租户、网关接口之间的映射关系要保持清晰。常见做法是按租户或业务域分配RT,按二层网络分配VNI,按设备和VNI生成唯一RD。这样既便于自动化平台生成配置,也便于排障时快速确认某条EVPN路由是否应该被某台VTEP学习。

VXLAN网关有哪些种类

VXLAN本身解决的是二层Overlay扩展问题,但实际业务中经常需要不同子网之间互通,也就是三层网关能力。VXLAN网关主要分为二层网关、三层网关、集中式网关和分布式网关几类。

二层网关负责传统二层网络与VXLAN网络之间的接入和桥接。例如服务器通过VLAN接入Leaf,Leaf把该VLAN映射到VNI,这个Leaf就承担二层VXLAN网关角色。二层网关主要处理MAC学习、二层转发、VXLAN封装解封装,不负责不同网段之间的路由。

三层网关负责不同VXLAN网络或不同子网之间的路由转发。在华为设备中,常见方式是在Bridge Domain上创建VBDIF接口,并为VBDIF配置IP地址作为租户网关。服务器的默认网关指向VBDIF地址,不同网段之间的报文通过VBDIF进行三层转发。

集中式网关是指所有跨网段流量都集中到一组网关设备上处理。接入Leaf只负责二层VXLAN转发,三层路由统一由集中网关完成。集中式网关架构简单,策略集中,便于防火墙、审计、负载均衡等业务串接,但东西向流量可能绕行,网关设备容易成为性能瓶颈。

分布式网关是指每台接入Leaf都可以作为本地服务器的三层网关。相同租户网关地址和MAC可以在多台Leaf上同时配置,服务器跨网段访问时,流量在本地Leaf即可完成三层转发,再通过VXLAN发送到目标Leaf。分布式网关减少东西向流量绕行,提高转发效率,是大规模云数据中心更常见的设计。分布式网关通常需要BGP EVPN配合,用于发布MAC/IP路由和主机路由,实现精确转发和ARP抑制。

VXLAN网络中报文是如何转发的

VXLAN转发可以分为同子网互通、不同子网互通、BUM流量转发、已知单播转发等多种场景。理解这些流程,有助于排查“同VNI不通”“跨网段不通”“ARP异常”“隧道有但业务不通”等常见问题。

集中式VXLAN中同子网互通流程

假设服务器A和服务器B属于同一个子网192.168.10.0/24,同一个VNI 5010,但分别接入Leaf1和Leaf2。服务器A首次访问服务器B时,如果A不知道B的MAC地址,会先发送ARP请求。Leaf1收到ARP广播后,判断该报文属于BD 10和VNI 5010。由于这是广播报文,Leaf1需要将其发送给本地同BD端口,同时通过VXLAN隧道发送给远端承载VNI 5010的VTEP。

在静态VXLAN中,Leaf1会根据head-end peer-list复制ARP请求并发往Leaf2;在EVPN VXLAN中,Leaf1会根据EVPN学习到的VNI成员关系进行复制,或者通过组播方式转发。Leaf2收到VXLAN报文后解封装,将内层ARP请求转发给服务器B。服务器B回复ARP响应,Leaf2学习到服务器B的MAC在本地接入侧,同时把响应通过VXLAN单播发送回Leaf1。Leaf1收到后学习服务器B的MAC对应远端VTEP Leaf2,并把ARP响应交给服务器A。

后续A访问B时,Leaf1已经知道B的MAC位于Leaf2之后,于是直接进行已知单播VXLAN封装,外层目的IP为Leaf2的VTEP地址,VNI为5010。Underlay网络根据外层IP转发到Leaf2,Leaf2解封装后把原始以太网帧送到服务器B。整个过程中,Spine设备只看到Leaf1到Leaf2的IP/UDP报文,不感知A和B的真实MAC。

集中式VXLAN中不同子网互通流程

假设服务器A属于192.168.10.0/24,VNI 5010;服务器C属于192.168.20.0/24,VNI 5020。两者需要跨网段通信。在集中式网关架构中,Leaf接入设备只负责二层转发,三层网关集中部署在Border Leaf或专用网关设备上。

服务器A发现目的IP不在本地子网,会把报文发送给默认网关。默认网关的MAC可能位于集中网关设备上。Leaf1收到服务器A发往网关MAC的二层帧后,将其封装为VNI 5010的VXLAN报文发送到集中网关VTEP。集中网关解封装后,在VBDIF 10上完成三层路由查找,确定目的网段192.168.20.0/24位于VNI 5020,然后重新封装或转发到服务器C所在的VTEP。

如果服务器C位于Leaf2下,集中网关会把路由后的报文封装到VNI 5020,并以Leaf2的VTEP地址作为外层目的IP发送。Leaf2解封装后把报文发给服务器C。服务器C回包时也会先到集中网关,再由集中网关转回服务器A。可以看到,集中式网关的优点是路径清晰、策略集中,缺点是跨网段东西向流量需要绕行集中网关。

分布式VXLAN中不同子网互通流程

在分布式网关架构中,Leaf1和Leaf2都配置相同的租户网关地址和虚拟MAC。例如VNI 5010的网关都是192.168.10.1,VNI 5020的网关都是192.168.20.1。服务器A访问服务器C时,A将报文发送给默认网关192.168.10.1,Leaf1在本地接收到报文后就可以完成三层转发,不需要先绕行集中网关。

Leaf1完成路由查找后,发现目的服务器C属于VNI 5020,并且通过EVPN路由知道C的MAC/IP位于Leaf2之后。于是Leaf1把路由后的内层以太网帧封装为VNI 5020的VXLAN报文,外层目的IP为Leaf2的VTEP地址。Leaf2收到后解封装,直接送达服务器C。回程流量也可以在Leaf2本地完成三层转发后直接发往Leaf1。

分布式网关特别适合东西向流量占比较高的数据中心,例如微服务集群、数据库集群、虚拟化资源池、容器平台等。它可以减少不必要的流量绕行,降低核心网关压力。不过,分布式网关对控制平面要求更高,通常需要EVPN发布MAC/IP绑定关系,避免ARP泛洪和主机路由不一致。

BUM流量与ARP抑制

在二层网络中,广播、未知单播和组播通常统称为BUM流量。VXLAN网络同样需要处理BUM流量,例如ARP请求、未知目的MAC报文、某些组播业务报文等。如果BUM流量完全依赖泛洪,在大规模多租户环境中会消耗大量带宽和设备资源。

VXLAN处理BUM流量常见方式有三种:组播复制、头端复制和EVPN辅助抑制。组播复制依赖Underlay网络支持组播,VTEP把BUM报文发送到对应组播组,由Underlay复制给所有成员。头端复制则由入口VTEP复制多份VXLAN报文,分别发送给远端VTEP,配置简单但在VTEP数量很多时会增加入口设备负担。EVPN方式可以通过控制平面学习MAC/IP绑定关系,减少ARP广播,并通过IMET路由等机制建立BUM复制列表。

ARP抑制是EVPN VXLAN中的重要优化能力。启用ARP抑制后,VTEP可以根据EVPN学习到的MAC/IP信息,在本地直接回应ARP请求,而不必把ARP广播泛洪到所有远端VTEP。例如服务器A请求服务器B的MAC,如果Leaf1已经通过EVPN知道B的IP和MAC绑定关系,就可以直接代答ARP。这样可以显著降低广播流量,提高大规模云网络稳定性。

什么是BGP EVPN

EVPN是 Ethernet VPN 的缩写,是一种用于二层和三层VPN的控制平面技术。BGP EVPN通过BGP扩展地址族发布MAC地址、IP地址、VTEP地址、VNI成员关系和路由前缀等信息。VXLAN负责数据平面封装,EVPN负责控制平面学习,两者结合后构成现代数据中心常见的EVPN VXLAN架构。

在传统VXLAN中,MAC地址通常依赖数据平面泛洪学习,类似传统交换机收到报文后学习源MAC。这种方式在小规模场景可行,但在大规模多租户网络中会产生较多广播和未知单播流量。引入BGP EVPN后,VTEP可以通过控制平面提前学习远端主机的MAC/IP和所在VTEP,减少泛洪,提高收敛速度,也便于策略控制。

EVPN中常见的路由类型包括:Type 2路由,用于发布MAC地址和可选IP地址,也称MAC/IP Advertisement Route;Type 3路由,用于发布Inclusive Multicast Ethernet Tag信息,帮助建立BUM流量复制列表;Type 5路由,用于发布IP Prefix Route,常用于三层互通和外部路由发布。实际项目中,Type 2和Type 3几乎是EVPN二层VXLAN的基础,Type 5更多用于分布式网关、外部网络互联和大规模路由优化。

BGP EVPN中的RD和RT也非常关键。RD用于保证路由唯一性,即使不同租户使用相同的MAC或IP,附加不同RD后也可以在BGP中区分。RT用于控制路由导入和导出,决定某条EVPN路由可以被哪些VTEP接收和使用。规划EVPN VXLAN时,RD通常要求全局唯一,RT则应与租户或VNI策略一致。

华为CloudEngine上VXLAN配置思路

在华为CloudEngine交换机上配置VXLAN,通常可以按照“先Underlay、再Overlay、再接入、最后验证”的顺序进行。Underlay负责VTEP之间IP可达,Overlay负责VNI和EVPN,接入侧负责把服务器VLAN或接口加入BD,网关侧负责VBDIF和三层路由。

Underlay基础配置

Underlay可以使用OSPF、IS-IS或BGP。下面以Loopback作为VTEP源地址为例,展示基础思路:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
system-view
#
interface LoopBack0
ip address 10.1.1.1 32
#
interface 10GE1/0/48
undo portswitch
ip address 172.16.12.1 31
#
ospf 1
area 0.0.0.0
network 10.1.1.1 0.0.0.0
network 172.16.12.0 0.0.0.1
#
commit

这里的关键是确保所有VTEP的Loopback地址在Underlay中可达。排障时可以先使用ping -a指定源Loopback测试远端VTEP地址。如果Loopback之间不通,VXLAN隧道即使配置正确,业务也无法转发。

二层VXLAN接入配置

接入侧一般把服务器接口或子接口加入Bridge Domain,再将BD绑定到VNI:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
system-view
#
l2vpn enable
#
bridge-domain 10
vxlan vni 5010
#
interface 10GE1/0/1.10 mode l2
encapsulation dot1q vid 10
bridge-domain 10
#
interface Nve1
source 10.1.1.1
vni 5010 head-end peer-list 10.1.1.2
#
commit

如果服务器是裸金属服务器,接入口可能是Access或Trunk模式;如果连接虚拟化宿主机,可能需要允许多个VLAN接入,并在交换机侧通过不同子接口映射到不同BD。实际项目中要明确“服务器侧VLAN”“BD编号”“VNI编号”三者的关系,避免出现VLAN加入了错误BD、BD绑定了错误VNI、远端VTEP未承载该VNI等问题。

配置VXLAN三层网关

如果需要不同子网互通,可以在BD上创建VBDIF接口作为网关:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
system-view
#
bridge-domain 10
vxlan vni 5010
#
interface Vbdif10
ip address 192.168.10.1 255.255.255.0
#
bridge-domain 20
vxlan vni 5020
#
interface Vbdif20
ip address 192.168.20.1 255.255.255.0
#
commit

集中式网关中,VBDIF通常只部署在集中网关设备上;分布式网关中,多个Leaf会配置相同的网关IP和虚拟MAC,并通过EVPN同步主机路由。分布式网关配置涉及Anycast Gateway、EVPN IRB等能力,具体命令会随设备版本而变化,部署前应统一规划网关MAC、VNI、RT和路由发布策略。

常用验证命令

华为设备上排查VXLAN时,可以从Underlay、NVE、BD、EVPN、MAC表几个方向验证。常见命令包括:

1
2
3
4
5
6
7
8
9
display ip routing-table
display interface brief
display bridge-domain
display vxlan tunnel
display nve peer
display mac-address bridge-domain
display bgp evpn peer
display bgp evpn all routing-table
display arp

验证顺序建议从底向上进行。第一步检查物理接口和Underlay路由是否正常;第二步检查Loopback之间是否互通;第三步检查NVE源地址和VXLAN隧道是否建立;第四步检查BD与VNI映射是否正确;第五步检查本地和远端MAC是否学习;第六步检查EVPN邻居和EVPN路由是否正常;最后再抓取业务报文分析ARP、ICMP或TCP是否按预期转发。

实战场景一:云平台多租户网络隔离

某企业建设私有云平台,为研发、测试、生产、运维等多个部门提供虚拟机资源。每个部门都要求拥有独立的业务网络,并且不同部门之间默认隔离。传统VLAN方式下,网络团队需要为每个部门分配多个VLAN,并在所有相关交换机上透传,随着租户数量增长,VLAN规划越来越混乱,变更也越来越容易出错。

引入VXLAN后,平台可以为每个租户网络分配独立VNI。例如研发租户的Web网络使用VNI 10010,数据库网络使用VNI 10020;生产租户使用VNI 20010和20020。物理Underlay只维护Leaf和Spine之间的三层互通,不再承载大量租户VLAN。租户网络创建、删除和迁移主要发生在Overlay层,配合云平台自动化编排,可以快速完成网络交付。

在这种场景中,BGP EVPN的价值非常明显。虚拟机上线后,接入Leaf可以通过EVPN发布该虚拟机的MAC/IP位置;虚拟机迁移到另一台宿主机后,新Leaf发布新的主机位置,旧表项撤销或老化,网络可以较快收敛。相比传统二层泛洪学习,EVPN控制平面更适合大规模、频繁变更的云环境。

实战场景二:数据库集群跨机架高可用

某金融业务数据库集群部署在多个机架中,为了实现高可用,主库和备库希望位于不同机架甚至不同资源池,但业务要求复制网络保持同一二层网段,迁移或切换时IP地址尽量不变。传统做法可能需要把同一个VLAN拉通到多个机架,这会扩大二层故障域,也会让核心交换网络承载大量广播。

使用VXLAN后,可以在不同机架的Leaf之间通过VNI构建同一个二层Overlay网络。数据库服务器仍然认为自己处于同一个二层网段,而Underlay网络保持三层架构。机架之间的链路冗余、ECMP负载分担和快速收敛由Underlay路由协议负责,数据库复制流量则通过VXLAN隧道承载。

这个场景中要特别关注MTU和链路质量。数据库复制流量通常对稳定性和时延较敏感,如果Underlay MTU不足导致分片,可能引起吞吐下降或间歇性超时。部署前应统一服务器、接入交换机、Leaf-Spine链路和网关接口的MTU策略,并通过大包Ping、业务压测和链路监控确认没有隐性丢包。

实战场景三:开发测试环境快速交付

在开发测试环境中,项目组经常需要临时创建隔离网络,用于验证新版本应用、微服务调用关系或安全策略。传统网络变更需要申请VLAN、配置交换机、调整网关、防火墙放通,周期较长。VXLAN与自动化平台结合后,可以把网络创建抽象为租户网络、子网、端口和安全组等对象。

例如开发人员在云平台上创建一个测试网络,平台后台为该网络分配VNI,控制器或自动化系统下发华为交换机上的BD、VNI、EVPN和网关配置。虚拟机接入后,其MAC/IP位置通过EVPN发布到网络中。项目结束后,删除租户网络即可回收VNI和相关配置。对网络团队来说,底层Underlay基本保持稳定,日常变更集中在Overlay层,变更风险更可控。

不过,开发测试场景也容易出现地址重叠、网络过度膨胀和无效配置残留。建议为不同环境建立清晰的VNI号段和RT号段,定期清理不再使用的BD、VNI和EVPN实例,避免控制平面路由和设备配置持续膨胀。

踩坑提醒与最佳实践

第一,Underlay必须先稳定,再部署Overlay。很多VXLAN故障表面上看是VNI不通、MAC学不到、隧道异常,根因却是Underlay路由不通、ECMP路径不一致、接口MTU不一致或物理链路误码。部署前应先验证所有VTEP Loopback之间可达,并确认路由收敛、链路聚合、BFD和MTU配置符合设计。

第二,MTU要提前规划。VXLAN封装会增加额外头部,如果Underlay仍然使用1500字节MTU,而服务器发送接近1500字节的大报文,就可能出现分片或丢包。最佳实践是在数据中心Underlay链路启用巨帧,并确保端到端路径的MTU一致。排障时可以使用指定报文大小和不分片标志的Ping进行验证。

第三,VNI、BD、VLAN、RT不要混用概念。VLAN是接入侧标识,BD是设备内部二层广播域,VNI是VXLAN Overlay网络标识,RT是EVPN路由导入导出策略。它们经常按一定规则映射,但不是同一个东西。很多配置错误都来自把“VLAN 10”“BD 10”“VNI 10”简单等同,实际项目中应建立明确的编号规范。

第四,EVPN邻居正常不代表业务一定正常。BGP EVPN Peer Established只说明控制平面邻居建立成功,还需要检查EVPN路由是否正确发布和导入、RT是否匹配、NVE接口是否绑定BGP协议、BD是否关联EVPN、MAC/IP路由是否存在。如果某台Leaf学不到远端MAC,重点检查对应VNI的RT导入导出和远端主机是否已经上线。

第五,集中式网关和分布式网关不要随意混搭。集中式网关适合规模较小、南北向策略集中、需要统一安全插入的场景;分布式网关适合东西向流量大、需要本地转发的大规模云数据中心。二者在网关位置、路由发布、ARP处理、故障排查上差异明显,设计阶段就应确定清楚。

第六,建议优先使用BGP EVPN承载大规模VXLAN。静态VXLAN适合入门实验和小规模固定场景,但一旦VTEP数量增加,手工peer-list维护成本会迅速上升。BGP EVPN不仅可以自动发现远端VTEP,还可以减少ARP泛洪,支持分布式网关和更精细的主机路由发布,是生产级数据中心更推荐的方案。

常见问题

VXLAN是否一定需要三层Underlay

VXLAN本质上运行在IP网络之上,因此需要VTEP之间IP可达。这个IP网络通常是三层Underlay,可以是Leaf-Spine架构,也可以是其他可路由网络。理论上,VTEP之间处于同一个二层网络也可以IP可达,但这样无法体现VXLAN跨三层扩展和Underlay解耦的优势。生产数据中心通常建议采用三层Underlay,并通过OSPF、IS-IS或BGP实现ECMP和快速收敛。

VXLAN能否替代VLAN

VXLAN不是简单替代VLAN,而是把VLAN从大范围物理透传中解放出来。在接入侧,服务器或虚拟化平台仍然可能使用VLAN作为本地标识;进入VTEP后,VLAN被映射到BD和VNI,在Overlay中通过VXLAN转发。可以理解为VLAN更多用于本地接入,VXLAN用于跨三层的大规模虚拟网络扩展。

VXLAN是否会影响性能

VXLAN封装会带来额外头部和封装解封装处理,但现代数据中心交换芯片通常支持VXLAN硬件转发,性能影响较小。真正需要关注的是MTU、ECMP哈希、隧道数量、BUM流量规模、控制平面路由数量和网关转发能力。如果设备不支持硬件VXLAN或配置导致流量走CPU,则可能出现明显性能问题。因此选型时要确认设备对VXLAN、EVPN、分布式网关、ARP抑制等能力的硬件支持情况。

VXLAN中的安全隔离如何实现

VXLAN通过VNI实现逻辑隔离,不同VNI之间默认属于不同二层网络。如果需要跨VNI或跨子网互通,需要通过三层网关、路由策略、防火墙或安全组控制。对于多租户云环境,除了VNI隔离,还应结合ACL、微分段、安全组、东西向防火墙、路由泄露控制等机制,避免误配置导致租户互通。

延伸阅读

学习VXLAN时,建议把它放在数据中心网络整体架构中理解,而不是只看一个封装格式。VXLAN解决的是“如何在三层网络上承载大规模二层虚拟网络”的问题;EVPN解决的是“如何用控制平面高效发布MAC/IP和VTEP信息”的问题;Leaf-Spine解决的是“底层物理网络如何高带宽、低收敛、可扩展”的问题。三者结合,才构成现代云数据中心常见的网络基础架构。

如果继续深入,可以重点研究BGP EVPN路由类型、分布式网关IRB、ARP/ND抑制、EVPN多归属、Anycast VTEP、跨数据中心VXLAN互联以及Overlay与安全服务链的结合。在华为设备环境中,还应熟悉CloudEngine交换机的NVE、BD、VBDIF、EVPN实例、Route-Target策略和常用display诊断命令,这些内容是日常部署和排障VXLAN网络的基础。

相关阅读


什么是VXLAN - 华为
https://blog.calcguide.tech/2025-05-17-什么是vxlan/
作者
CalcGuide
发布于
2025年5月17日
许可协议