我们都知道交换机的作用是互相交换数据,但你们有没有想过交换机的这个工作机制有一些缺陷?(不知道的可以去看我的文章《带你走进网络世界:硬件篇-二层交换机》)这个缺陷是我们今天要解释的“广播风暴”。

  • 以下我们通过三个问题来一起了解一下"广播风暴"。
  • 何为广播风暴?

    广播风暴(broadcast storm)简单的说就是指整个广播域充斥着大量广播包,同时还不断产生新的广播包(这些广播包被交换机大量复制),这些广播包无法被网络设备处理,并且占用了网络设备的大量网络带宽、系统资源,导致业务不能正常运行,甚至彻底瘫痪,这就是"广播风暴"。

    广播风暴是怎样形成的?

    1. 广播风暴的成因就是因为网路中出现了"环路"。
    2. 那么什么是"环路"?其实这个很好理解,用一根网线连接同一台交换机的两个端口(前提是同一广播域下)这样就形成了环路了,当然也可以用两根网线,分别连接两台交换机上的两个端口,就像下面这个图,这样就形成了环路了。
    3. 环路的结构有很多种,但是都有一个共同点,交换机发送一个广播包出去,然后通过某种形式从交换机的另一个接口接收到,然后交换机又把这个广播包发送出去,就这样一直死循环下去,这就是环路,也是广播风暴。

    环路拓扑图

    现在我们举个例子来说明一下,现在有A、B、C、D四台交换机。

    当A接收到一个广播包之后,A会把这个广播包以泛洪(广播)的形式发送出去,意思就是B、C都会接收到这个广播包,然后B和C又会以泛洪的形式再发送出去给C,然后C接收到这个广播包之后,C会把从D哪里接收到的广播包发送个B,再把B接收到的广播包发送给D,然后B和D就接收到了对方的广播包,然后B又会把从C那里接收到的广播包发送给A,D会把从C那里接收到的广播包发送个A,然后A又会把广播包发送出去,就这样一直死循环下去,而且交换机每接收发送一次就会产生一个新的广播包,这就是我们所说的广播风暴形成的原因。

    拓展阅读:广播风暴产生的环境不仅仅是在交换机上,路由器也会产生广播风暴。

    广播风暴形成后会产生什么样的后果

    广播风暴产生后,广播包一直得不到网络设备的处理,就会导致交换机因为转发和接收这些广播包而把自身的带宽和系统资源耗光,然后广播风暴所在的广播域会被这些广播包充斥满导致网络中断业务瘫痪等后果,可以说广播风暴所到之地寸草不生。

    模拟实验:

    模拟广播风暴的实验非常简单,只需要按照下图,把拓扑建立好,然后把SW1、SW2两台交换机的STP功能关闭掉,在用PC2随意ping一个IP地址(发送广播包),然后交换机就会收到广播包,这样模拟广播风暴的实验就完成了,我们再用Wireshark抓包就能抓到大量的广播包了,这个就是广播风暴的情景。

    命令如下:

    • <Huawei>system-view
    • [Huawei]undo stp enable (关闭STP命令)
    • Warning: The global STP state will be changed. Continue? [Y/N] y (这里按Y)

    两台交换机都需要关闭STP。

    模拟实验图

    这是模拟器模拟的广播风暴情景,不到半分钟就产生了将近8000个广播包,这仅仅用两台交换机和一台终端模拟的环境,如果在实际环境下产生广播风暴的后果可想而知。

    广播风暴情景

    文章上述展示的环路结构拓扑图,在实际环境中使用率非常高,为什么这些网络结构会产生广播风暴还会用?因为这些结构可以很好地避免“单点故障”。

    那怎么避免由网络结构带来的广播风暴呢?

    网络协议的出现其实很大一部分原因是修补某些技术所出现的一些缺陷,例如IPv6就是为了弥补IPv4地址数量不足而研发的,RIPv2就是因为RIPv1功能太多限制而研发的,而STP协议也是其中之一,STP协议就是为了广播风暴而生的,下期我将带大家走进STP的大门,敬请留意。

    相关推荐