0x00 汇总
汇总链接
一个A级别的课程讲这么细,说实话我不觉得0基础的学员可以完全掌握STP和RSTP,强人所难。。。
而且内容里面有P/A机制的部分,但是又不拿单独的页面来讲解P/A,突然莫名其妙还跑出来同步这个概念,太难了。。。服气
0x01 RSTP的变化
STP协议虽然能够解决环路问题,但是收敛速度慢,影响了用户通信质量。如果STP网络的拓扑结构频繁变化,网络也会频繁失去连通性,从而导致用户通信频繁中断。IEEE于2001年发布的802.1w标准定义了快速生成树协议RSTP(Rapid Spanning-Tree Protocol),RSTP在STP基础上进行了改进,实现了网络拓扑快速收敛。
端口角色的变化
运行RSTP的交换机使用了两个不同的端口角色来实现冗余备份。
当到根桥的当前路径出现故障时,作为根端口的备份端口,Alternate端口提供了从一个交换机到根桥的另一条可切换路径。Backup端口作为指定端口的备份,提供了另一条从根桥到相应LAN网段的备份路径。当一个交换机和一个共享媒介设备例如Hub建立两个或者多个连接时,可以使用Backup端口。同样,当交换机上两个或者多个端口和同一个LAN网段连接时,也可以使用Backup端口。
边缘端口
RSTP里,位于网络边缘的指定端口被称为边缘端口。
边缘端口一般与用户终端设备直接连接,不与任何交换设备连接。
边缘端口不接收配置BPDU报文,不参与RSTP运算,可以由Disabled状态直接转到Forwarding状态,且不经历时延,就像在端口上将STP禁用了一样。但是,一旦边缘端口收到配置BPDU报文,就丧失了边缘端口属性,成为普通STP端口,并重新进行生成树计算,从而引起网络震荡。
端口状态的变化
BPDU格式的变化
除了部分参数不同,RSTP使用了类似STP的BPDU报文,即RST BPDU报文。
BPDU Type用来区分STP的BPDU报文和RST (Rapid Spanning Tree) BPDU报文。
STP的配置BPDU报文的BPDU Type值为0(0x00),TCN BPDU报文的BPDU Type值为128 (0x80),RST BPDU报文的BPDU Type值为2 (0x02)。
STP的BPDU报文的Flags字段中只定义了拓扑变化TC(Topology Change)标志和拓扑变化确认TCA(Topology Change Acknowledgment)标志,其他字段保留。
在RST BPDU报文的Flags字段里,还使用了其他字段。包括P/A进程字段和定义端口角色以及端口状态的字段。Forwarding,Learning与Port Role表示发出BPDU的端口的状态和角色。
收敛过程的变化
- 拓扑稳定后,配置BPDU报文的发送方式
STP只有根桥才可以产生配置BPDU。
RSTP中,所有设备按照自己的Hello Timer自主发送配置BPDU。 - 更短的BPDU超时计时
如果一个端口连续3个Hello Time时间内没有收到上游设备发送过来的配置BPDU,那么该设备认为与此邻居之间的协商失败。而不像STP那样需要先等待一个Max Age。 - 处理次等BPDU
当一个端口收到上游的指定桥发来的次优BPDU时 ,那么该端口会直接丢弃收到的BPDU,立即回应自身存储的BPDU。当上游收到下游设备回应的BPDU后,上游设备会根据收到的 BPDU报文中相应的字段立即更新自己存储的BPDU。由此,RSTP处理次等BPDU报文不再依赖于任何定时器通过超时解决拓扑收敛,从而加快了拓扑收敛。
P/A机制
Proposal/Agreement机制,其目的是使一个指定端口尽快进入Forwarding状态。
新链路连接成功后,P/A机制协商过程如下:
- p0和p1两个端口马上都先成为指定端口,发送RST BPDU。
- S2的p1口收到更优的RST BPDU,马上意识到自己将成为根端口,而不是指定端口,停止发送RST BPDU。
- S1的p0进入Discarding状态,于是发送的RST BPDU中把proposal置1。
- S2收到根桥发送来的携带proposal的RST BPDU,开始将自己的所有端口进入sync变量置位。
- p2已经阻塞,状态不变;p4是边缘端口,不参与运算;所以只需要阻塞非边缘指定端口p3。
- p2、p3、p4都进入Discarding状态之后,各端口的synced变量置位,根端口p1的synced也置位,于是便向S1返回Agreement位置位的回应RST BPDU。该RST BPDU携带和刚才根桥发过来的BPDU一样的信息,除了Agreement位置位之外(Proposal位清零)。
- 当S1判断出这是对刚刚发出的Proposal的回应,于是端口p0马上进入Forwarding状态。
- 以上P/A过程可以向下游继续传递。
事实上对于STP,指定端口的选择可以很快完成,主要的速度瓶颈在于:为了避免环路,必须等待足够长的时间,使全网的端口状态全部确定,也就是说必须要等待至少一个Forward Delay所有端口才能进行转发。而RSTP的主要目的就是消除这个瓶颈,通过阻塞自己的非根端口来保证不会出现环路。而使用P/A机制加快了上游端口转到Forwarding状态的速度。
说明:P/A机制要求两台交换设备之间链路必须是点对点的全双工模式。一旦P/A协商不成功,指定端口的选择就需要等待两个Forward Delay,协商过程与STP一样。
STP兼容
运行RSTP的交换设备在某端口上接收到运行STP的交换设备发出的配置BPDU,会把该端口转换到STP工作模式。