一、相较于STP更加快速的P/A收敛机制
在RSTP中,为了实现更加快速的拓扑收敛,主要采用了Proposal/Agreement(提议/确认,P/A)机制。
通过前面的学习已经知道,当一个端口被选举成为指定端口之后,在STP中,该端口至少要等待两个Forward Delay的时间(由Listening状态到Learning状态,再从Learning状态到Forwarding状态)才会迁移到Forwarding状态,发送数据。这种保守的设计可以保证不产生环路,但显然不够聪明,RSTP对此进行了一系列改进。在RSTP中规定,一共端口被选举称为指定端口后,会先进入Discarding状态,再通过Proposal/Agreement机制快速进入Forwarding状态。但这种机制必须在点到点链路(某端口在所属的共享以太网上的对端只有一台设备,这样的以太网被认为是点到点链路)上使用。
二、P/A机制的工作原理
P/A机制即Proposal/Agreement机制,其目的是使一个指定端口尽快进入Forwarding状态。如下图所示,P/A协商过程的完成根据以下几个端口变量的协商,也就是P/A机制的具体工作原理。
- proposing(提议请求):当一个指定端口处于Discarding或Learning状态时,proposing变量置位,并向下游桥设备传递Flags字段Proposal标志位置1的RST BPDU(表示此BPDU为Proposal RST BPDU报文),请求快速切换到Forwarding状态。
- proposed(提议采纳):当对端的根端口收到以上Proposal标志位置1的RST BPDU时,proposed变量置位。该变量指示本网段上的指定端口希望尽快进入Forwarding状态。
- sync(同步请求):当根端口的proposed变量置位后会依次为本桥上的其他端口使sync变量置位,使所有非边缘端口都进入Discarding状态,准备重新同步。
- synced(同步完成):当端口进入到Discarding状态后,会将自己的synced变量置位,包括本桥上的其他所有Alternate端口、Backup端口和边缘端口,实施同步操作。此时,根端口监视其他端口的synced变量置位情况,当所有其他端口的synced变量全被置位,则根端口最后也会将自己的synced变量置位,表示本桥上已完成同步操作,向上游设备传回Agreement标志位置1的RST BPDU(表示此BPDU为Agreement RST BPDU报文)。
- agreed(提取确认):当原来想要进入转发状态的上游设备指定端口收到对端根端口发来的一个Agreement RST BPDU时,则此指定端口的agreed变量置位。Agreed变量一旦被置位,则该指定端口马上转入Forwarding状态。
三、P/A机制解析示例
如下图所示,根桥S1和S2之间新添加了一条链路。在当前状态下,S2的另外几个端口p2是Alternate端口,p3是指定端口且处于Forwarding状态,p4是边缘端口。新链路连接成功后,P/A机制的协商过程如下。
- 两端的g0/0/1端口马上成为指定端口,发送RST BPDU。
- S2的g0/0/1端口在收到更优的RST BPDU后,马上意识到自己将成为根端口,而不是指定端口,于是停止发送RST BPDU。
- 当S1的g0/0/1端口处于Discarding状态(这是所有端口的初始状态)时向对端的S2发送proposal标志位置1的RST BPDU。
- S2收到根桥发送来的携带proposal标志位的RST BPDU后,开始将自己的所有端口的sync变量置位,进入Discarding状态。因为此时g0/0/2端口已经被阻塞,所以状态不变,g0/0/4端口是边缘端口不参与运算,所以只需要阻塞非边缘指定端口g0/0/3。
- 在g0/0/2、0/0/3、0/0/4端口都进入Discarding状态之后,各处将自己的synced变量置位,然后根端口g0/0/1也将自己的synced变量置位,然后向S1返回Agreement标志位置1的响应RST BPDU。该RST BPDU携带和刚才根桥发过来的BPDU一样的信息,除了Agreement标志位置1之后(Proposal位清零)。
- 当S1判断除所受到的Agreement RST BPDU是对刚刚发出的Proposal的响应后,端口g0/0/1马上进入Forwarding状态。
- 以上P/A过程可以向下游设备继续传递,也就是说不一定是根桥与非根桥之间,也可以是非根桥之间。
事实上对于STP,指定端口的选择可以很快完成,主要的速度瓶颈:为了避免环路,必须等待足够长的时间,使全网的端口状态全部确定,也就是说必须要等待至少应该Forward Delay所有端口才能进行转发。而RSTP的主要目的就是消除这个瓶颈,通过阻塞自己的非根端口来保证不会出现环路。而使用P/A机制加快了上游端口转到Forwarding状态的速度。
但P/A机制要求两台交换机设备之间的链路必须是点到点的全双工模式。一旦P/A协商不成功,指定端口的选择就需要等待两个Forward Delay,协商过程与STP一样。
四、产生P/A机制的条件
- 交换机的接口必须是全双工
- 交换机的接口必须是DP端口,并且处于Discardning状态和Learning状态,才能发出P置位的RST BPDU报文
- 对端必须是RP端口才会回应
五、普通P/A与增强P/A
在RSTP中,网络收敛主要依靠P/A协商机制,但不同厂商设备所支持的P/A机制的工作方式不完全一样。为了实现华为公司的数据通信设备与其他厂商设备互通,需要根据其他厂商设备支持的P/A机制选择端口的快速迁移方式。目前,华为S系列交换机的RSTP P/A机制支持以下两种模式。
1、普通方式(Normal mode)
这是一种正常的P/A机制工作方式,双方是通过一对Proposal/Agreement报文进行协商,收到Proposal报文的端口为根端口,并自动进入到Forwarding状态,而收到Agreement报文的端口为指定端口,也自动进入Forwarding状态。具体流程如下。
- 上游设备发送Proposal报文,请求进行快速迁移,下游设备在接收后把与上游设备相连的端口设置为根端口,并阻塞所有非边缘端口,然后根端口自动进入Forwarding状态。
- 然后下游设备回应Agreement报文,上游设备在接收后把与下游设备相连的端口设置为指定端口,指定端口进入Forwarding状态。
2、增强模式(Enhanced mode)
这种方式特别适用于不同厂商设备之间的P/A协商。在这种工作方式中,上游设备发送的Proposal报文,在到达下游非同一厂商的设备的根端口时可能不能马上进入Forwarding状态,这时上游设备再发送一个Agreement报文,强制下游设备的根端口进入Forwarding状态。这时下游设备的根端口才可以发送Agreement报文,响应上游设备发送的Proposal报文,使上游设备的指定端口也进入Forwarding状态。具体流程如下。
- 首先上游设备发送Proposal报文(Flages字段Bit1位置位为1的BPDU报文),请求进行快速迁移,下游设备接收后把与上游设备相连的端口设置为根端口,并阻塞所有非边缘端口(包括根端口)。
- 然后,上游设备继续发送Agreement报文(Flages字段Bit6位置位为1的BPDU报文),下游设备在接收后强制根端口转为Forwarding状态。
- 最后下游设备回应Agreement报文,上游设备在接收后把与下游设备相连的端口设置为指定端口,并进入Forwarding状态。
在运行生成树的通信网络中,如果华为公司的数据通信设备与其他厂商设备混合组网,可能会因为与其他厂商设备的P/A机制不同导致互通失败。需要根据其他厂商设备的P/A机制,选择接口使用增强的快速迁移机制还是普通的快速迁移机制。
配置的方法很简单,只需要直接在其他厂商设备的端口的接口视图下执行stp no-agreement-check命令配置端口使用普通的快速迁移方式。缺省情况下,端口使用增强的快速迁移机制,可用undo stp no-agreement-check命令配置当前接口使用增强的快速迁移机制。
六、RSTP的其他收敛机制以及与STP的互操作
1、其他收敛机制
在RSTP中,除了P/A机制外,还有以下两种机制也可以帮助实现拓扑的快速收敛。
- 根端口快速切换机制。如果网络中的一个根端口失效,那么网络中最优的Alternate端口将立即成为根端口,并进入Forwarding状态。在点到点以太网链路上,根端口总能快速迁移到Forwarding状态。
- 边缘端口的引入。在RSTP里面,如果某一个指定端口位于整个网络的边缘,即不再与其他交换设备连接,而是直接与终端设备直连,这种端口叫作边缘端口。
边缘端口不接收处理配置BPDU,不参与RSTP运算,可以由Disable状态直接转到Forwarding状态,且不经历任何时延。但是一旦边缘端口收到配置BPDU,就丧失了边缘端口属性,成为普通RSTP端口,并重新进行生成树计算,从而引起网络震荡。
边缘端口的一些属性
- 接口UP后马上进入Forwarding状态
- 当边缘端口收到BPDU报文时,将失去边缘端口的特性,重新进行RSTP的计算
- 当交换机收到TC置位的BPDU报文,不会发往边缘端口,也就是不会清除边缘端口的MAC与ARP
- P/A协商的时候,不会阻塞边缘端口
- 边缘端口会周期性发送BPDU---2s一次(防止自环)
2、RSTP与STP的互操作
RSTP可以和STP互操作,但是此时会丧失快速收敛等RSTP的优势。当一个网段里既有运行STP的交换设备,又有运行RSTP的交换设备时,STP交换设备会忽略RSTP BPDU,而运行RSTP的交换设备在某端口上接收到运行STP的交换设备发出的配置BPDU时,会在两个Hello Time时间之后把自己的端口转到STP工作模式,发送配置BPDU。这样,就实现了互操作。
在华为的数据通信设备上,可以配置运行STP的交换设备,被撤离网络后,运行RSTP的交换设备又可迁移回到RSTP工作模式。
以上就是本章的全部内容了,感谢大家的浏览观看!如有错误或疑问可联系博主删除更改,文章中部分内容源自教材《华为交换机学习指南》第二版,感兴趣可购买相关书籍浏览。