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

【网络工程师】物理二层STP协议

STP协议,Spanning Tree Protocol,生成树协议。

前提条件

STP使用的前提条件是:交换机设备接线完成,没有物理连接,BPDU就无法传递,STP也就无法计算。

  • 物理接线:为城市修建了所有可能的道路,包括各种大路、小路、环形路
  • STP协议:像是城市的交通管制中心,他的职责是在路修好之后,通过设置阻塞端口,关闭会导致环路和拥堵的道路,确保物理层从任意 一点到另一点,只有一条逻辑上无环的路径是通的

STP决定逻辑流量的走向,默认接线之后物理链路就通了,但数据流量(如你的ping包、网页访问)能否通过,要由STP说了算。

场景举例

假设有两台交换机SW1和SW2,我们用两条网线将它们连接起来,形成了一个物理环路。

  1. 第一步:物理接线
  2. 第二步:STP自动运行(默认启用)
  3. 第三步:逻辑拓扑形成
    • 虽然两条物理线缆都是接通的,但逻辑上只有 SW1-G0/0/1 <-> SW2-G0/0/1 这条路径可以传递用户流量
    • SW1-G0/0/2 <-> SW2-G0/0/2 这条链路被STP逻辑上“断开”了(端口被阻塞),用于防止环路,并作为备用路径。
  4. 第四步:故障切换
    • 如果活动的链路(线1)突然断掉,STP会重新计算。
    • 之前被阻塞的端口(SW2的G0/0/2)会经历从 阻塞 -> 侦听 -> 学习 -> 转发 的状态变迁(在RSTP中是快速切换),接替成为新的活动链路。

基础概念

STP目的与作用

为了实现网络的高可用性,工程师会部署冗余链路。但这带来了一个致命问题:二层环路

二层环路的三大危害:

  1. 广播风暴:交换机会从所有端口泛洪广播、组播和未知单播帧。在环路中,这类帧会无休止地循环,耗尽所有链路带宽,最终导致网络瘫痪。
  2. MAC地址表震荡:同一个MAC地址会从交换机的不同端口被学习到,导致MAC地址表项不断被刷新,使得交换机无法正确转发数据帧。
  3. 多帧复制:目的主机可能会收到多个重复的数据帧,导致上层应用处理异常。

核心目的:
STP的根本目的就是在具有物理环路的交换网络中,逻辑上阻塞一个或多个端口,打破环路,形成一棵无环的“树”。同时,当活动路径发生故障时,STP能够自动激活被阻塞的备用路径,实现网络的高可用性

关键技术详解

STP通过在二层之间传递一种特殊的报文——BPDU(Bridge Protocol Data Unit,桥协议数据单元),来完成树的生成。

桥协议数据单元

BPDU是交换机之间交互的语言,其中包含的关键信息有:

  • 根桥ID:由桥优先级和MAC地址组成。
  • 根路径开销:到达根桥的累计路径开销。
  • 指定桥ID和指定端口ID。

STP 的选举步骤(重中之重)

生成树的构建过程就是一系列选举过程,遵循“优胜劣汰”原则。

  • 第一步:选举根桥
    • 规则:比较桥ID,值越小越优
    • 桥ID = 桥优先级(默认32768) + MAC地址。
    • 先比较优先级,优先级相同则比较MAC地址,MAC地址越小越优
    • 根桥是所有流量的中心,理想情况下应该将其放置在网络核心,并手动指定性能最好、位置最核心的交换机为根桥
  • 第二步:在每个非根桥上选举根端口
    • 规则:每个非根桥上有且只有一个端口朝向根桥,这个端口就是根端口。
    • 选举依据(逐条比较):
      1. 最低的根路径开销:到达根桥累计开销最小的端口。
      2. 对端桥ID最小:如果根路径开销相同,则比较发送BPDU的对端交换机的桥ID。
      3. 对端端口ID最小:如果对端桥ID也相同,则比较对端发送BPDU的端口ID(由端口优先级和端口号组成)。
  • 第三步:在每个链路上选举指定端口
    • 规则:每个物理链路上有且只有一个指定端口,负责向该链路转发发往根桥方向的BPDU。
    • 选举依据:
      1. 本机到达根桥的路径开销最小。
      2. 本机桥ID最小
      3. 本机端口ID最小
    • 根桥的所有端口都是指定端口。
  • 第四步:阻塞剩余端口
    • 既不是根端口,也不是指定端口的端口将被置为阻塞状态。这个端口逻辑上被关闭,不转发用户数据,只监听BPDU,从而打破了环路。

