2022-08-13 网工进阶(二十五) RSTP进阶知识-RSTP对STP的改进、拓扑收敛过程

RSTP基础知识

详见

2021-12-21 网工基础(十三) STP的选举规则、STP的接口状态、边缘端口、生成树版本的进化、链路聚合技术原理与配置_鹅一只的博客-CSDN博客_stp选举规则

RSTP对STP的改进

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

端口状态的重新划分;

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

配置BPDU的处理发生变化;

快速收敛; 增加保护功能。

PS:RSTP可以兼容STP:但是此时会丧失快速收敛等RSTP优势。当一个网段里既有运行STP的交换设备又有运行RSTP的交换设备,STP交换设备会忽略RSTP的BPDU。运行RSTP的交换设备在某端口上接收到运行STP的交换设备发出的配置BPDU,在两个Hello Time时间之后,便把自己的端口转换到STP工作模式,发送配置BPDU,从而实现了互操作。在华为的设备上可以配置运行STP的交换设备被撤离网络后,运行RSTP的交换设备可迁移回到RSTP工作模式。

改进点1:端口角色

RSTP的端口角色共有4种:RP-根端口、DP-指定端口、AP-Alternate端口DP-Backup端口

从配置BPDU报文发送角度来看: Alternate端口就是由于学习到其它网桥发送的配置BPDU报文而阻塞的端口。 Backup端口就是由于学习到自己发送的配置BPDU报文而阻塞的端口。

从用户流量角度来看: Alternate端口提供了从指定桥到根的另一条可切换路径,作为根端口的备份端口Backup端口作为指定端口的备份,提供了另一条从根桥到相应网段的备份通路。

改进点2:端口状态

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

Discarding状态:不转发用户流量也不学习MAC地址;

Learning状态:不转发用户流量但是学习MAC地址;

Forwarding状:既转发用户流量又学习MAC地址。

对比stp的端口状态

STP端口状态

RSTP端口状态

端口在拓扑中的角色

Forwarding

Forwarding

包括根端口、指定端口

Learning

Learning

包括根端口、指定端口

Listening

Discarding

包括根端口、指定端口

Blocking

Discarding

包括Alternate端口、Backup端口

Disabled

Discarding

包括Disable端口

改进点3:配置BPDU - RST BPDU

除了保证和STP格式基本一致之外,RSTP作了如下变化:

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

Flag字段:使用了原来保留的中间6位,这样改变的配置BPDU叫做RST BPDU。

bit 7:TCA,表示拓扑变化确认;

bit 6:Agreement,表示同意,用于P/A机制;

bit 5:Forwarding,表示转发状态;

bit 4:Learning,表示学习状态;

bit 3和bit 2:表示端口角色,00表示未知端口,01表示替代或备份端口,10表示根端口,11表示指定端口;

bit 1:Proposal,表示提议,用于P/A机制;

bit 0:TC,表示拓扑变化。

抓包观察

1 BPDU类型:0x02 RST BPDU

2 Flag字段

3 拓扑变化确认位:否

4 Agreement:是,用于P/A机制

5 转发状态:是

6 学习状态:是

7 端口角色:3 代表二级制 11 ,指定端口

8 Proposal:否,用于P/A机制

9 拓扑变化位:否

分析:其中,3 拓扑变化确认位与9 拓扑变化位是STP中也存在的。4 Agreement与8 Proposal是用于使上游设备快速进入转发的P/A机制的情况,另外RST BPDU相比配置BPDU还多了5 转发状态、6 学习状态、7 端口角色等更多详细描述。

改进点4:配置BPDU的处理

1 RSTP对配置BPDU的发送方式进行了改进。

RSTP非根桥也会按照hello间隔时间发送BPDU。STP只有根桥发送配置BPDU。

2 更短的BPDU超时时间

RSTP失效时间改为 Hello 时间的3倍,即缺省值6秒。STP失效时间为Max Age,缺省值20秒。

3 处理次优BPDU

RSTP的任何端口角色都会处理次优BPDU,从而加快了拓扑收敛。STP只有指定端口会立即处理次优BPDU。

改进点5:快速收敛机制

端口快速切换

如果网络中一个根端口失效,那么网络中最优的Alternate端口将成为根端口,进入Forwarding状态。因为通过这个Alternate端口连接的网段上必然有个指定端口可以通往根桥。

如果网络中一指定端口失效,那么网络中最优的Backup端口将成为指定端口,进入Forwarding状态。因为Backup端口作为指定端口的备份,提供了另一条从根桥到相应网段的备份通路。

边缘端口 (Edge Port)

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

边缘端口不参与RSTP计算,可以由Discarding直接进入Forwarding状态。

但是一旦边缘端口收到配置BPDU,就丧失了边缘端口属性,成为普通STP端口,并重新进行生成树计算,从而引起网络震荡。可以通过BPDU保护机制防止这个问题

相关命令

配置全局边缘端口

[SW1]stp edged-port default 

配置接口为边缘端口

[SW1-GigabitEthernet0/0/1]stp edged-port enable 

开启BPDU保护

[SW1]stp bpdu-protection 

BPDU报文过滤功能

