华三VXLAN集中式网关实战指南:Spine多活网关 + 双活接入(M-LAG)

一、方案架构与拓扑设计

1.1 设计思路

本方案采用Spine-Leaf两层架构,Spine层双机部署作为集中式VXLAN IP网关,Leaf层双机通过M-LAG实现双活接入。该架构的核心优势在于:

  • · 集中式网关部署在Spine设备上 ,所有三层流量均经过Spine设备处理,便于流量控制和策略部署
  • · Leaf层M-LAG双活接入 ,两台物理设备虚拟成一台逻辑设备作为VTEP,避免单点故障
  • · Spine多活网关 :两台Spine通过BGP EVPN建立对等关系,实现网关冗余和负载分担

1.2 逻辑拓扑

text

┌─────────────────────────────────────┐

│ 外部网络 (Internet/WAN) │

└──────────┬──────────┬───────────────┘

│ │

┌──────────┴──┐ ┌───┴──────────┐

│ Spine-1 │ │ Spine-2 │

│ (集中式网关) │ │ (集中式网关) │

│ VTEP │ │ VTEP │

└──┬───┬───┬──┘ └──┬───┬───┬───┘

│ │ │ │ │ │

┌────────┘ │ └────────┘ │ └────────┐

│ │ │ │

│ ┌───────┴───────┐ ┌──────┴────────┐ │

│ │ Leaf-1 │ │ Leaf-2 │ │

│ │ VTEP │ │ VTEP │ │

│ │ (M-LAG成员) │ │ (M-LAG成员) │ │

│ └───────┬───────┘ └──────┬─────────┘ │

│ │ peer-link │ │

│ └────────────────┘ │

│ │ │

│ ┌───────┴───────┐ │

└────────────┤ Server/Eth-Trunk (M-LAG) │

└────────────────────────────┘

1.3 设备角色说明

|-----------------|---------------|----------------------------|
| 设备 | 角色 | 功能 |
| Spine-1/Spine-2 | 集中式VXLAN IP网关 | 处理所有跨VNI三层转发及VXLAN访问外部网络流量 |
| Leaf-1/Leaf-2 | M-LAG VTEP | 二层VXLAN隧道端点,通过M-LAG双活接入服务器 |

1.4 关键地址规划

|----------------------------|----------------|
| 项目 | 地址/编号 |
| Spine-1 Loopback0 (VTEP) | 1.1.1.1/32 |
| Spine-2 Loopback0 (VTEP) | 1.1.1.2/32 |
| Leaf-1 Loopback0 (VTEP) | 2.2.2.1/32 |
| Leaf-2 Loopback0 (VTEP) | 2.2.2.2/32 |
| VXLAN VNI | 5010 |
| BD ID | 10 |
| VLAN | 10 |
| 网关IP (VSI-Interface) | 10.1.1.1/24 |
| M-LAG系统MAC | 0000-0000-0001 |
| Leaf-1 M-LAG system-number | 1 |
| Leaf-2 M-LAG system-number | 2 |
| M-LAG system-priority | 150 |
| AS号 (Spine) | 65001 |
| AS号 (Leaf) | 65002 |

注意 :当VXLAN集中式网关场景下Spine上行链路故障时,用户侧流量可能无法转发而被丢弃,需通过monitor-link或路由联动机制解决。

二、各设备配置范例

2.1 Underlay网络配置(以OSPF为例)

Spine-1 Underlay配置:

text

system-view

sysname Spine-1

配置Loopback0作为VTEP源地址

interface LoopBack0

ip address 1.1.1.1 32

quit

配置与Leaf-1互联接口

interface Ten-GigabitEthernet 1/0/1

port link-mode route

ip address 10.0.1.1 30

quit

配置与Leaf-2互联接口

interface Ten-GigabitEthernet 1/0/2

port link-mode route

ip address 10.0.2.1 30

quit

配置OSPF实现三层互通

ospf 1 router-id 1.1.1.1

area 0.0.0.0

network 1.1.1.1 0.0.0.0

network 10.0.1.0 0.0.0.3

network 10.0.2.0 0.0.0.3

quit

quit

Spine-2 Underlay配置: 类似配置,Loopback0为2.2.2.2/32,互联地址对应调整。

Leaf-1 Underlay配置:

