RSTP原理与配置

1.快速生成树协议概述
(1)回顾:STP的工作原理

⦁    配置BPDU泛洪:
⦁    在初始形成STP树的过程中,所有STP交换机会周期性地(Hello Time,缺省为2s)主动产生并发送配置BPDU,大家都认为自己是根桥。
⦁    随着BPDU的泛洪和收集,各交换机根据BPDU包含的信息进行比较,并选举出根桥。
⦁    在此之后(即STP树形成后的稳定期),只有根桥会周期性地(缺省为2s)主动产生并发送配置BPDU。相应的,非根桥交换机会从自己的根端口周期性地接收到配置BPDU,并立即触发产生自己的配置BPDU,然后从自己的指定端口发出。——这一过程看起来就像是,根桥发出的配置BPDU逐跳地“经过”了其他的交换机。也可以理解为:从根桥倒一盆水下来,水顺着这棵无环的树从上往下不断地往下流。因此如图所示,可以理解为SW1与SW2间的链路是SW2的上游链路,SW2与SW3间的链路是SW2的下游链路。
⦁    报文格式:
⦁    配置BPDU携带的参数可以分为3类:
⦁    第一类,BPDU对自身的标识,包括:协议标识、协议版本号、BPDU类型和标志。
⦁    协议标识(Protocol ID,PID),2 Byte,总是0x000。
⦁    协议版本号(Protocol Version ID,PVI),1 Byte,总是0x00。
⦁    BPDU类型(BPDU Type),1 Byte,配置BPDU的类型值为0x00。
⦁    标志(Flag),1 Byte,网络拓扑变化标志,仅使用了最低位和最高位。

(2)回顾:STP树的生成过程

⦁    STP基本原理:
⦁    在一个具有物理环路的交换网络中,交换机通过运行STP,自动生成一个没有环路的工作拓扑,也被称为STP树。树节点为某些特定的交换机,树枝为某些特定的链路。
⦁    STP采用四个步骤来解决二层环路问题(生成一棵STP树):
⦁    在一个交换网络中选举一个根桥;在每个非根桥上选举一个根端口;为每个网段选举一个指定端口;阻塞交换机上所有剩余的非根、非指定端口(备用端口)。
⦁    如何生成STP树?
⦁    主要通过比较4个参数:根桥ID、根路径开销、网桥ID和端口ID,值越小,越优先。而这些参数,都是报文BPDU中的字段。
⦁    根桥选举:比较根桥ID,最小胜出。
⦁    根端口选举:依次比较RPC、对端BID、对端PID和本端PID,最小胜出。
⦁    指定端口选举:依次比较RPC、本端BID和本端PID,最小胜出。
⦁    在确定了根端口和指定端口之后,交换机上所有剩余的非根端口和非指定端口被阻塞。
⦁    在华为产品的实现中,被阻塞的非指定端口表现为Alternate Port。

(3)回顾:STP的端口状态迁移

⦁    根据端口是否接收和发送STP协议帧,以及端口是否能转发用户数据帧,STP定义了五种端口状态:Disabled、Blocking、Listening、Learning和Forwarding。
⦁    Disabled状态:端口无法接收和发出任何帧(即:端口不仅不处理BPDU报文,也不转发用户流量),端口处于关闭(down)状态。
⦁    Blocking状态:端口只能接收并处理BPDU,不能发送BPDU,也不能转发用户数据帧(用户流量),是阻塞端口的最终状态。
⦁    Listening状态:端口可以接收并发送BPDU,但不进行MAC地址学习,也不能转发用户数据帧。这是过渡状态,用于确定端口角色,将选举出根桥、根端口和指定端口,同时用于防止临时环路。
⦁    Learning状态:端口可以接收并发送BPDU,也可以进行MAC地址学习,根据收到的用户流量构建MAC地址表,但不能转发用户数据帧(用户流量)。这也是过渡状态,用于防止MAC地址表未建立,网络中出现大量数据帧泛洪。
⦁    Forwarding状态:端口可以接收并发送BPDU,也可以进行MAC地址学习,同时能够转发用户数据帧(用户流量)。只有根端口或指定端口才能进入Forwarding状态。
⦁    端口状态迁移:
⦁    STP交换机的端口在初始启动时,会从Disabled状态进入到Blocking状态。在Blocking状态,端口只接收和分析BPDU,但不发送。
⦁    在整个过程中,端口一但被关闭或发生了链路故障,就会进入Disabled状态。

