802.1W快速生成树RSTP:
Rapid Spanning Tree Protocol,快速生成树,STP协议虽然能够解决环路问题,但是收敛速度过慢,影响了用户通信质量。如果STP网络的拓扑结构频繁变化,网络也会频繁失去连通性,从而导致用户通信频繁中断,快速生成树协议(rapid spanning Tree Protocol ):802.1w由802.1d发展而成,基于P/A机制,这种协议在网络结构发生变化时,能更快的收敛网络。
① Protocol ID:协议ID,该值总为0
② Protocol Version ID:协议版本ID,STP的版本(802.1D为0;802.1W为2;802.1S为3)
③ BPDU Type:BPDU类型,分为两种,配置BPDU为0;TCN BPDU为80
④ FLags:分七个置位符:
TCA:Topology Change Acknowledgment,拓扑变更确认信息
Agreement:PA机制中的Agreement置位符
Forwarding:端口状态“转发”
Learning:端口状态“学习”
状态 Forwarding Learning
Discarding 0 0
Leaning 0 1
Forwarding 1 1
Port Role:端口角色,2bit,可以表示四种角色:
组合数值 含义
00 Unknown
01 Alternate Port/Backup Port
10 Root Port
11 Designated Port
Proposal:PA机制中的proposal置位符
TC:Topology Change,拓扑变更
⑤ Root ID:根桥的ID,由三部分组成:
4bit优先级值
12bit扩展系统ID(实例ID,默认为0)
8Byte系统ID(MAC地址)
⑥ RPC:Root Path Cost,开销值
⑦ Bridge ID:转发者的ID,每经过一个交换机,Bridge ID会变为此交换机的ID,由三部分
组成:
4bit优先级值
12bit扩展系统ID(实例ID,默认为0)
8Byte系统ID(MAC地址)
⑧ Port ID:端口ID,每经过一个交换机的端口,Port ID变为此端口的ID
⑨ Message Age:配置BPDU在网络中传播的生存期,默认每经过一跳,Message Age+1
⑩ Max Age: Message Age最大老化时间,默认为20S
⑪ Hello time:探测时间,默认为2S
⑫ forward Delay:转发延迟,默认为15S
(2) TC BPDU:
传统STP中,只有根桥才会发送TC置位的configuration BPDU通告下游路由器用来缩短Mac地址表的生存时间。RSTP中,不存在TCN BPDU,一旦交换机发现自己的端口和对端交换机端口链路出现问题后,会立刻向Designated Port和Root Port发送将TC置位的configuration BPDU通告其余交换机,其余交换机收到TC置位的BPDU后,会立刻删除除接收到TC BPDU的接口和边缘端口以外的端口的mac表清空,整个过程持续4S。
注:由于从某个端口收到TC置位的BPDU,说明该链路有效,所以会保留收到configuration BPDU端口对应的MAC地址映射和配置边缘的端口的MAC地址映射。
2. RSTP端口角色:
相对于传统STP三种端口角色,RSTP重新定义了五种端口角色,分别为:
① root port:根端口RP
② designate port:指定端口BP
③ alternate port:替代端口AP(或bolcking port阻塞端口)
④ backup port:备份端口BP
⑤ Edge Port:边缘端口
注:如何区分预备端口AP和备份端口BP:
每条链路上只有一个指定端口,所以在一条链路上拥有DP端口的交换机为指定交换机
如果从另外一条端口收到的BPDU中的Bridge ID是自身的Bridge ID,则表明当前的BPDU是从自身设备发出去的,则收到此BPDU的接口为DP
如果从另外一个端口收到的BPDU中的Bridge ID不是自身的Bridge ID,则为AP
(1)Root Port:
根端口,离根桥最近的非根交换机端口,每台非根交换机只有一个根端口,根交换机没有根端口。根端口接收BPDU,并转发数据帧。
每个STP网络中,都会存在一个根桥,其他交换机为非根交换机,根桥或者跟交换机位于整个逻辑树的根部,时STP网络的逻辑中心,非根桥时根桥的下游设备,根端口时非根交换机去往根桥路径的最优端口,在一个运行STP协议的交换机上最多只有一个根端口,但根桥上没有根端口。
注:RP端口是接收到最优BPDU的端口,后续的端口选举都依照这份BPDU进行选举,如果RP端口Down掉,则所有选举出来的端口都将无效,交换机会将所有的端口变为Listening状态,重新选举根端口并生成新的BPDU进行重新的选举。
(2)Designated Port:
指定端口,用于数据和BPDU的转发,指定端口接收转发BPDU,并转发数据帧。
指点端口时交换机想所连接链路转发配置BPDU的端口,每个网段有且只能由一个指定端口。一般情况下,根桥的每个端口总是指定端口。
(3)Alternate Port:
预备端口,在RSTP环境中,AP作用作为同一台交换机上的RP的替代端口,当交换机发现自己的某个RP端口挂掉后,会立刻将AP端口转为RP。
(4)Backup Port:
一台交换机上存在指定端口,则为指定交换机,和指定端口存在同一链路上,则此接口为Backup Port,否则为AP
备份端口,在RSTP环境中,BP作用作为DP的替代端口(使用双线路连接HUB做冗余),当交换机发现自己的某个DP端口挂掉后,在经历3倍的Hello时间*time factor(huawei为18S)后将BP端口变为DP端口并直接进入Forwarding状态
(5)Edge Port:
边缘端口,用于连接PC的端口,边缘端口不参与STP端口的选举,直接进入Forwarding状态(传统STP也可以配置此端口,或直接在接口下使用命令STP disable关闭端口STP功能)。
配置边缘端口的好处在于端口可以直接进入Forwarding状态,并且当边缘端口Down掉,不会进行P/A机制的重新收敛,不会发送TC置位的BPDU,减轻网络的负担。
配置边缘端口后,此端口还是会继续发送BPDU给下游设备,目的为了防止环路,如果用户端存在环路,将此报文重新引回到此交换机,此时边缘端口会变为非边缘端口并进行选举。
在实际中,当企业存在大量的用户,上班时间同时开机,当交换机的一个端口由Down变为Up,会触发交换机发送TC置位的BPDU通告其他交换机刷新MAC表项,所以此时使用Edge Port可以避免这种现象。
注:Huawei设备端口使能生成树协议后,会默认启用边缘端口自动探测功能,当端口在(2 × Hello Timer + 1)秒的时间内收不到BPDU报文,自动将端口设置为边缘端口,否则设置为非边缘端口。
3. RSTP端口状态:
相对于传统的STP收敛的五种状态,RSTP简化为三种状态。
分别为:
① Discarding:丢弃状态
② Learning:学习状态
③ Forwarding:转发状态
(1)Discarding:
丢弃状态,此状态下端口对接收到的数据做丢弃处理,端口不转发数据帧,不学习MAC地址表。收敛后的AP和BP处于此状态。
(2)Learning:
学习状态,此状态下端口不转发数据帧,但是学习MAC地址表,参与计算生成树,接收并发送BPDU。
(3)Forwarding:
转发状态,此状态下端口正常转发数据帧,学习MAC地址表,参与计算生成树,接收并发送BPDU。
4. RSTP端口选举过程:
① 基于P/A机制分段式收敛,非根桥设备无论是否收到根桥发送的配置BPDU,都会按照Hello Timer(2S)规定的时间间隔发送配置BPDU
② STP中非根桥只有收到上有设备发送过来的配置BPDU,才出发发送配置BPDU
(1)RSTP协商前提:
RSTP使用P/A机制进行协商,P/A机制协商成功需要点到点链路
Huawei设备在初次发送Proposal置位的BPDU进行协商时,使用Agreement置位用来表示当前链路为P2P全双工模式,可以进行P/A机制的协商,如果交换机收到一份Proposal置位但是Agreement没有置位的BPDU,不会进行P/A机制的协商。
① 点到点全双工链路:
点到点链路为全双工链路,由于P/A协商为两端进行交互,如果中间为共享型链路模式,三台交换机进行互联,则造成P/A机制无法完全同步,导致协商失败。
① SWA、SWB、SWC中间为共享式网络
② SWA发送Proposal置位的BPDU,如果SWC回复了Agreement置位的BPDU,此时SWA会立刻经端口变为转发状态,如果此时B-D-E-A之间的链路没有收敛完成,而SWA的DP又提前进入forwarding状态会造成环路
所以为了防止在此类网络结构中P/A协商机制导致的临时环路,所以当接入Hub时,链路
出现半双工,所以此时不会进行P/A机制的协商,防止临时的环路
接口类型可以使用以下命令修改:
[Huawei-GigabitEthernet0/0/1]STP point-to-point force-true—强制改为P2P类型
② 都为DP、discarding状态:
当端口初始化UP的时候,端口角色为DP,并且为Discarding状态,才会发送Proposal置位的BPDU进行P/A机制的协商
(2)初次收敛:
① 初始状态:
每一台交换机启动RSTP后,都认为自己是“根桥”:
a)所有端口都为指定端口
b)处于Discarding状态,防止临时的环路
② 置位Proposal:
交换机互相发送Proposal置位的RSTP BPDU,SWA收到SWB(BID优先级低)的RSTP BPDU,会忽略,huawei设备也会将Agreement置位,用来表示当前的网络类型为P2P全双工模式。
③ 同步:
SWB收到了更优的RSTP BPDU,于是停止发送RSTP BPDU,并开始执行同步,除边缘端口外的所有下游指定端口为Discarding。
④ Agreement置位:
SWB阻塞所有非边缘端口之后,将RP端口变为Forwarding状态,将SWA(Root)的报文中的Bridge ID变为自己的Bridge ID,并将Agreement置位,发送给SWA。
注:回送的这份Agreement置位的BPDU内容为SWA发送过来的BPDU,BPDU中的Bridge ID变为SWB,Port ID变为发往SWA的接口
⑤ 根桥迁移Forwarding状态:
SWA收到Agreement置位的RSTP BPDU后,指定端口立即从Discarding迁移到Forwarding状态
⑥ P/A机制协商失败:
当进行到最后一段链路时,会将低Root ID的交换机端口置为AP端口,此时对端端口发送Proposal置位的Configuration BPDU,但是由于本端是AP端口,所以不会回复Agreement置位的Configuration BPDU,所以此时对端认为它的对端不支持RSTP,所以采用传统的STP收敛方式,经历2倍Forward Delay,进入Forwarding状态。
注:由于AP链路并不转发数据,所以即使要30S才会收敛,也不会影响实际的数据转发。
(3)拓扑变化重新收敛:
① 如果RP端口失效,AP端口立刻成为RP端口
② 如果DP端口失效,BP立刻进入BP端口
③ 如果收到一份次的BPDU,立刻进行端口的重新选举
④ 如果收不到BPDU,等待时间为Hello时间3timer Factor(因子自定义,huawei为3)=18S立刻认为为根桥,重新进行收敛
① AP交换机RP端口失效:
非根交换机的根端口down掉后,会立刻将AP端口变为RP端口进入转发状态,并发送TC置位的BPDU通告邻居进行MAC地址的删除
② DP交换机RP端口失效:
a)LSW4的g0/0/1端口失效后,LSW4立刻认为自己为Root,将所有的端口变为discarding状态,并发送proposal置位的BPDU
b)LSW5收到proposal置位的BPDU后,与自身认为最有的BPDU进行比较,发现自身的(LSW3)更优,会将端口变为DP,并变为Discarding状态,发送最有BPDU给LSW4,并将Proposal置位
c)LSW4收到Proposal置位的BPDU后,发现优于自身的BPDU,同步所有端口,并将G0/0/3变为RP端口,并发送Agreement置位的BPDU给LSW5,LSW5收到后,将G0/0/3的状态变为Forwarding状态
MAC地址表删除:
a)拓扑发生变化后,交换机会立刻从所有的指定端口发送TC置位的BPDU报文
b)当上游交换机收到TC置位的BPDU后,只保留接收到TC置位端口的mac地址映射和配置边缘端口的MAC地址映射,删除其余的MAC地址表
③ DP端口失效:
a)18S收敛:
根交换机的DP端口失效后,在经历3倍Hello时间*time factor(华为为18S)后将BP端口变为DP端口进入转发状态,并发送TC置位的BPDU通告邻居进行MAC地址的删除
b)48S收敛:
LSW2的G0/0/2链路失效后,在经历3倍Hello时间*time factor(华为为18S)后将BP端口变为DP,并且发送Proposal置位的BPDU进行P/A机制的协商,由于LSW3的G0/0/1接口为AP,不会回复BPDU,所以导致LSW2的P/A协商失败,进入传统的收敛装填,30S后进入Forwarding装填,所以为18+30=48S
④ 新根桥出现:
注1:拓扑变更的原则为:
a)原先为Forwarding状态的端口变为Forwarding状态的端口,立刻转变为Forwarding
b)原先为Discarding状态的端口变为Forwarding状态的端口,进入转发延迟或等到对端发送Alternate置位的Configuration BPDU进行确认后进入Forwarding状态
注2:AP端口变为RP或DP只有收到新的AP交换机发送的Proposal置位的BPDU后才会进入Forwarding状态
如果网络中的AP端口变为DP或AP进入forwarding状态(最终状态),如果网络中新选举出的AP并没有达到收敛,此时如果老的AP直接进入转发状态,会造成环路,所以当AP变为DP或BP时,他会停留在Discarding状态,并一直等到新的AP交换机发送的Proposal置位的BPDU后才会进入Forwarding状态
a)网络稳定的情况下,SW5的优先级更高,成为了新的根桥
b)SW5的G0/0/2由RP变为DP,依旧为Forwarding状态
c)SWD的G0/0/3由AP端口变为DP端口,从Discarding状态变为Forwarding(最终状态),为了防止临时环路,依旧停留在Discarding,并从G0/0/3端口发送Proposal置位的Configuration BPDU进行P/A协商
d)SW4收到Proposal置位的BPDU后,发现更优的Configuration BPDU,于是执行同步过程,除G0/0/3端口都变为Discarding状态,将E0/1由原来的DP变为RP,并依旧保持Forwarding状态
e)此时SW4和旧根桥SW3进行P/A机制的协商,SW4发送Proposal置位的Configuration BPDU,SWA发现SWC发送的Configuration BPDU(SWD的BPDU)优于自身,执行同步过程,发送Agreement置位的BPDU进行回复,SWC收到后,将E0/2变为Forwarding状态,并继续向上游发送Agreement置位的BPDU,此时SWD会将E0/1变为Forwarding状态