AIDC 学习日志|第 14 天|MAC Flapping 与 EVPN 多归属分层排障

本节概览

今天把第 13 天的"状态解读"推进到"命令类别和故障证据"。核心案例是:广播正常、已知单播间歇丢包、两个 VTEP 可达、Aliasing 存在,但主机 MAC 在 Leaf1/Leaf2 或本地 Eth-Trunk 与 NVE1 之间 Flapping。重点训练如何避免把所有故障都归到 Underlay,并建立从 MAC 学习接口反推根因的分层方法。

上一课:\[AIDC学习日志-第13天-EVPN多归属命令验证与状态解读]

一、今日学习目标与完成情况

  • 理解 BGP EVPN Established 不等于 EVPN 业务状态完整
  • 能区分 per-ES 成员和 per-EVI 服务级成员
  • 能解释 Type 2 只有一个锚点时,Aliasing 仍可能包含多个成员
  • 能区分 DF/BUM 与已知单播/Aliasing
  • 能从本地 MAC 接口和 NVE1 的跳变方向推断故障范围
  • 能把 MAC Flapping 与服务器 Bond/LACP、ESI、M-LAG、双主保护、二层环路和控制面/数据面不同步关联起来
  • 能建立华为 VRP/CloudEngine 的分层验证命令框架
  • 能说明 Underlay VTEP 可达不等于 Leaf 到服务器的下行接入正常
  • 完成今天的综合判断题并记录错误前提和修正

今天完成的是理论、模拟输出和排障顺序训练。尚未在真实 CloudEngine 设备上执行命令,因此命令名称和字段仍需以具体 VRP/CloudEngine 版本为准。

二、先纠正今天最重要的分层混淆

今天多次出现"故障是不是 Underlay"的判断。正确边界如下:

区域 主要职责 典型故障
Leaf-Spine Underlay 到达远端 VTEP 的底层 IP 路径 Loopback /32 不可达、OSPF/BGP 邻居异常、ECMP错误
VXLAN/EVPN Overlay 承载租户、VNI、MAC/IP 和 ESI 业务 Type 1/2异常、Aliasing缺失、VNI映射错误
Leaf 到服务器接入侧 服务器物理接入、Eth-Trunk、LACP、ESI成员 Bond/LACP异常、成员链路Down、MAC Flapping
服务器本身 Bond、网卡、驱动、主机桥接和业务接口 Bond系统ID异常、重复发送、双网卡配置错误
数据面参数 实际转发和报文尺寸 MAC出口错误、MTU不足、ACL丢弃、MAC安全策略

必须记住:

text 复制代码
Leaf-Spine之间的三层网络 = Underlay
Leaf到服务器的双归属接入 = 下行接入/多归属成员链路
服务器两块网卡的聚合 = Bond/LACP
VLAN、BD、VNI、ESI、MAC表 = Overlay/二层数据面

所以:

text 复制代码
服务器Bond异常
≠
Underlay故障

Leaf2到服务器的成员链路Down
≠
Leaf2的VTEP一定不可达

VTEP可以Ping通
≠
Leaf2一定可以把报文送到服务器

三、今日案例拓扑

