实验案例:华为 CE6800 跑通 VXLAN 分布式网关(Spine-Leaf + M-LAG + BGP EVPN,12 节点 / 28 链路)
用 eNSP Pro 移植的华为镜像在 EVE-NG 里做 IPv4 单栈版本。
对应工程 IaC/vxlan-dist-gw/,验收脚本 tools/vxlan-dist-gw-verify.js。


附件:vxlan-dist-gw.zip
0. 实测结果
| 项目 |
结果 |
| 基础验收 |
30/30 通过 |
含故障切换(--fault,停 Leaf1) |
33/33 通过 |
| OSPF 邻居 |
Spine 各 4 个 Full、Leaf 各 2 个 Full |
| BGP EVPN 邻居 |
Spine 4 个 Established、Leaf 2 个 Established |
| M-LAG |
4 台 leaf 的 m-lag 1/2 均 active(*)-active;两台 Spine 的 peer-link 两成员均 Selected |
| 东西向 |
同网段跨对 5/5 TTL 64;跨 BD 同对 5/5 TTL 63;跨 BD 跨对 5/5 TTL 62 |
| 南北向 |
服务器 ↔ 公网双向 5/5,TTL 61 |
| 故障切换 |
停 Leaf1 后 SRV-A→SRV-B 仍 5/5 ttl=63、→Internet 仍 5/5 ttl=61,Leaf2 侧 m-lag 1 变 active(*)-inactive |
实测日期 2026-11-04;镜像 huaweice6800_YunShan(eNSP Pro 移植,CE6800 V300)、
huaweiar6700(AR6700)、eve-gui-server(docker)。EVE 侧版本不同,控制台行为可能不一样。
1. 这个实验解决什么
文章里的架构有三个卖点,这个实验逐个验证它们真的在转发:
- M-LAG 双活:两台 leaf 组成一台逻辑设备,服务器双网卡分别接两台、做 bond,
任意一台 leaf 挂掉服务器不掉线。
- 分布式网关:每台 leaf 都有本地 BD 的网关,跨 BD 流量在入口 leaf 就完成三层转发,
不绕 spine。
- BGP EVPN:VNI 成员关系(type-3)和跨 BD 前缀(type-5)都由 EVPN 承载,
没有一条静态 VXLAN 隧道。
顺带把「怎么证明它真的在转发」这件事做成可复现的判据——TTL 阶梯 + 故意不亮的过滤器。
2. 镜像与规格
| 模板 id |
设备 |
数量 |
内存 |
角色 |
huaweice6800_YunShan |
CE6800 |
6 |
4 GB |
Spine1/2(RR + 出口)、Leaf1~4(分布式网关) |
huaweiar6700 |
AR6700 |
1 |
4 GB |
PE1,南北向出口路由器 |
eve-gui-server |
docker |
5 |
小 |
SRV-A~D(双网卡)+ Internet |
网络设备 7 台 × 4 GB = 约 28 GB,另加 5 台轻量 docker 容器(各几百 MB,不在这 28 GB 里)。
部署前先确认宿主机放得下。
这是二阶段配置设备:system-view 下改完要 commit 才生效,
提示符 [*Name] = 有未提交改动,[~Name] = 已提交未保存,[Name] = 干净。
3. 拓扑与地址
配图:figures/vxlan-dist-gw-topology.png(2800×1520,源文件同名 .svg)
┌──────────┐ peer-link Eth-Trunk1 ┌──────────┐
│ Spine1 │══ (GE1/0/7, GE1/0/8) ══│ Spine2 │
│ 4.4.4.4 │ GE1/0/9 = DAD │ 5.5.5.5 │
│ VTEP 1.1.1.1 ═════════════════════│VTEP1.1.1.1│
└─┬─┬─┬─┬──┘ └─┬─┬─┬─┬─┘
192.168.1~4.0/24│ │ │ │ │ │ │ │192.168.5~8.0/24
┌──┘ │ │ └──┐ ┌───┘ │ │ └──┐
┌────┴──┐ ┌┴──┴─┐┌┴─────┐ ┌───┴──┐┌─┴──┴─┐
│ Leaf1 │ │Leaf2 ││Leaf3 │ │Leaf4 ││ ... │
│ 6.6.6.6││7.7.7.7││8.8.8.8│ │9.9.9.9││ │
│VTEP2.2.2.2(对)││VTEP3.3.3.3(对)│ └──────┘└──────┘
└─┬──┬──┘└──┬──┬─┘└─┬──┬──┘
Eth-Trunk2│ │ │ │ │ │ peer-link(GE1/0/3,4)
SRV-A ─────┘ └────┘ └──── SRV-D
SRV-B SRV-C
ASCII 图只示意连法,节点位置和链路走向以 PNG 为准。
Spine1/2 之间那条 ═ 只表示两端 VTEP 地址相同,不是 VXLAN 隧道——
anycast VTEP 的目的就是让对端用一个地址到达这一对,两台之间不需要建隧道。
Loopback 与 anycast VTEP
| 设备 |
LoopBack0(router-id) |
LoopBack1(VTEP) |
| Spine1 |
4.4.4.4/32 |
1.1.1.1/32 |
| Spine2 |
5.5.5.5/32 |
1.1.1.1/32 |
| Leaf1 |
6.6.6.6/32 |
2.2.2.2/32 |
| Leaf2 |
7.7.7.7/32 |
2.2.2.2/32 |
| Leaf3 |
8.8.8.8/32 |
3.3.3.3/32 |
| Leaf4 |
9.9.9.9/32 |
3.3.3.3/32 |
每一对设备共用 VTEP IP 和 Nve1 MAC——对端只需要一个地址就能到这对里的任意一台:
| 对 |
VTEP IP |
Nve1 MAC |
| Spine1 / Spine2 |
1.1.1.1 |
0000-5e00-0101 |
| Leaf1 / Leaf2 |
2.2.2.2 |
0000-5e00-0102 |
| Leaf3 / Leaf4 |
3.3.3.3 |
0000-5e00-0103 |
Underlay
| 段 |
网段 |
说明 |
| Spine1 ↔ Leaf1~4 |
192.168.1.0/24 ~ 192.168.4.0/24 |
OSPF p2p,Spine 侧 .1 |
| Spine2 ↔ Leaf1~4 |
192.168.5.0/24 ~ 192.168.8.0/24 |
同上 |
| Spine1 ↔ Spine2 DAD |
10.10.10.0/30 |
dual-active detection |
| Leaf1 ↔ Leaf2 DAD |
10.10.20.0/30 |
同上 |
| Leaf3 ↔ Leaf4 DAD |
10.10.30.0/30 |
同上 |
| Spine1/2 ↔ PE1 |
10.1.10.0/24、10.1.30.0/24 |
属于 vpn1 |
租户与服务器
ip vpn-instance vpn1,L3VNI 5000,RD <router-id>:1,RT 0:1。
| BD |
VNI |
网关 |
网关 MAC |
RT |
服务器 |
双归到 |
| BD10 |
10 |
10.1.1.1/24 |
0000-5e00-0105 |
0:10 |
SRV-A 10.1.1.11 |
Leaf1/2 Eth-Trunk2 |
| BD20 |
20 |
10.1.2.1/24 |
0000-5e00-0106 |
0:20 |
SRV-B 10.1.2.11 |
Leaf1/2 Eth-Trunk3 |
| BD20 |
20 |
同上 |
同上 |
同上 |
SRV-C 10.1.2.12 |
Leaf3/4 Eth-Trunk2 |
| BD30 |
30 |
10.1.3.1/24 |
0000-5e00-0107 |
0:30 |
SRV-D 10.1.3.12 |
Leaf3/4 Eth-Trunk3 |
BD20 横跨两对 leaf —— 这正是「同网段跨 leaf 对走纯二层 VXLAN」的验证场景。
4. 关键设计
- anycast 网关四要素:同一个
Vbdif 地址 + 同一个 MAC +
vxlan anycast-gateway enable + arp collect host enable。
少了 arp collect host,远端主机的 ARP 学不到,主机路由也就没有。
- Spine 双角色:既是 BGP RR(
reflect-client),又是南北向的 L3VNI 网关。
出口默认路由用 network 0.0.0.0 0.0.0.0 通告成 type-5。
- monitor-link:leaf 上把上行和下行绑成一组,上行全断时把下行口拉 down,
逼服务器切到另一台 leaf。
stp v-stp enable + stp bridge-address 1-1-1:M-LAG 对要当成一台桥,
V-STP 是前提。
- 三对 M-LAG 复用同一个
bridge-address 1-1-1 为什么没事:对内必须相同,
不同对之间本该错开。本实验能复用是因为三对之间没有二层通路——
跨对只走 underlay 三层和 VXLAN,BPDU 不跨三层、VXLAN 也不传 BPDU,
三个 STP 域天生隔离。生产环境若对之间有二层延伸(比如 DCI 打二层),
必须改成不同地址,否则会并成一个 STP 域、选主冲突。
5. 核心配置
下面都是节选,完整预配在 IaC/vxlan-dist-gw/configs/。
两条通用前提:CE6800 的 GE 口默认是二层,要做三层必须先 undo portswitch;
所有接口/BD 改完要 commit。
5.1 Spine1(节选:省略 Eth-Trunk1 成员口、GE1/0/2~4 的重复段;Spine2 同构)
sysname Spine1
stp mode rstp
stp v-stp enable
stp bridge-address 1-1-1
evpn-overlay enable
#
dfs-group 1
priority 150
source ip 4.4.4.4
dual-active detection source ip 10.10.10.1 peer 10.10.10.2
#
ip vpn-instance vpn1
vxlan vni 5000
ipv4-family
route-distinguisher 4.4.4.4:1
vpn-target 0:1 export-extcommunity evpn
vpn-target 0:1 import-extcommunity evpn
#
interface LoopBack0
ip address 4.4.4.4 32
interface LoopBack1
ip address 1.1.1.1 32
#
interface GE1/0/1
undo portswitch
ip address 192.168.1.1 24
ospf network-type p2p
# … GE1/0/2~4 分别接 Leaf2/3/4
interface GE1/0/5
undo portswitch
ip binding vpn-instance vpn1
ip address 10.1.10.1 24
#
interface Eth-Trunk1
mode lacp-dynamic
peer-link 1
#
interface Nve1
source 1.1.1.1
mac-address 0000-5e00-0101
vni 5000 head-end peer-list protocol bgp
#
bgp 100
router-id 4.4.4.4
peer 6.6.6.6 as-number 100
peer 6.6.6.6 connect-interface LoopBack0
# … 7.7.7.7 / 8.8.8.8 / 9.9.9.9 同形
ipv4-family vpn-instance vpn1
import-route static
network 0.0.0.0 0.0.0.0
advertise l2vpn evpn
l2vpn-family evpn
undo policy vpn-target
peer 6.6.6.6 enable
peer 6.6.6.6 advertise irb
peer 6.6.6.6 reflect-client
#
ip route-static vpn-instance vpn1 0.0.0.0 0.0.0.0 10.1.10.2
Spine2 不能只换互联地址:Loopback 换成 5.5.5.5/1.1.1.1,互联地址换成
192.168.5~8.0/24 和 10.1.30.1,默认路由下一跳要改成 10.1.30.2
(PE1 在 10.1.30.0/24 上的地址)。写错了不会报错,只会南北向静默不通。
注意 OSPF 放在整份配置的最后。peer X enable 在邻居已建立时会弹
Warning: This operation will reset the peer session. Continue? [Y/N]:,
这个交互提示会把后面推送的配置行当答案吃掉。把 OSPF 挪到最后,
推 BGP 时邻居还起不来,就不会弹。
5.2 Leaf1(节选:省略 BD20 / Vbdif20 / Eth-Trunk3 等同构段;Leaf2 同构,Leaf3/4 换成 BD20+BD30、VTEP 3.3.3.3)
sysname Leaf1
stp mode rstp
stp v-stp enable
stp bridge-address 1-1-1
evpn-overlay enable
#
dfs-group 1
priority 150
source ip 6.6.6.6
dual-active detection source ip 10.10.20.1 peer 10.10.20.2
#
ip vpn-instance vpn1
vxlan vni 5000
ipv4-family
route-distinguisher 6.6.6.6:1
vpn-target 0:1 export-extcommunity evpn
vpn-target 0:1 import-extcommunity evpn
#
bridge-domain 10
vxlan vni 10
evpn
route-distinguisher 6.6.6.6:10
vpn-target 0:10 export-extcommunity
vpn-target 0:1 export-extcommunity # 同时带 L3VNI 的 RT,见下方说明
vpn-target 0:10 import-extcommunity
#
interface Eth-Trunk1
mode lacp-dynamic
peer-link 1
interface Eth-Trunk2
mode lacp-dynamic
dfs-group 1 m-lag 1
stp edged-port enable
interface Eth-Trunk2.10 mode l2
encapsulation dot1q vid 10
bridge-domain 10
#
interface Vbdif10
ip binding vpn-instance vpn1
ip address 10.1.1.1 24
mac-address 0000-5e00-0105
vxlan anycast-gateway enable
arp collect host enable # 不收主机 ARP 就没有主机路由
#
interface Nve1
source 2.2.2.2
mac-address 0000-5e00-0102
vni 10 head-end peer-list protocol bgp
vni 20 head-end peer-list protocol bgp
#
monitor-link group 1
port GE1/0/1 uplink
port GE1/0/2 uplink
port Eth-Trunk2 downlink 1
port Eth-Trunk3 downlink 2
#
bgp 100
router-id 6.6.6.6
ipv4-family vpn-instance vpn1
import-route direct
advertise l2vpn evpn
l2vpn-family evpn
peer 4.4.4.4 enable
peer 4.4.4.4 advertise irb
peer 5.5.5.5 enable # 两台 Spine 都要建邻居,否则 RR 挂一台就断
peer 5.5.5.5 advertise irb
BD 为什么要 export L3VNI 的 RT 0:1:BD 的 type-2 路由(MAC/IP)只有同时带上
0:1,VPN 实例那边才会把这些主机路由收进来,分布式的三层转发才有下一跳。
只 export 不 import —— import 方向由 L3VNI 自己的 0:1 import 负责,
这样 BD 不会把别的 BD 的路由搅进二层域。
LEAF 的 BGP 邻居是两台 Spine:4.4.4.4 和 5.5.5.5 各一条,
判据里「Leaf 2 个 Established」说的就是这个。
5.3 服务器(docker 启动配置是一段 shell)
ip link add bond0 type bond mode 802.3ad miimon 100 lacp_rate fast xmit_hash_policy layer3+4 || true
ip link set eth0 down || true
ip link set eth1 down || true
ip link set eth0 master bond0 || true
ip link set eth1 master bond0 || true
ip link set eth0 up || true
ip link set eth1 up || true
ip link set bond0 up || true
ip link add link bond0 name bond0.10 type vlan id 10 || true
ip link set bond0.10 up || true
ip addr add 10.1.1.11/24 dev bond0.10 || true
ip route add default via 10.1.1.1 || true
每行都带 || true —— docker 镜像的启动配置是逐行执行的,任何一行失败会中断后面所有行。
5.4 PE1
sysname PE1
interface GE0/0/0
ip address 10.1.10.2 24
interface GE0/0/1
ip address 10.1.30.2 24
interface GE0/0/2
ip address 10.0.0.1 24
ip route-static 10.1.0.0 255.255.0.0 10.1.10.1
ip route-static 10.1.0.0 255.255.0.0 10.1.30.1
6. 复现步骤
# 1. 部署(拓扑 + 启动配置)
node tools/eve-mcp.js call eve_iac_plan '{"lab":"vxlan-dist-gw"}'
node tools/eve-mcp.js call eve_iac_reconcile '{"lab":"vxlan-dist-gw","confirm":true}'
node tools/eve-mcp.js call eve_iac_start '{"lab":"vxlan-dist-gw"}'
# 2. 等设备起来(6 台 CE6800 大概 10~15 分钟)
# 3. 逐台检查启动配置是否推全(见踩坑 8.1),不全就登录后逐行重推
# 4. 验收
node tools/vxlan-dist-gw-verify.js --skip-boot
node tools/vxlan-dist-gw-verify.js --skip-boot --fault
上面的自动化依赖 EVE-MCP 工具链;没有这套工具的读者,按 §5 手工配、按 §7 的命令逐条验证,
判据和结论完全一致。
7. 验收判据
7.1 控制面
display ospf peer brief → Spine 4 个 Full,Leaf 2 个 Full
display bgp evpn peer → Spine 4 个 Established,Leaf 2 个
display vxlan tunnel → 每台 leaf 两条 up(1.1.1.1 / 对端 VTEP)
display bgp evpn peer 在本镜像实测可用;如果你的 CE 版本不认,
换成 display bgp evpn all peer。
7.2 VNI 状态要看懂
display vxlan vni 的 State 只表示「有没有远端 VTEP」:
| 设备 |
期望 |
| Leaf1 |
VNI 20 up、VNI 10 down |
| Leaf3 |
VNI 20 up、VNI 30 down |
VNI 10 只在 Leaf1/2 对内、VNI 30 只在 Leaf3/4 对内,没有远端 VTEP,不建 VXLAN 隧道,
所以它们本来就是 down。对内流量走 M-LAG 的 Eth-Trunk,
出接口在远端 leaf 时才过 peer-link——不是所有流量都走 peer-link。
把这条写进判据,才不会误判成故障。
display vxlan vni 不列 L3VNI。两台 Spine 上都是 Number of vxlan vni : 0,
这是正常的。要确认 VNI 5000 用 display interface Nve1(current state UP)+
display vxlan tunnel。
7.3 TTL 是最便宜的判据
| 场景 |
TTL |
说明 |
| SRV-B → SRV-C(同网段跨 leaf 对) |
64 |
纯二层延伸,不过网关 |
| SRV-A → SRV-B(跨 BD 同 leaf 对) |
63 |
只在入口 leaf 路由一次 |
| SRV-A → SRV-C(跨 BD 跨 leaf 对) |
62 |
入口 leaf 路由 + 出口 leaf 查表转发 |
| SRV-A → 公网 |
61 |
再过 Spine 和 PE1 |
62 容易被当成「绕路了」,其实不是:入口 leaf 和出口 leaf 各做一次查表,
traceroute 能看到两个跳(中间那个 * 是出口 leaf 不回 TTL-exceeded)。
真绕了 spine 会是 61,所以 62 本身就否证了三角路由。
7.4 故障切换
node tools/vxlan-dist-gw-verify.js --skip-boot --fault
停掉 Leaf1,等 100 秒(LACP 超时收敛),然后:
- SRV-A → SRV-B 仍 5/5
ttl=63(bond 切到 Leaf2;此时 SRV-A、SRV-B 都在 Leaf2 上,
变成「跨 BD 同 leaf 对」,入口只路由一次,所以还是 63 而不是 62)
- SRV-A → 公网仍 5/5
ttl=61
- Leaf2 侧
display dfs-group 1 m-lag brief 出现 inactive
这 100 秒是 LACP 超时的时间尺度,不是设备重启收敛。
如果是把 Leaf1 停掉再启动,隧道/EVPN/OSPF 虽然能自恢复,
但重启后头几分钟流量会抖(见 8.8),要等更久再跑验收。
7.5 过滤器面板
会亮:ARP-Request/Reply、ICMP-Request/Reply、VXLAN-VNI20-BD20(SRV-B ↔ SRV-C 纯二层)、
VXLAN-L3VNI5000(跨 BD 三层)、OSPF-Hello、BGP-EVPN、LACP、
DAD-Heartbeat(三根 DAD 直连链上常亮)、DAD-Probe(underlay 各链路)。
故意不亮:VXLAN-VNI10-BD10、VXLAN-VNI30-BD30(对内 BD,没有远端 VTEP、不建隧道)。
这两条不亮才是对的。
DAD 心跳是 UDP 1025,不是 ICMP。 拿 Wireshark 抓 Spine2 GE1/0/9 看得很清楚:
10.10.10.1 ↔ 10.10.10.2,UDP 1025→1025,每 ~200ms 一个,168 字节。
一开始按别的 M-LAG 实验的经验写成 icmp[4:2] == 0xffff,这根线一直不亮。
但不能因此把 ICMP 探针并进来:id=0xffff 的 ICMP Echo(192.168.2.2→192.168.2.2
这种自己打自己、ttl=1/2、收不到回应)是 DFS 的另一种探针,会泛洪到 underlay 各条链路上。
合并成一条的后果是 underlay 全线发黄,反而把「心跳只跑在 DAD 链上」这个结构事实糊掉。
最终拆成两条:DAD-Heartbeat = udp port 1025(黄),DAD-Probe = icmp[4:2] == 0xffff(淡黄),
各亮各的链路。
配色要对准 EVE 的深色画布 + 默认链路是蓝色这两条:
- 避开蓝/青系,否则和普通链路分不开;
- 深色底上要够亮——
#212121 这种近黑在画布上等于没有高亮(本实验踩过,已改成 #aa00ff);
- 请求↔应答要么互补、要么色相远隔(ARP 红
#e53935 ↔ 草绿 #76ff03,
ICMP 品红 #d81b60 ↔ 绿 #43a047);
- 同亮度邻近色相不行(橙
#fb8c00 和琥珀、蓝和青这种)。
8. 踩坑清单(按「会骗到你」的程度排序)
★ 越多越坑:★★★ = 会直接把你带偏、白折腾几小时;★ = 知道就好;
没标星的是「边界条件」,不影响主流程。
8.1 启动配置推一半就丢了 ★★★
EVE 在设备还在初始化时推启动配置,后面的行会丢,每台丢的位置还不一样
(Leaf2 停在 stp v-stp enable、Leaf3/4 停在 dfs-group)。
表现是控制台看着正常、display ospf peer 却是空的。
药方:登录后一行一条、等提示符再发下一条重推,一次性灌一大块照样会丢。
起手式接 8.2:先 {expect: "", send: ""} 敲个回车把控制台唤醒,
再一行一条发、每行之后用提示符正则确认落地。
8.2 控制台安静时不吐字节 ★★
console_history 只有 10 字节(ESC]0;<Name>BEL,一个窗口标题),
console_run 读回来只有那 10 字节,看着像节点死了,其实设备活得好好的。
根因是工具语义:send 之后的 expect 只匹配该次 send 之后新收到的字节。
所以「先等提示符再发回车」在冷控制台上永远等不到。
正确起手:{expect: "", send: ""}(空正则立即命中 → 无条件敲回车),
再另起一步看落在哪儿。华为 CE 和 docker 容器都是这个毛病。
(这次为了它白重启过 Leaf3/Leaf4——重启并不能解决。)
8.3 peer X enable 的 [Y/N] 把后续配置吃掉 ★★
Warning: This operation will reset the peer session. Continue? [Y/N]:
邻居已建立时配 peer X enable 会弹这个。逐行推送时它会吃掉下一行,
控制台卡在 Please choose 'YES' or 'NO' first before pressing 'Enter'。
结构性解法:把 ospf 1 整段放到 BGP 之后,推 BGP 时邻居起不来就不弹。
兜底:推送脚本侦测 [Y/N] 和 [Y(yes)/N(no)/C(cancel)] 自动答 Y。
8.4 display vxlan vni 不列 L3VNI ★
Spine 上 Number of vxlan vni : 0 是正常的。差点据此判「VNI 5000 没起来」。
8.5 两条 BGP 查询命令这个镜像不认
display bgp vpn-instance vpn1 routing-table → Unrecognized command
display bgp evpn all routing-table prefix-route 10.1.3.0 24 → Wrong parameter
替代:display ip routing-table vpn-instance vpn1 <prefix>,
看下一跳是不是远端 VTEP、出接口是不是 VXLAN。
8.6 默认路由不能靠 import-route static
VRP 的 import-route static 不导入 0.0.0.0/0。
要在 ipv4-family vpn-instance vpn1 下单独写 network 0.0.0.0 0.0.0.0
才能通告成 type-5。
import-route static 本身不是没用——非默认的静态路由照样能导入,
只有默认路由必须用 network 单独通告。
8.7 EVE 不把容器的 veth admin 状态传给对端 ★
在容器里 ip link set eth1 down 不算故障,leaf 侧看不到。
真正的故障测试要停整台 leaf,而且要靠 LACP 超时发现(约 100 秒)。
8.8 重启后头几分钟流量会抖 ★
Leaf1 重启后隧道/EVPN/OSPF 都能自恢复,但头几分钟丢包 20~45%。
别在收敛期跑验收,不然会拿到一堆 4/5 的假失败。
8.9 display current-configuration 看着被截断
其实是分页器(默认 24 行)。先 screen-length 0 temporary。
9. 已知限制
- IPv6 单栈缺失:这套 eNSP Pro 移植镜像上 IPv6 over VXLAN 不通,
所以只做 IPv4,文章里的 IPv6 部分没有复现。
return 会弹未提交确认:有未提交改动时 return 会问
[Y(yes)/N(no)/C(cancel)],自动化要能答。
- 内存:6 台 CE6800 + 1 台 AR6700 各 4 GB,合计约 28 GB,另加 5 台轻量容器。
- 控制台空闲会掉回
Password:,验收脚本要能自动重登。
- EVE 虚拟链路对 LACP 的透传取决于底层实现:本实验环境实测可通
(服务器 bond 802.3ad 与 leaf mode lacp-dynamic 协商成功,M-LAG 显示 active(*)-active)。
如果你的 EVE 版本 LACP 不通,可以把 M-LAG 改成静态模式(mode manual load-balance),
服务器 bond 改 balance-rr,先把三层/EVPN 的部分验证完。
10. 附录
附件:实验案例模板/附件/vxlan-dist-gw.zip(315 KB)——
README.md / topology.yml(12 节点 28 链路 13 filter)/ .eve-iac.yml /
configs/default/n_1~n_12.cfg(MCP 读回的原字节)/ topology.png。
| 文件 |
SHA-256 |
vxlan-dist-gw.zip |
48ba6d0d32c041398dd5d6f44e5cd787b17967a36f10d9f72778a037f8c6d232 |
topology.yml |
2cf528257464ed1c62a0c9adc04ec5a093bd789b99f847468348880145377984 |
topology.png |
614bb58fe38377e7185f022f0b8e92e62db0bf25a662f1fc6acbc1d1b2da0558 |
- 活工程:
IaC/vxlan-dist-gw/
- 验收脚本:
tools/vxlan-dist-gw-verify.js(30 项 + --fault 3 项)
- 相关案例:
实验案例-VXLAN-EVPN-IOL-XE.md(IOL XE 版,手工 anycast 网关)、
实验案例-华为M-LAG双镜像互测.md(CE6800 与 S6730H 的 M-LAG 能力边界)