一、方案架构与拓扑设计

1.1 架构总体思路

分布式网关VXLAN架构的核心思想是将三层网关功能分散部署在多个Leaf节点上,避免集中式网关的单点瓶颈和次优转发路径问题。在Spine-Leaf组网中,Spine节点负责高速转发和路由反射,Leaf节点同时承担接入层和分布式网关功能,通过VXLAN隧道实现Overlay网络互通。

Spine多活网关的实现关键在于:Spine节点以ECMP方式运行,上行路由设备到指定网段具有等价路由,多台Spine设备同时参与转发,不存在主备概念。当VXLAN网关部署在Leaf侧时,Spine节点不感知VXLAN隧道,仅作为VXLAN报文的转发节点,控制平面只需在Leaf之间建立VXLAN隧道。

M-LAG双活接入将两台Leaf交换机在逻辑上虚拟成一台设备,下联的服务器或交换机通过LACP协议与两台设备进行链路聚合,完全感知不到后端实际是两台设备。M-LAG系统与分布式网关结合后,两台Leaf设备以相同的VTEP IP和网关IP对外呈现,实现真正的双活转发。

1.2 典型拓扑

text

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

                    │ Spine1  │         │ Spine2  │

                    │ (RR)    │         │ (RR)    │

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

                         │  Underlay (OSPF/BGP)  │

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

              │                     │                     │

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

         │  Leaf1  │          │  Leaf2  │          │  Leaf3  │

         │ (M-LAG  │==========│ (M-LAG  │          │         │

         │  Master)│ Peer-Link│ Backup) │          │         │

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

              │  M-LAG Eth-Trunk     │                     │

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

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

                    │ Server1 │                     │ Server2 │

                    │(双归接入)│                     │(单归/双归)│

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

Leaf1与Leaf2组成M-LAG系统,通过Peer-Link直连(建议采用独立物理链路,带宽不小于所有M-LAG成员口总带宽)。DAD双主检测链路使用独立的三层链路,不能与Peer-Link共用。

1.3 设备命名与角色规划

设备

角色

功能描述

Spine1

路由反射器/RR

Underlay核心转发,BGP EVPN RR

Spine2

路由反射器/RR

与Spine1形成多活,ECMP负载分担

Leaf1

分布式网关/M-LAG Master

VTEP,分布式三层网关,M-LAG主设备

Leaf2

分布式网关/M-LAG Backup

VTEP,分布式三层网关,M-LAG备设备

Leaf3

分布式网关

独立VTEP节点(非M-LAG组)

1.4 IP地址规划

设备

接口

IP地址

用途

Spine1

GE1/0/1

192.168.1.1/24

连接Leaf1

Spine1

GE1/0/2

192.168.2.1/24

连接Leaf2

Spine1

Loopback1

1.1.1.1/32

Router ID / BGP源地址

Spine2

GE1/0/1

192.168.5.1/24

连接Leaf1

Spine2

GE1/0/2

192.168.6.1/24

连接Leaf2

Spine2

Loopback1

1.1.1.2/32

Router ID / BGP源地址

Leaf1

GE1/0/1

192.168.1.2/24

上行Spine1

Leaf1

GE1/0/2

192.168.5.2/24

上行Spine2

Leaf1

Loopback1

2.2.2.2/32

VTEP IP / BGP源地址

Leaf1

Eth-Trunk1

—

Peer-Link

Leaf2

Loopback1

2.2.2.2/32

与Leaf1相同(M-LAG虚拟VTEP)

业务VBDIF

Vbdif10

10.1.10.1/24

分布式网关IP(两台Leaf相同)

关键原则:M-LAG主备设备上对应M-LAG成员接口的VLANIF/VBDIF接口必须配置相同的IP地址和相同的虚拟MAC地址。所有Leaf的Loopback1地址在非M-LAG场景下必须全局唯一;在M-LAG场景下,同一M-LAG组的两台设备使用相同的VTEP IP地址。

二、各设备配置范例

2.1 Underlay网络配置(OSPF)

以Leaf1为例,配置Underlay三层互通:

text

system-view

sysname Leaf1

interface GE1/0/1

 undo portswitch

 ip address 192.168.1.2 24

 ospf network-type p2p

 quit

interface GE1/0/2

 undo portswitch

 ip address 192.168.5.2 24

 ospf network-type p2p

 quit

interface LoopBack1

 ip address 2.2.2.2 32

 quit

ospf 1

 area 0

  network 192.168.1.0 0.0.0.255

  network 192.168.5.0 0.0.0.255

  network 2.2.2.2 0.0.0.0

 quit

commit

Spine1配置类似,注意Loopback1地址为1.1.1.1/32。验证Underlay连通性:display ospf peer查看邻居状态,ping -a 2.2.2.2 1.1.1.1验证Loopback互通。

2.2 M-LAG配置(Leaf1 / Leaf2)

Leaf1(Master)关键配置:

text

stp mode rstp

stp v-stp enable

dfs-group 1

 priority 150

 source ip 2.2.2.2 peer 3.3.3.3

 dual-active detection source ip 6.6.6.6 peer 7.7.7.7

 quit

interface Eth-Trunk1

 trunkport GE1/0/3

 trunkport GE1/0/4

 mode lacp-static

 peer-link 1

 quit

interface Eth-Trunk2

 trunkport GE1/0/5

 mode lacp-static

 m-lag 1

 quit

commit

Leaf2(Backup) 对应配置中,DFS优先级设为120,source ip 3.3.3.3 peer 2.2.2.2,其他Peer-Link和M-LAG成员口配置与Leaf1完全一致。

关键注意事项:

  • · Peer-Link必须使用独立Eth-Trunk接口,带宽要大于所有M-LAG成员口总带宽
  • · 必须启用V-STP以避免环路
  • · 建议Peer-Link成员口不少于2个物理接口,启用静态LACP模式
  • · 双主检测链路和Peer-Link链路不能共用物理路径

2.3 BGP EVPN配置(Leaf1 / Leaf2)

text

bgp 100

 router-id 2.2.2.2

 peer 1.1.1.1 as-number 100

 peer 1.1.1.1 connect-interface LoopBack1

 peer 1.1.1.2 as-number 100

 peer 1.1.1.2 connect-interface LoopBack1

 ipv4-family unicast

  peer 1.1.1.1 enable

  peer 1.1.1.2 enable

 l2vpn-family evpn

  peer 1.1.1.1 enable

  peer 1.1.1.1 advertise irb

  peer 1.1.1.2 enable

  peer 1.1.1.2 advertise irb

 quit

commit

Spine1作为RR配置:

text

bgp 100

 router-id 1.1.1.1

 peer 2.2.2.2 as-number 100

 peer 2.2.2.2 connect-interface LoopBack1

 peer 2.2.2.2 reflect-client

 l2vpn-family evpn

  peer 2.2.2.2 enable

  peer 2.2.2.2 reflect-client

 quit

commit

2.4 VXLAN业务接入配置

text

bridge-domain 10

 vxlan vni 5010

 quit

interface Nve1

 source 2.2.2.2

 vni 5010 head-end peer-list protocol bgp

 quit

interface GE1/0/6.10 mode l2

 encapsulation dot1q vid 10

 bridge-domain 10

 quit

interface Vbdif10

 ip binding vpn-instance vpn1

 ip address 10.1.10.1 24

 mac-address 0000-5e00-0101

 vxlan anycast-gateway enable

 arp collect host enable

 quit

关键配置说明:vxlan anycast-gateway enable开启分布式网关功能后,网关收到网络侧的ARP或NS报文将做丢弃处理,只学习用户侧主机的ARP或NS报文。VBDIF接口的MAC地址在M-LAG两台设备上必须配置为相同的虚拟MAC。

三、M-LAG流量转发机制

3.1 M-LAG核心组件

M-LAG系统由四个核心组件构成:

DFS Group是M-LAG的“大脑”,负责两台设备间的配对、状态协商及表项同步。优先级高者当选Master,负责协调系统行为;Backup设备在正常情况下同样转发流量,没有性能差异。

Peer-Link是M-LAG的“大动脉”,必须是二层Eth-Trunk接口,传输协商报文、同步MAC/IP表项,并在单归链路故障时转发流量。

双主检测链路(DAD) 是M-LAG的“保命符”。当Peer-Link断开但心跳正常时,备设备自动Error-Down掉M-LAG成员口,防止双主冲突。

M-LAG成员接口直接连接下联设备,被加入Eth-Trunk并绑定到特定的M-LAG ID。

3.2 正常转发流程

同子网已知单播:Leaf1收到本地下联主机发往同子网远端主机的报文后,查找MAC表,若目的MAC在远端VTEP(Leaf3)上,则进行VXLAN封装后直接通过Underlay转发至Leaf3,不经过Spine节点。

