交换技术应用连载:广播风暴问题解决

运维 网络运维
广播帧在环路中无休止地传播,形成广播风暴。广播风暴将严重影响网络性能,甚至造成网络瘫痪。

桥接环路  

在交换机设备出现之前,曾经出现过一种用来隔离碰撞的设备叫网桥(bridge)。网桥的工作原理和交换机相同,只是比交换机端口少,只有两个端口。另外一个不同点是网桥是软件实现的,交换速度比交换机慢。基于历史原因,今天仍然把交换机称为桥接设备,把交换机形成的环路称为桥接环路(bridge loop)。

交换机把原本处于同一个碰撞域和广播域的主机分割开来,使它们分别处于不同的碰撞域,提高了网络性能。这样做虽然解决了一个问题(提高了性能),但又引入了一个新问题,就是单点失败(single point failure),即当交换机出现故障时原本能够通信的主机就不能通信了。为了避免单点失败,人们很自然地想到了冗余技术--使用两台交换机连接两个分离的网段,一旦一台交换机出现故障还有另外一台交换机可以替代工作。单点失败的问题虽然解决了,但是由于两条路径的出现又会产生环路(如图1所示)。环路的产生将引起广播风暴(broadcast storm)和MAC地址表不稳定。这两个问题要比单点失败严重的多。

图 1环路的形成

广播风暴的形成

在图2所示的拓扑中,当网段1(segmeng1)中的主机hostX发出一个广播帧后(例如ARP广播),该网段中所有节点都接收到它,SwitchA和switchB也不例外,这里以switchA为例。由于是广播帧,SwitchA将它转发到所有其他端口,因此,这个广播帧会出现在网段2(segment2)中。

被交换机switchA转发到网段2的广播帧被交换机switchB处于网段2的端口收到。SwitchB并不知道该数据帧是由switchA转发过来的,因为数据帧上没有任何迹象表明它曾经被交换机处理过,正是基于这个原因,以太网交换机也称为透明(transparent)网桥--对于数据的接收端来说是透明的,它看不到路径中经由的交换机,它认为数据是从发送端直接到达目的地的的。SwitchB收到该广播帧后查阅地址表,没有找到任何匹配的地址条目,只好将该帧向其它所有端口转发,该广播帧又被转发到网段1上。SwitchA还会收到它并执行前面的过程。如此往复,广播帧在环路中无休止地传播,形成广播风暴。广播风暴将严重影响网络性能,甚至造成网络瘫痪。

图 2 广播风暴的形成

MAC地址表不稳定

环路也会造成交换机的MAC地址表不稳定。以图3为例解释为什么MAC地址表不稳定。

图 3 MAC地址表不稳定      (做图时把SW1下面的黑条去掉,SW1、SW2后面的阴影去掉)

假如主机A向主机B发送数据。该数据帧被交换机SW1和交换机SW2在网段1(S1)上的端口收到,通过学习数据帧中的源地址,两台交换机都认为主机A在网段S1上,并把这样的信息写入地址表中。此时如果两台交换机的地址表中并没有主机B的地址条目,它们会把该数据帧向其他所有端口转发,这样该数据帧就会被转发到网段2(S2)上。交换机SW2通过其在S2网段上的端口收到交换机SW1转发到S2网段上的数据帧后,再次读取源地址,发现仍然是主机A的地址,那么它认为主机A在网段2上,便修改自己的地址表,以反映出最新的状态。同理,交换机SW1从S2网段上收到该数据帧后也修改自己的地址表,把主机A对应在S2网段上。这样,随着数据帧在环上不停地旋转,两台交换机会认为主机A不停地在两个网段上变换,造成MAC地址表不稳定。MAC地址表不稳定会影响主机之间的通信,因为某些数据转发不到正确的目的地。

提示:如果交换机在其两个或以上端口上收到了同一个数据帧,它就认为出现了环路,并报告故障信息。

【编辑推荐】

  1. 引起网络广播风暴的原因及解决
  2. 广播风暴:导致网络拥塞的幕后黑手
责任编辑:许凤丽 来源: IT168
相关推荐

2010-04-13 14:25:24

Oracle问题解决

2011-02-23 13:48:05

Web

2009-03-02 10:13:00

VTP生成树交换技术

2009-11-01 16:17:16

2010-04-28 18:01:15

Unix系统

2010-06-17 11:35:24

Ubuntu 修复Gr

2011-06-13 16:16:32

Qt 中文问题

2011-06-27 16:44:59

Qmake

2014-04-21 15:59:59

iOS 7.1企业应用证书无效

2010-05-05 14:20:46

AIX CDE

2012-05-09 10:08:41

跨机房

2011-01-21 14:13:10

2010-05-05 10:25:24

Unix操作系统

2011-11-28 22:45:19

Nginxsession

2009-12-28 10:56:45

WPF Image

2009-12-24 11:13:41

2010-02-05 09:56:04

三层交换机

2011-08-25 16:53:42

Lua数据 交换

2009-12-09 17:30:53

NETCORE路由器

2010-09-27 13:14:42

JVM内存限制
点赞
收藏

51CTO技术栈公众号