当前位置: 首页 > web >正文

06.《STP 基础原理与配置详解》

STP(生成树协议)

文章目录

  • STP(生成树协议)
      • STP基本介绍
      • 二层环路的危害
      • STP的版本分类
      • STP的关键报文
        • BCDU报文基本格式
      • STP选举三要素
        • 实验案例
          • **实验拓扑**
          • **实验流程**
          • **实验流程详解**

STP基本介绍

作用:在二层网络中,防止环路问题(可以实现多链路之间的路径备份)

原理:通过将多条链路中的某个或者某些接口进行逻辑上阻塞(阻塞不代表设备接口故障,而是不转发业务数据),选择一条最优路径转发业务数据,从而避免环路。

STP 的核心思路:“阻塞冗余链路,保留最优路径”

二层环路的危害

  1. 广播风暴:在设备之间发送大量广播报文,使其在网络中无限循环,占用带宽,导致网络瘫痪。
  2. 重复帧:在设备直接出现大量相同数据帧,使其同一数据帧被多次接收,造成数据重复和处理负担。
  3. MAC 地址漂移:同一 MAC 地址从不同端口学习到,导致 MAC 表不稳定。

判断环路现象:交换机所有接口指示灯频繁闪烁。可通过逐一拔插网线的方式定位环路链路。

STP的版本分类

版本标准特点
STPIEEE 802.1D标准生成树,收敛慢(约30秒)
RSTPIEEE 802.1W快速生成树,收敛速度快
MSTPIEEE 802.1S多实例生成树,华为设备默认使用

修改STP命令

[SW1]stp mode ?  mstp  Multiple Spanning Tree Protocol (MSTP) mode  rstp  Rapid Spanning Tree Protocol (RSTP) mode  stp   Spanning Tree Protocol (STP) mode

验证:(默认状态为STP)

image-20250830211838416

STP的关键报文

STP 设备之间通过 BPDU (Bridge Protocol Data Unit,桥协议数据单元)报文交换信息,就像网络中的 “通信协议”。

BCDU报文基本格式

参考华为视图:

image-20250830212333855

部分字段说明

  • 配置 BPDU(0x00):由根桥发送,用于选举网络中的关键角色(根桥、根端口、指定端口)。
  • TCN BPDU(0x80):拓扑变化通知报文,当网络结构发生变化(如链路故障)时发送。
  • Flags:网络拓扑变化标志,最低为=TC,最高位=TCA。
  • Root Identifier:根桥的 ID(优先级 + MAC 地址)。
  • Root Path Cost:本端口到根桥的累计路径开销(类似 “距离”)。
  • Bridge Identifier:发送该报文的交换机的 ID。
  • Port Identifier:发送该报文的端口 ID(优先级 + 端口编号)。
  • Mseeage Age:该BPDU的消息年龄,配置BPDU每经过一台交换机,消息年龄加1,最多20台
  • MAX Age:BPDU 的最大存活时间(默认 20 秒)。
  • Hello Time:发送 BPDU 的时间间隔(默认 2 秒)。
  • Forward Delay:侦听和学习状态的持续时间(默认 15 秒)。

抓包解析:

image-20250830213243212

STP选举三要素

实验案例
实验拓扑

image-20250830214138868

实验流程
  1. 选举根桥(整个网络中唯一的 “核心交换机”);
  2. 非根桥交换机选举根端口(离根桥最近的端口);
  3. 每条链路选举指定端口(负责转发数据到下一级的端口);
  4. 剩余未被选中的端口被设置为阻塞状态,实现无环网络。
实验流程详解

1、根桥(Root Bridge)选举

  • 在一个二层网络中,最优的交换机就是根桥(Root),选举一个根桥。

  • 所有交换机都是STP的桥,每个交换机有一个桥ID(Bridge ID),由系统优先级 + MAC 地址组成。

  • 系统优先级默认为 32768,步长为 4096,范围 0–61440

  • 选举规则:桥ID数值越小越优先(先比优先级,再比 MAC 地址)。

查看交换机mac地址Dis int g0/0/1(缩写)

image-20250830214128958

