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

二层环路避免-STP技术

二层环路避免-STP技术

回顾交换机的工作流程

在这里插入图片描述

在这里插入图片描述

交换机学习数据里面的MAC地址,并通过查找MAC地址表进行转发,如果没有,则广播并学习MAC地址。

LAN以太网的应用场景

在这里插入图片描述

环路引起的问题之一——广播风暴

在这里插入图片描述

在一个环路里面,如果交换机要广播发送数据包,那么交换机A和交换机B就会发生无限循环的现象,A广播给B,B又会广播回去。

环路引起的问题之二——交换机MAC地址表不稳定

在这里插入图片描述

PCA发送数据包给交换机A,交换机A会记录MAC地址和相对应的端口,当交换机A广播发送给B,B又会广播回来,而从E0/4收到B的广播包,源MAC还是PCA的MAc地址,但是端口却变成了E0/4,此时交换机就会刷新MAC的地址表,循环往复,MAC地址表会一直刷新,造成混乱。

环路的危害总结

  • 环路的现象
    • 交换机端口指示灯以相同的频率快速闪烁
    • 交换机MAC地址表震荡
  • 环路的危害——广播风暴
    • 链路堵塞
      • 广播报文在二层网络中不断泛洪,所有链路都被大量的广播报文充斥
    • 主机操作系统响应迟缓
      • 主机网卡收到大量的广播报文,操作系统调用大量的CPU进程资源来识别这些广播报文
    • 二层交换机管理缓慢
      • 大量二层协议广播报文需要二层交换机CPU处理,浪费大量资源,对正常的请求无法响应
    • 冲击网关设备的CPU
      • 对网关IP地址的ARP请求报文,经过环路的复制转发,不断的发送到网关设备,网关设备的CPU压力不断增大,甚至崩溃

生成树协议的概念及应用场景

  • STP(Spanning Tree Protocol,生成树协议)是用于在局域网中消除数据链路层逻辑环路的协议
  • 通过在桥之间交换BPDU(Bridge Protocol Data Unit,桥协议数据单元),来保证设备完成生成树的计算过程

在这里插入图片描述

STP的作用

在这里插入图片描述

阻塞某端口后

在这里插入图片描述

链路备份

在这里插入图片描述

802.1D生成树的原理

生成树工作原理

配置了生成树的交换机之间通过传递配置BPDU,比较报文中携带的参数,完成以下工作:

  • 在一组运行STP的交换机中选出一个网桥(Root Bridge)
  • 每个非根交换机选择一个根端口(Root Port RP)
  • 每个交换链路选择一个除根端口之外的转发端口——指定端口(Designated Port DP)
  • 堵塞其他(非根非指定端口即阻塞端口)端口

在这里插入图片描述

生成树基本计算过程-选举根交换机

在这里插入图片描述

比较网桥ID,ID越小,优先级越高,优先级最高的就是根交换机。

生成树基本计算过程-选举非根交换机的根端口

在这里插入图片描述

这个可以理解为:哪个端口离交换机越近,哪个端口就是根端口。

生成树基本计算过程-选举网段的指定端口

在这里插入图片描述

在A和B中,左下方的端口已经是根端口了,所以左上方的端口没有端口和他抢指定端口,A和C同理。

B和C的下方连接的是主机。主机是没有STP协议的,不会发送BPDU,所以也不会抢指定端口。

重点在B和C之间,也是直接比较网桥ID,B小,优先级高,那么B这边就是指定端口。C那边就是堵塞端口。

配置BPDU参数

网桥ID由交换机的优先级与MAC地址组成。

网桥优先级取值范围0-65535(默认32768),必须是4096的倍数

在这里插入图片描述


端口ID由发送端口的优先级与端口号组成。

端口优先级取值范围0-255(默认128),必须是16的倍数

在这里插入图片描述

端口ID一般用于这种情况:

在这里插入图片描述

交换机1的F0/1和F0/2抢指定端口,明显F0/1要小,所以是指定端口。


在这里插入图片描述

STP协议报文

在这里插入图片描述

BPDU的优劣

配置BPDU的比较

