STP原理与配置以及广播风暴实验STP实验

学习目标

环路引起的问题

掌握STP的工作原理

掌握STP的基本配置

STP的配置

环路引起的问题

一、广播风暴(Broadcast Storm)

问题原理:
  • 交换机对广播帧(如 ARP 请求、DHCP 发现报文)的处理方式是洪泛(Flooding):收到广播帧后,会从除入端口外的所有端口转发。
  • 若存在环路,广播帧会在环路中无限循环转发,形成 “风暴”。
具体影响:
  1. 带宽耗尽:大量广播帧占用链路带宽,导致正常业务数据无法传输,网络卡顿甚至瘫痪。
  2. 设备负载过高:交换机 CPU 持续处理海量广播帧,性能急剧下降,可能导致设备死机。
  3. 终端资源浪费:主机被迫接收大量重复广播帧,消耗 CPU 和内存资源。

二、MAC 地址表震荡(MAC Table Flapping)

问题原理:
  • 交换机通过接收帧的源 MAC 地址学习主机位置,并记录在 MAC 地址表中(端口 + MAC 映射)。
  • 环路中,同一主机的帧可能从多个端口到达交换机,导致 MAC 地址表项频繁更新(例如:主机 A 的帧先从端口 1 进入,表项记录为 “MAC-A→端口 1”;随后同一帧从端口 2 进入,表项被更新为 “MAC-A→端口 2”,反复震荡)。
具体影响:
  1. 转发错误:MAC 地址表频繁变动,导致交换机无法稳定转发单播帧,部分数据可能被错误地洪泛或丢弃。
  2. 表项资源耗尽:交换机 MAC 地址表容量有限,震荡会加速表项老化,甚至导致合法主机的表项被覆盖。

三、多帧复制(Multiple Frame Copies)

问题原理:
  • 单播帧或组播帧在环路中会沿多条路径传输,导致接收方收到多个重复帧。
具体影响:
  1. 应用层异常:例如,TCP 接收方可能因重复数据包触发重传机制,降低传输效率;某些应用(如数据库、实时通信)可能因重复数据导致逻辑错误。
  2. 流量倍增:冗余路径增加网络流量,进一步加剧带宽压力。

四、网络收敛缓慢与资源浪费

问题原理:
  • 未部署环路破除机制(如 STP)时,交换机无法感知环路存在,只能被动处理异常流量。
  • 即使部署 STP,环路收敛(阻塞冗余端口)需要一定时间(传统 STP 默认约 50 秒),期间网络仍可能受上述问题影响。
具体影响:
  • 业务中断风险:在环路收敛完成前,网络可能处于不可用状态。
  • 冗余链路未被合理利用:传统 STP 会完全阻塞冗余链路,导致带宽资源浪费(后续优化协议如 MSTP 可解决部分问题)。

五、安全隐患

问题原理:
  • 环路可能被恶意利用,例如:
    • 攻击者通过伪造 MAC 地址触发 MAC 表震荡,实施拒绝服务(DoS)攻击。
    • 重复的广播帧可能泄露更多网络信息(如 ARP 报文包含主机 IP-MAC 映射)。

总结:环路的核心危害

问题类型本质原因典型现象
广播风暴广播帧无限循环转发网络带宽占满,设备负载过高
MAC 地址表震荡同一 MAC 通过不同端口频繁更新表项单播帧转发异常,表项不稳定
多帧复制帧通过多条路径到达接收方接收方收到重复数据
收敛缓慢与资源浪费缺乏环路破除机制或协议收敛时间长业务中断、冗余链路未被利用

解决手段(核心思路:破除环路)

  1. 物理层面:避免手动连接形成环路(如不随意交叉连接交换机端口)。
  2. 二层协议:部署生成树协议(STP/RSTP/MSTP),通过阻塞冗余链路构建无环逻辑拓扑。
  3. 三层隔离:通过 VLAN 划分或三层路由(路由器 / 三层交换机)将网络分段,限制广播域范围。

环路是二层网络的 “致命缺陷”,必须通过协议(如 STP)或架构设计(如分层组网)彻底消除,以保障网络的稳定性和效率。

STP的工作原理