text

system-view

sysname Leaf-1

interface LoopBack0

ip address 2.2.2.1 32

quit

interface Ten-GigabitEthernet 1/0/1

port link-mode route

ip address 10.0.1.2 30

quit

interface Ten-GigabitEthernet 1/0/2

port link-mode route

ip address 10.0.3.1 30

quit

ospf 1 router-id 2.2.2.1

area 0.0.0.0

network 2.2.2.1 0.0.0.0

network 10.0.1.0 0.0.0.3

network 10.0.3.0 0.0.0.3

quit

quit

Leaf-2 Underlay配置: 类似配置,Loopback0为2.2.2.2/32。

2.2 Spine集中式网关配置(BGP EVPN方式)

Spine-1配置:

text

1. 全局使能L2VPN和VXLAN

l2vpn enable

vxlan tunnel mac-learning disable

vxlan tunnel arp-learning disable

2. 配置VXLAN硬件资源模式(三层网关模式)

hardware-resource vxlan l3gw24k

3. 配置BGP EVPN

bgp 65001

peer 2.2.2.1 as-number 65002

peer 2.2.2.1 connect-interface LoopBack0

peer 2.2.2.2 as-number 65002

peer 2.2.2.2 connect-interface LoopBack0

address-family l2vpn evpn

peer 2.2.2.1 enable

peer 2.2.2.2 enable

undo policy vpn-target

quit

quit

4. 配置VSI(VXLAN实例)

vsi vxlan10

vxlan 5010

tunnel 2.2.2.1

tunnel 2.2.2.2

quit

quit

5. 配置VXLAN IP网关(集中式网关核心)

interface Vsi-interface 10

ip address 10.1.1.1 24

l3-vni 5010

quit

6. 配置BD与VSI关联

vlan 10

quit

interface Vsi-interface 10

quit

Spine-2配置: 与Spine-1类似,主要区别为Loopback0地址(1.1.1.2)和BGP Router ID。两台Spine通过EVPN对等体实现网关路由同步。

2.3 Leaf M-LAG双活接入配置

Leaf-1 M-LAG配置:

text

1. 配置M-LAG系统参数

m-lag system-mac 0000-0000-0001

m-lag system-number 1

m-lag system-priority 150

2. 配置peer-link(建议使用聚合口)

interface Bridge-Aggregation 1

port link-type trunk

port trunk permit vlan all

link-aggregation mode dynamic

quit

interface Ten-GigabitEthernet 1/0/10

port link-aggregation group 1

quit

interface Ten-GigabitEthernet 1/0/11

port link-aggregation group 1

quit

3. 配置DFS Group关联VXLAN

m-lag mad exclude interface Vlan-interface 4094

4. 配置用户侧M-LAG接口

interface Bridge-Aggregation 10

port link-type trunk

port trunk permit vlan 10

link-aggregation mode dynamic

m-lag 1

quit

interface Ten-GigabitEthernet 1/0/20

port link-aggregation group 10

quit

5. 配置VXLAN

l2vpn enable

vsi vxlan10

vxlan 5010

tunnel 1.1.1.1

tunnel 1.1.1.2

quit

quit

6. 将M-LAG接口关联到VSI

interface Bridge-Aggregation 10

quit

Leaf-2 M-LAG配置: 与Leaf-1类似,主要区别:m-lag system-number 2。

关键说明 :两台Leaf的M-LAG接口对应的VBDIF接口需要具有相同的IP地址和MAC地址。如需防止上行链路故障时流量丢弃,可配置monitor-link关联上行接口和下行接口,当上行出口DOWN时下行接口状态也变为DOWN。

2. 4 服务器侧配置(Linux Bonding示例)

/etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

TYPE=Bond

BONDING_MASTER=yes

BOOTPROTO=static

IPADDR=10.1.1.100

NETMASK=255.255.255.0

GATEWAY=10.1.1.1 # 指向Spine双活网关

BONDING_OPTS="mode=802.3ad miimon=100 lacp_rate=1"

/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

TYPE=Ethernet

BOOTPROTO=none

MASTER=bond0

SLAVE=yes

/etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

TYPE=Ethernet

BOOTPROTO=none

MASTER=bond0

SLAVE=yes

三、M-LAG流量转发机制

