RSTP介绍

发布时间:2023年12月22日

STP协议虽然能够解决环路问题,但是收敛速度慢,影响了用户通信质量。IEEE于2001年发布的802.1w标准定义了快速生成树协议RSTP(Rapid Spanning-Tree Protocol),RSTP在STP基础上进行了改进,实现了网络拓扑快速收敛。

RSTP相关概念

RSTP端口角色

如图所示,RSTP的端口角色共有4种:根端口、指定端口、Alternate端口和Backup端口,与STP相比,新增加了Backup和Alternate 2种端口角色。

?角色

描述

Backup

Backup端口作为指定端口的备份,提供了另外一条从根桥到非根桥的备份链路。

Alternate

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

RSTP选举原理和STP类似:选举根交换机-选举非根交换机上的根端口-选举指定端口-选举预备端口和备份端口。

端口状态

不同于STP的5种端口状态,RSTP将端口状态缩减为3种。

STP

RSTP

端口角色

数据转发情况

Disabled

Discarding

Disable

不转发用户流量也不学习MAC地址

Blocking

Discarding

Alternate端口

Backup端口

Listening

Discarding

根端口

指定端口

Learning

Learning

根端口

指定端口

不转发用户流量,但是学习MAC地址

Forwarding

Forwarding

根端口

指定端口

既转发用户流量又学习MAC地址

RST BPDU

除了部分参数不同,RST??BPDU报文和STP的BPDU报文类似。

1. BPDU Type用来区分STP的BPDU报文和RST BPDU报文。

  • STP的配置BPDU报文的BPDU Type值为0(0x00)。

  • TCN BPDU报文的BPDU Type值为128 (0x80)。

  • RST BPDU报文的BPDU Type值为2 (0x02)。

2. Flags字段,使用了原来保留的中间6位

  • STP的BPDU报文的Flags字段中只定义了拓扑变化TC标志和拓扑变化确认TCA标志,其他字段保留。

  • 在RST BPDU报文的Flags字段里,除了TC和TCA,还使用了其他字段。包括P/A进程字段和定义端口角色以及端口状态的字段。

3. 发送BPDU的方式不同

  • STP中,当网络拓扑稳定后,根桥按照Hello Timer规定的时间间隔发送配置BPDU报文,非根桥设备只有在收到上游设备发来的配置BPDU报文后,才会触发发出配置BPDU报文。

  • RSTP种,当网络拓扑稳定后,无论非根桥设备是否接收到根桥传来的配置BPDU报文,都会按照Hello Timer规定的时间间隔发送配置BPDU。

RSTP对STP的改进

RSTP主要在以下五个场景对STP进行了优化

场景一初始状态收敛

STP从初始状态到完全收敛至少需经过30s:

事实上对于STP,指定端口的选择可以很快完成,主要的速度瓶颈在于:为了避免环路,必须等待足够长的时间,使全网的端口状态全部确定后,所有端口才能进行转发。

RSTP改进:P/A机制?

RSTP在选举的过程中加入了“发起请求-回复同意”(P/A机制)确认机制,P/A机制要求两台交换设备之间链路必须是点对点的全双工模式,其目的是使一个指定端口尽快进入Forwarding状态。

SW1和SW2之间新添加了一条新链路,链路模式为点对点全双工,P/A机制协商过程如下:

  1. 交换机SWA和SWB都发送Proposal置位的BPDU,并把发送P消息的端口变成DP口,同时接口处在Discarding状态。

  2. SWA和SWB根据收到的对端BPDU参数,选举端口角色,由于SWA的优先级高,选举结果为SWA的P0口为DP,SWB的P1口为RP。

  3. SWB开始进行端口状态同步,将交换机上除边缘端口外的所有端口全部置为Discarding状态,以保证RP端口进入Forwarding时没有环路存在。

  4. SWB完成同步后,P1端口状态可安全进入Forwarding并通告Agreement置位的BPDU报文给SWA。

  5. SWA上的P0端口收到Agreement置位的BPDU后,状态立即变为Forwarding。

  6. SWB继续向已经同步为DP/Discarding端口发送Proposal置位的BPDU,在下游各设备间继续进行新的P/A协商过程,直至计算到网络边缘。

