一、成因 :
广播风暴指过多的广播包消耗了大量的网络带宽,导致正常的数据包无法正常在网络中传送,通常指一个广播包引起了多个的响应,而每个响应又引起了多个得响应,就像滚雪球一样,把网络的所有带宽都消耗殆尽。该现象通常是由于网络环路、故障网卡、病毒等引起的。
二、预防(以 Cisco Catalyst Switch 为例)
1 、首先使用网管分析你网络的 BaseLine ,这样可以明确你的网络当中正常情况下的广播包比例是多少。
2 、目前绝大多数交换机都支持广播风暴抑制特性,配置了这个特性以后,你可以控制每个端口的广播包维持在特定的比例之下,这样可以保留带宽给必须的应用。
配置:

(以 
 Cisco Catalyst Switch 
 为例) 
  
int f1/1
storm-control broadcast level 20.00 
switch#sh storm 

Interface Filter State Level Current 
--------- ------------- ------- ------- 
Fa1/0/1 Forwarding 20.00% 0.00%


3 、针对缺省 STP 配置无法排除的网络环路问题,利用 STP 的 BPDUguard 特性来预防广播风暴。此种环路情况示意图如下:
Switch------Hub(portA---portB)
Switch 启用了 STP ,而 Hub 则被人有意无意的用一根网线联起来,导致引起了环路。 Switch 的端口不会收到其他交换机或本交换机其他端口的 BPDU ,不会触发该端口的 STP 决策过程,也就不可能 B locking 该端口,这样就会引起广播风暴。我们可以利用 C isco STP 的 BPDUguard 特性来预防这一点。

int 
  f1/1 
 
spanning-tree bpduguard enable


*** 值得注意的是 bpduguard 可以在全局下配置,也可以在每端口的基础上配置。如果在全局下配置,则只对配置了 portfast 的端口起作用,如果在端口下配置,则不用配置 portfast

三、排障(以 Cisco Catalyst Switch 为例)
如果网络中已经产生了网络风暴(现象通常为网络丢包、响应迟缓、时断时通等),则可以利用如下的方法来排障。
1 、首先确认是否是网络风暴或其他异常流量引起的网络异常,在核心交换机上。

Switch>sh proc cpu | e 0.00 
CPU utilization for five seconds: 19%/0%; one minute: 19%; five minutes: 19% 
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process 
15 20170516 76615501 263 0.31% 0.13% 0.12% 0 ARP Input 
26 7383266801839439482 401 5.03% 4.70% 5.08% 0 Cat4k Mgmt HiPri 
27 8870781921122570949 790 5.67% 7.50% 6.81% 0 Cat4k Mgmt LoPri 
43 730060152 341404109 2138 6.15% 5.29% 5.28% 0 Spanning Tree 
50 59141788 401057972 147 0.47% 0.37% 0.39% 0 IP Input 
56 2832760 3795155 746 0.07% 0.03% 0.01% 0 Adj Manager 
58 4525900 28130423 160 0.31% 0.25% 0.18% 0 CEF process 
96 20789148 344043382 60 0.23% 0.09% 0.08% 0 Standby (HSRP)


如果交换机的 CPU 利用率较高,且大部分的资源都被 “IP Input” 进程占用,则基本可以确定网络中有大流量的数据。
2 、查找异常流量是从交换机的那一个端口来的:

switch #sh int | i protocol|rate|broadcasts 
FastEthernet1/0/1 is up, line protocol is up (connected) 
Queueing strategy: fifo 
5 minute input rate 0 bits/sec, 0 packets/sec 
5 minute output rate 2000 bits/sec, 3 packets/sec 
Received 241676 broadcasts (0 multicast)


如果找到一个端口的 input rate 非常高,且接收到的广播包也非常多,则基本可以找到来源,如果该端口下联的也是可管理的交换机,则再次执行此过程,直到找到一个连接 PC 或者 HUB 的端口。
3 、 shutdown 该端口 :
int f1/1
shutdown
4 、查找产生异常流量的根源 :
如果是 HUB 环路,则拆掉环;如果是病毒,则做杀毒处理;如果是网卡异常,则更换网卡。此部分不详述。
5 、确认交换机的 CEF 功能是否启用,如果没有,则需要启用,可以加速流量的转发。

switch>sh ip cef


配置 CEF :
全局模式下输入

ip cef