强制设置某交换机为根桥:(SW2为例)

修改stp的优先级:stp priority 4096

[SW2]stp priority 4096

image-20250830214200134

2.根端口(Root Port,RP)选举

  • 每台非根桥交换机有且只有一个根端口,用于接收来自根桥的最优 BPDU。
  • 端口ID = 端口优先级(默认128,步长16,范围0–240) + 端口编号。
  • 每一台非根桥交换机选举且选举一个RP端口。

RP选举规则(按顺序比较)

1.端口累计到达根桥开销之和比小(默认STP一条链路开销20000

image-20250830214224563

2.发送BPDU的交换机桥ID数值比小

image-20250830214236058

3.发送BPDU的交换机端口ID数值比小

image-20250830214245757

4.设备本地端口ID数值比小

image-20250830214254941

3、指定端口(Designated Port, DP)选举

  • 交换机每一个端口都拥有端口ID。

  • 端口ID = 端口优先级(默认128,步长16,范围0–240) + 端口编号。

  • 用于转发最优的BPDU。

  • 根桥上的所有接口都是DP。

  • 交换机(桥)之间的每一条链路选举一个DP。

DP选举规则:(与RP选举规则一致)

①端口累计到达根桥开销之和比小(默认STP一条链路开销20000)。

②发送BPDU的交换机桥ID数值比小。

③发送BPDU的交换机端口ID数值比小。

STP端口5个状态

状态说明
Disabled(禁用)端口未启用或物理关闭
Blocking(阻塞)不转发数据,接收 BPDU
Listening(侦听)不转发数据,接收并发送 BPDU,参与拓扑计算
Learning(学习)不转发数据,开始学习 MAC 地址
Forwarding(转发)正常转发数据帧

华为文档图例:

image-20250830214313920

如涉及版权问题,请联系作者处理!!!

http://www.xdnf.cn/news/19318.html

相关文章:

  • DFS 回溯 【各种题型+对应LeetCode习题练习】
  • 突发,支付宝发布公告
  • 一体化步进伺服电机在汽车线束焊接设备中的应用案例
  • LZ4 解压工具(WPF / .NET 8)说明书
  • 【金仓数据库产品体验官】KingbaseES-ORACLE兼容版快速体验
  • 深入理解drv_spi.c后,完全正向亲手移植rt-thread的drv_spi.c驱动 (基于stm32h750 artpi)
  • Java函数式编程之【流(Stream)性能优化】
  • WPF和WinFrom区别
  • 计算机毕设 java 阿歹果园养鸡场管理系统 基于 SSM 框架的果园养鸡场全流程管理系统设计与实现 Java+MySQL 的养殖生产与进销存一体化平台开发
  • 汽车专卖店管理系统的设计与实现(代码+数据库+LW)
  • Langflow核心技术学习笔记
  • 探索 XGBoost 与 LightGBM 的差异:哪个更适合你的项目?
  • 基于TCN-BiLSTM-SelfAttention神经网络的多输入单输出回归预测【MATLAB】
  • 力扣(LeetCode) ——645. 错误的集合(C语言)
  • 整体设计 的语言设计:通用模型语言的标准模板语言的规格模式语言(搜狗汪仔答问)
  • GooglePlay提审问题记录
  • 国家统计局数据分析01——机器学习
  • wpf之附加属性
  • Odoo与Django 的区别是什么?
  • ADFS 和 OAuth 的区别
  • 龙迅#LT7641GX适用于四路HDMI2.1/DP/TPYE-C转HDMI2.1混切应用,分辨率高达8K60HZ!
  • 线性表和顺序表
  • 数据存储——数据库
  • 安卓开发---SimpleAdapter
  • ansible的playbook练习题
  • shell学习(二)
  • 【完整源码+数据集+部署教程】传送带建筑材料识别系统源码和数据集:改进yolo11-AFPN-P345
  • 网站酷炫换皮肤?——PC 端 H5 换肤方案实战分享
  • PCIe 6.0 TLP结构解析:深入理解事务层数据包的设计与实现
  • IDEA编译报错:Error:(3, 28) java: 程序包com.alibaba.fastjson不存在