生成树协议(STP,Spanning Tree Protocol)是一种用于构建无环二层网络的核心技术,其核心原理是通过动态阻塞冗余链路,确保网络中只有一条逻辑路径可达,从而避免广播风暴和环路问题。以下是 STP 工作原理的详细解析:

一、核心机制:BPDU 与选举算法

STP 通过桥协议数据单元(BPDU)在交换机间传递信息,核心字段包括:

  • 根桥 ID:标识当前网络中的根桥(Root Bridge)。
  • 根路径开销(RPC):从当前端口到根桥的累计链路开销。
  • 发送者 BID:发送该 BPDU 的交换机的桥 ID(由优先级和 MAC 地址组成)。
  • 端口 ID(PID):发送端口的优先级和编号。

STP 的核心算法分为四个步骤

  1. 选举根桥:全网中桥 ID 最小的交换机成为根桥。桥 ID 由优先级(默认 32768,可配置为 0-61440,步长 4096)MAC 地址组成,优先级越小、MAC 地址越小越优先。
  2. 选举根端口:非根交换机上到根桥路径开销最小的端口。若开销相同,依次比较发送者 BID、发送端口 PID、接收端口 PID35。
  3. 选举指定端口:每个物理链路(网段)上到根桥路径开销最小的端口。若开销相同,比较发送者 BID;若仍相同,比较端口 PID79。
  4. 阻塞非指定端口:未被选为根端口或指定端口的端口进入阻塞状态,仅接收 BPDU 以监测拓扑变化18。

二、关键术语与选举规则

1. 路径开销(Cost)
  • 计算依据:链路带宽越高,Cost 值越小(如 10Gbps 链路 Cost 为 2,1Gbps 为 4,100Mbps 为 19)10。
  • 动态累加:从根桥到当前端口的所有链路 Cost 之和为根路径开销(RPC),用于根端口和指定端口的选举59。
2. 端口优先级与 PID
  • 端口优先级:取值 0-240,步长 16(默认 128),优先级越高(数值越小)越优先被选为指定端口1112。
  • 端口 ID(PID):由端口优先级和端口号组成(如128.1表示优先级 128、端口号 1),用于在路径开销和发送者 BID 相同的情况下决定端口角色45。
3. 桥 ID(BID)
  • 组成:16 位优先级 + 48 位 MAC 地址(如32768.000c.29ab.cdef)。
  • 选举规则:全网 BID 最小的交换机成为根桥,优先级相同时比较 MAC 地址1314。

三、STP 的工作流程

1. 初始化阶段
  • 所有交换机启动时自认为根桥,通过所有端口发送 BPDU。
  • 交换机收到其他设备的 BPDU 后,比较根桥 ID:
    • 若收到的 BPDU 中根桥 ID 更小,则更新本地根桥信息并转发该 BPDU。
    • 若收到的 BPDU 中根桥 ID 更大,则忽略该 BPDU,继续发送自己的 BPDU39。
2. 收敛阶段
  • 根桥确定:经过多轮 BPDU 交换,全网选举出唯一根桥。
  • 根端口选举:非根交换机根据 RPC、发送者 BID、端口 PID 选择最优上行端口。
  • 指定端口选举:每条链路根据 RPC、发送者 BID、端口 PID 选择转发端口。
  • 阻塞非指定端口:剩余端口进入阻塞状态,仅接收 BPDU89。
3. 拓扑维护阶段
  • 根桥周期性发送 BPDU(默认 2 秒间隔),非根桥通过根端口接收并转发 BPDU。
  • 端口状态迁移
    • 阻塞(Blocking):不转发数据,仅监听 BPDU(20 秒)。
    • 监听(Listening):参与生成树计算,发送 BPDU(15 秒)。
    • 学习(Learning):学习 MAC 地址,但不转发数据(15 秒)。
    • 转发(Forwarding):正常转发数据19。
4. 拓扑变化处理
  • 链路故障:若根端口或指定端口失效,交换机通过TCN BPDU向上游发送拓扑变更通知,根桥收到后发送 TC 标记的 BPDU,加速全网 MAC 表老化(从 300 秒缩短至 15 秒)12。
  • 新设备接入:新交换机发送 BPDU,若其 BID 更小,可能触发根桥重新选举,导致部分端口状态迁移39。

