RSTP名称802.1W
1.相对STP新增的端口角色
1.1.Alternate端口
由于学习到其它网桥发送的配置BPDU报文而阻塞的端口。
从指定桥到根的另一条可切换路径,作为根端口的备份。
1.2.Backup端口
由于学习到自己发送的配置BPDU报文而阻塞的端口。
从根桥到相应物理链路的另一条可切换路径,作为指定端口的备份。
2.端口状态
2.1.Discarding
不转发用户流量也不学习MAC地址。
2.2.Learning
不转发用户流量但是学习MAC地址。
2.3.Forwarding
既转发用户流量又学习MAC地址。
3.配置BPDU格式的改变
1)Type:配置BPDU类型不再是0而是2,运行STP的设备收到RSTP的配置BPDU时会丢弃。
2)Flags:使用原来保留的中间6位后的配置BPDU叫做RST BPDU
Bit7:TCA
Bit6:Agreement
Bit5:Forwarding
Bit4:Learning
Bit3和Bit2:端口角色
00:未知
01:根端口
10:Alternate / Backup
11:指定端口
Bit1:Proposal
Bit0:TC
4.配置BPDU处理变化
1)配置BPDU发送方式
拓扑稳定后,非根桥设备无需等待根桥设备传来RST BPUD报文,直接按照Hello Timer规定的时间间隔发送RST BPDU。
2)BPDU超时计时更短
端口连续3个Hello Time时间内没有收到上游传来的RST BPDU,则认为与此邻居协商失败,无需等待Max Age超时。
3)次等BPDU处理
端口收到上游传来的比自己优先级低的RST BPDU,立即回应自己的RST BPDU给上游设备,上游设备根据收到的RST BPDU报文更新自己的RST BPDU,不再依赖定时器通过超时解决拓扑收敛。
5.Proposal/Agreement机制
5.1.作用
使一个指定端口尽快进入Forwarding状态。
5.2.要求
P/A机制要求两台交换设备之间链路必须是点对点的全双工模式。
一旦P/A协商不成功,指定端口的选择就需要等待两个Forward Delay,协商过程与STP一样。
5.3.拓扑描述
根桥S1和S2之间新添加了一条链路。在当前状态下,S2的另外几个端口p2是Alternate端口,p3是指定端口且处于Forwarding状态,p4是边缘端口。
5.4.协商过程
1)新链路连接成功后,开始P/A机制协商,p0和p1两个端口马上都先成为指定端口,发送RST BPDU。
2)S2的p1口收到更优的RST BPDU,马上意识到自己将成为根端口,而不是指定端口,停止发送RST BPDU。
3)S1的p0进入Discarding状态,于是发送的RST BPDU中把proposal置1。
4)S2收到根桥发送来的携带proposal的RST BPDU,开始将自己的所有端口进入sync变量置位。
5)p2已经阻塞,状态不变;p4是边缘端口,不参与运算;所以只需要阻塞非边缘指定端口p3。
6)各端口的synced变量置位后,p2、p3进入Discarding状态,p1进入Forwarding状态并向S1返回Agreement位置位的回应RST BPDU。该RST BPDU携带和刚才根桥发过来的BPDU一样的信息,除了Agreement位置位之外(Proposal位清零)。
7)当S1判断出这是对刚刚发出的Proposal的回应,于是端口p0马上进入Forwarding状态。
5.5.拓扑变化处理
5.5.1.判断标准
一个非边缘端口迁移到Forwarding状态。
5.5.2.处理过程
1)拓扑变化时,设备为所有非边缘指定端口启动一个TC While Timer(Hello Time的两倍),在这个时间内,清空所有端口上学习到的MAC地址。
2)由非边缘端口向外发送TC置位的RST BPDU,一旦TC While Timer超时停止发送。
3)其他设备收到RST BPDU后,清空除收到RST BPDU端口外的所有端口学习到MAC地址。
4)其他设备为自己所有的非边缘指定端口和根端口启动TC While Timer泛洪TC置位的RST BPDU,刷新MAC地址表。
5)当全网设备都收到TC置位的RST BPDU,生成树收敛完成。
6.边缘端口
位于整个网络边缘的指定端口,即不再与其他交换设备连接,直接与终端设备直连,边缘端口不接收处理配置BPDU,不参与RSTP运算,由Disable直接转到Forwarding状态不经历时延。
边缘端口收到配置BPDU,会丧失边缘端口特性,成为普通STP端口,并重新进行生成树计算,引起网络震荡。
7.保护功能
7.1.BPDU保护
恶意伪造RST BPDU攻击交换设备,导致边缘端口接收到RST BPDU后并重新进行生成树计算,从而引起网络震荡。
使能BPDU保护功能,边缘端口收到RST BPDU将被置为error-down,边缘端口属性不变,同时通知网管系统。
7.2.根保护
由于维护不当或恶意攻击,合法根桥收到优先级更高的RST BPDU失去根地位引起网络结构错误变动,导致原来应该通过高速链路的流量被牵引到低速链路上,造成网络拥塞。
使能根保护功能的指定端口其角色只能保持为指定端口,该端口收到优先级更高的RST BPDU将进入Discarding状态,不再转发报文,如果在两倍的Forward Delay时间内一直没有再收到优先级较高的RST BPDU,端口自动恢复Forwarding状态(Root保护只在指定端口配置生效)。
7.3.环路保护
由于链路拥塞或单向链路故障根端口或Alternate端口收不到来自上游的RST BPDU时,会重新选择根端口,原来的根端口会转变为指定端口,原来的阻塞端口会迁移到转发状态,导致环路。
使能环路保护后,根端口或Alternate端口长时间收不到来自上游的RST BPDU时,则向网管发出通知信息,如果是根端口则进入Discarding状态,如果是阻塞端口会一直保持在阻塞状态,不转发报文,直到根端口或Alternate端口收到RST BPDU,端口状态才恢复正常到Forwarding状态(环路保护只在根端口或Alternate端口配置生效)。
7.4.防TC-BPDU攻击
恶意伪造TC BPDU报文攻击交换设备,导致设备短时间内收到大量TC BPDU报文,频繁的刷新MAC地址表和ARP表,给设备造成负担,给网络的稳定带来很大隐患。
使能防TC-BPDU攻击后,可以配置单位时间内处理TC BPDU报文的次数,如果收到TC BPDU报文数量大于配置的阈值,设备只会处理阈值指定的次数,超出阈值的部分设备会在定时器超时后统一处理一次,避免频繁的刷新MAC地址表和ARP表,达到保护设备的目的。