Bootstrap

【网络协议详解】——RSTP技术(学习笔记)

为什么需要RSTP

目录

为什么需要RSTP

RSTP的端口角色和端口状态

RSTP的端口角色

RSTP的端口状态

  RSTP的 BPDU发送方式

快速收敛机制

根端口快速切换机制

​编辑边缘端口

Proposal/Agreement机制

保护功能

BPDU保护

根保护

环路保护

防TC-BPDU攻击

RSTP与STP的兼容性

STP/RSTP缺省配置

实验任务:


我们前面介绍过,随着局域网规模的不断增长,STP拓扑收敛速度慢的问题逐渐凸显,因此,IEEE在2001年发布了802.1w标准,基于STP协议,定义了RSTP(Rapid Spanning Tree Protocol)。

因此,针对STP的以上不足,RSTP所做的改进有:

1.新增了2种端口角色,删除了3种端口状态,并将端口状态和端口角色解耦。而且在配置BPDU的格式中,充分利用Flag字段,明确了端口角色。

2.配置BPDU的处理方式发生了变化拓扑稳定后,对于非根桥设备,无论是否收到根桥传来的配置BPDU报文,都会自主地按照Hello Timer规定的时间间隔发送配置BPDU。

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

3.当一个端口收到上游的指定桥发来的RST BPDU报文时,该端口会将其与自身存储的RST BPDU进行比较。如果该端口存储的RSTPBPDU的优先级较高,则直接丢弃收到的RST BPDU,并立即向上游设备回应自身存储的RST BPDU。当上游设备收到回应的RST BPDU后,会根据其中相应的字段立即更新自己存储的RST BPDU。由此,RSTP处理次等BPDU报文不再依赖于任何定时器通过超时解决拓扑收敛,从而加快了拓扑收敛。

4.引入快速收敛机制,包括Proposal/Agreement机制、根端口快速切换机制、新增边缘端口。

5.引入多种保护功能,包括BPDU保护、根保护、环路保护、防TC-BPDU攻击。

我们接下来以此介绍:

RSTP的端口角色和端口状态

RSTP的端口角色

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

RSTP中根端口、指定端口的作用与STP协议中定义的根端口、指定端口的作用相同,Alternate端口和Backup端口如表1所示。

表1 Alternate端口和Backup端口

分类

Alternate端口

Backup端口

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

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

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

从用户流量角度来看

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

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

RSTP的端口状态

不同于STP的5种端口状态,RSTP将端口状态缩减为3种。根据端口是否转发用户流量和学习MAC地址,端口状态可分为:

Discarding:端口既不转发用户流量也不学习MAC地址;

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

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

  RSTP BPDU发送方式

STP中,通常情况下只有根桥从指定接口发送配置BPDU报文,非根桥从根端口收配置BPDU报文并更新。而RSTPBPDU的发送方式进行了改变,RSTP中网桥可以自行从指定端口发送发送RSTPBPDU,不需等待根桥发送过来的BPDU,发送周期为Hello Time。这样为网桥之间提供了一种保活机制,即在一定时间内,网桥没有收到对端发送过来的RSTBPDU,即可认为和对端网络的连接中断。

RSTP规定,在3个连续的Hello Time时间内网桥没有收到对端指定桥发送的RSTBPDU,则该端口保存的RST BPDU老化,认为与对端网桥连接中断。

STP中,只有指定端口收到低优先级的配置BPDU时才会立即回复,而RSTP中,当收到低优先级的RST BPDU时的Alternate端口也会对其立即回复。

快速收敛机制

根端口快速切换机制

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

如图所示,S1为根桥,S2为备份根桥,S3的GE0/0/2为Alternate端口。S3的根端口GE0/0/1接口故障:

STP模式时,S3的GE0/0/2会先切换成根端口并进入Listening状态,等待一个Forward Delay时间(缺省值为15秒)后进入Learning状态,继续等待一个Forward Delay时间(缺省值为15秒)后才进入Forwarding状态。

RSTP模式时,S3的GE0/0/2会切换成根端口,并直接进入Forwarding状态。

比较STP模式时接口需要等待2*Forward Delay时间才能进入Forwarding状态,RSTP模式时的根端口快速切换机制使接口直接切换成Forwarding状态,减少业务流量丢包。

边缘端口

作用:为了节省端口从初始启动到转发状态的时间间隔。

特点:

默认不参与生成树计算,不用经历转发延迟;

边缘端口的关闭或激活并不会触发RSTP拓扑变更。

边缘端口不参与RSTP运算但是一旦边缘端口收到配置BPDU,就丧失了边缘端口属性,成为普通STP端口,并重新进行生成树计算,从而引起网络震荡。

Proposal/Agreement机制

Proposal/Agreement机制简称P/A机制,其目的是使一个指定端口尽快进入Forwarding状态。如图1所示,根桥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进入Dscarding状态,于是发送的RST BPDU中把Proposal和Agreement置1。

4.S2收到根桥发送来的携带Proposal的RST BPDU,开始将自己的所有端口进入sync变量置位(即同步变量:临时阻塞除边缘端口外的其他端口)。

