RSTP 快速生成树协议
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
RSTP 快速生成树协议
本文主要介绍RSTP协议,STP相关的算法和细节在本文中不再涉及。虽然这种分割的做法不利于产生全局的观念,但通过对RSTP改进点的详细介绍,将会使你对该协议有一个更深刻的认识。
继IEEE 802.1D定义了STP标准后,IEEE又推出了802.1w这个草案作为802.1D的补充,并定义了RSTP标准。在新版本的802.1D(2004)中已经接纳了RSTP标准,取代了原来的STP。
RSTP保留了STP的大部分算法和计时器,只在一些细节上做了改进。但这些改进相当关键,极大的提升了STP的性能,使其能满足如今低延时高可靠性的网络要求。后续诞生的MSTP,单个实例中的算法和RSTP几乎一模一样。可以说从STP发展到RSTP的这套算法,是整个生成树协议的精髓。
1RSTP的改进
1.1BPDU的变化
图1 RSTP/STP BPDU的区别
RSTP的BPDU被称作RST BPDU①,和STP Config BPDU的主要区别在协议版本号,BPDU类型和Flags字段。RSTP中没有了TCN和TCA报文,在拓扑结构变化时只发送TC报文。对拓扑结构变化的详细描述请参考1.5。
2 STP的Flags字段
TCA=Topology Change Acknowledgement
TC = Topology Change
Port role =00 Unknown
01 Alternate / Backup
10 Root
11 Designated
图3 RSTP的Flags字段
RSTP的Flags字段增加了端口属性和状态,Bit1和Bit6两个字段在1.4中会提及,用于点到点链路端口的快速迁移。常见的几种Flags需要记住,2c(Forwarding,Designated),
0e(Designated,Proposal),6c(Agreement,Forwarding,Designated),
2d(Forwarding,Designated,TC)。
运行STP的设备会丢弃收到的RST BPDU,目前RSTP交换机都提供STP兼容模式,运行在STP兼容模式的端口会发送和接收Config BPDU,表现的特性也和STP类似。
1.2端口角色的变化
RSTP对STP的端口角色进行了细分,增加了几种端口:Alternate Port,Backup Port,Edge Port。
Alternate Port是交换机根端口的备份,当根端口发生故障时,它可以迅速替代成为新的根端口并进入Forwarding状态。
Backup Port是被本交换机端口抑制的端口,虽然它名为Backup,却无法起到真正的备份作用。指定端口Down掉以后,Backup Port并不能马上变成新的指定端口并Forwarding。
Edge Port是管理员根据实际需要配置的一种指定端口,用以连接PC或不需要运行STP
的下游交换机。管理员需要保证该端口下游不存在环路,Edge Port能够直接进入Forwarding状态。实际应用中为了避免有人恶意攻击,需要开启BPDU Guard功能,一旦收到BPDU,端口被自动shut down,需要管理员手动恢复。
图4 RSTP各端口角色
1.3端口状态的变化
原STP的几种阻塞状态,在表现上没有任何区别,RSTP中做了改进,只保留了三种端口状态。
STP Port State RSTP Port State
Disabled Discarding
Blocking Discarding
Listening Discarding
Learning Learning
Forwarding Forwarding
表1 STP和RSTP的端口角色
注:Learning状态不转发流量,只学习MAC。
1.4端口快速迁移
STP中任何最终能进入Forwarding状态的端口都至少需要经过2×Forwarding Time才能转发流量。这种保守的设计可以保证不产生环路,但显然不够聪明,RSTP对此做了一系列改进。
1.4.1根端口的快速迁移
假如设备上旧的根端口不再有可能重新转发数据,新的根端口可以立刻迁移到Forwarding 状态,Alternate端口的快速迁移就符合这个条件。
假如设备上旧的根端口还有可能重新转发数据,此时它必然是一个指定端口,指定端口的快速迁移请参考1.4.2。
点到点以太网链路②上,根端口总能快速迁移到Forwarding状态。
1.4.2指定端口的快速迁移
1.被配置为边缘端口的指定端口可以无条件的快速迁移到Forwarding状态。
2.在点到点以太网链路上,指定端口可以和对端通过握手协商的方式进行快速迁移。双方设备必须满足如下状态机:
1.proposing. 指定端口处于discarding或learning状态的时候,会设置该变量。
向下游交换机传递Proposal flag被置位的RST BPDU。
2.proposed. 当收到指定端口发来的proposal BPDU的时候,该变量设置。该变
量指示本网段上的指定端口希望尽快的进入forwarding状态。
3.sync. 当proposed被设置以后,收到proposal的根端口会依次为自己的其他
端口设置sync变量。将所有不是Edge port的指定端口转为discarding状态。
4.synced. 当端口完成转到discarding后, 会设置自己的synced。Alternate、
Backup 和边缘端口会马上设置该变量。根端口监视其他端口的synced,当所有
其他端口的synced全被设置,根端口会设置自己的synced,然后传回RST BPDU,
其中Agreement flag被设置。
5.agreed. 当指定端口接收到一个RST BPDU的时候,如果该BPDU中的
agreement flag被置位且端口角色字段是“根端口”,该变量被设置。当agreed被
设置的时候,指定端口马上转入forwarding状态。
2004版的802.1D对P/A握手的状态机做了稍许改进,把synced拆分成synced和agree 两个状态机,并不再要求只有根端口能设置该状态,Alternate和Backup端口也可以设置该状态,并发送aggreement flag置位的BPDU,加速了这种情况下上游指定端口的快速迁移。