码迷,mamicode.com
首页 > 其他好文 > 详细

STP+RSTP详解

时间:2019-05-12 10:28:40      阅读:578      评论:0      收藏:0      [点我收藏+]

标签:设置   工作原理   参与   填充   计时   为什么   假设   计算   eth-trunk   

STP技术---生成树技术

作为二层防环的技术还包括smart-link、eth-trunk、堆叠、rrpp等;

STP技术的收敛速度为1-2s
rrpp技术的收敛速度 ms单位;

STP技术的优势

1、适应复杂网络;
2、STP机制丰富,能存在多种保护机制等;
说明:
STP技术包括:STP、RSTP、MSTP
华为设备开启,默认STP版本为MSTP

二层环路

危害:
1、 广播风暴:数据帧的数量呈指数型增长;
2、 mac地址表震荡:mac地址表不断进行刷新,无法正常地转发数据帧;
3、最终影响设备正常使用。

三大表:

mac地址表:用于指导数据帧(二层)
ARP缓存表:用于存储IP地址与mac地址的对应关系(2.5层)
路由表: 用于指导IP数据包进行转发(三层)

STP协议工作原理

通过协议计算(依赖于BPDU报文),从逻辑上阻塞端口,从而实现防环,当链路一旦出现故障时,阻塞端口重新恢复转发。

STP的限制

1、收敛慢,收敛属于秒级;
2、不适用于大型交换网络,网络直径小于等于20;
3、整网的交换设备不能超过50台;

STP的计算过程

1、选举一个根桥

根桥交换机:作为整个交换网络的数据转发中心;

选举要素1

根桥ID:优先级+mac地址
1、比较优先级,默认为32768,数值越小越优先,可调整,只能为4096的倍数;
2、比较mac地址,数值越小越优先。

如果设备收到比本身差的BPDU报文,直接丢弃;
如果设备收到比本身优的BPDU报文,将其放入端口存储并且转发出去。

全网泛洪的BPDU报文的根桥ID一致时说明交换网络中已经选出根桥交换机

2、每个非根交换机选举一个根端口

根端口(RP):转发数据的端口,用于接收最优的BPDU报文,只在非根桥交换机上有且只有一个。

选举要素2

1、根路径开销:
根路径:以一个接口为出方向,去往根桥交换机的最短路径之和,称为根路径;
2、开销:
跟接口的带宽有关;

100M=200000
1GE=20000
10GE=2000

根路径开销越小越优先:

STP的通用规则一:

非根桥交换机与根桥交换机直连接口都为RP端口。

3、每个网段选举一个指定端口

指定端口(DP):转发数据,用于转发最优BPDU,在每个网段上有且仅有一个。

通用规则二:

根桥交换机上的所有端口均为DP端口。

要素3

发送者桥ID
设备在转发BPDU报文,都会将本身的桥ID字段填充到发送者桥ID中;

比较规则与根桥ID比较规则完全一致。

4、阻塞非根、非指定端口

AP,既不是DP也不是RP端口。

要素4

端口ID:优先级+端口编号
优先级:默认为128,数值越小越优先,可调整,只能调整为16的倍数;
端口ID,数值越小越优先。

STP的端口状态机

disable:说明端口未启用STP协议;

blocking:阻塞状态,属于AP端口正常状态,进行根桥的选举;

listening:侦听状态,进行端口角色的确定;

learning:学习状态,学习mac地址表;

forwarding:转发状态,转发数据,学习mac地址;

STP的计时器

hello time:更新计时器,根桥交换机每2秒向外泛洪BPDU报文;

max age:默认为20s,端口中BPDU的老化时间,如果端口到达老化时间,BPDU会被丢弃,等同于拓扑发生变化。

message age:信息延时,时间默认为0秒,每经过一个设备,会加1。

端口真正的老化时间=max age-message age

forward delay:转发延时,默认为15s,在listen--learning-forwarding状态跳转时使用,用于防止临时环路。

STP的收敛规则

当RP端口down掉,非根桥交换机直接认为根桥交换机down 掉,以自身为根桥向外泛洪BPDU报文;

STP针对拓扑改变的刷新机制

(1)由发生拓扑变化的交换机朝着根桥泛洪TCN BPDU报文,上游交换机收到TCN BPDU报文后,先回复TCA BPDU报文,继续朝着根桥泛洪TCN BPDU;

(2)不断重复上述过程,直到根桥交换机收到TCN BPDU,回复TCA BPDU报文为止;

(3)根桥交换机会泛洪TC BPDU报文,泛洪35秒,每2秒泛洪(17个或者18个),当交换机收到TC BPDU报文后,会刷新mac地址表。

RSTP对于STP的改进

(1)BPDU

将STP的flag字段中的6bit使用,分别为agreement(A),forwarding,learning,port role,proposal(P)。

(2)P/A协商

① 所有设备在一启动RSTP时,都认为本设备是根桥,都发送出P置位的的BPDU。

② 经过对比,BPDU较差的设备会停止发送BPDU,同时将收到较优BPDU的接口置为RP端口,进入forwarding,同时会将除了边缘端口以外的其他端口阻塞。

③ RP端口进入forwarding以后,会回复A置位的BPDU。更优的设备在收到了A置位的BPDU以后,会将收到该BPDU的端口置为DP端口,同时进入转发状态。

(3)端口角色