交换机遵循下面的比较原则,比较各个端口接收或缓存的BPDU,选择“最优”BPDU

  • 先比较根网桥ID
  • 如果根网桥ID相等,根路径开销越小越好
  • 如果根网桥和根路径开销相等,发送网桥ID越小越好
  • 如果根网桥ID、根路径开销和发送网桥ID相等,发送端口ID越小越好。

BPDU报文处理

  • BPDU在网络中的中继过程
    • 网络起始,STP启动,交换机都认为自己是根网桥,发送BPDU。

在这里插入图片描述

  • BPDU在网络的中继过程
    • 网络稳定,根网桥发送BPDU,其他交换机中继根网桥的BPDU。

在这里插入图片描述

  • STP端口判定
    • 选举根网桥,比较网桥ID,根网桥上的所有端口都是指定端口。
    • 选择根端口,依次比较根路径开销、发送方网桥ID、发送方端口ID。
    • 选择指定端口,依次比较根路径开销、发送方网桥ID、发送方端口ID。

在这里插入图片描述

STP端口状态描述

在这里插入图片描述

STP端口状态迁移

  • STP计时器

    • Hello Timer(Hello时间)

      • 根网桥发送配置BPDU的周期,默认为2秒。
    • Forward Delay(转发时延)

      • 配置BPDU传播到全网的最大时延,默认为15秒。
    • Message Age(消息老化时间)

      • 配置BPDU从根网桥生成开始,到当前为止所经过的时间。相当于存活时间。
    • Max Message Age(最大老化时间)

      • 批评者BPDU存活时间
      • STP默认为20秒。(10个Hello周期)

在这里插入图片描述

STP端口状态迁移

在这里插入图片描述

网络拓扑变化——STP网络收敛
  • 直接收敛与间接收敛

在这里插入图片描述

可以理解为影响一个交换机,就是直接收敛,影响两个或以上,那就是间接收敛。

STP基本配置

  • Cisco
    • Cisco交换机默认开启STP,只需要配置根网桥优先级和边缘端口

在这里插入图片描述

  • 华为/华三
    • 华三交换机默认关闭STP,只需要手工为每台交换机开启STP。
    • 开启STP后,默认协议为MSTP。

在这里插入图片描述

🧠 一、为什么需要STP?

⚠️ 以太网环路的危害

在以太网中,广播帧(如ARP请求)会被所有交换机转发,如果网络中有环路,广播帧就会被不停地转发——产生“广播风暴”。

此外,环路还会导致:

  • MAC地址表不停变化 → 交换机学错地址
  • 多次转发同一个帧 → 带宽被浪费
  • 整个网络瘫痪

为了防止这种情况,STP协议可以自动关闭部分冗余链路,形成一个无环路的“生成树”拓扑结构


🌳 二、STP基本原理

STP的目标是:

在一个有环的交换网络中选择一条主干路径,把其他冗余路径阻塞,形成一棵无环的树形结构。

STP核心机制:

  1. 选出一个根桥(Root Bridge)
  2. 计算每台交换机到根桥的最短路径
  3. 决定每条链路的状态:转发(Forwarding)或阻塞(Blocking)

🏗️ 三、STP工作过程详解

🧩 1. 选举根桥(Root Bridge)

每个交换机都有一个 桥 ID(Bridge ID)

  • 由两部分组成:桥优先级(默认32768) + MAC地址
  • 比较桥 ID 大小,数值最小的成为根桥

例子:优先级相同,则比MAC地址;MAC地址最小的交换机被选为Root Bridge


🧭 2. 计算到根桥的路径成本(Path Cost)

每台非根桥的交换机,需要通过路径成本来决定最优路径。

路径成本 = 所经过链路的带宽成本(越高带宽越低成本)

带宽成本值
10 Mbps100
100 Mbps19
1 Gbps4
10 Gbps2

🪜 3. 确定端口角色(Port Roles)

每台交换机会通过STP算法确定端口的角色:

角色含义
根端口(RP)连接到根桥的最短路径端口,每台交换机只有一个
指定端口(DP)每段网段上负责转发的端口
非指定端口(Blocked)冗余端口,避免环路,处于阻塞状态

🔄 4. 端口状态(Port State)

端口可能处于以下五种状态(STP经典五状态):

状态含义
Disabled被手动禁用
Blocking阻塞状态,监听BPDU,禁止数据转发
Listening启动监听BPDU,不学习MAC
Learning学习MAC地址,不转发数据
Forwarding正常转发和学习MAC

