**rstp:**快速生成树协议 ,加快了stp收敛。RSTP 删除了 3 种端口状态,新增加了 2 种端口角色。
1、新增端口角色
Alternate 端口和 Backup 端口。
alternate端口学习到其他端口BPDU报文而阻塞的端口,也是根端口的备份端口。
backup端口就是学习到自己发送的BPDU报文而阻塞端口、也是指定端口的备份端口。
2、端口状态
alternate、backup端口只有discarding状态。根端口、指定端口都有forwarding、learning、discarding状态。
3、配置BPDU处理发生
在拓扑稳定后,无论非根桥是否收到根桥传来的BPDU报文,非根桥都在hello tiemer 规定时间发送报文,完全由报文自主控制。
如果一个端口连续 3 个 Hello Time 时间内没有收到上游设备发送过来的配置 BPDU,那么该设备认为与此邻居之间的协商失败
处理次等 BPDU
该改端口的BPDU优先级高于收到的BPDU报文,就直接丢弃,并通告自身RST BPDU,上游设备收到 RST BPDU时会跟新自己的RST BPDU。rstp不在依赖定时器解决拓扑。
1、边缘端口(stp edge-port ):rstp 新提出的一种端口,边缘端口会发送bpdu,防止网络中产生环路问题。
1、收到自己发出的bpdu会block
2、收到其他交换机发送的bpdu,参与stp计算,破坏stp生成树,又会产生临时环路的风险。
3、某些厂家的交换机如果不支持stp协议,或者关闭stp协议,这些交换机是不会透传bpdu的,导致环路。
4、边缘端口发送bpdu能够防环,但不能实现所有场景都防环
2、根端口快速切换机制
当根端口失效,那么alternate端口就会立即成为根端口,进入forwarding状态。
3、P/A机制
p/a在点到点全双工的链路上让DP和RP端口进入到转发状态,同时也不会产生临时环路。
P/A机制使用的前提
1、DP端口处于discarding
2、点到点全双工链路。
3、dp端口对端是rp端口
P/A过程
dp端口处于discarding状态时,发送(p=1.a=1)bpdu
rp收到dp的(p=1,a=1)的bpdu后,会进行同步位置。
同步位置:discarding掉所有的非边缘端口
边缘端口,ap端口由于不会引人额外环路,默认已经同步位置。
同步位置完成之后,rp发送(p=0 a=1 bpdu)并将端口置于转发状态
上游dp收到rp的(p=0 a=1)bpdu后,认为下游的rp已经处于无环拓扑并转发状态,于是自己的端口状态立即到转发状态。
一旦 P/A 协商不成功,指定端口的选择就需要等待两个 Forward Delay,协商过程与 STP 一样。
4、RSTP的拓扑变化机制
在 RSTP 中检测拓扑是否发生变化只有一个标准:一个非边缘端口迁移到 Forwarding 状态。
一旦检测到拓扑发生变化,将进行如下处理:
1、
为本交换的所有非边缘指定端口启动一个 TC While Timer,,时间为hello time的2倍,清空状态发生变化的端口上学习到的 MAC 地址。由这些端口向外发送 RST BPDU,其中 TC 置位
2、
收到TC BPDU 的交换机清空所有端口的mac地址,除了边缘端口和收到 STP BPDU的交换机的端口。(正向从这个接口学习到mac地址,反向从这个接口的后面删除mac地址)
3、
并继续防洪 tc bpdu,实现全网mac地址表的更新。
RSTP相比STP来说,STP有两种类型的报文格式:配置BPDU和TCN BPDU。而RSTP只有RST BPDU一种,与STP的格式基本一致,最大的变化在于BPDU flags字段做出改变,在STP的FLAG标记中只用了TCA和TC,而RSTP中原先空余的6位全部有了新的定义。
以下为STP报文
以下为RSTP报文
字段 作用
TCA 保留但无用,因为在RSTP中并没有TCN BPDU,取值永远为0
Agreement PA机制中的同意位
Forwarding Forwarding标志位,表示端口处Forwarding状态
Learning Learning标志位,表示端口处于Learning状态
Port role 角色位2bit组成 ,有四种组合。00 :未定义;01:AP/BP 替代端口/备份端口;10:RP根端口;11:DP指定端口
Proposal PA机制中的提议位
TC RSTP中的拓扑改变通知
官方文档
优秀文章