未知单播泛洪的成因与排查
交换机转发的依据是 MAC 地址表:目的 MAC 不在表里时,只能在同一个 VLAN 内泛洪。这是机制而非故障,少量泛洪是正常现象。异常泛滥时,根因通常是 MAC 表项老化过快、表项容量被打满、VLAN 不匹配导致流量落错广播域,或者端口出现单向学习失败。排查的核心动作很简单:确认这条 MAC 到底在不在表里。
基本信息
| 适用平台 | 全部以太网交换机(华为 VRP、思科 IOS、H3C Comware) |
|---|---|
| 正常表现 | 首包泛洪、收到回包后学习完成,之后按表转发 |
| 异常表现 | 持续泛洪、泛洪范围异常扩大、链路利用率居高不下 |
| 常见根因 | MAC 表满、老化过快、VLAN 不匹配、单向学习、环路导致表项漂移 |
| 排查入口 | MAC 地址表(按 MAC 查、按端口查、看总数) |
典型使用场景
- 链路利用率异常:某条上联链路长期跑满,怀疑是泛洪放大
- 终端通信缓慢:目标 MAC 一直学不到,每包都泛洪,延时明显上升
- 排查 MAC 表容量:接入设备数量增长后表项打满,新终端直接进不了表
- 环路确认:同一 MAC 在两个端口之间反复漂移是环路最直接的证据
- VLAN 规划核对:端口所属 VLAN 与终端预期不一致时,流量会落到错误的广播域
华为 VRP
华为 VRP
<Huawei> display mac-address # 全表:看总条目数与分布
<Huawei> display mac-address | include 0011-2233-4455 # 查具体终端在哪个口
<Huawei> display mac-address summary # 部分版本可看表项使用率
<Huawei> display interface GigabitEthernet0/0/1 # 看入向速率与错误计数
<Huawei> display vlan 10 # 确认端口 VLAN 归属是否正确思科 IOS
思科 IOS
SW-CORE-01# show mac address-table count # 动态/静态/总计与使用上限
SW-CORE-01# show mac address-table dynamic # 动态表项全量
SW-CORE-01# show mac address-table address 0011.2233.4455 # 精确查一个 MAC
SW-CORE-01# show interfaces status # 粗看端口状态与所属 VLAN
SW-CORE-01# show interfaces Gi1/0/1 | include rate|unknownH3C Comware
H3C Comware
<H3C> display mac-address
<H3C> display mac-address interface GigabitEthernet 1/0/1
<H3C> display mac-address vlan 10
<H3C> display interface GigabitEthernet 1/0/1
! 各版本子命令略有差异,用 ? 补全确认排查顺序与判读
| 步骤 | 查看内容 | 判读结果 |
|---|---|---|
| 一 | 目标 MAC 是否在表里 | 不在 = 学习失败或流量到了别的 VLAN |
| 二 | 表项总数是否接近上限 | 接近上限 = 需要清理或扩容 |
| 三 | 同一 MAC 是否出现在两个端口 | 出现 = 环路或 MAC 漂移 |
| 四 | 端口 VLAN 归属是否与预期一致 | 不一致 = 流量落在了错误的广播域 |
| 五 | 接口错误计数与速率 | 错误增长 = 物理层问题导致学习异常 |
确认泛洪范围最直接的办法是端口镜像抓包:把上联口流量镜像出来,看同一个目的 MAC 的报文被复制了多少份。比数计数器更直观,也能同时确认是否夹杂了广播或未知组播。