非根桥上根端口

端口状态机

为了防止临时环路,STP端口有严格的状态迁移过程:

  • 阻塞:不转发数据帧,监听BPDU。(到下一个状态需要20秒)
  • 侦听:不转发数据帧,参与计算,收发BPDU。(15秒)
  • 学习:不转发数据帧,但开始学习MAC地址。(15秒)
  • 转发:正常转发数据帧和学习MAC地址。
  • 禁用:管理员关闭或链路断开。

从阻塞到转发需要 30-50秒(20+15+15) 的延迟,这是传统STP的主要缺点

STP 的演进与使用注意事项

STP 的变体

  • STP:最初的IEEE 802.1D标准,速度慢。

  • RSTP:快速生成树,IEEE 802.1w。引入了替代端口和备份端口的概念,利用P/A机制实现了秒级收敛。是目前实际部署的绝对主流。

  • MSTP:多实例生成树,IEEE 802.1s。华为设备默认模式。它允许将多个VLAN映射到不同的生成树实例上,实现负载分担。

使用注意事项与最佳实践

  • 务必手动指定根桥和备份根桥:让网络中最核心、性能最好的交换机作为根桥,避免边缘接入交换机意外成为根桥。

  • 理解RSTP/MSTP的快速收敛机制:

    • 边缘端口:连接PC、服务器等终端设备的端口,应配置为边缘端口,使其立即进入转发状态,且不触发拓扑变更。stp edged-port enable

    • 根保护:在不应成为根端口的端口上配置根保护,防止因收到更优的BPDU而改变拓扑。stp root-protection

    • BPDU保护:在边缘端口上配置,如果收到BPDU则立即Error-Down该端口,防止非法设备接入引发拓扑变化。stp bpdu-protection

  • 防止TC-BPDU攻击:开启TC-BPDU防护,限制单位时间内处理TC-BPDU的次数。stp tc-protection

  • MSTP的Region配置必须一致:Region名称、修订级别、VLAN与实例的映射关系,在Region内所有交换机上必须完全一致,否则无法正常计算。

华为设备配置命令

MSTP配置