#mermaid-svg-6vb5N8QAwex5QHDw{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-6vb5N8QAwex5QHDw .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-6vb5N8QAwex5QHDw .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-6vb5N8QAwex5QHDw .error-icon{fill:#552222;}#mermaid-svg-6vb5N8QAwex5QHDw .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-6vb5N8QAwex5QHDw .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-6vb5N8QAwex5QHDw .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-6vb5N8QAwex5QHDw .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-6vb5N8QAwex5QHDw .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-6vb5N8QAwex5QHDw .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-6vb5N8QAwex5QHDw .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-6vb5N8QAwex5QHDw .marker{fill:#333333;stroke:#333333;}#mermaid-svg-6vb5N8QAwex5QHDw .marker.cross{stroke:#333333;}#mermaid-svg-6vb5N8QAwex5QHDw svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-6vb5N8QAwex5QHDw p{margin:0;}#mermaid-svg-6vb5N8QAwex5QHDw .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-6vb5N8QAwex5QHDw .cluster-label text{fill:#333;}#mermaid-svg-6vb5N8QAwex5QHDw .cluster-label span{color:#333;}#mermaid-svg-6vb5N8QAwex5QHDw .cluster-label span p{background-color:transparent;}#mermaid-svg-6vb5N8QAwex5QHDw .label text,#mermaid-svg-6vb5N8QAwex5QHDw span{fill:#333;color:#333;}#mermaid-svg-6vb5N8QAwex5QHDw .node rect,#mermaid-svg-6vb5N8QAwex5QHDw .node circle,#mermaid-svg-6vb5N8QAwex5QHDw .node ellipse,#mermaid-svg-6vb5N8QAwex5QHDw .node polygon,#mermaid-svg-6vb5N8QAwex5QHDw .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-6vb5N8QAwex5QHDw .rough-node .label text,#mermaid-svg-6vb5N8QAwex5QHDw .node .label text,#mermaid-svg-6vb5N8QAwex5QHDw .image-shape .label,#mermaid-svg-6vb5N8QAwex5QHDw .icon-shape .label{text-anchor:middle;}#mermaid-svg-6vb5N8QAwex5QHDw .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-6vb5N8QAwex5QHDw .rough-node .label,#mermaid-svg-6vb5N8QAwex5QHDw .node .label,#mermaid-svg-6vb5N8QAwex5QHDw .image-shape .label,#mermaid-svg-6vb5N8QAwex5QHDw .icon-shape .label{text-align:center;}#mermaid-svg-6vb5N8QAwex5QHDw .node.clickable{cursor:pointer;}#mermaid-svg-6vb5N8QAwex5QHDw .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-6vb5N8QAwex5QHDw .arrowheadPath{fill:#333333;}#mermaid-svg-6vb5N8QAwex5QHDw .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-6vb5N8QAwex5QHDw .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-6vb5N8QAwex5QHDw .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-6vb5N8QAwex5QHDw .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-6vb5N8QAwex5QHDw .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-6vb5N8QAwex5QHDw .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-6vb5N8QAwex5QHDw .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-6vb5N8QAwex5QHDw .cluster text{fill:#333;}#mermaid-svg-6vb5N8QAwex5QHDw .cluster span{color:#333;}#mermaid-svg-6vb5N8QAwex5QHDw div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-6vb5N8QAwex5QHDw .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-6vb5N8QAwex5QHDw rect.text{fill:none;stroke-width:0;}#mermaid-svg-6vb5N8QAwex5QHDw .icon-shape,#mermaid-svg-6vb5N8QAwex5QHDw .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-6vb5N8QAwex5QHDw .icon-shape p,#mermaid-svg-6vb5N8QAwex5QHDw .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-6vb5N8QAwex5QHDw .icon-shape .label rect,#mermaid-svg-6vb5N8QAwex5QHDw .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-6vb5N8QAwex5QHDw .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-6vb5N8QAwex5QHDw .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-6vb5N8QAwex5QHDw :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Eth-Trunk/成员链路
Eth-Trunk/成员链路
Spine1

Underlay
Spine2

Underlay
Leaf1

VTEP 3.3.3.3
Leaf2

VTEP 4.4.4.4
Leaf3

远端观察Leaf
ESI 1001

多归属Ethernet Segment
服务器

Bond/LACP双上联

基础状态假设:

text 复制代码
Leaf1、Leaf2 共同连接服务器;
ESI 为 1001;
业务运行在 VNI 1010;
Leaf1、Leaf2 的 VTEP 分别为 3.3.3.3 和 4.4.4.4;
Leaf3 作为远端 Leaf;
All-Active 场景下两个成员都可能参与已知单播;
DF 只决定当前EVI的BUM下游交付责任。

四、状态解读的五个层次

1. BGP EVPN 邻居

常见命令类别:

text 复制代码
display bgp evpn peer
display bgp peer

看到:

text 复制代码
3.3.3.3 Established
4.4.4.4 Established

只能证明:

text 复制代码
BGP控制平面邻居会话建立

不能直接证明:

text 复制代码
Type 1/2/3/5都已经正确
per-EVI成员完整
Aliasing已经形成
VNI/NVE数据面正常
服务器接入链路正常

2. Underlay VTEP 路由

常见命令类别:

text 复制代码
display ip routing-table 3.3.3.3
display ip routing-table 4.4.4.4
display ospf peer
display bgp peer

也可以使用指定源测试:

text 复制代码
ping -a <本端Loopback> 3.3.3.3
ping -a <本端Loopback> 4.4.4.4

这主要验证:

text 复制代码
Leaf3是否有到远端VTEP Loopback /32 的路由
外层VTEP之间是否具备IP可达性

但必须注意:

text 复制代码
Underlay VTEP可达
≠
远端Leaf到服务器的下行成员链路正常

3. Type 1、Type 2

Type 1 主要关注:

text 复制代码
ESI
per-ES成员
per-EVI成员
EAD
撤销和收敛

Type 2 主要关注:

text 复制代码
MAC
IP
ESI
Next-Hop/VTEP
VNI/EVI

关系:

text 复制代码
Type 1 per-ES:
整个Ethernet Segment有哪些成员

Type 1 per-EVI:
哪些成员参加某个具体VNI/EVI业务

Type 2:
具体主机的MAC/IP位置

4. Aliasing

