一、链路聚合!链路备份技术之一

-----链路聚合(Link Aggregation)被视为链路备份技术,核心原因在于它能通过多条物理链路的捆绑,实现 “一条链路故障时,其他链路自动接管流量” 的冗余备份效果,同时还能叠加带宽。

1.概念

2.作用

3.链路聚合模式

3.1静态链路聚合模式

3.2动态链路聚合模式

3.3静态聚合 vs 动态聚合(核心差异)

对比项静态聚合动态聚合
依赖协议不依赖 LACP,纯手动配置依赖 LACP 协议自动协商
配置难度高(两端参数必须严格一致,手动匹配)低(LACP 自动协商,参数兼容即可 )
故障检测仅检测物理端口状态(Down/Up)基于 LACP 报文,检测更智能(如链路质量、对端状态 )
适用场景两端设备固定、参数明确(如数据中心内网 )需动态适配、故障自愈(如广域网接入、多厂商设备互联 )

4.链路聚合的工作原理 

1. 链路聚合组(LAG)的创建

  • 首先在网络设备(如交换机、路由器、服务器)上配置链路聚合组(LAG,Link Aggregation Group),将需要捆绑的物理端口加入同一 LAG。
  • 例如,交换机 A 的端口 1-4 与交换机 B 的端口 1-4 加入同一 LAG,形成一个逻辑链路。

2. 协商与协议适配

  • 链路聚合需要遵循标准化协议,确保两端设备(如交换机 A 和 B)对 LAG 的配置一致,常用协议包括:

    • LACP(Link Aggregation Control Protocol,链路聚合控制协议):IEEE 802.3ad 标准,是最常用的协议。通过交换 LACP 报文,自动协商哪些物理链路可以加入 LAG,并动态维护链路状态(如检测链路故障)。
    • 静态聚合:无需协议协商,由管理员手动指定加入 LAG 的物理链路。但灵活性低,无法自动检测链路故障或动态调整。
  • LACP 的协商过程

    • 两端设备通过专用的 LACP 报文(包含设备 ID、端口优先级、LAG 编号等信息)交换配置。
    • 协商成功后,两端确认哪些物理链路可用,并将其激活为 LAG 的成员链路;未通过协商的链路则处于备用状态。

3. 数据帧的分发与负载均衡

  • 当数据通过逻辑链路传输时,设备需要通过负载均衡算法决定将数据帧(数据包)发送到哪条物理链路。
  • 常用的负载均衡算法(根据数据帧的特征分类):
    • 基于源 / 目的 MAC 地址:根据数据帧的源 MAC 或目的 MAC 地址哈希计算,相同地址的帧固定走某条链路(适合二层网络)。
    • 基于源 / 目的 IP 地址:根据源 IP 或目的 IP 地址哈希计算(适合三层网络,如跨子网通信)。
    • 基于端口号:对于 TCP/UDP 流量,根据源端口或目的端口哈希(适合区分不同应用的流量)。
  • 示例:若采用 “源 IP + 目的 IP” 算法,同一对 IP 地址的通信会固定使用某条物理链路,不同 IP 对的通信则可能分配到其他链路,实现负载分散。

4. 故障检测与链路切换

  • 链路聚合技术会实时监控各物理链路的状态(通过 LACP 报文或链路层检测机制,如链路脉冲信号)。
  • 若某条物理链路故障(如网线断裂、端口损坏):
    • LACP 会立即检测到故障,并将该链路从 LAG 中移除。
    • 原本通过该链路传输的流量,会根据负载均衡算法自动切换到其他正常链路,整个过程通常在毫秒级完成,对上层应用无感知。

二、 RSTP技术-链路备份技术

回顾STP技术 

1.端口角色确定

2.临时环路怎么产生的? 

3.通过定义端口规则避免环路 

STP 为了避免网络环路,给交换机端口定义了 5 种状态,不同状态下端口的行为(收发 BPDU、学习 MAC、转发数据)不同,目的是有序控制端口角色,逐步放开数据转发,防止环路

状态是否发送配置 BPDU是否学习 MAC 地址是否收发数据帧作用 / 说明
Disabled端口被管理员手动关闭 / 禁用,不参与 STP 计算,相当于 “物理断开”
Blocking端口处于阻塞状态,只接收 BPDU 但不处理,用于防止环路(初始选举或拓扑变化时临时阻塞)
Listening端口参与 STP 选举,发送 / 接收 BPDU 来确定角色(根端口、指定端口等),但还没开始转发数据
Learning端口确定角色后,开始学习 MAC 地址(构建 MAC 地址表),但仍不转发数据,进一步避免环路
Forwarding端口正常工作,转发数据帧、收发 BPDU、学习 MAC,是最终 “活跃” 转发状态