3.1 正常转发路径

  • · 跨VNI流量 :VM → Leaf(M-LAG双活)→ Spine(集中式网关)→ 三层转发 → 目标VNI → 目标Leaf → 目标VM
  • · VXLAN访问外部 :VM → Leaf → Spine(集中式网关)→ 外部网络
  • · 对称IRB转发 :入口和出口网关均执行三层路由转发,外层IP头源IP为入口VTEP地址,目的IP为出口VTEP地址

3.2 故障切换场景

|--------------|---------------------------------|----------|
| 故障场景 | 切换机制 | 收敛时间 |
| Leaf-1上行链路故障 | M-LAG将流量切换到Leaf-2的VXLAN隧道 | < 1s |
| Leaf-1整机故障 | M-LAG peer-link同步,流量全部切换到Leaf-2 | < 1s |
| Spine-1故障 | BGP EVPN路由撤销,Spine-2接管网关 | 取决于BGP收敛 |
| Spine上行链路故障 | 利用M-LAG机制将流量切换到对端VXLAN隧道 | 需配合联动机制 |

注意 :当Spine VXLAN隧道故障时,需确保M-LAG双活网关配置正确且对端VXLAN隧道状态为UP,否则需通过BGP EVPN同步隧道状态信息,触发流量重新路由。

四、网络调试详细步骤

4.1 基础连通性检查

步骤1:检查Underlay三层可达性

text

在Spine-1上ping Leaf-1的Loopback0

ping -a 1.1.1.1 2.2.2.1

检查OSPF邻居状态

display ospf peer

检查IP接口状态

display ip interface brief

步骤2:检查VXLAN隧道状态

text

查看VXLAN隧道信息(关键命令)

display l2vpn vsi verbose

查看隧道接口详细状态

display interface Tunnel 1

检查隧道源/目的地址

display vxlan tunnel

正常输出应显示隧道状态为Up,Tunnel source和destination地址正确。

步骤3:检查VSI与VXLAN ID绑定

text

查看VSI状态和VXLAN ID

display l2vpn vsi name vxlan10 verbose

验证VNI与BD映射

display vxlan vni

需确认两端VSI名称不同但VXLAN ID相同(正确配置),且同一VTEP上不同VSI未使用相同VXLAN ID。

4.2 BGP EVPN检查

text

检查BGP EVPN对等体状态

display bgp peer l2vpn evpn

查看接收到的EVPN路由

display bgp l2vpn evpn

查看IMET路由(用于头端复制)

display evpn auto-discovery imet

查看MAC/IP路由

display evpn auto-discovery mac-ip

4.3 ARP抑制配置与检查

text

在Spine集中式网关上开启ARP泛洪抑制

vsi vxlan10

arp suppression enable

quit

查看ARP抑制表项

display arp suppression vsi vxlan10

ARP泛洪抑制功能可有效避免ARP请求报文占用核心网络带宽,VTEP从本地或VXLAN隧道接收ARP报文后建立抑制表项。

4.4 常见故障排查流程

故障1:VXLAN隧道Down

排查步骤:

  1. display ip interface brief → 确认源IP正确

  2. display ospf peer → 确认底层路由可达

  3. ping -a 源VTEP 目的VTEP → 验证底层IP连通性

  4. 检查UDP端口号是否一致(display current-configuration | include vxlan udp-port)

故障2:隧道UP但业务不通

排查步骤:

  1. 确认两端VNI一致:display vxlan vni

  2. 检查AC服务实例匹配:display l2vpn vsi name vxlan10 verbose

  3. 确认泛洪抑制未误配:检查flooding disable all命令

  4. 检查MAC地址表学习:display mac-address vsi vxlan10

故障3:集中式网关Ping不通

排查流程:

  1. 检查VXLAN隧道是否为UP → 若DOWN则修改隧道和路由配置

  2. 检查VXLAN IP网关接口状态 → 若DOWN则修改网关接口配置

  3. 检查是否存在网关IP对应的ARP表项 → 若不存在则修改ARP相关配置

4.5 硬件资源模式检查

text

查看VXLAN硬件资源模式

display hardware-resource vxlan

如果模式不正确,重新配置(需重启生效)

hardware-resource vxlan l3gw24k

