STP生成树

1、生成树是为了防止二层环路造成的广播风暴。通过阻塞环路的某个端口从而达到消除环路的目的。

2、生成树的选举过程:

①选举根桥:

根据BPDU报文中的BID选举根桥。BID为优先级+最小的mac地址,越小越优先。

②选择根端口:

在每一个非根桥的交换机上选举一个端口,该端口到根桥的代价是最小的,该端口称为根端口。

1)比较每个端口到根桥的cost值的累加和,越小越优先。10M=cost为100,100M=cost为19,1000M=cost为4,10000M=cost为2。

2)cost值无法比较出来,那么就比较上连交换机的BID。

3)上连交换机的BID无法比较出来,那么就比较对端的port-ID,port-ID为优先级+端口编号,128+端口编号(如f/1)

4)对端的port-ID无法比较出来,那么就比较自己这段的port-ID。

③选择指定端口:

在每一条链路上选择一个指定端口。

1)比较链路两端各自到根桥的cost的累加和,越小越优先。或者比较根端口到根桥的cost值。越小越优先。

2)比较两端交换机的BID。

3)比较两端端口的port-ID。

④将既不是指定端口又不是根端口的端口阻塞掉(阻塞端口):

3、生成树的收敛:

生成树发送BPDU的时间2秒一个,老化时间为20秒。一般生成树的收敛时间为30-50 秒,20秒的阻塞、15秒的监听、15秒的学习。当链路发送变化时,发生变化的交换机负责发生一个TCN报文给所有的交换机,其他交换机收到后给他回复一个TCA报文,同时将他的TCN报文向上转发给根桥,根桥收到之后全网泛洪一个TC报文,通知全网进行mac地址表的更新。当交换机收到TC报文时会将mac地址表的老化时间由原来的300秒变为15秒。从未加快整个网络的收敛。

4、生成树的优化:

①portfast:快速端口。将交换机的端口置为portfast端口,那么该端口就不会参与生成树的收敛计算,该段就成为一个即插即用的端口。一般portfast端口用于边缘端口,如终端设备电脑、打印机、监控等。置为portfast的端口是不会转发BPDU报文的,但是可以接收BPDU报文。当portfast端口收到一个BPUD报文时,那么此时也要加入到生成树的收敛计算中。

②uplinkfast:(还能从其端口收到BPDU报文)将阻塞端口置为uplinkfast后,当转发链路出现故障时,阻塞链路就会省去15秒监听和15秒学习,直接进入转发阶段。

③backbonefast:(不能从其他端口收到BPDU报文)将阻塞端口置为backbonefast后,当转发链路故障之后,阻塞链路会将省去20秒的阻塞时间,但是依然需要15秒监听1秒学习时间。

5、生成树的安全:

①bpduguard:开启了bpduguard的端口后,该端口就不能在收到BPDU报文,一但该端口收到了BPDU报文后就会直接将该端口置为err-disabled状态。一般用于开启了portfast端口,防止恶意者伪造BPDU报文破坏生成树。

②bpdufilter:用于过滤BPDU报文,开启了bpdufilter的端口,则该端口既不收BPDU也不发送BPUD报文。一般用于两个网络的生成树的隔离,也能有效隔离恶意破坏者的攻击。

③guard:开启了guard的端口,则在一个已经确定好根桥的生成树网络中,当该端口再收到一个BPDU报文中的BID比已经确定的根桥的BID还优先时,则就将该端口置为err-disabled状态。

④loop guard :用于防止单向环路,例如光纤一根用于发送一根用于接收,放接收故障,而发送正常时就会无法收到根桥的BPDU,从未认为该链路down掉,那么就会将阻塞的接口打开,此时就会形成一个单向的环路。而loop guard就是用于防止这样的情况产生。

6、BPUD:

BPDU由根桥产生,指定端口只能转发来自于根桥的BPDU,阻塞端口与根端口只能接收BPDU报文。

7、MSTP与PVSTP:

PVSTP是Cisco私有协议,MSTP是共有协议。都是多生成树实例。就是在一个网络中可以运行多个生成树实例。PVSTP与MSTP都默认开启了uplinkfast与backbonefast所以收敛时间很快,一般在1-6秒就是收敛完成。

8、RSTP:

RSTP与普通的STP一样,在一个网络中只能运行一颗生成树。但是RSTP在普通的生成树上做了优化,能够更快速的收敛网络。在RSTP中只有丢弃端口discrete、学习learn、转发forward三种端口角色。端口状态有根端口、指定端口、备份端口、备用端口。备份端口作为根端口的备用,而备用端口作为指定端口的备用端口。备份端口指的是除了从转发接口能收到BPDU报文,还能从另一个阻塞端口收到来自于根桥的BPDU报文,那么这个阻塞端端口就叫做备份端口。备用端口就是我的指定端口转发出去的BPDU报文又从自己另一个端口收到,那就这个端口就叫做备用端口。当转发端口出现故障时,我们的备份端口直接进入到转发状态,从而加快了生成树的收敛带来的延迟丢包。

在普通的生成树中出现链路故障的交换机负责发送TCN报文,最后由根桥发送TC报文通告全网。这样在一定的程度上也延迟了生成树的收敛。在RSTP中TC报文直接由当前出现故障的交换机进行全网泛洪。

在RSTP中的 P/A 机制也加快了生成树的收敛时间。当新的交换机或者链路或者链路故障时,那么就会发生带有提议的BPDU报文P,只有对方所有接口为阻塞或边缘接口时那么就会发送一个带有同意的BPDU报文A。该过程几乎全网同时进行,加快了生成树的收敛时间。所以RSTP生成树的收敛时间是很快的,一般1-6秒。如果要使0丢包0感知切换,那么就需要使用到堆叠技术。

 

posted @ 2022-08-28 22:29  Ant_blog  阅读(628)  评论(0编辑  收藏  举报