4.STP 的传统缺陷—— 拓扑变化时收敛慢 

5.TCN BPDU 

前提:拓扑变化触发

情况 1:网络里新接了一台交换机,或者原本阻塞的端口(Blocking)被激活,变成 Forwarding 状态(能转发流量了 )。

  • 条件细化
    不仅要 “有端口进入 Forwarding”,还得满足 “该交换机至少有一个指定端口(Designated Port)” 。
    • 解释:“指定端口” 是 STP 里每个网段(链路)中负责转发 BPDU 的端口,有指定端口说明交换机在网络里 “有正式角色”,不是孤立的。如果新激活的端口所在交换机是 “孤网”(没指定端口),就算端口状态变,也不用发 TCN(发了也没人处理 )。

情况 2:有端口 “丢失活跃链路”(从 Forwarding/Learning 转 Blocking)

  • 场景:常见的如链路中断(网线被拔、设备断电 )、端口被手动关闭,或者 STP 重新计算后,端口从 Forwarding(转发流量 )或 Learning(学习 MAC 地址 )状态,被迫变成 Blocking(阻塞,不转发流量,防止环路 )。
  • 本质:原本能转发 / 学习的路径失效了,网络拓扑实际 “断了一块”,需要通知全网更新。

    6.总结

      1.流程分步解析

    1. (绿虚线,TCN 消息)SWD → SWC:上报拓扑变化

    SWD 发现链路中断,符合 TCN拓扑变化通知,于是向自己的指定上游交换机(SWC ) 发 TCN BPDU ,说 “拓扑变啦,快处理” 。

    2. (红虚线,TCA 消息)SWC → SWD:确认收到 TCN

    SWC 收到 SWD 的 TCN 后,需要回复 TCA拓扑变化确认,告诉 SWD“我收到消息了,你别一直发” 。这一步是 “确认机制”,避免 TCN 消息一直刷屏 。

    3. (绿虚线,TCN 消息)SWC → SWA:继续上报给根桥

    SWC 除了回 TCA 给 SWD ,还要把 TCN 消息继续往根桥(SWA ) 转发(因为拓扑变化必须让根桥知道,根桥才能发全网更新指令 ),同样走 “逐级上报” 逻辑 。

    4. (紫实线,TCA 消息)SWA → SWB、SWA → SWC:根桥回 TCA

    根桥 SWA 收到 SWC 转发的 TCN 后,会向所有非根桥交换机(这里是 SWB、SWC ) 发 带 TCA 置位的配置 BPDU ,确认 “我收到拓扑变化消息了” 。这一步是根桥对全网的 “确认反馈” 。

    5. (紫实线,TC 置位 BPDU )SWA → SWB、SWA → SWC:根桥发全网更新指令

    根桥 SWA 确认拓扑变化后,开始发 带 TC(Topology Change,拓扑变化执行)置位的 BPDU ,告诉所有交换机:“拓扑变了,赶紧把 MAC 地址表老化时间从默认 300 秒改成 15 秒” 。这样交换机能快速老化旧表项,重新学习新拓扑下的 MAC 映射,保证流量转发正确 。

    6. (隐含逻辑)全网更新 MAC 表

    所有收到 TC 置位 BPDU 的交换机(SWB、SWC、SWD 等 ),会加速老化自己的 MAC 地址表。比如原本主机 A 走 SWB→SWD 的路径,链路断了后,新路径可能变 SWB→SWC→SWD ,加速老化能让交换机更快 “忘掉” 旧路径,学习新路径的 MAC 映射,网络重新收敛 。

    7.STP 的缺点

    2.RSTP技术

    1.概念

    2. RST BPDU端口

    2.1 端口状态

    2.2 端口角色

    边缘端口:不影响结果的都可以设置边缘端口,他还可以接路由器、服务器、终端。 

    3.RST BPDU格式

    第二位第七位指定收敛,快速机制

    56表示状态 

    必须在点对点链路进行,不能接集线器和傻瓜交换机这种。

    4.RSTP快速收敛原理

    要是边缘端口收到了 BPDU,说明这端口实际连的可能不是终端,而是其他交换机(或者能发 BPDU 的设备 ),原本 “接终端” 的假设不成立了。

    边缘端口和根端口都不会产生环路,唯一会产生的是指定端口。

    三、MSTP技术--链路备份技术

    1.回顾STP和SRSTP的局限性

    总结(STP/RSTP 两大核心局限)

    1. 负载分担难:所有 VLAN 绑定同一棵生成树,多条 Trunk 链路无法按 VLAN 分流,链路带宽浪费。
    2. 路径不最优:为了破除环路,STP 会阻塞端口,导致部分 VLAN 流量绕远路,产生 “次优路径”,影响传输效率。

    2.MSTP的基本概念及优势

    2.1定义

    2.2MST域

    2.3 CST、IST、CIST、总根和域根

    注意:MST 域是 “设备 + 链路 + 统一配置” 的整体环境;

    IST 是这个环境 内部 设备和链路共同跑出来的 “生成树逻辑” ,不是单纯的链路!!,而是域内所有元素参与的拓扑结果 。

    MSTP 里生成树是分层嵌套的,理解这几个 “树” 的关系,就懂 MSTP 整网逻辑:

    • IST(内部生成树 )

      • 每个 MST 域内默认存在的生成树,承载 “未映射到其他实例的 VLAN” + 域内控制信息(比如 BPDU 交互 )。实例0就是IST。
    • CST(公共生成树 )

      • 跨 MST 域的生成树,把每个 MST 域当 “单一网桥” 看待,计算域间的生成树。
    • CIST(Common and Internal Spanning Tree,公共和内部生成树 )

      • 整网唯一的 “超级树” ,= IST(域内 ) + CST(域间 ),把所有域和设备纳入统一逻辑。
      • 关键角色:
        • CIST 总根:整网生成树的根桥(优先级最高的设备 );
        • CIST 域根:每个 MST 域在 CIST 里的根(域内 IST 根桥,同时参与 CIST 计算

    2.4. MSTP 端口角色

    MSTP 端口角色继承 RSTP 大部分逻辑(比如 DP 是指定端口、RP 是根端口、AP 是替代端口 ),但新增 Master 端口:

    • Master 端口

      • 作用:连接 MST 域与外部(其他域或 STP/RSTP 设备) ,是 IST 根桥在 CIST 里的 “根端口”,负责域间生成树信息交互。
      • 位置:MST 域的边界端口(图中 SWA 连接域外的端口,既是 “域边界端口” 也是 “Master 端口” )。
    • 其他角色(和 RSTP 兼容)

      • DP(Designated Port,指定端口 ):负责向网段发流量(每个网段选一个 );
      • RP(Root Port,根端口 ):交换机到根桥的最优端口;
      • AP(Alternate Port,替代端口 ):备份根端口,阻塞状态,根端口故障时启用。

     3. MSTP的工作原理

     3.1MSTP的BPDU格式

    BPDU 交互逻辑:MSTP 交换机之间,同一域内会交互完整的 MSTP BPDU(含多实例信息 )跨域或和 RSTP 交换机交互时,会 “裁剪” MST 专有字段,只发 RST BPDU 部分 → 保证整网兼容。

    3.1.1 CIST的优先级向量 

     3.1.2 MSTI的优先级向量80

    3.2 MSTP的计算方法 

    3.3 MSTP的PA机制 

    4.保护机制

    1.BPDU的保护

    1.1 为什么会有BPDU的保护?又或者说为什么会和边缘端口产生关系?

    因为边缘端口是交换机连 终端设备(电脑 / 服务器) 的端口,默认是不会收到 BPDU。但是

    有人 误接交换机 / 恶意注入 BPDU,边缘端口就会收到 BPDU,此时,边缘端口会转化成非边缘端口,就会发收BPUD报文,可能会导致整个网络发生变化,甚至可能因为错误的拓扑计算产生网络环路,影响网络的正常运行。

    1.2 BPDU保护机制的作用

    一旦边缘端口收到 BPDU,交换机就会将该端口关闭,避免因端口角色的改变而引发网络拓扑的不必要变动。

    2.根桥保护

    2.1为什么要有根桥保护

    存在一些恶意攻击者,会发送优先级更高的 BPDU(桥协议数据单元),宣称自己是根桥,从而使合法根桥失去根桥地位,造成网络瘫痪。

    也可能存在因误配设备、私接高优交换机等操作,引发根桥异常变更。

    2.2 根桥保护的作用

    专注于 “防御更优根桥 BPDU”,保护当前根桥不被替换。

    3.环路保护

    针对根端口或 Alternate 端口,防止因链路单向故障导致端口误判为 “转发” 而形成环路(通过监控 BPDU 接收,若超时则进入 Discarding 状态)。

    4.tc保护

    4.1为什么会有TC保护?

    在生成树协议中,当网络拓扑发生变化时,交换机会发送 TC - BPDU(拓扑变化桥协议数据单元) 报文,通知其他设备删除过时的 MAC 地址表项,重新学习拓扑,确保流量正常转发。

    而 TC 攻击,是攻击者 伪造大量 TC - BPDU 报文 注入网络。交换机收到这些虚假报文后,会频繁执行 “删除 MAC 地址表项 → 重新学习” 操作,导致:

    • 设备资源耗尽:CPU 忙于处理删除 / 学习任务,无法响应正常业务,甚至设备死机。
    • 网络震荡:MAC 地址表频繁清空,流量转发混乱(如用户断网、业务中断 )。

    4.2 TC 保护机制的作用

    TC 保护机制通过 “限制 TC - BPDU 处理频率” 抵御攻击,主要在以下两个方面:

    1. 时间阈值控制
    • 配置 TC 保护阈值,限定单位时间(默认 1 秒 )内可处理的 TC - BPDU 数量。
    • 例如:设置阈值为 5,若 1 秒内收到超过 5 个 TC - BPDU,交换机只处理前 5 个,丢弃剩余虚假报文,避免资源过载。
    2. 抑制不必要的 MAC 删除
    • 当 TC - BPDU 数量超过阈值时,交换机进入 “抑制状态”,不再盲目删除所有 MAC 地址表项。
    • 仅删除 与拓扑变化相关端口 的 MAC 表项(而非全局清空 ),减少无效操作对设备的冲击。

    总结来说:通过限制单位时间内处理 TC-BPDU 报文的数量,抵御恶意攻击导致的设备资源过度占用,同时避免频繁删除 MAC 地址表项引发的网络转发混乱。 

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
    如若转载,请注明出处:http://www.pswp.cn/diannao/92394.shtml
    繁体地址,请注明出处:http://hk.pswp.cn/diannao/92394.shtml
    英文地址,请注明出处:http://en.pswp.cn/diannao/92394.shtml

    如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

    相关文章

    PyTorch新手实操 安装

    PyTorch简介 PyTorch 是一个基于 Python 的开源深度学习框架,由 Meta AI(原 Facebook AI)主导开发,以动态计算图(Define-by-Run)为核心,支持灵活构建和训练神经网络模型。其设计理念高度契合科…

    Element Plus Table 组件扩展:表尾合计功能详解

    前言在现代数据驱动的社会中,数据分析和统计成为了非常重要的任务。为了更有效地分析数据和展示统计结果,前端开发人员可以使用Vue框架和Element Plus组件库来实现数据的统计和分析功能。以下是一个关于如何在 Element Plus 的 el-table 组件中实现行汇总…

    神经网络 非线性激活层 正则化层 线性层

    神经网络 非线性激活层 作用:增强模型的非线性拟合能力 非线性激活层网络: class activateNet(nn.Module):def __init__(self):super(activateNet,self).__init__()self.relu nn.ReLU()self.sigmoid nn.Sigmoid()def forward(self,input):#output sel…

    【Vue进阶学习笔记】组件通信专题精讲

    目录前言props 父传子原理说明使用场景代码示例父组件 PropsTest.vue子组件 Child.vue自定义事件 $emit 子传父原理说明使用场景代码示例父组件 EventTest.vue子组件 Event2.vueEvent Bus 兄弟/跨层通信原理说明使用场景代码示例事件总线 bus/index.ts兄弟组件通信示例Child2.v…

    【PTA数据结构 | C语言版】求最小生成树的Prim算法

    本专栏持续输出数据结构题目集,欢迎订阅。 文章目录题目代码题目 请编写程序,实现在带权的无向图中求最小生成树的 Prim 算法。 注意:当多个待收录顶点到当前点集的距离等长时,按编号升序进行收录。 输入格式: 输入首…

    【加解密与C】Rot系列(四)RotSpecial

    RotSpecial 函数解析RotSpecial 是一个自定义函数,通常用于处理特定的旋转操作,尤其在图形变换或数据处理中。该函数可能涉及欧拉角、四元数或其他旋转表示方法,具体行为取决于实现上下文。以下是关于该函数的通用解释和可能的使用方法&#…

    【机器学习深度学习】LLaMAFactory中的精度训练选择——bf16、fp16、fp32与pure_bf16深度解析

    目录 前言 一、 为什么精度如此重要?—— 内存、速度与稳定性的三角博弈 二、 四大精度/模式详解: bf16, fp16, fp32, pure_bf16 三、 关键特性对比表 ▲四大计算类型核心对比表 ▲ 显存占用对比示例(175B参数模型) ▲LLa…

    C# 基于halcon的视觉工作流-章21-点查找

    C# 基于halcon的视觉工作流-章21-点查找 本章目标: 一、检测显著点; 二、Harris检测兴趣点; 三、Harris二项式检测兴趣点; 四、Sojka运算符检测角点; 五、Lepetit算子检测兴趣点;一、检测显著点 halcon算子…

    (11)机器学习小白入门YOLOv:YOLOv8-cls epochs与数据量的关系

    YOLOv8-cls epochs与数据量的关系 (1)机器学习小白入门YOLOv :从概念到实践 (2)机器学习小白入门 YOLOv:从模块优化到工程部署 (3)机器学习小白入门 YOLOv: 解锁图片分类新技能 (4)机器学习小白入门YOLOv :图片标注实操手册 (5)机…

    Grafana | 如何将 11.x 升级快速到最新 12.x 版本?

    [ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ]📢 大家好,我是 WeiyiGeek,一名深耕安全运维开发(SecOpsDev)领域的技术从业者,致力于探索DevOps与安全的融合(Dev…

    Dubbo + Spring Boot + Zookeeper 快速搭建分布式服务

    Dubbo Spring Boot Zookeeper 快速搭建分布式服务 本文将详细介绍如何基于 Dubbo、Spring Boot 和 Zookeeper 快速搭建一个简单的分布式服务调用场景,包含服务提供者(Provider)、服务消费者(Consumer)及公共接口&…

    五分钟掌握 TDengine 数据文件的工作原理

    小 T 导读:今天我们来探讨一下——TDengine中的时序数据到底是如何存储的? 在上一期的文章《五分钟掌握 TDengine 时序数据的保留策略》中,我们知道了TDengine是如何按照时间段对数据进行分区来管理数据的。 接下来,我们和大家一起…

    Python爬虫实战:研究http-parser库相关技术

    一、研究背景与意义 在当今数字化时代,网络数据蕴含着巨大的价值。从商业决策、学术研究到社会治理,对海量网络信息的有效采集与分析至关重要。网络爬虫作为数据获取的核心工具,其性能与稳定性直接影响数据质量。然而,随着互联网技术的发展,网站反爬机制不断升级,传统爬…

    Go语言实战案例-批量重命名文件

    在《Go语言100个实战案例》中的 文件与IO操作篇 - 案例17:批量重命名文件 的完整内容,适合初学者实践如何使用 Go 操作文件系统并批量处理文件名。🎯 案例目标实现一个小工具,能够批量重命名指定目录下的所有文件,例如…

    基于单片机非接触红外测温系统

    传送门 👉👉👉👉其他作品题目速选一览表 👉👉👉👉其他作品题目功能速览 概述 本设计实现了一种基于单片机的非接触式红外测温系统,适用于快速、安全测量物体表面温…

    Python 入门手札:从 0 到会--第十天Python常用的第三方库Numpy,Pandas,Matplotlib

    目录 一、Numpy 1.NumPy 是什么? 1.1安装numpy 1.2 导入numpy模块 2.NumPy 的核心:ndarray 2.1 什么是 ndarray? 2.2 ndarray 的创建方式 2.3 常见属性(用于查看数组结构) 2.4 ndarray 的切片与索引 2.5 ndarr…

    mysql 性能优化之Explain讲解

    EXPLAIN是 MySQL 中用于分析查询执行计划的重要工具,通过它可以查看查询如何使用索引、扫描数据的方式以及表连接顺序等信息,从而找出性能瓶颈。以下是关于EXPLAIN的详细介绍和实战指南:1. EXPLAIN 基本用法在SELECT、INSERT、UPDATE、DELETE…

    Redis 连接:深度解析与最佳实践

    Redis 连接:深度解析与最佳实践 引言 Redis 作为一款高性能的内存数据结构存储系统,在当今的互联网应用中扮演着越来越重要的角色。高效的 Redis 连接管理对于保证系统的稳定性和性能至关重要。本文将深入探讨 Redis 连接的原理、配置以及最佳实践,帮助读者更好地理解和应…

    C语言---VSCODE的C语言环境搭建

    文章目录资源下载配置环境验证资源下载 站内下载 配置环境 解压压缩包,复制以下文件的路径 打开主页搜索系统环境变量 点击环境变量 选择系统变量中的Path,点击编辑 在最后面添加路径。 添加完成记得关机重启。 验证 重启电脑之后打开在Power…

    ojdbc对应jdk版本附下载地址(截止20250722)

    可以从Oracle官网查看, JDBC and UCP Downloads page