1. 广播风暴的成因
大家好,我是老张。做网络运维十几年,要说最让人头疼的问题,广播风暴绝对排前三。今天咱们就来聊聊这个“网络杀手”的根源——广播帧、广播域、泛洪机制,还有那个让人又爱又恨的环路。
1.1 广播帧的定义
广播帧,说白了就是一台设备发出的、想让同一网段里所有设备都收到的数据帧。它的目标MAC地址是 FF-FF-FF-FF-FF-FF,也就是全F。交换机收到这种帧,不会查MAC表,而是直接往所有端口转发(除了接收端口)。
广播帧的特征:
- 目标MAC:
FF-FF-FF-FF-FF-FF - 目标IP:通常为
255.255.255.255或子网广播地址 - 作用:ARP请求、DHCP发现、NetBIOS名称解析等
我记得刚入行那会儿,有个同事问我:“为什么ARP请求要用广播?”我告诉他:“你想想看,你都不知道对方的MAC地址,不喊一嗓子让所有人都听见,你怎么找到他?”广播帧就是网络里的“大喇叭”。
1.2 广播域与冲突域
这两个概念,很多新手容易搞混。我简单说一下:
| 概念 | 定义 | 隔离设备 | 范围 |
|---|---|---|---|
| 冲突域 | 同一时刻只能有一台设备发送数据的区域 | 交换机、网桥 | 较小(一个端口就是一个冲突域) |
| 广播域 | 广播帧能到达的区域 | 路由器、三层交换机 | 较大(默认整个VLAN) |
举个例子:你办公室里有10台电脑连在同一台交换机上。这10台电脑都在同一个广播域里——任何一台发广播,其他9台都得收。但冲突域呢?交换机的每个端口都是一个独立的冲突域,所以它们不会互相冲突。
我的经验:我曾经帮一家公司排查网络卡顿问题。发现整个公司就一个VLAN,200多台设备全在一个广播域里。广播流量占了总带宽的30%以上。后来划分了5个VLAN,问题立刻缓解。广播域越大,广播风暴的破坏力就越强。
1.3 交换机泛洪机制
交换机正常工作时,会维护一张MAC地址表。收到数据帧后,它查表决定从哪个端口转发。但有两种情况会触发泛洪:
- 未知单播帧:目标MAC不在MAC表中,交换机不知道往哪发,就往所有端口转发(除了接收端口)。
- 广播帧:目标MAC是
FF-FF-FF-FF-FF-FF,直接泛洪。
嗯,这里要注意:泛洪本身不是问题,它是交换机的一种正常工作机制。问题出在——当网络中存在环路时,泛洪就会变成灾难。
避坑指南:我曾经遇到过一个案例,某台交换机的MAC表被攻击者填满了(MAC泛洪攻击)。结果所有未知帧都变成泛洪,网络瞬间瘫痪。所以,MAC表容量和安全策略一定要关注。
1.4 环路引发的广播风暴
这才是今天的重头戏。环路,说白了就是网络中存在两条或以上的冗余路径。你可能会问:“冗余不是好事吗?防止单点故障啊。”没错,冗余是好意,但如果没有STP(生成树协议)的保护,冗余就会变成噩梦。
咱们来看一个典型的环路场景:
你看这张图,三台交换机形成了三角形环路。假设PC1发了一个ARP广播请求,交换机A收到后泛洪到所有端口。广播帧从链路1到了交换机B,从链路2到了交换机C。然后交换机B和C又继续泛洪……结果呢?广播帧在环路里无限循环,越积越多。
为什么会这样?因为交换机不会“记住”自己转发过的广播帧。它每次收到广播帧,都当成新的帧来处理。环路中的广播帧就像滚雪球,每经过一台交换机就复制一份,最终把网络带宽和CPU资源全部耗尽。
广播风暴的典型症状:
- 网络延迟急剧升高,ping丢包率飙升
- 交换机CPU使用率接近100%
- 所有端口指示灯疯狂闪烁
- 网络几乎不可用
我曾经踩过的坑:有一次帮客户做网络改造,临时加了一根跳线做测试,忘了拔。结果第二天早上,整个办公区网络瘫痪。我到现场一看,交换机端口指示灯闪得跟迪斯科球似的。拔掉那根跳线,网络立刻恢复。教训就是:任何临时线路都要做标记,用完立刻拆除。
所以,环路是广播风暴的最常见诱因。解决环路问题,最经典的方法就是启用STP(生成树协议)。它会逻辑上阻断冗余链路,只保留一条活动路径。万一主链路断了,STP再自动激活备份链路。这个咱们后面章节会详细讲。
我的建议:无论网络多简单,都建议开启STP。哪怕只有两台交换机互联,也开着。我曾经见过两台交换机直连,因为配置失误导致环路,整个机柜的网络都挂了。STP的开销很小,但保护作用巨大。
好了,这一节的内容就到这里。广播风暴的成因其实不复杂——广播帧的泛洪特性,加上环路这个“放大器”,就成了网络杀手。理解了这些,后面咱们讲定位和修复就顺理成章了。