号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部
在实际网络排障中,有一种情况常常让人头疼:网慢、延迟高、设备互相打架,甚至网段直接瘫痪。
很多人第一反应是“是不是带宽不够了”“是不是ARP冲突了”。但其实根源常常是:
交换机学不到 MAC 地址,引发了广播风暴!
别觉得这是遥远的理论问题,只要你配置不当、拓扑不稳,这事随时能在你网络上炸锅。这篇文章就来一波深度讲解。
一、交换机“学 MAC”是怎么回事?
交换机的核心任务是根据 MAC 地址表(又叫转发表) 来进行转发决策。

正常情况下的学习过程如下:
交换机收到一帧二层数据包
查看帧头部的源 MAC 地址
把这个 MAC 与进入的接口绑定,记录进表项(如:MAC A 来自 Gig0/0/1)
下一次要发给 MAC A 的帧,就直接从 Gig0/0/1 发出去
这个过程称为 MAC地址学习,是交换机转发的基础。
二、如果学不到 MAC 地址,会发生什么?
当交换机没有目标 MAC 的转发表项,它就只能选择:
广播或泛洪(Flooding)!

也就是说:
- 发往未知 MAC 的帧,会被转发到除了入端口之外的所有端口
- 这在少量数据包时没问题,但一旦这种“未知帧”多了,就会造成广播泛滥
更严重时,某些错误拓扑或配置还会导致这些帧循环在网络中 —— 广播风暴正式形成。
三、什么是广播风暴?
广播风暴(Broadcast Storm) 就是指大量的广播帧(或泛洪帧)在网络中不断循环、放大、堆积,最终拖垮整个局域网的现象。
特征:
- 所有端口指示灯疯狂闪烁
- Ping 抖动、丢包严重
- 网速缓慢或中断
- 接入设备频繁掉线
- ARP 表疯狂刷新
根源:
网络中存在环路 + 没有防环机制(如 STP) + 未知 MAC 引发泛洪
四、哪些场景会导致学不到 MAC 地址?
双工/速率不匹配接口协商异常,导致数据无法正常识别或学习。
MAC 地址冲突网络中有多个设备使用相同 MAC,交换机记录混乱。
配置了“静态 MAC”但不准锁死 MAC 到错误端口,结果学不到真实来源。
交换机缓存溢出网络中 MAC 数量太多,超出设备容量,无法学习新地址。
环路存在且 STP 没启用广播帧循环转发,导致地址学不到、表项刷不完。
非法设备接入网络(仿冒网关、MAC泛洪攻击)
五、如何防止 MAC 学不到 + 广播风暴?
1. 启用 STP(生成树协议)
防止环路,核心防风暴机制
# 华为示例
interface GigabitEthernet0/0/1
stp enable
2. 配置接口限速 / storm control(风暴控制)
storm-control broadcast threshold 100 80
防止广播帧流量超限直接拖死全网。
3. 设置 MAC 限制和静态绑定
mac-limit maximum 50
mac-address static XXXX-XXXX-XXXX interface Gig0/0/1 vlan 10
对关键设备做绑定,防止泛洪
4. 定期清理 ARP/MAC 缓存
防止缓存异常或溢出导致学习失败。
5. 使用 DHCP snooping + 动态 ARP 检测
防止伪造报文引发 MAC 学习混乱。
最后总结一句话
交换机学不到 MAC,不是“不学无术”,而是很可能配置有问题或网络出了环路。
只要你发现:
设备能 ping 网关但局域网互访慢
ARP 表刷得飞快,设备频繁掉线
不通的设备一换口就好
那真的要小心了,可能就是 MAC 表学不到+广播风暴起飞,早点处理,不然全网陪葬。
原创:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部
1118

被折叠的 条评论
为什么被折叠?