对报文进行三层转发的VXLAN IP网关设备上,需要配置VXLAN硬件资源模式为l3gw模式。多台设备形成IRF堆叠时,VXLAN硬件资源模式必须保持一致。

五、注意事项

5.1 硬件资源模式

  • · Spine设备作为集中式网关,必须配置三层网关模式:hardware-resource vxlan l3gw24k
  • · Leaf设备作为VTEP(二层网关),配置二层网关模式即可
  • · 修改硬件资源模式后需要重启设备才能生效

5.2 IRF堆叠注意事项

  • · 如果Leaf层采用IRF堆叠而非M-LAG,堆叠前需确保各成员设备的VXLAN硬件资源模式一致
  • · IRF Domain ID通常默认为0,需要根据网络规划手动配置
  • · 堆叠设备间建议配置BFD MAD检测,MAD检测接口需关闭STP协议

5.3 M-LAG部署关键点

  • · peer-link建议使用聚合口 ,避免单链路故障导致M-LAG协商异常
  • · M-LAG接口下建议配置基于源/目的IP+端口的哈希算法,增加负载分担粒度
  • · M-LAG主备设备需要同时作为三层网关,必须保证M-LAG成员接口对应的VBDIF接口具有相同的IP和MAC地址
  • · 密切关注peer-link状态,若出现拥塞或协商异常,M-LAG双活机制可能退化

5.4 集中式网关部署注意

  • · 集中式网关场景下所有三层流量经Spine处理,Spine设备压力较大,不适合大规模网络
  • · 建议在Spine上部署ARP泛洪抑制,减少广播报文对核心网络的影响
  • · 注意 :FE、FX类型单板用作集中式VXLAN IP网关时,不能同时用作接入本地站点的VTEP设备
  • · 交换机工作模式必须设置为standard模式

5.5 隧道与路由注意

  • · 确保两端设备UDP端口号一致(默认4789)
  • · Loopback口需发布32位路由,确保VTEP源地址可达
  • · BGP EVPN需正确配置RT(Route Target)以控制路由的发布与接收

5. 6 常见翻车点

  1. Peer-Link未放行业务VLAN:Peer-Link必须port trunk permit vlan all或至少包含所有业务VLAN,否则M-LAG裂开时业务中断。

  2. 忘记配置link-aggregation mode dynamic:M-LAG成员口和Peer-Link都必须使用动态LACP模式,静态聚合无法协商M-LAG状态。

  3. Keepalive链路不通:Keepalive建议使用独立三层链路或带外管理网,若ping不通会导致M-LAG状态异常。

  4. M-LAG裂开后Secondary设备接口Error-Down:裂开后Secondary设备所有非排除接口会被置为Error-Down,默认300秒恢复,可通过m-lag restore-delay调整。

  5. 单台设备重启后角色为None:当只有一台设备在线时,需配置m-lag auto-recovery reload-delay加速恢复。

  6. 一致性检查导致配置失败:生产环境建议开启一致性检查,但调试时可临时关闭m-lag consistency-check disable。

  7. 服务器ARP学习问题:双活网关场景下,服务器可能只从一个网卡发ARP,导致另一台Spine学不到ARP。可在Leaf配置arp smart-discover enable主动探测。

六、验证与测试

6.1 基本验证命令汇总

|----------------|--------------------------------------|
| 验证项 | 命令 |
| VXLAN隧道状态 | display interface Tunnel n |
| VSI状态与VXLAN ID | display l2vpn vsi verbose |
| VXLAN VNI映射 | display vxlan vni |
| BGP EVPN对等体 | display bgp peer l2vpn evpn |
| EVPN路由 | display bgp l2vpn evpn |
| IMET路由 | display evpn auto-discovery imet |
| ARP抑制表项 | display arp suppression vsi name |
| VXLAN硬件资源 | display hardware-resource vxlan |

6.2 业务测试步骤

  1. 同VNI二层互通测试 :同一Leaf下不同VM互ping

  2. 跨VNI三层互通测试 :不同VNI的VM经过Spine网关互ping

  3. VXLAN访问外部测试 :VM ping外部网络地址(如8.8.8.8)

  4. M-LAG切换测试 :断开Leaf-1上行链路,验证流量自动切换到Leaf-2

  5. Spine网关切换测试 :断开Spine-1,验证Spine-2接管网关功能