一、方案架构与拓扑设计
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
排查步骤:
-
display ip interface brief → 确认源IP正确
-
display ospf peer → 确认底层路由可达
-
ping -a 源VTEP 目的VTEP → 验证底层IP连通性
-
检查UDP端口号是否一致(display current-configuration | include vxlan udp-port)
故障2:隧道UP但业务不通
排查步骤:
-
确认两端VNI一致:display vxlan vni
-
检查AC服务实例匹配:display l2vpn vsi name vxlan10 verbose
-
确认泛洪抑制未误配:检查flooding disable all命令
-
检查MAC地址表学习:display mac-address vsi vxlan10
故障3:集中式网关Ping不通
排查流程:
-
检查VXLAN隧道是否为UP → 若DOWN则修改隧道和路由配置
-
检查VXLAN IP网关接口状态 → 若DOWN则修改网关接口配置
-
检查是否存在网关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 常见翻车点
-
Peer-Link未放行业务VLAN:Peer-Link必须port trunk permit vlan all或至少包含所有业务VLAN,否则M-LAG裂开时业务中断。
-
忘记配置link-aggregation mode dynamic:M-LAG成员口和Peer-Link都必须使用动态LACP模式,静态聚合无法协商M-LAG状态。
-
Keepalive链路不通:Keepalive建议使用独立三层链路或带外管理网,若ping不通会导致M-LAG状态异常。
-
M-LAG裂开后Secondary设备接口Error-Down:裂开后Secondary设备所有非排除接口会被置为Error-Down,默认300秒恢复,可通过m-lag restore-delay调整。
-
单台设备重启后角色为None:当只有一台设备在线时,需配置m-lag auto-recovery reload-delay加速恢复。
-
一致性检查导致配置失败:生产环境建议开启一致性检查,但调试时可临时关闭m-lag consistency-check disable。
-
服务器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 业务测试步骤
-
同VNI二层互通测试 :同一Leaf下不同VM互ping
-
跨VNI三层互通测试 :不同VNI的VM经过Spine网关互ping
-
VXLAN访问外部测试 :VM ping外部网络地址(如8.8.8.8)
-
M-LAG切换测试 :断开Leaf-1上行链路,验证流量自动切换到Leaf-2
-
Spine网关切换测试 :断开Spine-1,验证Spine-2接管网关功能