# 进入系统视图
<Huawei> system-view# 启用STP(默认可能就是开启的,但确认一下)
[Huawei] stp enable# 指定STP模式为MSTP(默认就是MSTP)
[Huawei] stp mode mstp# 进入MST域视图
[Huawei] stp region-configuration# 配置MST域的名称
[Huawei-mst-region] region-name MyNetwork# 配置MST域的修订级别(通常保持默认0即可,如需变更则所有设备需一致)
[Huawei-mst-region] revision-level 0# 配置VLAN与实例的映射关系
# 实例0是默认实例,所有VLAN默认属于实例0。我们创建新的实例来实现负载分担。
[Huawei-mst-region] instance 1 vlan 10 to 20   # 将VLAN 10-20映射到实例1
[Huawei-mst-region] instance 2 vlan 30 to 40   # 将VLAN 30-40映射到实例2# 激活MST域配置(必须执行!)
[Huawei-mst-region] active region-configuration
[Huawei-mst-region] quit# ---------------根桥与备份根桥配置---------------
# 方法一:使用primary命令(推荐)
# 将当前交换机配置为实例0的根桥
[Huawei] stp instance 0 root primary# 将当前交换机配置为实例0的备份根桥
[Huawei] stp instance 0 root secondary# 方法二:手动修改桥优先级(更精确控制)
# 优先级必须为4096的倍数。值越小,优先级越高。
[Huawei] stp instance 1 priority 0      # 成为实例1的主根
[Huawei] stp instance 2 priority 4096   # 成为实例2的备份根# ---------------端口优化与保护配置---------------
# 进入接口视图(以GigabitEthernet 0/0/1为例)
[Huawei] interface GigabitEthernet 0/0/1# 将该端口配置为边缘端口(连接PC/服务器)
[Huawei-GigabitEthernet0/0/1] stp edged-port enable# 在该端口上启用BPDU保护(通常与边缘端口配合使用,收到BPDU报文立即error down该端口,防止非法设备接入)
# 注意:BPDU保护需要在系统视图下全局开启
[Huawei] stp bpdu-protection
[Huawei-GigabitEthernet0/0/1] quit# 在另一个端口上(如上行端口)配置根保护,在不应该成为根端口的端口配置,防止接收到更优的BPDU报文后,自动更新
[Huawei] interface GigabitEthernet 0/0/24
[Huawei-GigabitEthernet0/0/24] stp root-protection# 配置端口路径开销(影响根端口/指定端口选举)
[Huawei-GigabitEthernet0/0/24] stp cost 20000# 配置端口优先级(影响指定端口选举)
[Huawei-GigabitEthernet0/0/24] stp port priority 16# ---------------全局保护功能配置---------------
# 启用TC-BPDU保护
[Huawei] stp tc-protection
[Huawei] stp tc-protection threshold 10  # 可选:设置每10秒内最大处理TC BPDU数量# 全局启用BPDU保护(前面已提及)
[Huawei] stp bpdu-protection# ---------------查看与诊断命令---------------
# 查看STP全局状态
<Huawei> display stp global# 查看指定端口的STP状态
<Huawei> display stp interface GigabitEthernet 0/0/1# 查看指定MSTI的简要信息
<Huawei> display stp instance 0 brief# 查看MST域配置信息
<Huawei> display stp region-configuration# 查看根桥信息
<Huawei> display stp root

STP配置命令(IEEE 802.1D)

STP配置相对简单,主要关注根桥、端口成本和优先级。

# ----------------根桥与优先级配置----------------------
# 方法一:直接指定主根桥和备份根桥(设备会自动计算合适的优先级)
[Huawei] stp root primary    # 本机成为根桥(优先级自动设置为0)
[Huawei] stp root secondary  # 本机成为备份根桥(优先级自动设置为4096)# 方法二:手动精细配置桥优先级(必须是4096的倍数,值越小越优)
[Huawei] stp priority 0      # 设置为最高优先级,确保成为根桥
[Huawei] stp priority 4096   # 设置为次高优先级,作为备份根桥# ----------------端口参数调整---------------------
# 通过调整端口参数,可以影响根端口和指定端口的选举。
# 进入接口视图
[Huawei] interface GigabitEthernet 0/0/1# 配置端口路径开销(影响根端口选举,开销值越小越优)
# 需要根据华为的开销标准来设置,例如万兆链路和千兆链路使用不同值
[Huawei-GigabitEthernet0/0/1] stp cost 20000# 配置端口优先级(影响指定端口选举,值越小越优,步长为16)
[Huawei-GigabitEthernet0/0/1] stp port priority 16# 退出接口视图
[Huawei-GigabitEthernet0/0/1] quit# ----------------STP诊断与查看命令---------------------
# 查看STP全局状态
<Huawei> display stp# 查看指定端口的STP状态和详细信息
<Huawei> display stp interface GigabitEthernet 0/0/1# 查看根桥信息
<Huawei> display stp root

RSTP配置命令(IEEE 802.1w)

RSTP配置在包含STP所有命令的基础上,增加了用于实现快速收敛和安全性的关键配置。

