STP协议概述、STP工作原理、STP拓扑计算


文章目录

  • 一、广播风暴的产生
  • 二、STP概述
    • [2.1 环路的根源与危害](#2.1 环路的根源与危害)
    • 如何预防单点故障和单链路故障
    • [2.2 增加冗余/备份链路后,引发的新的问题](#2.2 增加冗余/备份链路后,引发的新的问题)
    • [2.3 如何解决因二层环路所导致的广播风暴](#2.3 如何解决因二层环路所导致的广播风暴)
  • 三、STP协议
    • [3.1 STP是什么](#3.1 STP是什么)
    • [3.2 STP的作用(如何实现逻辑无环,如何防止广播风暴)](#3.2 STP的作用(如何实现逻辑无环,如何防止广播风暴))
    • [3.3 STP的工作原理](#3.3 STP的工作原理)
      • [3.3.1 STP中的角色](#3.3.1 STP中的角色)
      • [3.3.2 STP工作的步骤](#3.3.2 STP工作的步骤)
      • [3.3.3 步骤1:选举根网桥](#3.3.3 步骤1:选举根网桥)
      • [3.3.3 步骤2:选举根端口](#3.3.3 步骤2:选举根端口)
      • [3.3.3 步骤3:选举指定端口](#3.3.3 步骤3:选举指定端口)
    • [3.4 STP选举步骤总览](#3.4 STP选举步骤总览)
    • 为什么根端口跟指定端口的选举规则不一样呢
  • STP配置
  • 实验

一、广播风暴的产生

广播风暴

广播帧在闭环路径中被交换机不断泛洪,形成无限循环 是典型的网络二层环路导致的广播风暴。其核心原因在于交换机的工作原理与物理环路的拓扑结构之间产生了根本性冲突。


二、STP概述

生成树协议(STP)​ 之所以必不可少,核心原因在于它巧妙地解决了网络可靠性与环路隐患之间的矛盾。


2.1 环路的根源与危害

为了提升网络的可靠性,我们通常会在网络设备(如交换机)之间部署冗余链路。然而,这种物理上的环路会带来三个致命问题:

  • 广播风暴:交换机有一个基本工作特性:当它收到一个广播帧或未知单播帧时,会从除接收端口以外的所有端口转发出去。在存在物理环路的网络中,这样的帧会在交换机之间循环传递,并且被不断复制,短时间内就会耗尽网络带宽和设备的CPU资源,导致网络瘫痪。
  • MAC地址表震荡:由于同一个数据帧会通过不同的路径多次到达交换机,交换机会不断更新同一MAC地址所对应的端口信息。这使得MAC地址表项在多个端口间频繁跳动,变得极不稳定,严重影响了交换机正常的帧转发功能 。
  • 数据帧重复:终端设备可能会多次收到同一个数据帧,这会导致上层协议处理混乱。

简单来说,STP就像一位聪明的交通指挥。它承认网络中存在多条道路(冗余链路)是好事,但为了避免车辆(数据帧)不停绕圈造成大堵车(广播风暴),它会智慧地设置一些临时的"禁行"标志(阻塞端口),只保留最佳路线。一旦主路发生事故(链路故障),它能立刻撤掉标志,启用备选道路,从而兼顾了无环路的通畅性和故障时的韧性。



如何预防单点故障和单链路故障


2.2 增加冗余/备份链路后,引发的新的问题


2.3 如何解决因二层环路所导致的广播风暴


三、STP协议

3.1 STP是什么

STP : Spanning Tree Protocol 生成树协议

STP(生成树协议)是一个用于在交换网络中防止环路的协议,同时它还能在链路故障时提供备份路径。

它的核心价值是:让你能够放心地搭建带有冗余链路的网络,而不用担心广播风暴等问题。

为什么叫 生成树

想象一下,你的交换网络有很多台交换机,它们之间通过多条链路连接,形成一个复杂的、网状的拓扑,就像一团交错的树枝。

STP协议运行后,它会做一件事:在这团"乱麻"中,通过逻辑上阻塞一些端口,"修剪"掉多余的链路,从而构建出一棵清晰的、从树根到树叶都只有唯一路径的"树"。


3.2 STP的作用(如何实现逻辑无环,如何防止广播风暴)


3.3 STP的工作原理

3.3.1 STP中的角色

STP的角色分为设备角色和端口角色两大类。

核心要点总结

3.3.2 STP工作的步骤

3.3.3 步骤1:选举根网桥

1、BID

比较网桥ID(BID),选择网桥ID值最小的交换机为根桥

BID:优先级+MAC(总长度8字节)





交换机上查看网桥ID(BID)

bash 复制代码
display STP

3.3.3 步骤2:选举根端口

1)每个非根交换机上选举1个根端口--(RP-根端口)

bash 复制代码
非根交换机到根交换机的根路径开销值最小的端口(根路径成本最小)
- 开销cost (到达根交换机的路径成本)
默认值
100Mbit 端口 【200000】
1000Mbit (1G)端口 【20000】
10000Mbit(10G)端口 【2000】

2)BID:优先级+MAC(对端设备)

3)PID(端口ID):优先级+端口号(对端设备的)

端口优先级:默认值128 范围:0-240 步长值:16

SW2上A、B两个口都是千兆带宽,所以到根桥的开销都是20000(一样的)

A与根桥是直接相连的

"两个口的开销都是 20000"‍ 指的是 每个端口的 Port Cost(因为都是千兆)。


根端口(Root Port)选举使用的是真正的 累计根路径成本(Root Path Cost)

计算公式

bash 复制代码
累计根路径成本 = 本端口的 Port Cost  +  从对端收到的根路径成本(Root Path Cost)

具体到本拓扑的累计成本计算


为什么 SW2 不能把自己 1 口的 BPDU 当作根端口的来源?

为什么 SW2‑1(根端口)收到的 BPDU 不会直接转发到 SW2‑2?


3.3.3 步骤3:选举指定端口

关键点:一个网段上必须有且只有一个指定端口,其余端口(如果不是根端口)则被阻塞。

规律:根桥的接口都是指定口

  • 指定端口:在同一段链路(segment)上唯一负责把根桥信息(BPDU)向该段的其它交换机传播的端口。
  • 根端口:每台非根桥上唯一一条通向根桥的最优路径端口。根端口只接收 BPDU,不转发(除 TCN),而指定端口负责转发。

详细步骤分解:




===================================================================================


3.4 STP选举步骤总览

核心目标:打破循环

STP的唯一目的就是防止网络形成环路。它通过阻塞一些端口来实现。根端口和指定端口就是那些不被阻塞的"好端口",选举就是为了决定谁好谁坏。


第一步:必须先确定的"老大"------根桥

  • 是什么:整个网络里桥ID最小的交换机就是根桥。
  • 桥ID = 桥优先级 + MAC地址。先比优先级,数字小赢;优先级一样,比MAC地址,小赢。
  • 记住:根桥上的所有端口,都是指定端口,永远不会被阻塞。 这是最重要的特性。

逻辑:先把"老大"定下来,所有决策都以它为中心。


第二步:选举根端口 ------ "每个小弟找一条回家的最佳路径"

1. 选举范围是谁?

  • 除了根桥(老大)以外,其他每一台交换机(小弟),都必须选出一个,且只能选出一个根端口。
  • 根端口的方向是指向根桥的。

2. 选举规则(三步走,必须按顺序)
规则一:比"距离"

  • 看哪个端口收到的BPDU里,到根桥的路径开销值最小。
  • 逻辑:你家有前门和后门,从前门到公司距离100米,从后门到公司距离200米,你每天上班肯定走前门。这个"前门"就是根端口。
  • 关键:比的是从端口收到的那个开销值。

规则二:如果距离一样,比"谁告诉你的"

  • 如果两个端口到根桥的距离一样,比如前门和后门都离公司100米。这时就看哪条路是"更牛的人"告诉你的。
  • 比较发送BPDU过来的那台交换机的桥ID,桥ID小的更"牛"。
  • 逻辑:一条路是部门经理告诉你的,另一条路是CEO告诉你的,你肯定信CEO指的这条路。

规则三:如果告诉你的也是同一个人,比"他用的哪个门"

  • 这种情况很少见,比如你两个门都连着CEO家。这时,CEO从他家的A门(端口)和你说话,从他家的B门(端口)和你说话。
  • 比较对方(发送BPDU)的那个端口的端口ID,端口ID小的获胜。
  • 逻辑:CEO从他的"办公室正门"和你联系,比从他的"厨房后窗"和你联系更正式,你肯定以正门为准。

根端口选举一句话总结:在每个小弟身上,选一个离家(根桥)最近的门。如果一样近,选一个最牛的人指的门。如果指路的是同一个人,选他那个最正经的门。


第三步:选举指定端口 ------ "每条街上选一个管事的人"

1. 选举范围是谁?

  • 网络中的每一个物理网段(每条"街")。比如,一条网线连着两台交换机,这就是一个网段。
  • 每个网段必须选出一个,且只能选出一个指定端口。

2. 选举规则(同样是三步走,顺序不变)


为什么根端口跟指定端口的选举规则不一样呢




总结与对比:为什么规则不一样?

到根桥的路径开销 (收到的) 跟 本机的根路径开销 (自身的) 区别

bash 复制代码
我的本机根路径开销 = 我收到的根路径开销 + 我到发送者(上游交换机)的端口成本




STP配置

修改默认优先级,可以调整根桥


实验

相关推荐
jenchoi4132 小时前
【2025-11-15】软件供应链安全日报:最新漏洞预警与投毒预警情报汇总
前端·网络·安全·网络安全·npm·node.js
white-persist3 小时前
二进制movl及CTF逆向GDB解析:Python(env)环境下dbg从原理到实战
linux·服务器·开发语言·python·网络安全·信息可视化·系统安全
侯小啾3 小时前
在主机使用命令行扫描网络IP
网络·网络协议·tcp/ip
Bruce_Liuxiaowei3 小时前
HTTPHTTPS探测出网技术详解:跨平台命令与实战方法
运维·windows·安全·网络安全
在路上看风景4 小时前
5.3 ISP之间的路由选择: BGP
网络
qyhua4 小时前
如何成功申请 Let’s Encrypt 证书:解决 HTTP-01 验证 403 错误的完整指南
网络·网络协议·http
此生只爱蛋4 小时前
【Linux】HTTP不打烊
网络·网络协议·http
Kapibalapikapi14 小时前
家用无线网络设置方案
网络
老蒋新思维14 小时前
借陈修超之智,搭建 AI 与 IP 的创新增长桥梁|创客匠人
网络·人工智能·网络协议·tcp/ip·ip·知识付费·创客匠人