在二层网络中,为了提高网络的可靠性,会在交换机之间建立多条链路,但通过这种方式建立的链路有一个致命问题,会生成环路。
在一个网络上,存在环路生成广播风暴和MAC地址震荡。
如果交换机广播风暴:从接收到广播帧,或者目标MAC地址为未知单播帧,则该帧将被转发到源端口以外的所有端口。 如果交换网络有环路,则该帧将无限传输,并产生广播风暴。
如图所示,SWA、SWB、SWC将接收到的数据包循环地传输到网络。
MAC地址表震荡:交换机基于接收到的数据帧的源地址和接收端口生成MAC地址表条目。 如果网络中存在环路,并且交换机传输来从多个接口接收相同的数据帧,则交换机中的MAC表将以相同的频率在多个接口之间切换。
如图所示,SWB在接收到G0/0/3的广播数据帧时,将对应的MAC条目(00-05-06-07-08-AA G0/0/3 )写入MAC表中,从而淹没数据帧
STP生成树协议STP生成树协议通过阻止端口来消除环路并实现链路备份。
如下图所示,网络中存在环路,STP协议选择使用该算法阻止SWC上的端口进行数据传输,消除环路。
STP工作过程名词解释:
BPDU :为了计算生成树,交换机之间必须交换相关的信息和参数,以便将包含网桥ID、路径开销和端口ID等参数的信息封装到BPDU中。
桥接器ID(BID ) )桥接器id由16位的桥接器优先级和48位的MAC地址构成。 桥的优先级默认为32768,可以手动设置。 (0-65535 ),MAC地址是唯一的。
接口ID(PID ) :运行STP交换机的每个端口都有端口ID,端口ID由端口优先级和端口号(0-240 )组成。
指定端口—交换机将配置BPDU的端口转发到连接的网段。 一个网段只能有一个指定端口,而根桥上的每个端口始终指定一个端口。
根端口—非根交换机的根桥路径最好,运行STP协议的交换机最多有一个端口。
备用端口—被阻止的端口,而不是根端口或指定端口。
如图所示:
图:
d :指定端口
a :备用端口
r :根端口
第一步,选举根桥:
根桥的作用相当于“树”的根,是核心部分。
每台交换机启动STP后,都会识别出自己是根桥,并在发送到其他交换机的BPDU中声明自己是根桥。 在这种情况下,BPDU的根桥ID是每个设备的桥ID。
每个交换机接收到网络中其他设备发送来的BPDU后,将BPDU中的根网桥ID与自己的BID进行比较。
交换机在不断交换BPDU的同时,比较BID,最终选择BID最小的交换机作为根桥,否则不是根桥。
第二步,给非根桥交换机选举根端口:
交换机的每个端口都收到一条BPDU消息,其中包含路径开销、BID、PID等信息
首先比较路径开销,越小越好,越好越是根端口
如果路径开销相同,则比较上行交换机的BID (即发送BPDU交换机的BID ),越小越好,越好越是根端口
如果上行交换机的BID相同,则比较上行交换机的PID,越小越好,越好则为根端口
如果上行交换机的PID相同,则比较本地各端口的PID,越小越好,优秀的是根端口
第三步,给每个网段选举指定端口:
交换机的每个端口都收到一条BPDU消息,其中包含路径开销、BID、PID等信息
首先比较路径开销,越小越好,优秀的是指定端口
路径开销相等时,比较链路两端交换机的BID,越小越好,出类拔萃的是指定端口
链路两端交换机的BID相等时,比较链路两端端口的PID,越小越好,优秀的是指定端口
第四步,阻塞预备端口:
交换机阻止了无法转发终端计算机生成和发送的帧的路由以外的端口,也阻止了未指定的端口。
阻塞端口后,将形成STP生成树。
STP实验验证实验拓扑如下。
)1)华为交换机默认启用STP功能。 交换机打开STP协议后,默认情况下它自己是根桥,每个端口都是指定端口。 STP信息如下。
)交换机向网络中的其他交换机声明自己是根桥,并发送BPDU。 使用Wires hark捕获软件在LSW1接口Eth0/0/1上运行数据捕获软件。 详细情况如下。
)3)交换机LSW2上的STP详情如下。
)4)通过交换机LSW2接口Eth0/0/1捕获数据包数据,如下所示:
)5)交换机LSW3上的STP详情如下。
从图中可以看到,LSW3的Eth0/0/2接口被STP算法堵塞。
总结:STP协议通过阻塞端口实现消除环路,在选举端口角色时,主要依靠各交换机发送的BPDU。
另外精心整理了一些【STP协议思维导图/ 视频分析/ 实验配置】,来进一步巩固你的基础;
如果大家想入手以上相关的学习资料,私信 “ 学习 ” 免费领取哦!