# 1. 根桥与优先级配置(与STP相同)
[Huawei] stp mode rstp  # 首先确保模式是RSTP
[Huawei] stp root primary
# 或
[Huawei] stp priority 0# 2. 端口优化与快速收敛配置(RSTP核心),实现秒级收敛
# 进入接口视图
[Huawei] interface GigabitEthernet 0/0/1# --- 关键配置1:边缘端口 ---
# 连接PC、服务器等终端设备的端口,应配置为边缘端口。
# 效果:端口立即进入转发状态,无延迟。
[Huawei-GigabitEthernet0/0/1] stp edged-port enable# --- 关键配置2:点到点链路 ---
# 在全双工模式(尤其是光纤/直接网线连接)的链路上,启用此功能以触发快速的P/A机制。
# 效果:加速指定端口进入转发状态。
[Huawei-GigabitEthernet0/0/1] stp point-to-point force-true[Huawei-GigabitEthernet0/0/1] quit# --- 3.保护功能配置(增强网络稳定性) ---
# --- BPDU保护 ---
# 在边缘端口上启用,如果收到BPDU则Error-Down该端口,防止非法交换机接入。
# 必须先全局启用,再在边缘端口上生效。
[Huawei] stp bpdu-protection
# (在对应的边缘端口视图下,配置 stp edged-port enable 即可关联)# --- 根保护 ---
# 在不应成为根端口的端口上配置(如所有指向接入交换机的上行口)。
# 效果:如果该端口收到更优的BPDU,会将其置为“Listen”状态,阻止其成为根端口。
[Huawei] interface GigabitEthernet 0/0/24  # 假设是上行端口
[Huawei-GigabitEthernet0/0/24] stp root-protection
[Huawei-GigabitEthernet0/0/24] quit# --- 防TC-BPDU攻击保护 ---
# 限制单位时间内处理拓扑变更报文的数量,防止CPU过载。
[Huawei] stp tc-protection
[Huawei] stp tc-protection threshold 10  # 可选:每10秒内最多处理10个TC BPDU# --- 4. RSTP 诊断与查看命令 ---
# 查看RSTP全局状态
<Huawei> display stp# 查看RSTP简要信息,重点关注端口角色和状态
<Huawei> display stp brief# 查看端口角色详细信息,RSTP中会显示RP(根端口)、DP(指定端口)
# AP(替代端口,根端口发生故障时接管)
# BP(备份端口,用于指定端口失效时接管)
<Huawei> display stp interface GigabitEthernet 0/0/1
http://www.dtcms.com/a/561573.html

相关文章:

  • 网站关键词排名优化应该怎么做网站备案成功后怎么办
  • Vue3组件间通信——pinia
  • php零基础做网站网站没后台怎么修改类容
  • 郑州做网站狼牙建立网站的链接结构有哪几种形式?
  • RTL8762KD_EVB_Board-嘉立创EDA设计
  • 西安网站制作公司怎么选宁波企业做网站哪家好
  • 手机网站开发算什么费用seo服务外包价格
  • 在 ​CentOS 7​ 的 Linux 系统中配置 ​NFS
  • 网站欣赏网站整合营销传播成功案例
  • 深圳高端网站设计建设网站推广百度优化
  • React Native 项目实战指南
  • 百度品牌网站建设优化大师如何删掉多余的学生
  • 做平面设计的一般浏览什么网站wordpress自定义文章顺序
  • 打造推理模型的4种方法——李宏毅2025大模型课程第7讲
  • 金融行业客服系统中合规高效的身份验证流程分享
  • 网站服务器怎么维护濮阳网站建设在哪里
  • 四川省住房和城乡建设厅网站官网西安做网站缑阳建
  • linux——有关权限的话题。——权限掩码——默认文件权限的理解/文件共享、粘滞位
  • 【经典书籍】《人月神话》第四章“贵族专制、民主政治和系统”精华讲解
  • 南京高端网站定制保定自助建站软件
  • hysAnalyser --- 支持UDP实时流分析和录制功能
  • 葫芦岛做网站的公司微信公众平台导航 wordpress模版
  • 【Linux笔记】网络部分——网络层IP协议
  • 用织梦做的网站怎么上传虚拟网站新建设请示
  • GEE统计特定区域特定时间上的Landsat/Sentinel的影像信息
  • 徐州建设企业网站苏州网站优化排名推广
  • 百度提交网站的入口地址网络地区广告代理
  • 全面认识 InnoDB:从架构到 Buffer Pool 深入解析
  • TREE SEARCH FOR LLM AGENT REINFORCEMENTLEARNING
  • 网站建设分金手指排名二八铜川矿业公司网站