一、RSTP( Rapid Spanning Tree Protocol, 快速生成树)
1、背景:
RSTP从STP发展而来,具备STP的所有功能,可以兼容stp运行
2、RSTP与STP不同点
(1)减少端口状态
STP: disabled\blocking\listening\learning\forwarding
RSTP:
discarding:不发送配置BPDU,不进行MAC地址学习,不收发数据
learning:发送配置BPDU,进行MAC地址学习,不收发数据
forwarding:发送配置BPDU,进行MAC地址学习,收发数据
(2)增加端口角色
STP: 指定端口、根端口、阻塞端口
RSTP:
根端口:
指定端口:
Alternate端口:替代端口,根端口的备份
Backup端口:备份端口,指定端口的备份
总结:有替代端口后,就算网络拓扑发生变化,也不会发生重新选举STP的情况,白白浪费30秒
(3)BPDU格式不同
RSTP中:
协议版本ID变为2;
BPDU type变为2;
使用了Flag字段的全部8位,而STP只使用了0号和7号两位;
增加version 1 length字段;(为了兼容STP)

(4)BPDU处理方式不同
每台交换机都能从指定端口发出RST BPDU,发送周期为hello time。不需要等待来自根桥的RST BPDU
BPDU老化时间(max age)为3个连续的hello time时长;
阻塞状态收到低优先级RST BPDU的处理:会立即做出回应

分析:当SWB和SWA的链路down时,SWB就暂时收不到来自根桥的RST BPDU,此时它认为自己是根桥。会向SWC发送RST BPDU告知自己是根桥,SWC收到后就很惊讶,明明根桥好着呢,然后会向SWB发送RST BPDU告知它,SWA是根桥。这就是阻塞状态收到低优先级RST BPDU的处理:会立即做出回应;
(5)当网络拓扑发生变化时,RSTP可以更快地恢复网络连通性
3、RSTP的快速收敛机制
(1)边缘端口机制
直接与终端端口相连的端口
直接进入转发,无需延时,不触发拓扑的转变,不会成环;
收到BPDU时,转变成非边缘端口,重新参加stp计算。

(2)根端口快速切换
根端口故障后,如果新的根端口对端的指定端口处于转发状态,则新的根端口立即进入转发状态,不需要向stp一样等30秒切换时间
(3)指定端口的快速切换--P/A机制
握手请求报文:proposal
握手回应报文:agreement

sw1新增链路或故障链路恢复,指定端口进入转发状态前,向对端sw2发送proposal报文(把P位置位为1的BPDU报文);
sw2收到proposal报文后,立刻进行同步操作,即把除了边缘端口和收到p置位的BPDU报文端口外,其他所有端口阻塞掉,同时防止临时环路;
同步完成后,向对端sw1发送Agreement报文;
收到Agreement报文后,sw1的指定端口进入转发状态;
sw2上被同步阻塞的端口继续进行P/A流程,直至整个网络收敛
bash
【h3c】stp global enable 全局模式下,开启STP功能
【H3c-ethernet0/1】undo stp enable 如果确定某个端口不会存在环路,就可关闭该接口的STP功能
[h3c]stp mode{stp|mstp|rstp|pvst} 配置生成树的模式
【H3c-ethernet0/1]stp edged-port enable 配置边缘端口
【H3c-ethernet0/1]stp cost cost值 配置端口的COST值
【h3c】stp priority 优先级值
【h3c】stp pathcost-standard {dot1d-1998|dot1t|legacy} 改端口的开销标准
【h3c】stp timer hello 配置hello时间
hello time时间过长会造成,生成树计算消耗,对链路故障迟缓
hello time时间过短,会造成频繁发送配置消息,加重CPU和网络的负担
【h3c】stp timer max-age 时间
max age时间过长会造成,对链路故障迟缓,不能及时被发现;
max age时间过短会造成,在网络拥塞的时候交换机误认为链路故障,造成频繁的生成树重新计算;
【h3c】stp timer forward-delay 时间
时间过长会造成,生成树收敛太慢;
时间过短会造成,在拓扑改变的时候,引入暂时的路径环路;