同子网BUM报文:通过EVPN Type 3路由建立头端复制列表,源VTEP将BUM报文复制为多个单播报文,分别封装后发送至各远端VTEP。

跨子网报文转发:Leaf1收到主机报文后,发现目的IP不在本子网,查找L3VPN实例下的路由表(通过BGP EVPN IRB路由学习获得)。网关在本地完成三层转发,重新封装VXLAN后发送至目的VTEP。两台M-LAG设备使用相同的网关IP和MAC,服务器感知到的网关是唯一的。

3.3 M-LAG故障切换流程

Peer-Link故障:DAD链路检测到Peer-Link断开但心跳正常,Backup设备将M-LAG成员口置为Error-Down状态,所有流量切换到Master设备转发。此时下联服务器通过LACP感知到一条链路故障,自动收敛到剩余链路。

Master设备故障:Master设备下电或重启后,Backup设备通过DAD心跳超时感知,升为新的Master,接管所有M-LAG成员口,流量切换至新的Master转发。

上行链路故障:建议配置Monitor Link关联上行接口和下行接口,当上行出接口Down时,下行接口状态变为Down,防止用户侧流量被丢弃。

Peer-Link故障时Bypass VXLAN隧道:在物理Peer-Link场景下,若设备通过M-LAG双归接入VXLAN且接入侧链路故障,业务流量无法直接通过物理Peer-Link接口传输,此时可配置Bypass VXLAN隧道解决。

四、网络调试详细步骤

4.1 Underlay调试

步骤1:检查OSPF邻居状态

text

display ospf peer brief

所有邻居状态应为Full。

步骤2:验证Loopback互通

text

ping -a 2.2.2.2 1.1.1.1

ping -a 2.2.2.2 1.1.1.2

4.2 M-LAG调试

步骤1:检查DFS配对状态

text

display dfs-group 1 m-lag

关注Heart beat state(应为OK)和State字段(Master/Backup)。Causation字段为“-”表示配对成功。

步骤2:检查Peer-Link状态

text

display dfs-group 1 peer-link

display eth-trunk 1 verbose

Peer-Link接口应为Up,成员口状态正常。

步骤3:检查M-LAG成员口配对

text

display dfs-group 1 m-lag brief

确认M-LAG成员口在主备设备上均已配对成功。

步骤4:检查双主检测状态

text

display dfs-group 1 dual-active

4.3 BGP EVPN调试

步骤1:检查BGP EVPN对等体

text

display bgp evpn peer

所有EVPN对等体状态应为Established。

步骤2:检查EVPN路由

text

display bgp evpn all routing-table

应能看到Type 2(MAC/IP)、Type 3(IMET)和Type 5(IP前缀)路由。

步骤3:检查VXLAN隧道

text

display vxlan tunnel

display vxlan vni

VNI状态应为Up,隧道信息应包含远端VTEP IP。

4.4 常见故障排查

现象

排查方向

关键命令

DFS配对失败

检查peer-link配置、心跳地址

display dfs-group 1 m-lag 查看Causation字段

Peer-Link Down

检查物理链路、Eth-Trunk状态

display eth-trunk 1 verbose

EVPN邻居Down

检查BGP配置、Underlay连通性

display bgp evpn peer

VXLAN隧道Down

检查NVE源地址、BGP路由

display vxlan tunnel

跨子网不通

检查IRB路由、VBDIF网关

display bgp evpn all routing-table

五、注意事项

5.1 M-LAG配置注意事项

Peer-Link配置:必须在心跳状态正常时才能配置peer-link,防止一台M-LAG成员设备的接口错误进入error-down状态。如果M-LAG以根桥模式配置,需在接口上禁用STP(undo stp enable)。建议Peer-Link接口成员口采用10GE或更大带宽物理口,成员口数不少于2个,启用静态LACP模式,直连不能加透传设备。

M-LAG成员口一致性:DeviceA与DeviceB上的M-LAG接口配置必须完全一致,包括VLAN划分、LACP模式等,否则会导致协商异常。

广播域隔离:如果属于不同进程的M-LAG成员端口同属于一个广播域,在peer-link接口被阻塞时可能造成环路,需要划分不同进程的M-LAG成员端口到不同广播域。

配置顺序:建议先配置物理peer-link接口以及Bypass VXLAN隧道,待peer-link接口Up之后再配置双主检测source-ip和peer-ip地址。

5.2 分布式网关注意事项

License要求:通过BGP EVPN方式部署的分布式网关为VXLAN增强功能,使用License控制,需要申请并购买相应License。