场景二:根端口切换

STP为了确保拓扑变化信息已经扩散到全网,且所有设备都已完成拓扑更新,新的根端口需等待计时器超时后才能进入转发。

如下图所示,SWC与SWA的直连链路down掉,其BP端口切换成RP端口并进入转发状态至少需要经过30s。

RSTP改进:根端口快速切换机制

设备上旧的根端口失效后,新的根端口需在保证无环的情况下才可以迁移到Forwarding状态。RSTP新增加AP端口角色,在AP端口选举的时候就考虑到该需求,故可立即进入转发状态

如下图所示,SWC与SWA的直连链路down掉,其AP端口切换成RP端口并进入转发状态可在秒级时间内完成收敛。

场景三:次优BPDU处理

在STP中,交换机除指定端口外的其他端口收到次优BPDU都不会做处理。

如下图所示,SWB与SWA的直连链路down掉,则SWC的BP端口切换成DP端口并进入转发状态大约需要50s。

RSTP改进:次优BPDU处理机制

RSTP处理次优BPDU报文不再依赖于任何定时器,会立即发送本地最优的BPDU给对端,从而加快了拓扑收敛。

如下图所示,SWB与SWA的直连链路down掉,SWC的AP端口切换成DP端口并进入转发状态可在秒级时间内完成。

?

场景四:运行STP的交换机连接用户终端

如图所示,运行STP的交换机连接终端的端口需要经过30才能进入转发状态。

RSTP改进:边缘端口的引入

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

边缘端口不参与RSTP运算,可以由Disable直接转到Forwarding状态,且不经历时延。但是一旦边缘端口收到配置BPDU,就丧失了边缘端口属性,成为普通STP端口,并重新进行生成树计算。

如下图所示,在交换机连接终端的端口设置为边缘端口,链路UP后端口可立即进入转发状态。

场景五:拓扑变更机制

运行STP协议时,当网络拓扑变更后,需先由变更点朝根桥方向发送TCN消息,收到该消息的上游交换机就会回复TCA消息进行确认;最后TCN消息到达根桥后,再由根桥发送TC消息通知设备删除桥MAC地址表项,机制复杂,效率低下。

RSTP改进:拓扑变更机制的优化

RSTP在网络发生拓扑变化时,变更点交换机直接向全网发送TC置位的BPDU报文,而不是先通知到根桥,然后由根桥向全网发送TC报文,这样在一定程度上节省了收敛时间。

一旦检测到拓扑发生变化,将进行如下处理:

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

  2. 在这个时间内,清空状态发生变化的端口上学习到的MAC地址。同时,由这些端口向外发送RST BPDU,其中TC置位。一旦TC While Timer超时,则停止发送RST BPDU。

  3. 其他交换设备接收到RST BPDU后,清空除收到RST BPDU的端口外所有端口学习到MAC地址(边缘端口除外)。然后也为自己所有的非边缘指定端口和根端口启动TC While Timer,向外发送TC置位的RST BPDU。

  4. 重复上述过程,直至全网感知到该网络拓扑变化。

如下图所示,当SWB的E1端口出现故障时,RSTP的处理过程如下:

  1. SWB删除MAC地址表中E1端口所对应的表项

  2. SWB重新计算生成树,选举E2为新的根端口。

  3. 开启TC While?计时器,由SWB的E2口向外发送TC置位的RST BPDU,TC While Timer超时后,停止发送RST BPDU。

  4. SWC交换设备接收到TC置位的BPDU后,会清空E1口学习到的MAC地址

  5. 开启TC While计时器,由SWC的E1口向外发送TC置位的RST BPDU,TC While Timer超时后,停止发送RST BPDU。

  6. SWA交换设备接收到TC置位的BPDU后,会清空E1口学习到的MAC地址,RSTP拓扑收敛完成。