5.p2已经阻塞,状态不变;p4是边缘端口,不参与运算;所以只需要阻塞非边缘指定端口p3。各端口的sync变量置位后,p2、p3进入Discarding状态,p1进入Forwarding状态并向S1返回Agreement位置位的回应RST BPDU。

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

下游设备继续执行P/A协商过程。

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

保护功能

BPDU保护

在RSTP网络中,正常情况下,边缘端口不会收到RST BPDU,启用了BPDU保护功能后,如果有人伪造RST BPDU恶意攻击交换机,边缘端口将被Error-Down。

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

保护功能配置命令:

执行命令stp bpdu-protection,配置交换设备边缘端口的BPDU保护功能。
缺省情况下,交换设备的BPDU保护功能处于禁用状态。
如果用户希望被error-down的边缘端口可自动恢复,
可通过配置使能端口自动恢复功能,并设置延迟时间,
即在系统视图下执行命令
error-down auto-recovery cause bpdu-protection interval interval-value,
使能端口自动恢复为Up的功能,
并设置端口自动恢复为Up的延时时间。
使被关闭的端口经过延时时间后能够自动恢复。

根保护

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

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

保护功能配置命令:

执行命令interface interface-type interface-number,
进入参与生成树协议计算的接口视图。
执行命令stp root-protection,配置交换设备的Root保护功能。
缺省情况下,端口的Root保护功能处于去使能状态。
当端口的角色是指定端口时,配置的Root保护功能才生效。
Root保护功能一般只在根桥的端口上配置。
配置了Root保护的端口,不可以配置环路保护

环路保护

在运行RSTP协议的网络中,根端口和其他阻塞端口状态是依靠不断接收来自上游交换设备的RST BPDU维持。当由于链路拥塞或者单向链路故障导致这些端口收不到来自上游交换设备的RST BPDU时,此时交换设备会重新选择根端口。原先的根端口会转变为指定端口,而原先的阻塞端口会迁移到转发状态,从而造成交换网络中可能产生环路。

在启动了环路保护功能后,如果根端口或Alternate端口长时间收不到来自上游设备的BPDU报文时,则向网管发出通知信息(此时根端口会进入Discarding状态,角色切换为指定端口),而Alternate端口则会一直保持在阻塞状态(角色也会切换为指定端口),不转发报文,从而不会在网络中形成环路。直到链路不再拥塞或单向链路故障恢复,端口重新收到BPDU报文进行协商,并恢复到链路拥塞或者单向链路故障前的角色和状态。

保护功能配置命令:

执行命令interface interface-type interface-number,
进入参与生成树协议计算的接口视图。
执行命令stp loop-protection,
配置交换设备根端口或Alternate端口的环路保护功能。

防TC-BPDU攻击

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

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

保护功能配置命令:

配置后,在stp tc-protection interval指定的时间内,
设备只会处理stp tc-protection threshold指定数量的拓扑变化报文,
对于其他的报文会延迟处理,所以可能会影响生成树的收敛速度。
例如,时间设定为10秒,阈值设定为5,则设备收到拓扑变化报文后,
在10秒内只会处理最开始收到的5个拓扑变化报文,
对于后面收到的报文则会等10秒超时后再统一处理。

RSTP与STP的兼容性

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

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

在华为技术有限公司的数据通信设备上可以配置运行STP的交换设备被撤离网络后,运行RSTP的交换设备上与之相连的端口可迁移回到原来的RSTP工作模式。

STP/RSTP缺省配置

参数

缺省值

生成树协议工作模式

MSTP模式

STP/RSTP功能

全局和端口的STP/RSTP功能均使能。

交换设备的优先级

32768

端口的优先级

128

路径开销的计算方法

Dot1t,即IEEE 802.1t标准

Forward Delay Time

1500厘秒(15秒)

Hello Time

200厘秒(2秒)

Max Age Time

2000厘秒(20秒)

实验任务:

l

采用以下思路配置RSTP功能:

处于环形网络中的交换设备上配置RSTP基本功能,包括:

1.配置环网中的设备生成树协议工作在RSTP模式。

2.配置根桥和备份根桥设备。

3.配置端口的路径开销值,实现将该端口阻塞。

4.使能RSTP,实现破除环路。与PC相连的端口不用参与RSTP计算,将其设置为边缘端口。

5.配置保护功能,实现对设备或链路的保护。例如:在根桥设备的指定端口配置根保护功能。

SwitchA的配置文件:

#
sysname SwitchA                 
#                                
stp mode rstp                   
stp instance 0 root primary     
#                                
interface GigabitEthernet0/0/1  
 stp root-protection             
#                                
interface GigabitEthernet0/0/2  
 stp root-protection             
#
return

SwitchB的配置文件:

#                                
sysname SwitchB               
#                                
stp mode rstp                   
stp bpdu-protection
#                             
interface GigabitEthernet0/0/2        
 stp edged-port enable
#                                
return   

SwitchC的配置文件:

#                                
sysname SwitchC                                   
#                                
stp mode rstp                   
stp bpdu-protection
#                                
interface GigabitEthernet0/0/1       
 stp instance 0 cost 20000       
#                                
interface GigabitEthernet0/0/2        
 stp edged-port enable
#                                
return  

SwitchD的配置文件:

#                                
sysname SwitchD                        
#                                
stp mode rstp                   
stp instance 0 root secondary   
#                                
return

;