STP生成树协议笔记之(一) : 背景和原理
什么是STP协议
STP协议(Spanning Tree Protocol,生成树协议)是根据IEEE 802.1D 标准建立的,用于在局域网中消除数据链路层物理环路的协议。运行该协议的设备通过彼此交互信息发现网络中的环路,并有选择的对某些端口进行阻塞,最终将环路网络结构修剪成无环路的树型网络结构,从而防止报文在环路网络中不断增生和无限循环,避免设备由于重复接收相同的报文所造成的报文处理能力下降的问题发生。
产生的背景
随着局域网规模的不断扩大,越来越多的交换机被用来实现主机之间的互连。如果交换机之间仅使用一条链路互连,则可能会出现单点故障,导致业务中断。为了解决此类问题,交换机在互连时一般都会使用冗余链路来实现备份。如下图所示
冗余链路虽然增强了网络的可靠性,但是也会产生环路,而环路会带来一系列的问题,继而导致通信质量下降和通信业务中断等问题。
环路产生的问题主要有:广播风暴和MAC地址震荡。
广播风暴
主机A向外发送了一个单播帧。假设此单播帧的目的MAC地址在网络中所有交换机的MAC地址表中都暂时不存在。SWB接收到此帧后,将其转发到SWA和SWC。
根据交换机的转发原则,如果交换机从一个端口上接收到的是一个广播帧,或者是一个目的MAC地址未知的单播帧,则会将这个帧向除源端口之外的所有其他端口转发(泛洪)。如果交换网络中有环路,则这个帧会被无限转发,此时便会形成广播风暴,网络中也会充斥着重复的数据帧。
SWB,SWA和SWC也会将此帧转发到除了接收此帧的其他所有端口,结果此帧又会被再次转发给SWB,这种循环会一直持续,于是便产生了广播风暴。交换机性能会因此急速下降,并会导致业务中断。
MAC地址表震荡
交换机是根据所接收到的数据帧的源地址和接收端口生成MAC地址表项的。
(1)主机A向外发送一个单播帧,假设此单播帧的目的MAC地址在网络中所有交换机的MAC地址表中都暂时不存在。SWB收到此数据帧之后,在MAC地址表中生成一个MAC地址表项:
SWB的MAC地址表 |
|
MAC地址 |
端口 |
00-05-06-07-08-AA |
GE0/0/3 |
将其从G0/0/1和G0/0/2端口转发。此例仅以SWB从G0/0/1端口转发此帧为例进行说明。
(2)SWA接收到此帧后,由于MAC地址表中没有对应此帧目的MAC地址的表项,所以SWA会将此帧从G0/0/2转发出去。
(3)SWC接收到此帧后,由于MAC地址表中也没有对应此帧目的MAC地址的表项,所以SWC会将此帧从G0/0/2端口发送回SWB,也会发给主机B。
(4)SWB从G0/0/2接口接收到此数据帧之后,会在MAC地址表中删除原有的相关表项,生成一个新的表项:
SWB的MAC地址表 |
|
MAC地址 |
端口 |
00-05-06-07-08-AA |
GE0/0/3 |
00-05-06-07-08-AA |
GE0/0/2 |
此过程会不断重复,从而导致MAC地址表震荡。
STP工作原理
在以太网中,正是因为在需要在局域网中通过冗余链路来进行备份,使得二层网络的环路会带来广播风暴,MAC地址表震荡,重复数据帧等问题,为解决交换网络中的环路问题,提出了STP。
STP通过阻塞端口来消除环路,并能够实现链路备份的目的。
STP的主要作用:
消除环路:通过阻断冗余链路来消除网络中可能存在的环路。
链路备份:当活动路径发生故障时,激活备份链路,及时恢复网络连通性。
STP协议笔记汇总:
STP生成树协议笔记之(一) : 背景和原理
https://www.cnblogs.com/zylSec/p/14615481.html
STP生成树协议笔记之(二) : 端口角色选举STP
https://www.cnblogs.com/zylSec/p/14618328.html
STP生成树协议笔记之(三) : 协议报文的抓包解析
https://www.cnblogs.com/zylSec/p/14627690.html
STP生成树协议笔记之(四) : 协议基础配置