stp,rstp,mstp的区别

标题一. STP:生成树协议

STP 的基本概念: STP (Spanning Tree Protocol)是 IEEE 802.1D 定义的一种避免环路的协议。它的核心思想是通过阻塞部分冗余链路,使网络形成一个无环路的树形结构。

工作原理:

  • 根桥选举: 通过比较桥 ID(Bridge ID),选择一个根桥(Root Bridge)。

  • **路径成本计算:**非根桥通过计算到达根桥的最短路径来确定自己的根端口(Root Port)。

  • 指定端口选举: 每个非根桥的指定端口(Designated

    Port)负责向下转发数据。

  • 阻塞端口: 非指定端口进入阻塞状态,防止环路。

五种端口状态:

  • Disabled(禁用): 端口被关闭。
  • Blocking(阻塞): 阻止数据流通,只接收 BPDU
  • Listening(监听): 监听BPDU,但不学习 MAC 地址
  • Learning(学习): 学习 MAC 地址,但不转发数据
  • Forwarding(转发):正常转发数据。

缺点:

  • 收敛速度慢(30-50 秒)。
  • 只支持单一 VLAN 的生成树,无法实现多 VLAN 优化。

二. RSTP:快速生成树协议

基本概念 :RSTP(Rapid Spanning Tree Protocol) 由 IEEE 802.1w 定义,是对 STP 的增强版。RSTP 通过优化端口状态转换,提高了网络的收敛速度,通常可以在 1-2 秒内完成收敛。

主要特点:

  • 引入替代端口(Alternate Port): 作为备选路径,在根端口失效时迅速接替。
  • 引入备份端口(Backup Port): 提供冗余连接,防止链路失效。
  • 直接进入 Forwarding 状态: 端口可以直接进入 Forwarding 状态,无需经过 Listening 和 Learning 阶段。

端口角色:

  • Root Port(根端口): 到达根桥的最优路径端口。
  • Designated Port(指定端口): 为下游设备提供转发服务的端口。
  • Alternate Port(替代端口): 备选路径,替代根端口。
  • Backup Port(备份端口): 备份指定端口,提供冗余。

优点:

  • 收敛速度快(通常在 1 秒内完成)。
  • 端口可以直接进入 Forwarding 状态,优化数据转发路径。

三. MSTP:多生成树协议

MSTP 的基本概念 : MSTP(Multiple Spanning Tree Protocol) 由 IEEE 802.1s 定义,可以将不同的 VLAN 绑定到不同的生成树实例中,实现多 VLAN 的负载均衡和环路防护。

MSTP 的关键特性:

  • MST 区域: 多个交换机构成一个 MST 区域,共享相同的 MST 配置。
  • 实例映射: 将不同 VLAN 映射到不同 MST 实例(MSTI)。
  • 多实例负载均衡: 通过不同 MST 实例实现流量分担,提高带宽利用率

**MSTP 的三种生成树: **

  • CIST(Common and Internal Spanning Tree): 负责管理 MST 区域间的生成树。
  • MSTI(Multiple Spanning Tree Instances): 每个实例维护各自的生成树。
  • IST(Internal Spanning Tree): MST 区域内部的默认生成树实例。

优点:

  • 允许 VLAN 进行流量分担,优化带宽。
  • 提供跨区域的生成树管理。

四. STP、RSTP 和 MSTP 的核心区别

五. 常见配置示例

STP 配置

bash 复制代码
# 启用 STP
[Switch] stp enable

RSTP 配置

bash 复制代码
# 启用 RSTP
[Switch] stp mode rstp

MSTP 配置`

bash 复制代码
# 启用 MSTP
[Switch] stp mode mstp
[Switch] stp region-configuration
[Switch-mst-region] region-name Network
[Switch-mst-region] revision-level 1
[Switch-mst-region] instance 1 vlan 10 20
[Switch-mst-region] active region-configuration

下面做出三种STP协议的不同场景

STP

bash 复制代码
[H3C]stp mode stp
bash 复制代码
display stp
bash 复制代码
display stp brief

PING测试然后阻塞一个端口


端口角色变化


15个丢包,每个大概2s,一共30s恢复正常

当端口重新启用会发生什么


又丢了15个包。30s重新进行端口角色变化,网络收敛

当电脑端口断掉又接上

也会进行网络收敛


所以Rstp能完美解决这个问题

RSTP

bash 复制代码
[H3C]stp mode Rstp
bash 复制代码
display stp
bash 复制代码
display stp brief

当down掉端口会发生什么

没有变化,pa机制,解决了网络收敛慢的问题

边缘端口

接口变成边缘端口,在终端写下这个命令

bash 复制代码
[H3C-GigabitEthernet1/0/1]stp edged-port

MSTP

对不同vlan流量进行负载均衡

bash 复制代码
<H3C>dis stp region-configuration
bash 复制代码
SW1
#
vlan 2 to 3
#
stp region-configuration
 region-name hzxdsg
 instance 2 vlan 2
 instance 3 vlan 3
 active region-configuration
#
 stp instance 2 root primary
 stp instance 3 root secondary
 stp global enable
#
interface GigabitEthernet1/0/1
 port link-mode bridge
 port link-type trunk
 port trunk permit vlan 1 to 3
 combo enable fiber
#
interface GigabitEthernet1/0/2
 port link-mode bridge
 port link-type trunk
 port trunk permit vlan 1 to 3
 combo enable fiber
 
#
interface GigabitEthernet1/0/48
 port link-mode bridge
 port link-type trunk
 port trunk permit vlan 1 to 3
 combo enable fiber

#

```bash
bash 复制代码
SW3-SW4
#
interface GigabitEthernet1/0/1
 port link-mode bridge
 port access vlan 2
 combo enable fiber
 stp edged-port

SW2-SW4类似配置

bash 复制代码
DIS STP root--查看跟端口
bash 复制代码
dis stp brief
bash 复制代码
 stp instance 2 root primary


PC1 ping PC2---47号端口有数据包,48号没有

但把接口vlan变为3

就走的另外一条流量路径

当把48号端口down,流量会跑到47号端口

当四台设备 region-name名字不同时,会出现master状态,出现多域状态

修改同意就恢复了

相关推荐
BingoGo1 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack1 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
Sinclair3 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
JaguarJack3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo3 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
Rockbean4 天前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek
茶杯梦轩4 天前
CompletableFuture 在 项目实战 中 创建异步任务 的核心优势及使用场景
服务器·后端·面试
JaguarJack4 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel