首页/网络/网络排障速查/MAC 地址漂移(MAC Flapping)排查
连通性与链路检测54 条

MAC 地址漂移(MAC Flapping)排查

同一 MAC 在两个端口间来回学习=存在二层环路或两台设备用了同一 MAC;交换机日志会刷 flapping 告警,是广播风暴的前奏。

网络排障速查网络更新于 2026-10-13

MAC 漂移意味着什么

同一台交换机的 MAC 地址表里,某个 MAC 在短时间内反复出现在两个不同端口上,就是 MAC 漂移。它通常意味着两种可能:存在二层环路,同一个帧从两个方向被学习到;或者两台设备使用了同一个 MAC。交换机一般会打印漂移告警日志,而这个现象往往是广播风暴的前奏,属于需要尽快处理的二层异常。

基本信息

观测位置交换机 MAC 地址表与告警日志
两类成因二层环路,或两台设备 MAC 冲突
常见来源网线两头插同一交换机、双网卡桥接后都上联、虚拟机克隆导致 MAC 重复
危害MAC 表震荡、转发错乱,重则引发广播风暴
配套防护生成树、BPDU 保护、端口环路检测与风暴抑制

典型使用场景

  • 交换机日志频繁刷漂移告警:先确认是环路还是 MAC 冲突
  • 虚拟化环境网络异常:检查克隆虚拟机是否 MAC 重复
  • 服务器双网卡改造后出现问题:确认是否形成桥接环路
  • 办公网局部卡顿:排查是否有人私接设备形成环路
  • 定位环路端口:结合 MAC 表变化与端口流量异常收窄范围

交换机侧定位(三厂命令)

交换机侧定位(三厂命令)
Cisco:  SW# show mac address-table address 0011.2233.4455
        SW# show log | include FLAPPING
        SW# show spanning-tree | include Root|Blocking
华为:   <SW> display mac-address 0011-2233-4455
        <SW> display logbuffer | include FLA
H3C:    [SW] display mac-address mac-address 0011-2233-4455
# 关注:该 MAC 最近出现在哪些端口、时间是否交替

主机侧确认自身 MAC 无冲突

主机侧确认自身 MAC 无冲突
ip link show eth0 | grep ether      # 确认本机 MAC
arping -c 2 -I eth0 10.0.0.1         # 二层是否能稳定到达网关
ip -s link | grep -A1 eth0            # 是否有异常的包速率
# Windows 侧:
getmac /v                             # 列出接口 MAC
arp -a | findstr 10.0.0.1             # 看网关 MAC 是否频繁变化

成因与处置

成因证据处置
二层环路交换机日志有成对端口漂移告警定位环路端口并断开,恢复生成树
自环(两头同交换机)同一端口对反复学习同一 MAC拔掉多余跳线并加端口保护
MAC 冲突两个端口同时各有该 MAC 的活跃流量修改其中一台设备的 MAC 或隔离
虚拟机克隆同网段出现重复 MAC重新生成虚拟网卡 MAC 地址
桥接配置错误服务器双网卡都通且形成环调整桥接与上联方式
常见成因排序:网线两头都插同一交换机形成自环、服务器双网卡做了桥接又都上联、虚拟化克隆导致 MAC 重复,排查时按这个顺序核对效率最高。

易错点

  • 只在服务器侧查配置,不去交换机看 MAC 学习记录,定位效率大幅降低
  • 虚拟化环境忽略克隆虚拟机的 MAC 重复问题,反复在物理层找原因
  • 看到漂移告警直接重启交换机:环路依旧存在,重启只是重复破坏现场
  • 忽略办公网末梢:私接路由器与双头网线才是小规模网络环路的高频来源

数据来源与参考

  • IEEE 802.1D:MAC 地址学习与生成树
  • Cisco:MAC Flapping 排障文档

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