Aliasing 的逻辑链条:
#mermaid-svg-W9Ct9kqysDPnC5uk{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-W9Ct9kqysDPnC5uk .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-W9Ct9kqysDPnC5uk .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-W9Ct9kqysDPnC5uk .error-icon{fill:#552222;}#mermaid-svg-W9Ct9kqysDPnC5uk .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-W9Ct9kqysDPnC5uk .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-W9Ct9kqysDPnC5uk .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-W9Ct9kqysDPnC5uk .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-W9Ct9kqysDPnC5uk .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-W9Ct9kqysDPnC5uk .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-W9Ct9kqysDPnC5uk .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-W9Ct9kqysDPnC5uk .marker{fill:#333333;stroke:#333333;}#mermaid-svg-W9Ct9kqysDPnC5uk .marker.cross{stroke:#333333;}#mermaid-svg-W9Ct9kqysDPnC5uk svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-W9Ct9kqysDPnC5uk p{margin:0;}#mermaid-svg-W9Ct9kqysDPnC5uk .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-W9Ct9kqysDPnC5uk .cluster-label text{fill:#333;}#mermaid-svg-W9Ct9kqysDPnC5uk .cluster-label span{color:#333;}#mermaid-svg-W9Ct9kqysDPnC5uk .cluster-label span p{background-color:transparent;}#mermaid-svg-W9Ct9kqysDPnC5uk .label text,#mermaid-svg-W9Ct9kqysDPnC5uk span{fill:#333;color:#333;}#mermaid-svg-W9Ct9kqysDPnC5uk .node rect,#mermaid-svg-W9Ct9kqysDPnC5uk .node circle,#mermaid-svg-W9Ct9kqysDPnC5uk .node ellipse,#mermaid-svg-W9Ct9kqysDPnC5uk .node polygon,#mermaid-svg-W9Ct9kqysDPnC5uk .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-W9Ct9kqysDPnC5uk .rough-node .label text,#mermaid-svg-W9Ct9kqysDPnC5uk .node .label text,#mermaid-svg-W9Ct9kqysDPnC5uk .image-shape .label,#mermaid-svg-W9Ct9kqysDPnC5uk .icon-shape .label{text-anchor:middle;}#mermaid-svg-W9Ct9kqysDPnC5uk .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-W9Ct9kqysDPnC5uk .rough-node .label,#mermaid-svg-W9Ct9kqysDPnC5uk .node .label,#mermaid-svg-W9Ct9kqysDPnC5uk .image-shape .label,#mermaid-svg-W9Ct9kqysDPnC5uk .icon-shape .label{text-align:center;}#mermaid-svg-W9Ct9kqysDPnC5uk .node.clickable{cursor:pointer;}#mermaid-svg-W9Ct9kqysDPnC5uk .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-W9Ct9kqysDPnC5uk .arrowheadPath{fill:#333333;}#mermaid-svg-W9Ct9kqysDPnC5uk .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-W9Ct9kqysDPnC5uk .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-W9Ct9kqysDPnC5uk .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-W9Ct9kqysDPnC5uk .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-W9Ct9kqysDPnC5uk .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-W9Ct9kqysDPnC5uk .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-W9Ct9kqysDPnC5uk .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-W9Ct9kqysDPnC5uk .cluster text{fill:#333;}#mermaid-svg-W9Ct9kqysDPnC5uk .cluster span{color:#333;}#mermaid-svg-W9Ct9kqysDPnC5uk div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-W9Ct9kqysDPnC5uk .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-W9Ct9kqysDPnC5uk rect.text{fill:none;stroke-width:0;}#mermaid-svg-W9Ct9kqysDPnC5uk .icon-shape,#mermaid-svg-W9Ct9kqysDPnC5uk .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-W9Ct9kqysDPnC5uk .icon-shape p,#mermaid-svg-W9Ct9kqysDPnC5uk .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-W9Ct9kqysDPnC5uk .icon-shape .label rect,#mermaid-svg-W9Ct9kqysDPnC5uk .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-W9Ct9kqysDPnC5uk .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-W9Ct9kqysDPnC5uk .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-W9Ct9kqysDPnC5uk :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Type 1 per-ES
Type 1 per-EVI/EAD
Type 2 MAC/IP
控制面计算候选成员
Aliasing成员集合
检查VTEP /32 Underlay可达
数据面安装有效出口
已知单播实际转发

不能把下面两个数量简单画等号:

text 复制代码
Type 2 的Next-Hop数量
≠
Aliasing成员数量

例如:

text 复制代码
Type 2锚点:Leaf1
per-EVI成员:Leaf1、Leaf2
Aliasing:Leaf1、Leaf2

5. DF

DF 要结合 ESI 和具体 EVI/VNI 查看:

text 复制代码
ESI 1001 + VNI 1010
Leaf1 = DF
Leaf2 = Non-DF

含义是:

text 复制代码
Leaf1主要负责该EVI向多归属下游段交付BUM

不能推出:

text 复制代码
Leaf2不能转发任何业务
已知单播只能走Leaf1
Leaf2就是Standby

尤其在 All-Active 中:

text 复制代码
Non-DF ≠ Standby
All-Active ≠ 一主一备

五、MAC Flapping 是什么

MAC Flapping 表示同一个 MAC 地址在不同接口或不同逻辑出口之间反复变化。

例如:

text 复制代码
MAC-C → Leaf1本地成员口
MAC-C → Leaf2本地成员口
MAC-C → Leaf1本地成员口

或者:

text 复制代码
MAC-C → Eth-Trunk10
MAC-C → NVE1
MAC-C → Eth-Trunk10

它可能导致:

text 复制代码
MAC表频繁刷新
已知单播被送往错误成员
业务间歇丢包
流量时通时断
MAC Flapping告警
二层环路时产生BUM重复和拥塞

MAC Flapping 是数据面观察到的现象,但根因不一定只在数据面。可能根因包括:

text 复制代码
服务器Bond/LACP配置异常
Leaf双归属ESI配置错误
M-LAG/Peer-Link状态异常
双主保护失效
接入侧二层环路
远端错误学习或旧MAC状态残留
控制面与数据面不同步

六、根据跳变方向缩小范围

#mermaid-svg-9kQpC15rDv2QJFXh{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-9kQpC15rDv2QJFXh .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-9kQpC15rDv2QJFXh .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-9kQpC15rDv2QJFXh .error-icon{fill:#552222;}#mermaid-svg-9kQpC15rDv2QJFXh .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-9kQpC15rDv2QJFXh .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-9kQpC15rDv2QJFXh .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-9kQpC15rDv2QJFXh .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-9kQpC15rDv2QJFXh .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-9kQpC15rDv2QJFXh .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-9kQpC15rDv2QJFXh .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-9kQpC15rDv2QJFXh .marker{fill:#333333;stroke:#333333;}#mermaid-svg-9kQpC15rDv2QJFXh .marker.cross{stroke:#333333;}#mermaid-svg-9kQpC15rDv2QJFXh svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-9kQpC15rDv2QJFXh p{margin:0;}#mermaid-svg-9kQpC15rDv2QJFXh .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-9kQpC15rDv2QJFXh .cluster-label text{fill:#333;}#mermaid-svg-9kQpC15rDv2QJFXh .cluster-label span{color:#333;}#mermaid-svg-9kQpC15rDv2QJFXh .cluster-label span p{background-color:transparent;}#mermaid-svg-9kQpC15rDv2QJFXh .label text,#mermaid-svg-9kQpC15rDv2QJFXh span{fill:#333;color:#333;}#mermaid-svg-9kQpC15rDv2QJFXh .node rect,#mermaid-svg-9kQpC15rDv2QJFXh .node circle,#mermaid-svg-9kQpC15rDv2QJFXh .node ellipse,#mermaid-svg-9kQpC15rDv2QJFXh .node polygon,#mermaid-svg-9kQpC15rDv2QJFXh .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-9kQpC15rDv2QJFXh .rough-node .label text,#mermaid-svg-9kQpC15rDv2QJFXh .node .label text,#mermaid-svg-9kQpC15rDv2QJFXh .image-shape .label,#mermaid-svg-9kQpC15rDv2QJFXh .icon-shape .label{text-anchor:middle;}#mermaid-svg-9kQpC15rDv2QJFXh .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-9kQpC15rDv2QJFXh .rough-node .label,#mermaid-svg-9kQpC15rDv2QJFXh .node .label,#mermaid-svg-9kQpC15rDv2QJFXh .image-shape .label,#mermaid-svg-9kQpC15rDv2QJFXh .icon-shape .label{text-align:center;}#mermaid-svg-9kQpC15rDv2QJFXh .node.clickable{cursor:pointer;}#mermaid-svg-9kQpC15rDv2QJFXh .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-9kQpC15rDv2QJFXh .arrowheadPath{fill:#333333;}#mermaid-svg-9kQpC15rDv2QJFXh .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-9kQpC15rDv2QJFXh .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-9kQpC15rDv2QJFXh .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-9kQpC15rDv2QJFXh .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-9kQpC15rDv2QJFXh .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-9kQpC15rDv2QJFXh .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-9kQpC15rDv2QJFXh .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-9kQpC15rDv2QJFXh .cluster text{fill:#333;}#mermaid-svg-9kQpC15rDv2QJFXh .cluster span{color:#333;}#mermaid-svg-9kQpC15rDv2QJFXh div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-9kQpC15rDv2QJFXh .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-9kQpC15rDv2QJFXh rect.text{fill:none;stroke-width:0;}#mermaid-svg-9kQpC15rDv2QJFXh .icon-shape,#mermaid-svg-9kQpC15rDv2QJFXh .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-9kQpC15rDv2QJFXh .icon-shape p,#mermaid-svg-9kQpC15rDv2QJFXh .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-9kQpC15rDv2QJFXh .icon-shape .label rect,#mermaid-svg-9kQpC15rDv2QJFXh .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-9kQpC15rDv2QJFXh .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-9kQpC15rDv2QJFXh .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-9kQpC15rDv2QJFXh :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Leaf1/Leaf2本地成员口
本地Eth-Trunk/NVE1
多个NVE远端
发现MAC Flapping
MAC在哪些出口之间跳变?
优先查Bond/LACP、Eth-Trunk、ESI成员
优先查二层环路、双主、Split Horizon、ESI
查远端重复主机、MAC发布、控制面同步
检查服务器和接入数据面
检查多归属保护和环路抑制
检查EVPN Type 2与MAC Mobility

情况 A:只在 Leaf1、Leaf2 本地成员口之间跳变

优先检查:

text 复制代码
服务器Bond/LACP
Leaf两侧Eth-Trunk
LACP系统ID
ESI和多归属成员
服务器是否重复发送

情况 B:在本地 Eth-Trunk 和 NVE1 之间跳变

优先检查:

text 复制代码
二层环路
ESI配置
双主保护
Peer-Link/Keepalive
Split Horizon或本地回环抑制
远端Leaf是否错误学习MAC
控制面/数据面是否同步

不能只把它归因于服务器 Bond,因为跳变已经跨越:

text 复制代码
本地接入侧
和
VXLAN远端隧道

情况 C:本地 MAC 被远端 NVE 学到

如果确认 MAC-C 属于本地服务器,却在 NVE1 上学习到,优先怀疑:

text 复制代码
二层环路
ESI/多归属配置错误
双主保护失效
远端错误发布或旧MAC残留
控制面与数据面不同步

"环路"是优先假设,但需要继续用 MAC 学习、ESI、Peer-Link 和实际抓包证实,不能在证据不足时绝对断言。

七、华为 VRP/CloudEngine 验证框架

不同设备版本命令可能不同,先使用:

text 复制代码
display ?
display evpn ?
display vxlan ?

1. 接口和Eth-Trunk

text 复制代码
display interface brief
display eth-trunk
display lacp statistics

关注:

text 复制代码
物理接口是否Up
成员是否Selected
是否有Unselected/Individual/Standby
LACP协商是否正常
两台Leaf的聚合身份是否一致

关键边界:

text 复制代码
物理接口Up
≠
LACP聚合正常

2. MAC学习和Flapping

text 复制代码
display mac-address dynamic
display mac-address flapping

关注:

text 复制代码
MAC-C当前接口
上一次学习接口
跳变次数
是否在本地接口和NVE之间切换
是否有保护动作或告警

模拟输出:

text 复制代码
MAC-C:
Previous interface: Eth-Trunk10
Current interface : Nve1
Count             : 38

这不是普通本地LACP跳变,而是本地接入和远端Overlay之间的跳变,应提升对环路、ESI、双主和控制面同步的怀疑。

3. ESI、EAD、多归属

版本相关命令类别:

text 复制代码
display evpn ?
display ethernet-segment ?

确认:

text 复制代码
Leaf1、Leaf2的ESI是否完全一致
ESI是否绑定正确Eth-Trunk
当前VNI/EVI是否都参与
All-Active/Single-Active是否一致
成员是否Valid

4. M-LAG、Peer-Link、双主保护

如果使用 M-LAG:

text 复制代码
display m-lag
display dfs-group
display peer-link

确认:

text 复制代码
Peer-Link是否Up
Keepalive是否正常
M-LAG Domain是否一致
是否进入双主保护或孤立保护状态
两台Leaf是否错误地同时独立转发

5. VNI/NVE

text 复制代码
display vxlan vni
display nve peer
display interface nve

确认:

text 复制代码
VNI 1010是否Up
NVE源地址是否为正确Loopback
远端VTEP是否建立
VLAN/BD/VNI映射是否一致

6. MTU与大报文

text 复制代码
display interface
ping -f -l <size> <目标地址>

典型现象:

text 复制代码
小报文正常
大报文丢失
VXLAN业务异常

MTU不足通常不是 MAC Flapping 的首要解释,但在控制面和MAC出口都正常、只有大报文丢失时必须检查。

八、今天的模拟输出与课堂问答

本节保留你的原回答和批改;独立 CSDN 稿件不包含课堂问答。

第一轮:per-EVI与VTEP验证

模拟输出:

text 复制代码
BGP EVPN Peer:
3.3.3.3 Established
4.4.4.4 Established

Type 1 per-ES:
  3.3.3.3 Valid
  4.4.4.4 Valid

Type 1 per-EVI:
  3.3.3.3 Valid

Type 2:
  MAC-C → NextHop 3.3.3.3

Underlay:
  ping 3.3.3.3 成功
  ping 4.4.4.4 成功

问题 1:为什么 BGP 两个邻居都是 Established,但 Aliasing 可能仍不完整?

我的回答:4.4.4.4 不是实际有效的出口。

批改:这个回答更接近后续结果,不是根因。BGP Established 只说明会话建立;当前 per-EVI 只有 Leaf1,优先怀疑 Leaf2 没有发布或远端没有学习到该 EVI 的 EAD/per-EVI 成员信息。

问题 2:per-ES 有 Leaf1、Leaf2,per-EVI 只有 Leaf1,缺失的是什么范围?

我的回答:VNI。

批改:方向接近。完整表述是:缺失的是当前具体 VNI/EVI 的服务级成员信息。应查 Leaf2 的 VNI绑定、BD映射、ESI-EVI关系、EAD发布和策略过滤。

问题 3:Type 2 指向 Leaf1,能否断定已知单播只能走 Leaf1?

我的回答:不能,Aliasing和Underlay数据层都没测。

批改:结论正确。还需检查 per-EVI/EAD、Aliasing成员和VTEP可达。Underlay应拆成路由控制面与实际数据面转发,不能笼统称为"Underlay数据层"。

问题 4:两个 VTEP 都能 Ping 通,能否断定业务正常?

我的回答:不能。

批改:正确。还要查 VNI/NVE、EVPN Type 1/2、BD/VRF映射、MAC表、MTU、ACL和服务器接入。

问题 5:这组输出优先检查什么?

