华为三层交换机环网配置(交换网络二层快速收敛协议之RSTP详解)
华为三层交换机环网配置(交换网络二层快速收敛协议之RSTP详解)1.不转发用户流量也不学习MAC地址,那么端口状态就是Discarding状态。RSTP的删除了STP中有的三种端口状态:disable、blocking、listening。因为这三种端口状态从用户感知层面来说,都不转发用户流量,所以在RSTP中,把这三种端口状态统一为discarding状态。在RSTP中,把STP中原来的disable、blocking、listening、learning、forwarding这5种端口状态根据端口是否转发用户流量和学习mac地址划缩减为3种端口状态。如图所示,当SW1和hub之间的链路断开了,SW3的3端口(RP端口),依然是up的,但是不能从SW1收到配置BPDU了,但是4号端口,可以从SW2收到由根桥SW1发送过来的BPDU,但是因为之前由根端口(3号端口)缓存的从SW1接收到的BPDU依然在max age的时间内,所以4号端口角色不会立马从a
RSTP 全称Rapid spanning tree protocol,中文意思是快速生成树,IEEE标准是802.1W。它跟STP的主要区别是收敛快,不像STP那样依靠计时器(hello时间=2s、max age=20s、forwarding delay =15s)的超时来收敛,STP弊端在于当网络拓扑发生变化的时候(如网络中新接入一台开启了STP生成树协议的时候),最快的时间是30s,最慢的时间是50s,这在现在网络技术快速发展的今天是跟不上节奏的。
首先我们先分析STP二层网络交换机的拓扑中,STP拓扑收敛最快30s的情况。如下图所示:
当SW3和SW1之间的链路突然被断开,SW3的4端口的端口角色会从AP转变为RP端口,但是该端口状态不会立马从blocking状态迁移到forwarding状态,而需要等待两个转发延迟时间=30s。
STP拓扑收敛最慢50s的情况,如下图所示:
如图所示,当SW1和hub之间的链路断开了,SW3的3端口(RP端口),依然是up的,但是不能从SW1收到配置BPDU了,但是4号端口,可以从SW2收到由根桥SW1发送过来的BPDU,但是因为之前由根端口(3号端口)缓存的从SW1接收到的BPDU依然在max age的时间内,所以4号端口角色不会立马从ap端口变成RP端口,而是需要等待RP端口上缓存的BPDU老化,然后才会变成RP端口,同时SW3的3号端口变成了DP端口,两个端口的状态都是blocking状态,需要等待两个forwarding delay=30s才能进入转发状态。所以在这种情景下,该拓扑的收敛时间最大为20s 2*15s=50s。
分析完STP的弊端后,小编我正式开始介绍RSTP了。
一、RSTP的端口状态
RSTP的删除了STP中有的三种端口状态:disable、blocking、listening。因为这三种端口状态从用户感知层面来说,都不转发用户流量,所以在RSTP中,把这三种端口状态统一为discarding状态。在RSTP中,把STP中原来的disable、blocking、listening、learning、forwarding这5种端口状态根据端口是否转发用户流量和学习mac地址划缩减为3种端口状态。
1.不转发用户流量也不学习MAC地址,那么端口状态就是Discarding状态。
2.如果不转发用户流量但是学习MAC地址,那么端口状态就是Learning状态。
3.如果既转发用户流量又学习MAC地址,那么端口状态就是Forwarding状态。
二、RSTP的配置BPDU报文格式
在RSTP协议中,RSTP的配置BPDU和STP的配置BPDU报文格式不再一样,所以跑STP的交换机不能和跑RSTP的交换机对接。RSTP的配置BPDU主要有两个地方发生了改变:
1. Type字段,配置BPDU类型不再是0而是2,所以运行STP的设备收到RSTP的配置BPDU时会丢弃。
2. 2.Flag字段,使用了原来保留的中间6位,这样改变的配置BPDU叫做RST BPDU。
如下图所示:
RSTP Flag字段格式,对应上图报文中的大的红色方框。
三、RSTP中对RST BPDU报文的处理方法发生的改变,如下图所示:
四、RSTP快速收敛秘诀,Proposal/Agreement协商机制
在STP中,一个端口被选举为DP端口后,该端口至少要等待一个Forward Delay(Learning)时间=15s才会迁移到Forwarding状态。而在RSTP中,此端口会先进入Discarding状态,再通过Proposal/Agreement机制快速进入Forward状态。这种机制必须在点到点(直接相连)全双工链路上使用,不然P/A协商不成功,依然采用STP的慢收敛方式。
如下图所示:
P/A协商的过程如下:
1. 当交换机S1和S2都启动的时候,因为S1、S2都认为自己是根桥,所以S1的P0端口和S2的P1端口均会立马变成指定端口,并对外发送RST BPDU。
2. 因为在上图拓扑中,S1的mac地址比S2的mac地址小,所以S2的P1口收到S1的P0口发送的更优的RST BPDU的时候,S2的P1端口马上“意识到”自己将会成为根端口,立即停止发送RST BPDU。
3. S1的P0端口进入Discarding状态,于是向S2的P1端口发送flag位中的proposal置位为1的RST BPDU报文。
4. S2收到根桥S1的P0端口发送来的携带proposal的RST BPDU,开始将自己的所有端口进入sync变量置位。
5. 在S2中,p2为AP端口,端口状态已经处于阻塞状态,所以该端口状态不变,依然为discarding状态;p4是边缘端口,不参与RSTP运算;所以只需要阻塞非边缘指定端口p3(即P3的端口状态从forwarding变成discarding状态,不能转发用户流量了)。
6. S2的p2、p3、p4都进入Discarding状态之后,各端口的synced变量置位,根端口p1的synced也置位,于是便向S1返回Agreement位置位的回应RST BPDU。该RST BPDU携带的信息除了Agreement位置位之外(Proposal位清零),和刚才根桥发过来的BPDU一样的信息(这里就是为什么P/A协商要在直接相连(点对点)的交换机链路上才生效了)。如下图所示:
S1、S2、S3接在同一个hub上,如果S3收到S2发送的A1(回应S1的agreemetn报文) S3端口P/A协商失败。
7. 当S1判断出这是对刚刚发出的Proposal的回应,于是端口p0马上进入Forwarding状态,S2的RP端口和之前的DP端口也会进入Forwarding状态。
欢迎大家关注,评论转发收藏。如果你身边也有同样想学习专业计算机网络知识的朋友,请把该文转发给他们。