配置一致性:请确保两台双归接入设备上关于VXLAN业务接入点和VXLAN隧道的配置保持一致。

ARP抑制:BGP EVPN方式支持主机IP路由通告、ARP通告,可直接使能ARP广播抑制功能。在三层网关上开启分布式网关功能后,网关收到网络侧的ARP或NS报文将做丢弃处理,只学习用户侧主机的ARP或NS报文。

主机路由发布:根据Overlay网络类型选择发布IRB路由(arp collect host enable)或IP前缀路由(arp direct-route enable)。

上行口STP处理:VLANIF的上行口需配置stp disable,并将物理Peer-Link端口退出上行口所在VLAN,上行口配置为三层主接口。

六、验证与测试

6.1 基础连通性测试

测试1:Underlay连通性

  • · 在各设备上执行 ping -a Loopback IP 对端Loopback IP,验证Underlay三层可达。
  • · 执行 display ospf peer 确认所有OSPF邻居为Full。

测试2:VXLAN隧道建立验证

  • · 执行 display vxlan tunnel 确认隧道状态为Up。
  • · 执行 display vxlan vni 确认VNI状态为Up,隧道列表包含正确的远端VTEP IP。

测试3:EVPN路由学习验证

  • · 执行 display bgp evpn all routing-table 检查Type 2和Type 5路由是否正确学习。
  • · 执行 display bgp evpn peer 确认所有EVPN邻居状态为Established。

6.2 M-LAG状态验证

text

display dfs-group 1 m-lag          # DFS配对状态

display dfs-group 1 peer-link      # Peer-Link状态

display eth-trunk 2 verbose        # M-LAG成员口状态

display m-lag consistency-check    # 配置一致性检查

6.3 业务测试场景

场景一:同子网二层互通

Server1(10.1.10.100/24)与Server2(10.1.10.200/24)处于同一子网。Server1 ping Server2,预期正常通信。在Leaf1上执行 display mac-address bridge-domain 10 确认远端MAC地址通过VXLAN隧道学习到。抓包确认报文经过VXLAN封装,在Underlay中传输。

场景二:跨子网三层互通

Server1(10.1.10.100/24)与Server3(10.1.20.100/24)处于不同子网。Server1 ping Server3,预期正常通信。在Leaf1上执行 display ip routing-table vpn-instance vpn1 确认到10.1.20.0/24的路由通过BGP EVPN学习到。验证分布式网关功能:两台M-LAG设备使用相同的网关IP和MAC,ARP应答一致。

场景三:M-LAG链路故障切换

在Server1持续ping Server2的同时,手动shutdown Leaf1(Master)的M-LAG成员口。预期Server1通过LACP感知链路故障,自动切换到Leaf2(Backup)的链路,ping丢包在预期范围内(LACP收敛时间)。验证:display dfs-group 1 m-lag 显示Leaf2仍为Backup状态,M-LAG成员口状态正常。

场景四:Peer-Link故障测试

模拟Peer-Link断开(在Eth-Trunk1接口执行shutdown),验证DAD机制是否生效:Backup设备(Leaf2)的M-LAG成员口应进入Error-Down状态。执行 display error-down recovery 查看接口状态。恢复Peer-Link后,接口自动恢复。

场景五:Master设备整机故障

直接将Leaf1(Master)下电。预期Leaf2通过DAD心跳超时感知,升为新的Master,接管所有流量。Server1到Server2的业务应在DAD检测超时后恢复。记录切换时间和丢包数,评估业务影响。

场景六:Spine多活验证

Leaf1上执行 display ip routing-table 确认到Spine1和Spine2的Loopback路由均为等价路由(ECMP)。断开Leaf1到Spine1的链路,验证流量自动切换到Spine2,Underlay转发不受影响。

6.4 VXLAN Ping/Tracert验证

华为设备支持VXLAN Ping和Tracert功能,可用于端到端VXLAN网络测试。在发起端使能VXLAN Ping功能后,可对VXLAN隧道进行连通性检测。执行VXLAN Ping时指定源VTEP IP和目的VTEP IP,验证VXLAN隧道的端到端可达性。

6.5 大数据包测试

在业务测试场景中,建议在服务器上使用大数据包(10000字节以上)进行ping测试,同时在沿途路径设备上配置ACL计数,通过报文数确定丢包点和故障设备

官方参考文档

https://support.huawei.com/enterprise/zh/doc/EDOC1000037064/ec8427c3

https://support.huawei.com/enterprise/zh/doc/EDOC1100352676/f1dad88a