注意:

边缘端口down掉不会触发拓扑变更,故障恢复后也不会触发拓扑变更。

RSTP保护的保护功能

BPDU保护?

如图所示,有人伪造RST BPDU恶意攻击交换设备,当边缘端口接收到该报文时,会自动设置为非边缘端口,并重新进行生成树计算,引起网络震荡。

RSTP可以通过BPDU保护功能来规避此问题发生。交换机上启动了BPDU保护功能后,如果边缘端口收到RST BPDU,边缘端口将被error-down,边缘端口属性不变,同时通知网管系统,可有效的防止网络震荡?。

根保护?

如图所示,由于维护人员的错误配置或网络中的恶意攻击,网络中合法根桥有可能会收到优先级更高的RST BPDU,使得合法根桥失去根地位,从而引起网络拓扑结构的错误变动。这种不合法的拓扑变化,会导致原来应该通过高速链路的流量被牵引到低速链路上,造成网络拥塞。

此时可以在SWC连接SWD的端口上,配置根保护。对于启用Root保护功能的指定端口,其端口角色只能保持为指定端口。一旦启用Root保护功能的指定端口收到优先级更高的RST BPDU时,端口状态将进入Discarding状态,不再转发报文。在经过一段时间(通常为两倍的Forward Delay),如果端口一直没有再收到优先级较高的RST BPDU,端口会自动恢复到正常的Forwarding状态。

TC-BPDU泛洪保护

交换设备在接收到TC BPDU报文后,会执行MAC地址表项和ARP表项的删除操作。如果有人伪造TC BPDU报文恶意攻击交换设备时,交换设备短时间内会收到很多TC BPDU报文,频繁的删除操作会给设备造成很大的负担,给网络的稳定带来很大隐患。

启用防TC-BPDU报文攻击功能后,在单位时间内,交换设备处理TC BPDU报文的次数可配置。如果在单位时间内,交换设备在收到TC BPDU报文数量大于配置的阈值,那么设备只会处理阈值指定的次数。对于其他超出阈值的TC BPDU报文,定时器到期后设备只对其统一处理一次。这样可以避免频繁的删除MAC地址表项和ARP表项,从而达到保护设备的目的。

STP兼容

RSTP可以和STP互相兼容,当同一个网段里既有运行STP的交换机又有运行RSTP的交换机时,STP交换机会忽略接收到的RST BPDU,而RSTP交换机在某端口上接收到STP BPDU时,会等待两个Hello Time时间之后,把自己的端口转换到STP工作模式,此后便发送STP BPDU,这样就实现了兼容性操作。

在这种STP和RSTP混合使用的场景中,RSTP会失去其快速收敛的优势,而STP慢速收敛的缺点会暴露出来,所以不推荐使用这种做法。

RSTP配置案例

如图所示,SWA、SWB和SWC组成了一个环形的交换网络,为了消除环路对网络的影响,故使交换机都运行RSTP,最终将环形网络结构修剪成无环路的树形网络结构。

操作步骤

SWA配置:

[SwitchA] stp enable

[SwitchA]?stp mode rstp

[SwitchA]?stp root primary

SWB配置:

[SwitchB]?stp enable

[SwitchB]?stp mode rstp

[SwitchB]?stp bpdu-protection

[SwitchB]?interface GigabitEthernet0/0/4

[SwitchB-GigabitEthernet0/0/4]??stp edged-port enable

SWC配置:

[SwitchC]??stp enable

[SwitchC]??stp mode rstp

[SwitchC]??stp bpdu-protection

[SwitchC]??interface GigabitEthernet0/0/4

[SwitchC-GigabitEthernet0/0/4]?stp edged-port enable

验证配置结果

在SWA上查看生成树信息:

在SWB上查看生成树信息:

在SWC上查看生成树信息:

文章来源:https://blog.csdn.net/qq_32044265/article/details/125656277
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。