2。11。0以太网RSTP快速生成树端口状态与PA机制介绍
简介
RSTP(RapidSpanningTreeProtocol)快速生成树协议。
传统STP生成树在进行选举根桥与阻塞端口时需要等待3050秒的时间才能完成收敛,在网络中等待如此长的时间是不可能的,为此RSTP诞生了,它之所以称为快速生成树指的就是它的收敛时间更快。RSTP、STP的区别
1、RSTP快速生成树,STP生成树,其最本质的区别就是RSTP具备了STP特点的同时通过PA选举机制加快了STP的收敛。
2、在RSTP中,端口的角色与端口状态变化也将有所改变:由STP的3种端口角色(RP、DP、BP)增加上了AP(AlternatePort)备用端口、EP(EdgePort)边缘端口角色。由STP的5种端口状态(禁用、阻塞、侦听、学习、转发)缩短成了(丢弃、学习、转发)。
3、在STP中根桥发送BPDU,非根桥进行转发BPDU。RSTP则是无论是根桥还是非根桥都会发送RSTPBPDU。非根桥将根桥发来的BPDU在本地进行保留缓存一份,以Hello间隔为基准,定时发送保留缓存的根桥BPDU。
4、RSTPBPDU超时由STP的20秒缩短到RSTP的18秒18秒Hello间隔(2秒)3TimerFactor(3秒)TimerFactor:超时倍数,默认为3秒,可调整为110秒。RSTPBPDU格式如何识别RSTPBPDU?1、通过PVI协议版本标识(ProtocolVersionIdentifier)0:STP1:RSTP2:MSTP2、通过BPDU中的BPDUType字段:0x00:STPBPDU0x80:TCNBPDU0x02:RSTBPDU
RSTP与STP的兼容性
当交换网络中存在RSTP与STP时,由于RSTPBPDU并不能被STP所处理,所以RSTP必须向下进行兼容STP。RSTP如何兼容STP?运行RSTP的交换设备,只要在端口接收到STPBPDU,就会在一段时间之后将由RSTP端口转换成STP端口。转换成STP的端口只会发送和接收STPBPDU,并且不会进行PA机制,与正常的STP一样进行工作。RSTP端口状态RSTP的5种端口角色RP端口,根端口DP端口,指定端口BP端口,阻塞端口,与STP中的阻塞端口一致。AP端口,备用端口,该端口是去往根桥的次优端口,可以理解为备用的RP端口,当RP失效,AP端口将成为新的RP。EP端口,边缘端口,接入终端设备的端口并不需要发送BPDU,同时也为了保障交换网络的稳定性需要将终端接入端口设置为边缘端口。特性1,状态可直接进入Forwarding转发状态。特性2,不会主动向边缘端口发送RSTPBPDU。但边缘端口接收到STPRSTPBPDU之后,将会转变回STP端口。BP与AP端口的区别1、当RP故障之后,如果存在AP端口,该端口将马上转换成RP。2、当DP故障之后,如果存在BP端口,该端口将马上转换成DP。RSTP的3种端口状态丢弃(Discarding)代表着STP的禁用、阻塞、侦听状态。该状态下仅接收BPDU、不转发BPDU、不学习MAC、不转发用户数据。注:DP端口角色下,可发送BPDU。学习(Learning)该状态下,收发BPDU、学习MAC地址、不转发用户数据。转发(Forwarding)正常收发BPDU,学习MAC,转发用户数据。RSTP工作过程之PA机制
PA机制用于加速端口状态的收敛,无需等待30秒,当网络拓扑变更之后,收敛时间大概的36秒左右,依据PA机制而定,没有准确的数值。PA机制P,指BPDU中Flags字段的Proposal置位。P机制主要用于协商。A,指BPDU中Flags字段的Agreement置位。A机制主要用于确认协商。PA机制要求两台交换机之间链路必须是点对点的全双工模式。
PA机制的工作过程
每台交换机启动RSTP之后,都认为自己是根桥,所有端口都为指定端口(已经指定的EP端口除外)都处于Discarding状态,然后向DP端口发送BPDU。
你可能会疑惑端口状态为Discarding不是无法发送BPDU吗?
结论:虽然Discarding状态下不发送BPDU,但如果端口角色为DP端口,Discarding将有权发送BPDU!
解释:DP端口面向下游,远离根网桥。DP端口代表的下游去往根桥优方向(就像RP端口对端的就是DP端口),如果下游Sw没有接收到DP端口发来的BPDU,他会认为自己失去到根桥的路径,将会尝试寻找其他路径。参考Cisco社区的一些大佬回复,由于LSW1优先级高,会对其它设备的BPDU消息置之不理,但可以通过收到的BPDU更加确认自己就是根桥。当LSW2、LSW3收到LSW1的BPDU将知道LSW1才是根桥,以此同时将停止发送自己的BPDU,接收缓存根桥的BPDU。成为根桥的LSW1将主动向下发送P置位的BPDU(Flags中的Proposal置位1)LSW2、LSW3确认根桥的同时可以收到根桥LSW1发来的P置位BPDU。接收P置位BPDU后,会将连接LSW1的端口切换为RP端口直接进入Forwarding转发状态,并将下游的非边缘端口阻塞(即DP端口阻塞)阻塞之后向根桥回复A置位BPDU(Flags中的Agreement置位1)
以上是根桥与下游一层的设备进行交互PA机制,那么下游和下游设备又是如何交互的呢?RSTP与STP在发送BPDU上有所不同,STP只有根桥发送BPDU,RSTP中通过缓存根桥的BPDU然后间隔Hello时间主动向外发送根桥的BPDU。前面提到在设备启动RSTP之后,默认都处于DP端口,且为Discarding状态,主动向外发送BPDU。由于LSW2的E002收到了自己发出的BPDU,将由DP转换成BP(DP的备份端口角色)。LSW3收到LSW2的BPDU,由于LSW2更具备优先级(即去根桥次优先,毕竟RP还存在),LSW3的E001、E002将成为AP端口。
如果之前并没有选出端口角色,在根桥选举出来之后,LSW2到达Hello间隔之后,也会主动向DP端口发送P置位的BPDU(携带有根桥缓存信息)。LSW2的E002端口收到自己的P置位BPDU,将切换为BP角色。LSW3从E001、E002收到P置位BPDU,将其BPDU信息与缓存的根桥BPDU相比,发现没有E003口的优先,将不做回复,但将E001、E002口切换为AP角色(RP端口的备份)。LSW2的DP端口发现没有回复A置位BPDU,将正常等待30秒之后切换为Forwarding状态。