环路与广播风暴的抓包特征
二层环路会让同一帧在网络里反复转发,表现为同一帧重复出现、广播与组播量暴涨、设备 CPU 与丢包同步升高。抓包里最直接的证据是重复帧与不合常理的转发方向,比如本该只出现在接入侧的帧又从上行口回来。环路会迅速吃满链路,抓包工具本身也可能因缓冲不足丢帧,所以结论要保守。
基本信息
| 观察点 | 同源 MAC 的重复帧、广播与组播占比突升 |
|---|---|
| 相关协议 | STP / RSTP / MSTP(IEEE 802.1D、802.1w、802.1s) |
| 伴随现象 | MAC 表震荡、CPU 升高、端口利用率接近满载 |
| 抓包影响 | 高负载下采集本身会丢帧,统计值偏低 |
典型使用场景
- 接入侧突然大面积变慢,怀疑存在环路
- 新接设备或更换网线后出现广播风暴
- 确认 STP 是否正常收敛并正确阻塞冗余端口
- 配合设备 MAC 表定位重复帧的引入端口
- 区分持续环路与收敛期间的短暂重复
观察线索
观察线索
tshark -r t.pcap -q -z io,phs | head -30
# 先看协议分层占比,广播类协议占比异常升高是第一个线索
tshark -r t.pcap -Y "eth.dst == ff:ff:ff:ff:ff:ff" -T fields -e eth.src | sort | uniq -c | sort -rn | head
# 同一源 MAC 的广播帧数量是否异常集中
tshark -r t.pcap -q -z io,stat,1,"COUNT(frame)eth.dst==ff:ff:ff:ff:ff:ff"
# 每秒广播包量随时间的变化,用于判断风暴是持续还是一过性现象对照
| 现象 | 可能原因 | 确认手段 |
|---|---|---|
| 同一帧反复出现 | 二层环路 | 结合设备 MAC 表与拓扑确认 |
| 广播占比突升 | 广播风暴 | 对比历史基线并核对设备侧计数 |
| MAC 表频繁变化 | 环路或冗余路径震荡 | 设备侧查看 MAC 地址表变化 |
| 端口利用率持续接近满载 | 环路占用带宽 | 设备端口统计与流量图 |
| 拓扑变更日志频繁 | STP 收敛异常 | 设备日志中的拓扑变更记录 |
生成树收敛期间也会出现短暂重复帧,判断持续性比抓到一次重复更重要:看重复是否随时间衰减,以及拓扑变更日志是否停止。持续重复才是环路的证据。
风暴期间抓包工具自身会丢帧,用抓到的包算出的广播占比可能明显偏低。结论要保守表达,并用设备侧计数与端口利用率交叉验证。
排查顺序
- 先看现象是否成片:同网段多台主机同时受影响更符合环路特征
- 统计广播与组播占比及其随时间的变化,判断是持续还是一过性
- 抓取重复帧的源 MAC 与端口信息,交给设备侧查 MAC 表定位入口
- 检查 STP 状态与日志,确认是否有端口异常处于转发状态
- 临时断开可疑链路验证,注意先确认业务影响再操作