四、STP 的局限性与优化方向

  1. 收敛速度慢:默认收敛时间约 50 秒(20 秒阻塞 + 15 秒监听 + 15 秒学习),不适用于高实时性场景18。
  2. 无法负载均衡:冗余链路被完全阻塞,未被充分利用19。
  3. 依赖根桥稳定性:根桥故障可能导致全网重新收敛59。

优化协议

  • RSTP(快速生成树协议):将收敛时间缩短至秒级,引入快速迁移机制。
  • MSTP(多生成树协议):支持多实例生成树,实现跨 VLAN 的负载均衡18。

五、典型应用场景

  1. 企业园区网络:通过冗余链路提升可靠性,STP 自动阻塞冗余路径,防止环路。
  2. 数据中心互联:在核心层部署 STP,确保跨设备链路的稳定性。
  3. 临时网络搭建:快速构建无环拓扑,避免手动配置带来的错误19。

六、配置示例(华为设备)

# 全局启用STP
system-view
stp enable

# 配置根桥(优先级0)
stp root primary

# 配置指定端口优先级(端口GE0/0/1优先级16)
interface GigabitEthernet0/0/1
stp port priority 16

# 查看STP状态
display stp brief

总结

STP 通过选举根桥、根端口和指定端口,动态阻塞冗余链路,确保网络无环。其核心依赖 BPDU 的交换和路径开销计算,但存在收敛速度慢和无法负载均衡的局限。在实际部署中,可结合 RSTP 或 MSTP 优化性能,同时通过调整优先级和路径开销灵活控制网络拓扑。

掌握STP的基本配置

对一些简单的操作不会的请参考交换机基础实验(手把手做实验)-CSDN博客

实验目的

  1. 观察广播风暴
  2. 观察STP的各种角色,端口角色。

实验步骤

1.打开eNSP新建topo(拓扑),拖动三台交换机(S5700)和一个PC机,连接起来,连接完成后启动设备,如下图所示。

就这样连接,连接好之后如下图所示。

2.关闭所有交换机的生成树(STP),点击交换机敲入undo stp enable或者stp disable(都是关闭STP的命令)。(对详细的步骤不清楚的可以去翻看交换机基础实验(手把手做实验)-CSDN博客

3.打开交换机1,敲入display stp brief,看弹出的信息

4.给PC机配置一个IP地址(这里我习惯配置192.168.10.1),然后在三台任意链路进行抓包,在PC机上随意ping一个IP地址。我们可以观察到抓包的数据会一直跳出来,会永久循环,这种情况就是广播风暴。(此处不建议大家拿真机玩这个实验)

观察完了之后给三个交换机都敲入stp enable打开STP。

5.对任意交换机敲入dis stp 查看全局信息,我们观察到交换机目前使用的全局信息是MSTP,我们需要修改模式,回车后给所有交换机敲入stp mode stp 切换到stp模式。

6.现在观察每一个交换机的Mac地址看谁最小(对比的是ccba、cce9、cc18),谁就是根桥。通过与对比发现交换机3最小,根桥是交换机3。

7.在交换机3上敲入dis stp brief会弹出0/0/2和0/0/3接口属于指定端口且处于转播状态。

8.在交换机1上敲入dis stp brief,可以看到0/0/3是根端口,0/0/1是指定端口。

9.在交换机2上敲入dis stp brief,可以看到0/0/2是根端口,0/0/3是指定端口,0/0/1端口处于discarding状态(丢弃状态,不再进行数据转发),因此环路消失。

如果要改变交换机的优先级该如何操作?

1.紧接上面步骤,在你想使优先的交换机上敲入stp priority 0(priority有讲究不能乱改,priority的步长是4096,因此只能改为4096×n的数字),此时我拿交换机2来演示,先敲入stp priority 0敲入dis stp brief,我们发现这两个端口都处于discarding状态,这个是状态变迁过程,我会在之后发布的笔记里总结。这里就不断的敲dis stp brief,弹出的信息会从discarding变成learning再变成forwarding。

2.再分别对剩下的交换机敲入dis stp brief观察端口状态。

实验完成
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-潋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值