AP:预备端口,阻塞状态,作为RP的备份,当RP出现故障以后,AP马上成为RP端口,并且进入转发状态。收到其他设备发送的BPDU是AP。

BP:备份端口,阻塞状态,作为DP的备份,当DP出现故障以后,BP会在等待一段时间后才成为DP。
收到本设备的BPDU。

(4)对于次优的BPDU会回复处理,通过P/A协商。

(5)边缘端口

不参与STP的计算,只要接口UP,立即进入forwarding状态。当边缘端口收到了BPDU以后,就会丧失边缘端口属性。

配置: stp edged-port enable

(6)拓扑变更机制

直接由发生拓扑变更的设备直接发送出TC置位的BPDU,然后将除了收到TC置位1以外的接口所学到的MAC的老化时间改为15S。

(7)将端口角色由5种变为3种

discarding:在RSTP中的阻塞状态,不学习MAC地址也不转发用户数据。

learning:学习MAC地址但是不转发用户数据。

forwarding:即学习MAC地址也转发用户数据。

(8)保护功能

① BPDU保护:保护边缘端口在收到了BPDU以后,会将该端口error-down,同时通知网管。

只能针对与边缘端口保护

配置:stp bpdu-protection //在全局试图下

② 根保护:当该端口收到更优的RST BPDU后,端口进入Discarding状态,不再转发报文。若一段时间内端口未收到更优的RST BPDU,则会自动恢复到正常的Forwarding状态

只能在指定端口上保护

配置:stp root-protection //在接口试图下

③TC-BPDU泛洪保护:当设备收到TC-BPDU以后,在单位时间内会有一个限制的次数。

配置:在系统视图下stp tc-protection threshold +可处理的报文数量

RSTP快速收敛机制

当交换机的RP端口down掉时,AP端口会立刻成为RP端口,并立刻进入forwarding状态。

BP端口选取规则

当交换机从一个接口收到一份BPDU报文,包含的发送者桥ID为本身交换机的桥ID,同时BPDU比本地接口的BPDU优时,则此接口会被选为BP端口

当DP端口down掉时,BP端口需要等待18s的时间才会成为DP端口

常见问题汇总

问题1:RSTP的BPDU保护?

答:边缘端口直接和用户终端相连,正常情况下,边缘端口不会收到BPDU报文。如果者伪造BPDU恶意交换机,当边缘端口接收到BPDU报文时,交换机会自动将边缘端口设置为非边缘端口,并重新进行生成树计算,从而引起网络震荡。

通过配置BPDU保护功能可以防止这种***。设备上使能了BPDU保护功能后,如果边缘端口收到BPDU,系统就将这些端口Shutdown。
?
问题2:stp 选举的四要素有哪些??

答:root id(根桥的优先级+mac地址)
cost(到根桥的开销(接口带宽))
发送者桥id
端口id

?

问题3:华为交换机如果接口关闭了STP,收到BPDU会如何处理?

答:BPDU报文发送的目的地址为01-80-C2-00-00-00,华为交换机如果接口关闭了STP,那么收到目的MAC地址为:01-80-C2-00-00-00组播数据帧会直接丢弃。

?
问题4:边缘端口的端口角色是什么角色?

答:DP端口,因为从该端口没有收到更优的BPDU,当一台运行STP的交换机刚启动,端口的角色为DP端口,只有收到比该端口优的BPDU才会迁移成其他的角色,边缘端口一般用于连接非交换机,不会收到BPDU,所以端口角色为DP端口。

?
问题5:如果一个端口收到比自己还要差的BPDU会怎么处理?

答:华为把这种BPDU称为次优BPDU,华为交换机收到次优BPDU会丢弃该BPDU,并发送自己接口的最优的BPDU。

?
问题6:STP中为什么要设计转发延迟时间?

答:STP如果没有forward delay带来的临时环路问题:

初始状态下SWA为根交换机,所有的交换机端口中,只有SWD的E0/2端口为Alternate Port,处于不转发状态。假设修改SWC的优先级,使SWC成为新的根交换机,SWD的E0/2接口成为新的根端口,进入转发状态,E0/1接口成为新的指定端口,处于转发状态,SWB的E0/2应当成为新的Alternate Port,进入不转发状态。如果在SWB的E0/2在从转发状态进入不转发状态之前,SWD的E0/2就从不转发状态进入转发状态,则网络中会出现临时环路。

解决临时环路的方法是:在一个端口从不转发状态进入转发状态之前(例如SWD的E0/2端口),需要等待一个足够长的时间,以使需要进入不转发状态的端口有足够时间完成生成树计算,并进入不转发状态
?
问题7:运行STP的交换机是怎么感知拓扑发送变化的,为什么要发送TC BPDU,不发会怎么样?

答:当一个接口进入转发状态时,就认为拓扑已经发生变化。
如果拓扑发生变化不发TC BPDU会导致,过时的MAC地址表无法被刷新,从而导致数据流量无法继续进行转发,要等300S的MAC地址表老化时间后,才会刷新MAC地址表;

?
问题8:华为STP有多少个版本?默认是哪个版本?

答:STP,RSTP,MSTP
MSTP
?

STP+RSTP详解

标签:设置   工作原理   参与   填充   计时   为什么   假设   计算   eth-trunk   

原文地址:https://blog.51cto.com/13435327/2393059

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!