(4)STP的不足

(5)STP对计时器的依赖

(6)STP重收敛过程慢

⦁    直连故障:
⦁    两台交换机间有两条链路,其中一条是主用链路,另一条为备用链路。
⦁    当网络稳定时,交换机SW2检测到根端口的链路发生故障,则被阻塞的端口会开始端口状态迁移,最终进入用户流量转发状态。
⦁    非直连故障:
⦁    当网络正常时,SW3的被阻塞端口会定期收到来自根桥的BPDU。
⦁    当SW1与SW2之间的链路发生故障时,SW2能够第一时间检测到故障发生,此时它认为自己成为新的根桥,于是向SW3发送自己的配置BPDU(根桥ID为自己的桥ID)。
⦁    SW3的被阻塞端口将收到上述配置BPDU,但该BPDU并不比当前端口所缓存的配置BPDU更优,因此SW3忽略该配置BPDU。
⦁    当Max Age计时器超时后,SW3端口上缓存的配置BPDU老化,SW3开始向SW2发送配置BPDU,该配置BPDU由根桥SW1发送的配置BPDU触发,其中的根桥ID字段值为SW1的桥ID。
⦁    SW2收到上述配置BPDU后,解析该报文并认定SW1为根桥,于是将其连接SW3的端口切换为根端口。

(7)STP拓扑变更机制

⦁    拓扑变更,STP处理过程:
⦁    当交换机检测到拓扑更改时,会通知生成树的根桥,然后根桥将该拓扑更改信息泛洪到整个网络。
⦁    拓扑变化过程,如图:
⦁    如果网络中新增一台交换机,导致工作拓扑发生了变化,则位于变化点的交换机可以通过端口状态直接感知到这种变化,但是其他的交换机是无法直接感知到的。
⦁    位于变化点的交换机会以Hello Time(缺省2s)为周期通过其根端口不断向上游发送TCN BPDU,直到接收到从上游交换机发来的、TCA位置1的配置BPDU。TCA位置1是为了通知下游设备停止发送TCN BPDU报文。
⦁    上游交换机收到TCN BPDU后,一方面会通过其指定端口回复TCA位置1的配置BPDU,另一方面会以Hello Time为周期通过其根端口不断向它的上游发送TCN BPDU。
⦁    这个过程一直重复,直到根桥收到TCN BPDU。
⦁    根桥收到TCN BPDU后,会发送TC位置1的配置BPDU,通告所有交换机网络拓扑发生了变化,通知下游设备直接删除桥MAC地址表项。

2.RSTP概述
(1)概述

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

(2)RSTP在园区网络中的应用位置

3.RSTP对STP的改进
(1)改进点1:端口角色

⦁    RSTP的端口角色共有4种:根端口、指定端口、Alternate端口和Backup端口。
⦁    根端口和指定端口的作用同STP中定义,Alternate端口和Backup端口的描述如下:
⦁    从配置BPDU报文发送角度来看:
⦁    Alternate端口就是由于学习到其它网桥发送的配置BPDU报文而阻塞的端口。
⦁    Backup端口就是由于学习到自己发送的配置BPDU报文而阻塞的端口。
⦁    从用户流量角度来看:
⦁    Alternate端口提供了从指定桥到根的另一条可切换路径,作为根端口的备份端口。
⦁    Backup端口作为指定端口的备份,提供了另一条从根桥到相应网段的备份通路。
⦁    给一个RSTP域内所有端口分配角色的过程就是整个拓扑收敛的过程。

(2)改进点2:端口状态

(3)改进点3:配置BPDU-RST BPDU

⦁    RST BPDU与STP配置BPDU报文格式不同点,包括:BPDU类型和Flag字段。
⦁    BPDU类型,1 Byte,RST BPDU的类型值为0x02。
⦁    标志,1 Byte,包括:
⦁    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,表示拓扑变化。

