48小时系统班试听入口

【网络干货】二层RSTP防环技术详解

发布作者:新盟教育 发布日期:2022-08-19 浏览人数:1526人

网工必备——二层RSTP防环技术详解


一、RSTP 对 STP 的改进



IEEE于2001年发布的802.1W标准定义了快速生成树协议RSTP(Rapid Spanning Tree Protocol),该协议基于STP协议,对原有的STP协议进行了更加细致的修改和补充。


STP 的不足之处:


STP 协议虽然能够解决环路问题,但是由于网络拓扑收敛慢,影响了用户通信质量。如果网络中的拓扑结构频繁变化,网络也会随之频繁失去连通性,从而导致用户通信频繁中断,这是用户无法忍受的。


STP 的不足之处如下:


1.首先, STP 没有细致区分端口状态和端口角色,不利于初学者学习及部署。


网络协议的优劣往往取决于协议是否对各种情况加以细致区分。


A.从用户角度来讲,Listening、Learning和Blocking状态并没有区别,都同样不转发用户流量。


B.从使用和配置角度来讲,端口之间最本质的区别并不在于端口状态,而是在于端口扮演的角色。根端口和指定端口可以都处于Listening状态,也可能都处于 Forwarding状态。


2.其次, STP算法是被动的算法,依赖定时器等待的方式判断拓扑变化,收敛速度慢。


3、最后, STP的算法要求在稳定的拓扑中,根桥主动发出配置BPDU报文,而其他设备进行处理,传遍整个STP网络。


这也是导致拓扑收敛慢的主要原因之一。


RSTP对STP的改进:


根据STP的不足,RSTP删除了3种端口状态,新增加了2种端口角色,并且把端口属性充分的按照状态和角色解耦;此外,RSTP还增加了相应的一些增强特性和保护措施,实现网络的稳定和快速收敛。


1.通过端口角色的增补,简化了生成树协议的理解及部署。


RSTP的端口角色共有 4 种:根端口、指定端口、 Alternate端口和Backup 端口。


根端口和指定端口的作用同 STP 协议中定义, Alternate 端口和 Backup 端口的描述如下:


从配置BPDU报文发送角度来看:


Alternate端口就是由于学习到其它网桥发送的配置BPDU报文而阻塞的端口。


Backup端口就是由于学习到自己发送的配置 BPDU 报文而阻塞的端口。


从用户流量角度来看:


  • Alternate端口提供了从指定桥到根的另一条可切换路径,作为根端口的备份端口。

  • Backup端口作为指定端口的备份,提供了另一条从根桥到相应网段的备份通路。

  • 给一个RSTP域内所有端口分配角色的过程就是整个拓扑收敛的过程。


2、端口状态的重新划分


RSTP 的状态规范把原来的5种状态缩减为3种。根据端口是否转发用户流量和学习MAC地址来划分:


  • 如果不转发用户流量也不学习MAC地址,那么端口状态就是Discarding状态。

  • 如果不转发用户流量但是学习MAC地址,那么端口状态就是Learning状态。

  • 如果既转发用户流量又学习MAC地址,那么端口状态就是Forwarding状态。


3、配置BPDU格式的改变,充分利用了STP协议报文中的Flag字段,明确了端口角色。


在配置BPDU报文的格式上,除了保证和STP格式基本一致之外,RSTP作了一些小变化:


Type字段,配置BPDU类型不再是0而是2,所以运行STP的设备收到RSTP的配置BPDU时会丢弃。


Flags字段,使用了原来保留的中间6位,这样改变的配置BPDU叫做RST BPDU,如图所示:


4、配置BPDU的处理发生变化



A、拓扑稳定后,配置BPDU报文的发送方式


拓扑稳定后,根桥按照Hello Timer规定的时间间隔发送配置BPDU。


其他非根桥设备在收到上游设备发送过来的配置BPDU后,才会触发发出配置 BPDU,此方式使得STP协议计算复杂且缓慢。


RSTP对此进行了改进,即在拓扑稳定后,无论非根桥设备是否接收到根桥传来的配置BPDU报文,非根桥设备仍然按照Hello Timer规定的时间间隔发送配置BPDU,该行为完全由每台设备自主进行。


B、更短的 BPDU 超时计时


如果一个端口连续3个Hello Time时间内没有收到上游设备发送过来的配置 BPDU,那么该设备认为与此邻居之间的协商失败。而不像STP那样需要先等待一个Max Age。


C、处理次等 BPDU


当一个端口收到上游的指定桥发来的RST BPDU报文时,该端口会将自身存储的RST BPDU与收到的RST BPDU进行比较。


如果该端口存储的RST BPDU的优先级高于收到的RST BPDU,那么该端口会直接丢弃收到的RST BPDU,立即回应自身存储的RST BPDU。


当上游设备收到下游设备回应的RST BPDU后,上游设备会根据收到的RST BPDU 报文中相应的字段立即更新自己存储的RST BPDU。


由此, RSTP 处理次等 BPDU 报文不再依赖于任何定时器通过超时解决拓扑收敛,从而加快了拓扑收敛。


5、快速收敛


Proposal/Agreement 机制


当一个端口被选举成为指定端口之后,在STP中,该端口至少要等待一个 Forward Delay(Learning)时间才会迁移到Forwarding状态。而在RSTP中,此端口会先进入Discarding状态,再通过Proposal/Agreement机制快速进入Forward状态。这种机制必须在点到点全双工链路上使用。


