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

二层环路避免-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.xdnf.cn/news/15086.html

相关文章:

  • Transformer架构:结构介绍
  • STM32F103C8T6单片机内部执行原理及启动流程详解
  • 使用Tensorflow和CNN进行猫狗图片训练的实战总结
  • 【CF】⭐Day96——2025武汉ICPC(AILF)
  • MyBatis插件机制揭秘:从拦截器开发到分页插件实战
  • 深度学习_全连接神经网络
  • 单片机基础(STM32-DAY2(GPIO))
  • 如何发现 Redis 中的 BigKey?
  • 【计算机网络】HTTP1.0 HTTP1.1 HTTP2.0 QUIC HTTP3 究极总结
  • STM32 中实现 Modbus RTU
  • OneCode AI注解框架:让传统软件15分钟升级为AI原生应用
  • 从零开始搭建深度学习大厦系列-3.卷积神经网络基础(5-9)
  • 【Note】Linux Kernel 实时技术深入:详解 PREEMPT_RT 与 Xenomai
  • python+django/flask基于微信小程序的农产品管理与销售APP系统
  • 数据仓库:企业数据管理的核心枢纽
  • 20250710解决KickPi的K7的SDK编译异常:rk3576-android14.0-25250704.tar.gz【降低BUILD_JOBS】
  • OrCAD 24.1补丁005中文界面切换指南
  • RT-Thread 的 SCons 构建系统的语法、常用用法,并举例说明如何编写典型的 `Kconfig` 和 `SConscript` 文件
  • 解析几何几百年重大错误:将无穷多各异圆盘(球)误为同一点集
  • PyTorch Tensor 的创建与操作入门
  • TCP-与-UDP-协议详解:原理、区别与应用场景全解析
  • 使用SpringAOP自定义权限控制注解
  • UE5 Rotate 3 Axis In One Material
  • Android Studio 打 release 包 Algorithm HmacPBESHA256 not available 问题解决
  • Vue 中监测路由变化时,通常不需要开启深度监听(deep: true)
  • Linux中rw-rw-r--相关的访问权限讲解
  • android TabLayout 标题栏切换 事件拦截
  • 达梦数据库不兼容 SQL_NO_CACHE 报错解决方案
  • 三、神经网络——网络优化方法
  • Ansible:强大的自动部署工具