(4)改进点4:配置BPDU的处理(1)

(5)改进点4:配置BPDU的处理(2)

(6)改进点4:配置BPDU的处理(3)

⦁    STP:
⦁    STP只有指定端口会立即处理次优BPDU,其他端口会忽略次优BPDU,等到Max Age计时器超时后,缓存的次优BPDU才会老化,然后发送自身更优的BPDU,进行新一轮的拓扑收敛。
⦁    RSTP:
⦁    RSTP处理次优BPDU报文不再依赖于任何定时器(即不再依赖于BPDU老化)解决拓扑收敛,同时RSTP的任何端口角色都会处理次优BPDU,从而加快了拓扑收敛。

(7)改进点5:快速收敛机制(1)

(8)改进点5:快速收敛机制(2)

(9)改进点5:快速收敛机制(3)

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

(10)P/A机制详解(1)

(11)P/A机制详解(2)

⦁    SW2的下游端口同步过程:替代端口,状态不变;边缘端口,不参与计算;阻塞非边缘指定端口。

(12)P/A机制详解(3)

(13)改进点6:拓扑变更机制

⦁    在STP中,如果拓扑发生了变化,需要先向根桥传递TCN BPDU,再由根桥来通知拓扑变更,泛洪TC置位的配置BPDU。
⦁    在RSTP中,通过新的拓扑变更机制,TC置位的RST BPDU会快速的在网络中泛洪。
⦁    如上图所示:
⦁    SW3的根端口收不到从根桥发来的RST BPDU后,Alternate端口会快速切换为新的根端口,启动TC While Timer,并清空所有端口学习到的MAC地址。然后向外发出TC置位的RST BPDU。
⦁    SW2接收到RST BPDU后,会清空接收口以外所有端口学习到的MAC地址,同时开启计时器,并向外发送TC置位的RST BPDU。
⦁    最终,RST BPDU会在全网泛洪。

(14)改进点7:保护功能(1)

⦁    在交换设备上,通常将直接与用户终端(如PC机)或文件服务器等非交换设备相连的端口配置为边缘端口。
⦁    如上图所示:
⦁    SW3与某主机互联,并设置该互联端口为边缘端口。
⦁    后来该主机被恶意用户侵占,并伪造RST BPDU攻击SW3,因此边缘端口会收到RST BPDU,失去边缘端口特性,并进行生成树计算。
[SW3]
Jul 20 2022 20:39:44-08:00 SW3 %%01PHY/1/PHY(l)[3]:    Ethernet0/0/1: change status to up
Jul 20 2022 20:39:44-08:00 SW3 %%01MSTP/4/BPDU_PROTECTION(l)[4]:This edged-port Ethernet0/0/1 that enabled BPDU-Protection will be shutdown, because it received BPDU packet!
Jul 20 2022 20:39:45-08:00 SW3 %%01PHY/1/PHY(l)[5]:    Ethernet0/0/1: change status to down

(15)改进点7:保护功能(2)

⦁    由于维护人员的错误配置或网络中的恶意攻击,根桥有可能会收到优先级更高的RST BPDU,使得根桥失去根地位,从而引起网络拓扑结构的错误变动。这种拓扑变化,会导致原来应该通过高速链路的流量被牵引到低速链路上,造成网络拥塞。
⦁    如上图所示:
⦁    网络稳定时,SW1为根桥,向下游设备发送最优RST BPDU。
⦁    如果SW2被恶意用户侵占,例如恶意修改SW2的桥优先级,使得SW2的桥优先级优于SW1,此时SW2会主动发送自己的RST BPDU。
⦁    当SW1的指定端口收到该RST BPDU后,会重新进行生成树计算,而SW1也会失去根桥的地位,引起拓扑变动。

(16)改进点7:保护功能(3)

(17)改进点7:保护功能(4)