我的回答:先查接口和双上联LACP。

批改:当前证据下优先级不对。per-ES和Underlay已正常,首查 Leaf2 的 per-EVI/EAD、VNI/BD绑定、ESI-EVI关系和EVPN策略;接口/LACP仍要复查,但不是第一怀疑点。

第二轮:Aliasing、DF与Underlay

问题 1:Type 2 仍只指向 Leaf1,为什么 Aliasing 还能包含 Leaf2?

我的回答:对应ESI,候选Leaf成员。

批改:正确。Type 2提供主机位置锚点,per-EVI提供服务级成员,远端结合ESI形成多个候选出口。

问题 2:Leaf2 是 Non-DF,能否参与已知单播转发?

我的回答:可以,DF只针对BUM。

批改:正确。Non-DF仍可能参与已知单播,DF主要限制向该EVI下游多归属段交付BUM。

问题 3:Leaf2 VTEP /32 不可达时,控制面和数据面可能怎样?

我的回答:控制面不变,数据面invalid。

批改:方向正确但需加条件。控制面可能暂时保留Aliasing,数据面可能标记Leaf2无效并移除;如果收敛滞后,也可能暂时残留旧出口并造成间歇丢包。

问题 4:广播重复但已知单播正常,优先查什么?

我的回答:DF。

批改:正确。优先查DF、BUM复制、下游交付、Split Horizon和双主保护。

问题 5:All-Active 中 Leaf1 故障,Leaf2 是否从 Standby 切换为 Active?

我的回答:不用,一主一备。

批改:前半句正确,后半句错误。All-Active不是一主一备,Leaf1/Leaf2原本都是可用成员;Leaf1故障后删除Leaf1,Leaf2继续转发。只有Single-Active才是活动/备用接管关系。

第三轮:接入故障与MAC Flapping

问题 1:为什么广播正常仍不能排除 Leaf2 下行故障?

我的回答:不知道Underlay。

批改:错误前提。广播路径主要受DF/BUM控制,已知单播走Type 2/Aliasing和具体下行成员。广播正常不能证明Leaf2到服务器的接入链路、LACP或本地MAC出口正常。

问题 2:Leaf2本地MAC表显示MAC-C为Drop,更可能在哪一层?

我的回答:不知道。

批改:更可能是二层数据面/业务映射层。应查VLAN、BD、VLAN-BD映射、BD-L2 VNI、ESI状态、Split Horizon和端口安全策略,而不是首先查Underlay。

问题 3:服务器Bond只显示Leaf1成员Up,问题更可能在哪一侧?

我的回答:Underlay。

批改:不正确。更可能是服务器接入侧或Leaf2下行接入侧:服务器第二块网卡、Bond/LACP、Leaf2接口、Eth-Trunk成员、光模块和LACP协商。

问题 4:本地MAC都正常但服务器仍丢包,查MAC Flapping、MTU还是DF?

我的回答:MTU。

批改:部分正确。应同时检查MAC Flapping、MTU、服务器Bond/LACP和实际下行转发;由于广播正常,DF不是第一优先级。MTU更适合解释"大报文异常、小报文正常",不通常解释MAC本身跳变。

第四轮:MAC Flapping方向判断

问题 1:Leaf1、Leaf2 MAC表正常,但MAC在两台Leaf之间反复移动是什么?

我的回答:MAC Flapping,可能导致MAC表在Leaf1、Leaf2之间反复移动。

批改:现象判断正确。后果还包括已知单播不稳定、间歇丢包、流量时通时断、MAC告警,存在环路时还可能造成BUM重复和拥塞。

问题 2:优先检查服务器Bond/LACP还是DF?

我的回答:服务器Bond/LACP。

批改:正确。当前是已知MAC在成员之间移动,DF主要负责BUM,不是第一方向。

问题 3:MAC Flapping属于控制面还是数据面?

我的回答:数据面。

批改:基本正确。MAC Flapping是数据面观察到的现象,但根因可能来自接入、ESI、M-LAG、双主保护、环路或控制面/数据面不同步。

第五轮:本地Eth-Trunk与NVE1跳变

模拟输出:

text 复制代码
MAC-C:
Previous interface: Eth-Trunk10
Current interface : Nve1
Count             : 38

NVE Peer:
4.4.4.4 Up

Eth-Trunk10:
Member1 Selected
Member2 Selected

问题 1:本地 Eth-Trunk 和 NVE1 之间跳变,范围有何不同?

我的回答:需要检查二层环路等问题。

批改:正确。相较于只在Leaf1/Leaf2接入口跳变,此时范围扩大到本地接入与Overlay远端之间,应检查二层环路、ESI、双主保护、Split Horizon、远端错误学习和控制面/数据面同步。

问题 2:NVE Peer Up 能否排除二层环路或ESI问题?

我的回答:不能。

批改:正确。NVE Peer Up只说明远端VTEP邻居建立,不能证明ESI、环路抑制或MAC学习正确。

问题 3:先查服务器Bond/LACP,还是ESI/双主保护和环路抑制?

我的回答:先查服务器Bond。