STP工作过程中端口会从Blocking → Listening → Learning → Forwarding(约需50秒)


📩 四、BPDU(桥协议数据单元)

BPDU 是STP用于交换信息的控制帧,类型有:

  • 配置BPDU(Configuration BPDU):主要传输生成树信息
  • TCN BPDU(Topology Change Notification):拓扑变化通知

交换机之间通过定期发送BPDU来决定:

  • 谁是根桥
  • 哪些端口该转发,哪些要阻塞

🧠 五、STP优缺点

✅ 优点:

  • 自动避免环路,提升网络稳定性
  • 支持冗余链路,提高容错性

❌ 缺点:

  • 收敛慢(50秒):链路变化后需要时间恢复
  • 不能充分利用所有链路,部分链路被阻塞

⚙️ 六、STP的改进版本

协议特点
RSTP (802.1w)快速生成树,3~5秒收敛,取代传统STP
MSTP (802.1s)多生成树协议,支持VLAN映射多个生成树
PVST+Cisco私有协议,基于每个VLAN生成一棵树

🧪 七、实际配置示例(Cisco)

bash复制编辑# 设置优先级(数值越小越优先)
Switch(config)#spanning-tree vlan 1 priority 24576# 查看生成树信息
Switch#show spanning-tree# 设置端口为边缘端口(防止延迟)
Switch(config-if)#spanning-tree portfast

🧭 八、一图理解STP过程:

lua复制编辑        +---------+        +---------+| SwitchA |--------| SwitchB |+---------+        +---------+\               /\             /\           /+---------+| SwitchC |+---------+- 先选出 Root Bridge(比如A)
- 其他交换机计算到A的路径成本
- 决定各端口角色
- 冗余的端口进入Blocking状态,形成无环拓扑

✅ 九、总结

关键概念说明
根桥(Root Bridge)STP结构的核心,由优先级+MAC最小选出
BPDU用于交换生成树信息的协议帧
端口角色根端口、指定端口、非指定端口(阻塞)
状态流程Blocking → Listening → Learning → Forwarding
STP问题收敛慢,可通过RSTP、MSTP等优化
http://www.dtcms.com/a/272669.html

相关文章:

  • Linux【大数据运维】下制作Redis绿色免安装包(一)
  • 企业网络安全的“金字塔”策略:构建全方位防护体系的核心思路
  • upload-labs靶场通关详解:第20关 /.绕过
  • 以下哪种类型在Golang中不是内置类型?
  • zookeeper etcd区别
  • Keepalived+LVS实现LNMP网站的高可用部署
  • 登录为图片验证时,selenium通过token直接进入页面操作
  • Java 导出word 实现饼状图导出--可编辑数据
  • CIEDE2000 色差公式C++及MATLAB实现
  • 【零基础学AI】第35讲:策略梯度方法 - 连续控制任务实战
  • Swift 图论实战:DFS 算法解锁 LeetCode 323 连通分量个数
  • 快速搭建服务器,fetch请求从服务器获取数据
  • ReentrantLock 与 Synchronized 的区别
  • 给MySQL做定时备份,一天3次
  • method_name字段是什么
  • 单片机基础(STM32-DAY2(GPIO))
  • Linux驱动06 --- UDP
  • 飞书AI技术体系
  • web 系统对接飞书三方登录完整步骤实战使用示例
  • 低温冷启动 高温热启动
  • OpenCV 图像进阶处理:特征提取与车牌识别深度解析
  • 醋酸镨:闪亮的稀土宝藏,掀开科技应用新篇章
  • Spring IoC 如何注入一些简单的值(比如配置文件里的字符串、数字)?
  • 【文献阅读】Depth Anything: Unleashing the Power of Large-Scale Unlabeled Data
  • MyBatis 使用教程及插件开发
  • 自动驾驶环境感知:天气数据采集与融合技术实战
  • AI-Sphere-Butler项目语音切换数字人管家形象功能老是开发不成功。
  • Oracle 数据库管理与维护实战指南(用户权限、备份恢复、性能调优)
  • 深度学习与图像处理案例 │ 基于深度学习的自动驾驶小车
  • GitHub上优秀的开源播放器项目介绍及优劣对比