为了提高网络的可靠性,交换网中通常会使用冗余链路。但是冗余链路会给交换网络带来环路风险,并导致广播风暴以及MAC地址表不稳定等问题,进而影响到用户的通信质量。生成树协议STP(Spanning Tree Protocol)可以在提高可靠性的同时又能避免环路带来的各种问题。
文章目录
环路引起的问题
二层交换网络
交换机之间通过多条链路互联时,虽然可以提高网络可靠性,但同时也会带来环路问题。
- 随着局域网规模的不断扩大,越来越多的交换机被用来实现主机之间的互联。如果交换机之间只使用一条链路互联,有可能出现单点故障,导致业务中断。为了解决此类问题,交换机在互连时一般会使用冗余链路来实现备份。
- 冗余链路虽然增强了网络的可靠性,但是也会产生环路,而环路会产生其他问题,导致通信质量下降和通信业务中断。
广播风暴
- 根据交换机的转发原则,如果交换机从一个端口上接收到的是一个广播帧,或者是一个目的MAC地址未知的单播帧,那么交换机会将这个帧向除源端口之外的所有其他端口转发。如果交换机中有环路,这个帧就会被无限转发,形成广播风暴,导致网络中充满重复无用的数据帧,影响正常网络通信。
- 在上图中,主机A向外发送一个单播帧,但是该单播帧的目的MAC地址在网络中所有交换机的MAC地址表中都暂时不存在。SWB接收到此帧后,将其转发到SWA和SWC,SWA和SWC也会将此帧转发到除了接收此帧的其他所有端口,结果此帧又会被再次转发给SWB,这种循环会一直持续,于是便产生了广播风暴。交换机性能会因此急速下降,并会导致业务中断。
MAC地址表震荡
-
交换机是根据所接收到的数据帧的源地址和接收端口生成MAC地址表的。
-
主机A向外发送一个单播帧,假设此单播帧的目的MAC地址在网络中所有交换机的MAC地址表中都暂时不存在。SWB收到此数据帧之后,在MAC地址表中生成一个MAC地址表项,00-01-02-03-04-AA,对应端口为G0/0/3,- 并将其从G0/0/1和G0/0/2端口转发。此例仅以SWB从G0/0/1端口转发此帧为例进行说明。
-
SWA接收到此帧后,由于MAC地址表中没有对应此帧目的MAC地址的表项,所以SWA会将此帧从G0/0/2转发出去。
-
SWC接收到此帧后,由于MAC地址表中也没有对应此帧目的MAC地址的表项,所以SWC会将此帧从G0/0/2端口发送回SWB,也会发给主机B。
-
SWB从G0/0/2接口接收到此数据帧之后,会在MAC地址表中删除原有的相关表项,生成一个新的表项,00-01-02-03-04-AA,对应端口为G0/0/2。此过程会不断重复,从而导致MAC地址表震荡。
-
在下例中关闭了stp,可以看出在SW1上的MAC地址表在不断变化,且在网络链路上充斥着大量重复信息