批改:需要调整优先级。由于跳变跨越本地Eth-Trunk和NVE1,优先查ESI、双主保护、Split Horizon和二层环路,同时复查Bond/LACP。不能把范围先限定为服务器。

问题 4:本地MAC却从NVE1学到,最可能说明什么?

我的回答:环路了。

批改:方向正确,环路是优先假设;但还需排除ESI/多归属配置错误、双主保护失效、远端错误发布、旧MAC残留和控制面/数据面不同步。

第六轮:综合故障结论

场景:

text 复制代码
广播正常;
已知单播间歇丢包;
Leaf1、Leaf2都在Aliasing;
两个VTEP都可达;
MAC-C在Leaf1、Leaf2之间Flapping;
服务器Bond两条链路都Up;
但LACP系统ID在两侧不一致。

问题 1:最可能根因?

结论:最强线索是 Leaf1、Leaf2 与服务器之间的 LACP/M-LAG 聚合身份不一致,需同时核对服务器Bond。LACP系统ID不一致可能导致两侧无法把链路视为同一正确聚合关系,从而引发MAC Flapping和间歇丢包,但仍应通过命令和输出确认,不能仅凭现象断言唯一根因。

问题 2:为什么不能先修DF?

因为:

text 复制代码
广播正常
MAC Flapping存在
已知单播间歇丢包

DF主要负责BUM,而当前强线索位于已知单播和接入聚合方向。

问题 3:重点核对什么?

text 复制代码
服务器Bond模式是否为LACP/802.3ad
两块网卡状态、速率和系统配置
Leaf1/Leaf2 Eth-Trunk成员
LACP系统MAC/系统ID
M-LAG Domain、Peer-Link、Keepalive
ESI是否一致
成员接口和VLAN/BD配置
MAC学习接口及Flapping告警

九、今天的完整排障流程

#mermaid-svg-tyGbDWg41BM0tnaX{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-tyGbDWg41BM0tnaX .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-tyGbDWg41BM0tnaX .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-tyGbDWg41BM0tnaX .error-icon{fill:#552222;}#mermaid-svg-tyGbDWg41BM0tnaX .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-tyGbDWg41BM0tnaX .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-tyGbDWg41BM0tnaX .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-tyGbDWg41BM0tnaX .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-tyGbDWg41BM0tnaX .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-tyGbDWg41BM0tnaX .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-tyGbDWg41BM0tnaX .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-tyGbDWg41BM0tnaX .marker{fill:#333333;stroke:#333333;}#mermaid-svg-tyGbDWg41BM0tnaX .marker.cross{stroke:#333333;}#mermaid-svg-tyGbDWg41BM0tnaX svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-tyGbDWg41BM0tnaX p{margin:0;}#mermaid-svg-tyGbDWg41BM0tnaX .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-tyGbDWg41BM0tnaX .cluster-label text{fill:#333;}#mermaid-svg-tyGbDWg41BM0tnaX .cluster-label span{color:#333;}#mermaid-svg-tyGbDWg41BM0tnaX .cluster-label span p{background-color:transparent;}#mermaid-svg-tyGbDWg41BM0tnaX .label text,#mermaid-svg-tyGbDWg41BM0tnaX span{fill:#333;color:#333;}#mermaid-svg-tyGbDWg41BM0tnaX .node rect,#mermaid-svg-tyGbDWg41BM0tnaX .node circle,#mermaid-svg-tyGbDWg41BM0tnaX .node ellipse,#mermaid-svg-tyGbDWg41BM0tnaX .node polygon,#mermaid-svg-tyGbDWg41BM0tnaX .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-tyGbDWg41BM0tnaX .rough-node .label text,#mermaid-svg-tyGbDWg41BM0tnaX .node .label text,#mermaid-svg-tyGbDWg41BM0tnaX .image-shape .label,#mermaid-svg-tyGbDWg41BM0tnaX .icon-shape .label{text-anchor:middle;}#mermaid-svg-tyGbDWg41BM0tnaX .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-tyGbDWg41BM0tnaX .rough-node .label,#mermaid-svg-tyGbDWg41BM0tnaX .node .label,#mermaid-svg-tyGbDWg41BM0tnaX .image-shape .label,#mermaid-svg-tyGbDWg41BM0tnaX .icon-shape .label{text-align:center;}#mermaid-svg-tyGbDWg41BM0tnaX .node.clickable{cursor:pointer;}#mermaid-svg-tyGbDWg41BM0tnaX .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-tyGbDWg41BM0tnaX .arrowheadPath{fill:#333333;}#mermaid-svg-tyGbDWg41BM0tnaX .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-tyGbDWg41BM0tnaX .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-tyGbDWg41BM0tnaX .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-tyGbDWg41BM0tnaX .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-tyGbDWg41BM0tnaX .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-tyGbDWg41BM0tnaX .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-tyGbDWg41BM0tnaX .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-tyGbDWg41BM0tnaX .cluster text{fill:#333;}#mermaid-svg-tyGbDWg41BM0tnaX .cluster span{color:#333;}#mermaid-svg-tyGbDWg41BM0tnaX div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-tyGbDWg41BM0tnaX .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-tyGbDWg41BM0tnaX rect.text{fill:none;stroke-width:0;}#mermaid-svg-tyGbDWg41BM0tnaX .icon-shape,#mermaid-svg-tyGbDWg41BM0tnaX .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-tyGbDWg41BM0tnaX .icon-shape p,#mermaid-svg-tyGbDWg41BM0tnaX .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-tyGbDWg41BM0tnaX .icon-shape .label rect,#mermaid-svg-tyGbDWg41BM0tnaX .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-tyGbDWg41BM0tnaX .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-tyGbDWg41BM0tnaX .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-tyGbDWg41BM0tnaX :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 本地成员口↔本地成员口
本地Eth-Trunk↔NVE1
多个远端NVE
现象:广播正常,已知单播间歇丢包
确认MAC是否Flapping
跳变方向
Bond/LACP、Eth-Trunk、ESI成员
二层环路、ESI、双主、Split Horizon
Type 2、MAC发布、MAC Mobility、控制面同步
检查服务器和接入数据面
检查M-LAG/Peer-Link/Keepalive
检查EVPN路由与远端状态
检查MAC/BD/VNI/MTU/ACL
抓包和实际转发出口验证