⦁    交换设备在接收到TC置位的RST BPDU报文后,会执行MAC地址表项的删除操作。如果有人伪造TC置位的RST BPDU报文恶意攻击交换设备时,交换设备短时间内会收到很多RST BPDU报文,频繁的删除操作会给设备造成很大的负担,给网络的稳定带来很大隐患。
⦁    如上图所示:
⦁    如果SW3被恶意用户侵占,伪造大量TC置位的RST BPDU并向外发送。SW2收到这些RST BPDU后,会频繁执行MAC地址表项的删除操作,形成巨大负担。

4.RSTP的工作过程
(1)RSTP拓扑收敛过程(1)

⦁    RSTP收敛与STP收敛过程类似。
⦁    网络初始化时,网络中所有的RSTP交换机都认为自己是“根桥”,并设置每个端口都为指定端口,发送RST BPDU。其中SW1的桥ID最优,最终会被选举为根桥。

(2)RSTP拓扑收敛过程(2)

⦁    每个认为自己是“根桥”的交换机生成一个RST BPDU报文来协商指定网段的端口状态,此RST BPDU报文Flag字段里面的Proposal位需要置位。
⦁    当一个端口收到RST BPDU报文时,此端口会比较收到的RST BPDU报文和本地的RST BPDU报文。如果本地的RST BPDU报文优于接收的RST BPDU报文,则端口会丢弃接收的RST BPDU报文,并发送Proposal置位的本地RST BPDU报文来回复对端设备。
⦁    如图,RSTP上游链路的设备互联端口收敛过程,以SW1与SW2为例。

(3)RSTP拓扑收敛过程(3)

5.RSTP的基本配置
(1)RSTP的基本配置命令(1)

(2)RSTP的基础配置命令(2)

⦁    配置接口路径开销:
⦁    dot1d-1998:指定路径开销值的计算方法是IEEE 802.1d-1998标准方法。使用IEEE 802.1d-1998标准方法时取值范围是1~65535。
⦁    dot1t:指定路径开销值的计算方法是IEEE 802.1t标准方法。使用IEEE 802.1t标准方法时取值范围是1~200,000,000。
⦁    legacy:指定路径开销值的计算方法是华为计算方法。使用华为计算方法时取值范围是1~200,000。

(3)RSTP的基础配置命令(3)

(4)RSTP的保护功能配置命令(1)

(5)RSTP的保护功能配置命令(2)

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

6.配置案例

在上述三台交换机上部署RSTP,以便消除网络中的二层环路。

通过配置实现:

将SW1指定为根桥,SW2为备份根桥。

与PC相连的端口不参与RSTP计算,将其设置为边缘端口。

配置根保护和BPDU保护功能,实现对设备或链路的保护。

配置如下:

开启rstp的功能

[czySW1]stp mode rstp 
[czySW1]stp enable
[czySW1]stp root primary

[czySW2]stp mode rstp
[czySW2]stp enable
[czySW2]stp root secondary

[czySW3]stp mode rstp
[czySW3]stp enable

SW3开启边缘端口

[czySW3-Ethernet0/0/1]stp edged-port enable

SW1开启根保护功能

[czySW1-GigabitEthernet0/0/1]stp root-protection
[czySW1-GigabitEthernet0/0/2]stp root-protection

SW3开启BPDU保护功能

[czySW3]stp bpdu-protection

7.总结

Discarding状态:不转发用户流量也不学习MAC地址
Learning状态:不转发用户流量但是学习MAC地址
Forwarding状:既转发用户流量又学习MAC地址

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

根保护(Root)保护:
对于启用根保护功能的指定端口,其端口角色只能保持为指定端口
一旦启用根保护功能的指定端口收到优先级更高的RST BPDU时,端口将进入Discarding状态,不再转发报文。
经过一段时间 (通常为两倍的Forward Delay),如果端口一直没有再收到优先级较高的RST BPDU,端口会自动恢复到正常的Forwarding大态
根保护功能确保了根桥的角色不会因为一些网络问题而改变。

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

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

MSTP
Forwarding: 包括根端口、指定端口、Master端口、域边缘端口
Learning: 包括根端口、指定端口、Master端门、域边缘端口
Discarding: 包括根端口、指定端口、Master端口、域边缘端口、Alternate端口、Backup端口

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值