根端口快速切换机制


如果网络中一个根端口失效,那么网络中最优的Alternate端口将成为根端口,进入Forwarding状态。因为通过这个Alternate端口连接的网段上必然有个指定端口可以通往根桥。这种产生新的根端口的过程会引发拓扑变化,详细描述请见RSTP技术细节中的RSTP拓扑变化处理。


边缘端口的引入


在RSTP里面,如果某一个指定端口位于整个网络的边缘,即不再与其他交换设备连接,而是直接与终端设备直连,这种端口叫做边缘端口。


边缘端口不接收处理配置BPDU,不参与RSTP运算,可以由Disable直接转到 Forwarding状态,且不经历时延,就像在端口上将STP禁用。但是一旦边缘端口收到配置BPDU,就丧失了边缘端口属性,成为普通STP端口,并重新进行生成树计算,从而引起网络震荡。


6、保护功能




二、RSTP 技术细节



Proposal/Agreement机制,其目的是使一个指定端口尽快进入Forwarding 状态。如图所示,根桥S1和S2之间新添加了一条链路。在当前状态下,S2 的另外几个端口p2是Alternate端口,p3是指定端口且处于Forwarding状态, p4是边缘端口。



新链路连接成功后,P/A机制协商过程如下:


1.p0和p1两个端口马上都先成为指定端口,发送RST BPDU。


2.S2的p1口收到更优的RST BPDU,马上意识到自己将成为根端口,而不是指定端口,停止发送RST BPDU。


3.S1的p0进入Discarding状态,于是发送的RST BPDU中把proposal 置 1。


4.S2收到根桥发送来的携带proposal的RST BPDU,开始将自己的所有端口进入sync变量置位。


5. p2已经阻塞,状态不变;p4是边缘端口,不参与运算;所以只需要阻塞非边缘指定端口p3。


6.p2、p3、p4都进入Discarding状态之后,各端口的synced变量置位,根端口p1的synced也置位,于是便向S1返回Agreement位置位的回应RST BPDU。该RST BPDU携带和刚才根桥发过来的BPDU一样的信息,除了Agreement位置位之外(Proposal 位清零)。


7. 当S1判断出这是对刚刚发出的Proposal的回应,于是端口p0马上进入 Forwarding状态。


↑↑↑以上 P/A 过程可以向下游继续传递。


事实上对于 STP,指定端口的选择可以很快完成,主要的速度瓶颈在于:为了避免环路,必须等待足够长的时间,使全网的端口状态全部确定,也就是说必须要等待至少一个Forward Delay所有端口才能进行转发。而RSTP的主要目的就是消除这个瓶颈,通过阻塞自己的非根端口来保证不会出现环路。而使用P/A 机制加快了上游端口转到Forwarding状态的速度。


说明:P/A机制要求两台交换设备之间链路必须是点对点的全双工模式。一旦 P/A协商不成功,指定端口的选择就需要等待两个Forward Delay,协商过程与STP一样。


RSTP 拓扑变化处理:


在RSTP中检测拓扑是否发生变化只有一个标准:一个非边缘端口迁移到 Forwarding状态。一旦检测到拓扑发生变化,将进行如下处理:


为本交换设备的所有非边缘指定端口启动一个TC While Timer,该计时器值是 Hello Time的两倍。


在这个时间内,清空状态发生变化的端口上学习到的MAC地址。


同时,由这些端口向外发送RST BPDU,其中TC置位。一旦TC While Timer 超时,则停止发送RST BPDU。


其他交换设备接收到RST BPDU后,清空所有端口学习到MAC地址,除了收到RST BPDU的端口。然后也为自己所有的非边缘指定端口和根端口启动TC While Timer,重复上述过程。


如此,网络中就会产生RST BPDU的泛洪。


RSTP 与 STP 的互操作:


RSTP可以和STP互操作,但是此时会丧失快速收敛等 RSTP 优势。


当一个网段里既有运行STP的交换设备又有运行RSTP的交换设备,STP交换设备会忽略RSTBPDU。运行RSTP的交换设备在某端口上接收到运行STP 的交换设备发出的配置BPDU,在两个Hello Time 时间之后,便把自己的端口转换到STP工作模式,发送配置BPDU,从而实现了互操作。


在华为的数据通信设备上可以配置运行STP的交换设备被撤离网络后,运行 RSTP的交换设备可迁移回到RSTP工作模式。



 推荐阅读 :

>>>【独家首发】新版HCIE考试解读直播回顾

>>> 重磅!华为HCIE认证改版升级通知!

>>>【命令解析】Linux用户行为的常用命令

>>> 网工必备通信基础知识,还不知道你就out了?

>>>【必备干货】网工入门必会桥接教程,外网+GNS3+Vmware

>>>【技术指南】5分钟搞清楚OSPF链路状态路由协议


网工界市场认可度极高的华为认证,你考了吗?


拿下华为HCIE认证之后,你可以:

  • 跨越90%企业的招聘硬门槛

  • 增加70%就业机会

  • 拿下BAT全国TOP100大厂敲门砖

  • 体系化得到网络技术硬实力

  • 技术大佬年薪可达30w+


客服电话 15822722968 邮箱 799830458@qq.com 地址 天津市红桥区光荣道157号宝能创业中心2号楼-1、2门-907号
官方公众号
商务合作