工程记录建议至少保留:

text 复制代码
1. 故障现象和开始时间;
2. interface brief;
3. Eth-Trunk/LACP成员和系统ID;
4. ESI、per-ES、per-EVI状态;
5. Type 2主机位置;
6. Aliasing有效成员;
7. DF和BUM状态;
8. VTEP /32路由与指定源Ping;
9. MAC学习和Flapping历史;
10. 服务器Bond状态;
11. MTU/ACL检查;
12. 修复后控制面、数据面和业务恢复时间。

十、今天的错误前提与修正

原判断 问题 修正
BGP Established就代表Aliasing完整 会话状态与业务路由完整性混淆 还要看Type 1/2、per-EVI、VNI和数据面
per-EVI缺失只回答"VNI" 没说清服务级成员范围 查具体VNI/EVI的EAD、BD映射、策略
所有丢包优先归因Underlay 忽略接入和Overlay数据面 根据跳变方向分层
广播正常就可排除下行故障 BUM与已知单播路径不同 广播正常不等于下行单播正常
All-Active是一主一备 与Single-Active混淆 All-Active多活,Single-Active主备
MAC Flapping的后果仍只是"MAC反复移动" 把现象当成影响 还会造成单播不稳定、丢包、告警和环路风险
本地MAC从NVE学习一定就是环路 证据不足时绝对化 优先怀疑环路,同时排除ESI、双主和同步问题

十一、今日核心记忆卡

text 复制代码
BGP Established:
只说明BGP会话建立

Underlay VTEP可达:
只说明外层IP路径可达

Type 1 per-ES:
整个ES的成员关系

Type 1 per-EVI:
具体业务的成员关系

Type 2:
具体主机的MAC/IP位置

Aliasing:
多个多归属成员的已知单播候选出口

DF:
当前EVI的BUM下游角色

MAC Flapping:
同一个MAC在不同接口/出口间反复变化

All-Active:
多活,不是一主一备

Single-Active:
主备,需要接管

本地Eth-Trunk ↔ NVE1跳变:
优先查二层环路、ESI、双主和Split Horizon

MAC本地成员口之间跳变:
优先查Bond/LACP和接入聚合

十二、下一课

下一课进入:

text 复制代码
EVPN多归属实际故障演练设计
→ 正常状态基线
→ 成员链路Down
→ Type 1撤销
→ Aliasing更新
→ MAC表收敛
→ 业务恢复时间
→ All-Active与Single-Active对比

今日状态:第 14 天理论、模拟命令输出和分层排障训练完成;真实设备命令执行仍待实验环境验证。

相关推荐
敢敢のwings1 小时前
世界模型与FlashWorld:从“在梦中学习“到秒级3D场景生成
android·学习·3d
2601_963282771 小时前
油田、工矿厂区 DMR 专网对讲系统:部署实施、干扰治理与防爆终端选型实战
网络·架构
薛定e的猫咪1 小时前
(arXiv 2026)GLiBRL :可学习基函数的深度贝叶斯元强化学习 ----待补充
人工智能·深度学习·学习·算法·机器学习
sunshine22 girl1 小时前
Angular7,9,学习笔记一 创建项目,基本语法
笔记·学习
小雪崩1 小时前
嵌入式学习 day30:minilog
linux·c语言·学习
FlyWIHTSKY2 小时前
本地文件夹转化为 Git 仓库,并推送到远程平台创建一个全新的仓库
git
随风而飘1862 小时前
Keithley美国吉时利 2016-P 6.5位音频分析数字多用表
网络·人工智能·功能测试
聚铭网络2 小时前
【一周安全资讯】《网络数据安全风险评估办法》正式实施;隐私加密通讯平台Threema遭DDoS攻击,服务大面积瘫痪
网络·安全·ddos
xiaoxiangsiyan2 小时前
现代大型虚拟化智慧园区整体架构EVPN‑VXLAN落地全解
运维·网络·学习·架构