RSTP 产生的背景
STP 的不足之处: ➢ 恢复时间长:端口从阻塞状态进入转发状态必须经历至少 2 倍的 Forward Delay 时间(即 Listening 和 Learning 状态所经历的时间),所以网络拓扑结构改变之后至少需要两倍的 Forward Delay 时间,才能恢复 连通性。 ➢ 如果网络中的拓扑结构变化频繁,网络会频繁的失去连通性,这样用户将无法忍受。 RSTP(Rapid Spanning Tree Protocol,即快速生成树协议)的特点: ➢ RSTP(快速生成树协议)是从 STP 发展而来,实现的基本思想和 STP 一致; ➢ RSTP 具备 STP 的所有功能; ➢ RSTP 改进的目的就是当网络拓扑结构发生变化时,尽可能快的恢复网络的连通性。
RSTP 的不足
详见 MSTP1
RSTP(包括 STP)在计算拓扑时,是以交换机为基本单位,与 VLAN 毫无任何关系,那么在特定的拓扑结构下,就会出现如下问题:
总会有一个接口被关闭
SW1-SW4 运行 RSTP,在 SW1 和 SW2 间的链路上某端口 Discarding,此时会产生如下的情况:
- 无法负载均衡:由于 SW3 和 SW4 不包含 vlan10,无法转发 vlan10 的数据包,这样 SW1 的 vlan10 就无法与 SW2 的 vlan10 进行通讯,只能做到链路的冗余备份,无法做到根据 VLAN 流量来进行负载均衡;
- 二层次优路径:右图中,假设 SW3 和 SW4 包含 vlan10,且 vlan10 的网关在 SW1 上,那么 vlan10 到达网关的路径是次优的,最优路径应该是 SW 直接到达 SW1
RSTP 对 STP 的改进-端口角色
RSTP 的端口状态:==根端口、指定端口、替代端口、备份端口。==
➢ 根端口:和 STP 中的==概念一致==,是==非根桥到达根距离最近的端口==; ➢ 指定端口:和 STP 中的==概念一致==,指定端口是设备发出 BPDU 的接口,每条链路上必定==有且只有一个指定端口==;
➢ 替代端口:Alternate Port,替代根端口(替代 RP),替代端口是==从其他网桥接收到次优 BPDU 的端口==,它提供了从本地到达根桥的另一条路径;
➢ 备份端口:Backup Port,备份指定端口(备份 DP),由于学习到自己发出的 BPDU 报文而阻塞的端口,它提供了从根桥到达相应链路的另一条备份路径。 ➢ RSTP 中的替代端口 + 备份端口=STP 中的 Block 端口
BP 备份端口:【为指定端口做备份】本设备上收到自己发出的 BPDU 拥塞称为备份
AP 替代端口:【为根端口做替代】本设备上收到某个接口次优的 BPDU 拥塞称为替代
RSTP 对 STP 的改进-端口状态
RSTP 的三个状态
- ➢ Discarding:丢弃,不转发用户数据帧,不可以学习 MAC 地址;
- ➢ Learning:学习,不可以转发用户数据帧,但是可以学习 MAC 地址;
- ➢ Forwarding:转发,可以转发用户数据帧,可以学习 MAC 地址;
STP 端口状态 | RSTP 端口状态 | 端口在网络中的角色 |
---|---|---|
Forwarding | Forwarding | 根端口、指定端口 |
Learning | Learning | 根端口、指定端口 |
Listening | Discarding | 根端口、指定端口 |
Blocking | Discarding | Alternate 端口、Backup 端口 |
Disable | Discarding | Disable 端口 |
RSTP 对 STP 的改进-RST BPDU
- Message Type 字段:不再是 0x00,而是代表着 RSTP 的 0x02;
- Flag 字段,STP 中只有第 0、7 位占用,而在 RSTP 中,第 1-6 位也全部占用(如图)
RSTP 对 STP 的改进-快速收敛机制之端口切换
-
根端口快速切换:
- SW2 的 RP 端口异常 Down 掉
- 该设备上的 Alternate 端口(AP)将成为根端口,进入 Forwarding 状态;
- 因为通过这个 Alternate 端口所在的链路上,必然有个指定端口可以到达根桥
-
指定端口快速切换:
- SW3 交换机 DP 口异常 Down 掉
- 该设备上的 Backup 端口(BP)将成为指定端口,进入 Forwarding 状态;
- 因为 Backup 端口作为指定端口的备份,提供了另外一条从根桥到响应网段的路径
RSTP 对 STP 的改进-P/A 机制
-
P/A 机制,即 Proposal/Agreement 协商机制;
-
RSTP 通过 P/A 机制加快了上游端口进入 Forwarding 状态的速度;
-
在 RSTP 中,当一个端口被选举成为指定端口之后,会首先进入 Discarding 状态,再通过 P/A 机制快速进入 Forwarding 状态
- 在 STP 中为了避免环路,该端口至少要等待一个 Forwarding Delay 时间才能进入 Forwarding 状态
- 而 RSTP 通过阻塞自己的非根端口来避免环路,加快了上游端口进入 Forwarding 状态的速度
P/A 详解
- 在一个稳定的 RSTP 环境中,root 和 SW3 之间新增一条链路,RSTP 如何重新收敛?
- root 和 SW3 之间的端口成为指定端口,发送 RST BPDU;
- SW3 的 P1 端口收到了更优的 RST BPDU,马上意识到自己将成为根端口 而不是指定端口,马上停止发送 RST BPDU;
- root 的指定端口进入 discarding 状态,发送 proposal 置位的 RST BPDU
- SW3 收到 root 发来的 proposal 置位的 RST BPDU,开始将自己的所有端 口进入同步状态
- SW3 各端口同步之后,下游端口进入 discarding 状态,上游端口 P1 进入 forwarding 状态并向 root 返回 agreement 置位的 RST BPDU,作为对 proposal 的回应;
- root 收到 agreement 置位的 RST BPDU,是对自己刚刚发出的 proposal 的回应,于是指定端口马上进入 forwarding 状态
- ➢ SW3 下游链路的收敛过程和上述过程一致
RSTP 配置
选择 STP 模式为 RSTP(锐捷交换机默认为 RSTP);
启动生成树协议
配置优先级
Ruijie(config)#spanning-tree mode rstp
Ruijie(config)#spanning-tree
Ruijie(config)#spanning-tree priority ?
\<0-61440\> Bridge priority in increments of 4096 (default value: 32768)
MSTP
RSTP 的不足
详见 RSTP[^2]
RSTP(包括 STP)在计算拓扑时,是以交换机为基本单位,与 VLAN 毫无任何关系,那么在特定的拓扑结构下,就会出现如下问题:
总会有一个接口被关闭
SW1-SW4 运行 RSTP,在 SW1 和 SW2 间的链路上某端口 Discarding,此时会产生如下的情况:
- 无法负载均衡:由于 SW3 和 SW4 不包含 vlan10,==无法转发 vlan10 的数据包==,这样 SW1 的 vlan10 就无法与 SW2 的 vlan10 进行通讯,==只能做到链路的冗余备份==,==无法做到根据 VLAN 流量来进行负载均衡==;
- (无法走最优路径)二层次优路径:右图中,假设 SW3 和 SW4 包含 vlan10,且 vlan10 的网关在 SW1 上,==那么 vlan10 到达网关的路径是次优的==,最优路径应该是 SW 直接到达 SW1
MSTP 相当于对 vlan10 这个虚拟机开启生成树
MSTP
- MSTP 是在传统的 STP、RSTP 的基础上发展而来的新的生成树协议,==包含了 RSTP 的快速 Forwarding 机制。==
- MSTP 是==基于实例==来进行==无环拓扑计算==,既避免了环路的产生,也能基于 VLAN 实现数据转发的负载均衡。
经过计算,最终生成两棵生成树,不同 VLAN 的报文沿不同的路径转发,实现了负载分担
- Instance1 对应的生成树以 SW1 为根交换设备,转发 VLAN1、3、5、7 的报文
- Instance2 对应的生成树以 SW2 为根交换设备,转发 VLAN2、4、6、8 的报文
MSTP 相关概念-MST Region
↩
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于