桥接环路
在交换机设备出现之前,曾经出现过一种用来隔离碰撞的设备叫网桥(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地址表不稳定会影响主机之间的通信,因为某些数据转发不到正确的目的地。
提示:如果交换机在其两个或以上端口上收到了同一个数据帧,它就认为出现了环路,并报告故障信息。
【编辑推荐】