配置为边缘端口后,端口仍然会发送BPDU报文,这可能导致BPDU报文发送到其他网络,引起其他网络产生震荡。因此可以配置边缘端口的BPDU报文过滤功能,使边缘端口不处理、不发送BPDU报文。

注意:

在全局模式下配置边缘端口和BPDU报文过滤功能后,设备上所有的端口不会主动发送BPDU报文,且均不会主动与对端设备直连端口协商,所有端口均处于转发状态。这将可能导致网络成环,引起广播风暴。

在端口模式下配置边缘端口和BPDU报文过滤功能后,端口将不处理、不发送BPDU报文。该端口将无法成功与对端设备直连端口协商STP协议状态。
 

相关命令

在全局下配置BPDU报文过滤功能

[SW1]stp bpdu-filter default 

在接口下配置BPDU报文过滤功能

[SW1-GigabitEthernet0/0/1]stp bpdu-filter ?
  disable  Disable port's BPDU filter function
  enable   Enable port's BPDU filter function

Proposal/Agreement机制

简称P/A机制。

RSTP通过P/A机制加快了上游端口进入Forwarding状态的速度。

在RSTP中,当一个端口被选举成为指定端口之后,会先进入Discarding状态,再通过P/A机制快速进入Forwarding状态。具体过程如下:

1 新增链路时,交换机之间的直连接口先进入指定DP端口状态,并且互发RST BPDU。 

2 下游交换机的接口改变为RP根端口,并且停止发送RST BPDU。上游交换机的DP端口进入Discarding状态,并且发送Proposal位置位的RST BPDU。

3 下游交换机收到Proposal位置位的RST BPDU后,所有接口进入同步状态,同步完成后,RP根端口进入Forwarding状态并发送Agreement位置位的回应RST BPDU给上游交换机的DP端口。并且下游交换机的下游接口除了边缘端口外都进入Discarding状态。

4 上游交换机收到Agreement位置位的回应RST BPDU后进入Forwarding状态。下游交换机的和它的下游设备继续执行P/A协商过程。

改进点6:拓扑变更机制

在RSTP中,通过新的拓扑变更机制,TC置位的RST BPDU会快速的在网络中泛洪。

1 链路发送故障时,交换机会启动一个计时器While Timer,While Timer的时长为Hello Time的两倍。在While Timer中,除了边缘端口以外的RP端口和AP端口会清空学习到的MCA地址并且发送TC置位的RST BPDU给其他交换机,当While Timer计时结束时,停止发送RST BPDU。

2 其他交换设备接收到RST BPDU后,清空所有除了收到RST BPDU的端口和边缘端口学习到MAC地址,然后也启动一个计时器While Tim er,重复上述过程。

改进点7:保护功能

BPDU保护

正常情况下,边缘端口不会收到RST BPDU。如果有人伪造RST BPDU恶意攻击交换设备,当边缘端口接收到RST BPDU时,交换设备会自动将边缘端口设置为非边缘端口,并重新进行生成树计算,从而引起网络震荡。

交换设备上启动了BPDU保护功能后,如果边缘端口收到RST BPDU,边缘端口将被error-down,但是边缘端口属性不变,同时通知网管系统。

相关命令在上述边缘端口描述中。

根保护(Root保护)

对于启用根保护功能的指定端口,其端口角色只能保持为指定端口。

一旦启用根保护功能的指定端口收到优先级更高的RST BPDU时,端口将进入Discarding状态,不再转发报文。经过一段时间(通常为两倍的Forward Delay),如果端口一直没有再收到优先级较高的RST BPDU,端口会自动恢复到正常的Forwarding状态。

根保护功能确保了根桥的角色不会因为一些网络问题而改变。

相关命令

开启根保护

[SW1-GigabitEthernet0/0/1]stp root-protection 

环路保护

在启动了环路保护功能后,如果根端口Alternate端口长时间收不到来自上游设备的BPDU报文时,则向网管发出通知信息(此时根端口会进入Discarding状态,角色切换为指定端口),而Alternate端口则会一直保持在Discarding状态(角色也会切换为指定端口),不转发报文,从而不会在网络中形成环路。

直到链路不再拥塞或单向链路故障恢复,端口重新收到BPDU报文进行协商,并恢复到链路拥塞或者单向链路故障前的角色和状态。

相关命令

开启环路保护

[SW1-GigabitEthernet0/0/1]stp loop-protection 

防TC-BPDU攻击

启用防TC-BPDU报文攻击功能后,在单位时间内,交换设备处理TC BPDU报文的次数可配置。

如果在单位时间内,交换设备在收到TC BPDU报文数量大于配置的阈值,那么设备只会处理阈值指定的次数。

对于其他超出阈值的TC BPDU报文,定时器到期后设备只对其统一处理一次。这样可以避免频繁的删除MAC地址表项,从而达到保护设备的目的。

单位时间的取值的等于Hello Time。

相关命令

配置单位时间内交换设备处理TC BPDU报文的次数

[SW1]stp tc-protection threshold ?
  INTEGER<1-255>  The threshold of TC-BPDU protection, default is 1

RSTP拓扑收敛过程

网络初始化时,网络中所有的RSTP交换机都认为自己是“根桥”。通过P/A机制进行协商。关于P/A机制部分详见上述。               

猜你喜欢

转载自blog.csdn.net/x629242/article/details/126318566