Bootstrap

爱情就像 RSTP 协议,哪怕有再多的干扰和潜在分歧,我们也能找到最优路径,让爱稳稳流动,不会陷入迷茫的循环——基于华为ENSP的RSTP、MSTP全面深入剖析

本篇技术博文摘要 🌟

  • 本文介绍了生成树协议(STP)及其演进版本RSTP和MSTP的基本概念与配置。首先,阐述了STP的角色选举过程,包括根网桥、根端口、指定端口和非指定端口的选举。此外,解释了STP的接口工作状态(阻塞、侦听、学习、转发)及收敛时间。接着,提供了STP的基本配置实战,包括启动STP协议、修改桥优先级和开销值等。
  • 文章还介绍了RSTP(802.1w)的改进,包括端口角色、状态、快速收敛机制、BPDU处理方式以及拓扑变更保护等,进一步提高了网络的收敛效率和稳定性。最后,讲解了MSTP(802.1s)的特点及配置,支持多个生成树实例的场景,适用于复杂的网络架构。

引言 📘

  • 在这个快速发展的技术时代,与时俱进是每个IT人的必修课。
  • 我是肾透侧视攻城狮,一名什么都会一丢丢的网络安全工程师,也是众多技术社区的活跃成员以及多家大厂官方认可人员,希望能够与各位在此共同成长。

📈个人成就和🌐社区贡献与影响力

👑《荣誉头衔》

  • 华为云云享专家
  • 华为云技术开发者HCCDA认证
  • 华为HCDG成员
  • 2024年度华为云核心贡献者
  • 阿里云专家博主
  • 数据安全高级工程师认证
  • 新华三高级网络工程师认证
  • 腾讯云开发者创作之星
  • 2024年度腾讯云创作之星
  • 腾讯云文档内容共建官
  • 腾讯云TDP成员
  • AWS——人工智能领域从业者认证
  • 支付宝开发者社区优秀季度创作博主
  • CSDN网络空间安全领域优质创作者

💻技术认证:

  • 华为病毒查杀漏洞管理技术认证
  • 华为Web暴力破解漏洞挖掘技术认证
  • 华为HTTPS加密电商网站技术认证
  • 华为博客网站SQL注入攻击以及防御技术认证
  • 华为MySQL数据库迁移上云技术认证
  • 华为企业上云网络规划设计技术认证
  • 阿里云Apsara Clouder基于存储产品快速搭建网盘技术认证
  • 阿里云Apsara Clouder容器应用与集群管理技术认证
  • 阿里云Apsara ClouderECS基础运维管理技术认证
  • 阿里云Apsara ClouderECS快速入门技术认证
  • 阿里云Apsara Clouder存储应用与数据管理技术认证
  • 阿里云Apsara ClouderSOL基础开发与应用技术认证
  • 阿里云Apsara Clouder基于容器搭建企业级应用技术认证
  • 阿里云Apsara Clouder云原生数据库PolarDB 快速入门技术认证
  • 阿里云Apsara Clouder云数据库RDS快速入门技术认证
  • 阿里云Apsara Clouder大模型- 基于百炼平台构建智能体应用技术认证
  • 阿里云Apsara Clouder企业级ECS集群构建技术认证
  • 腾讯微服务平台TSF技术认证
  • 腾讯EdgeOne网站加速与防护技术认证

🙆曾参与赛事以及荣誉奖项:

  • 曾荣获江苏省新华三网络赛事江苏省一等奖、江苏省华为ICT大赛团队赛江苏省二等奖、江苏省网络安全精英赛事优秀奖、江苏省C4网络技术挑战赛赛事、江苏省红帽挑战赛、腾讯全国安全游戏竞赛、全国网络安全运维管理等CTF赛事
  • 曾获CSDN南京市作者周榜榜首、原力月榜第1;全国创作者周榜第37、全国原力榜第11、全国领军人物榜单第22;

欢迎各位彦祖与热巴畅游本人专栏与技术博客

你的三连是我最大的动力

以下图片仅代表专栏特色 [点击➡️指向的专栏名即可闪现]

➡️Cyberspace Security

➡️ 24 Network Security -LJS 

➡️ Ungranted access vulnerability

➡️HCIP;H3C-SE;CCIP—LJS[华为、华三、思科高级网络]

➡️ MYSQL REDIS Advance operation

➡️RHCE-LJS[Linux高端骚操作实战篇]

➡️数据结构与算法[考研+实际工作应用+C程序设计]

➡️RHCSA-LJS[Linux初级及进阶骚技能]

上节回顾

目录

本篇技术博文摘要 🌟

引言 📘

📈个人成就和🌐社区贡献与影响力

👑《荣誉头衔》

💻技术认证:

🙆曾参与赛事以及荣誉奖项:

欢迎各位彦祖与热巴畅游本人专栏与技术博客

你的三连是我最大的动力

以下图片仅代表专栏特色 [点击➡️指向的专栏名即可闪现]

上节回顾

1.STP角色选举过程

STP交换机初始启动后 

在选举出根网桥后

根据收到的BPDU选择出根端口

每台交换机的每一条链路选举一个指定端口

交换机身上剩余端口成为非指定端口

 注意:

2.STP的接口工作状态

 阻塞

侦听

学习

转发

STP收敛时间[记住就好,根据具体业务快速而定]

3.生成树STP基本配置实战

 启动STP协议,默认开启的协议

修改STP工作模式,默认情况为MSTP

修改交换机的桥优先级

修改主根/备份根网桥优先级

修改开销值算法

只修改一个接口

修改接口优先级

4.RSTP---802.1W---快速生成树协议

RSTP在园区网络中的应用位置

 RSTP对STP的改进点讨论

改进点1---端口角色

改进点2----端口状态

 改进点3----RST BDPU报文

 改进点4---快速收敛机制

P/A机制----加快收敛

改进点5---对BPDU处理方式

 改进点6---保护功能

环路保护  

 拓扑变更保护

改进点7---拓扑变更机制的改进

5.MSTP---802.1S----多实例生成树

MSTP的特点

注意:

MSTP:多实例生成树实战配置

补充:


1.STP角色选举过程

STP交换机初始启动后 

  • 交换机都会认为自己是根网桥,并在发送给其他交换机的BPDU报文中宣告自己为根桥。
  • 当交换机收到网络中其他设备发送的BPDU后,会比较BPDU重的根桥ID和自己的BID
  • 交换机之间不断交互BPDU报文,同时对比BID信息,最终选举出一台BID最小的交换机作为根网桥,其他交换机为非根网桥。
  • 根网桥的角色是可抢占的。当拥有更优BID的交换机加入网络时,网络会重新进行STP计算,选举出新的根网桥。

在选举出根网桥后

  • 根网桥持续发送BPDU报文,而非根网桥持续接收BPDU报文,并计算自己的BPDU报文发送给其他设备。

根据收到的BPDU选择出根端口

  • 每个交换机根据从自己不同接口收到的BPDU报文中选择出最优BPDU,从而选择出根端口

    • 选举规则---越小越优

      • 比较RPC

      • 比较对端的BID

      • 比较对端的PID

      • 比较本地的PID

每台交换机的每一条链路选举一个指定端口

  • 交换机将本接口与本接口收到的BPDU进行对比,若本地BPDU更优,则本接口称为指定端口。

  • 比较规则---越小越优

    • RPC

    • BID

    • PID

交换机身上剩余端口成为非指定端口

  • 非指定端口被STP协议在逻辑上阻塞,从而构造出STP树。

  • 阻塞端口不能转发由终端设备产生并发送的数据帧,也不能转发BPDU,但是可以接收和处理BPDU报文。

 注意:

  • 根网桥的选举,因为STP协议的一切工作都是基于根网桥的位置而定的,如果根网桥位置选举不恰当,那么流量走向异常
  • 流量走向异常:解决方案----三点合一(网关所在地、STP树根所在地、流量汇聚之地)

2.STP的接口工作状态

image-20230418022900048

 阻塞

  • 设备激活STP协议后进入的第一个状态

  • 不能收发业务数据、不能学习MAC地址、不能发送BPDU,但是可以接收BPDU

  • 目的:将二层网络中的所有数据报文全部清空。

  • 每个设备需要在阻塞状态停留20S时间。进入下一个状态

侦听

  • 目的:完成STP的所有角色选举过程。

  • 接口可以收发BPDU报文,但是不能收发业务数据,也不能学习MAC地址

  • 需要在侦听状态停留一个转发延迟时间(15S)

  • 当转发延迟时间超时后,跟端口和指定端口会进入下一个状态,而非指定端口会退回到阻塞状态

学习

  • 目的:学习MAC地址,从而填充MAC地址表项

  • 可以收发BPDU报文,可以学习MAC地址,不能收发业务数据

  • 需要在学习状态停留一个转发延迟时间(15S)

转发

  • 可以正常收发业务数据和BPDU报文。

  • 只有根端口和指定端口可以处于转发状态

STP收敛时间[记住就好,根据具体业务快速而定]

  • 首次收敛---50S

  • 结构突变

    • 根网桥故障---50S

    • 直连链路故障---30S

      • 立即将端口状态切换到侦听

    • 非直连链路故障---50S

3.生成树STP基本配置实战

image-20240531185356129

 启动STP协议,默认开启的协议

[sw1]stp enable 

修改STP工作模式,默认情况为MSTP

[sw1]stp mode ?
  mstp  Multiple Spanning Tree Protocol (MSTP) mode
  rstp  Rapid Spanning Tree Protocol (RSTP) mode
  stp   Spanning Tree Protocol (STP) mod

[sw1]stp mode stp

修改交换机的桥优先级

[sw1]stp priority 0 

干涉BID数值---一般不常在根网桥使用

修改主根/备份根网桥优先级

[sw1]stp root ?
  primary    Primary root switch   ---代表主根网桥,将优先级修改为0
  secondary  Secondary root switch  ---备份根网桥,将优先级修改为4096

修改开销值算法

[sw1]stp pathcost-standard ?   
  dot1d-1998  IEEE 802.1D-1998
  dot1t       IEEE 802.1T
  legacy      Legacy

只修改一个接口

[sw1-GigabitEthernet0/0/24]stp cost ?   
  INTEGER<1-200000000>  Port path cost

修改接口优先级

[sw1-GigabitEthernet0/0/24]stp port priority ?  
  INTEGER<0-240>  Port priority, in steps of 16

image-20240531190046922

4.RSTP---802.1W---快速生成树协议

  1. 收敛速度慢----STP的算法是一种被动的算法,依赖于计时器来进行状态变化
  2. 路利用率低
  3. RSTP向下兼容STP协议

RSTP在园区网络中的应用位置

 RSTP对STP的改进点讨论

改进点1---端口角色

  • 802.1D协议---根端口、指定端口、非指定端口
  • 802.1W协议---根端口、指定端口、(替代端口、备份端口)

  • 替代端口----简单理解为根端口的备份。
    • 替代端口是收到其他交换机的BPDU报文从而被阻塞的端口。
    • 如果根端口发生故障,那么替代端口可以成为新的根端口,加快了网络的收敛速度。
    •  一台交换机,有且只有一个根端口;替代端口可以有0个或多个。如果存在多个,最优的替代接口将成为新的根端口。
       

 

  •  备份端口----理解为指定端口的备份。
    • 备份端口是一台设备上由于收到了自己所发送的BPDU报文从而被阻塞的接口。

改进点2----端口状态

 改进点3----RST BDPU报文

image-20221019213147640

 

bit 6----表示同意的含义,P/A机制
bit 5----表示转发状态
bit 4----表示学习状态
bit 3和bit 2----代表发送该报文的端口角色
bit 1----表示提议含义,P/A机制
  • RSTP在网络稳定后,任何设备,都可以周期性发送RST BPDU报文 

 改进点4---快速收敛机制

  1. 根端口和指定端口的快速切换。

  2. P/A机制

  3. 边缘端口

    1. 如果交换机的某个端口处于网络的边缘,即不与其他交换设备相连,直接与终端设备直连,这种端口可以被设置为边缘端口----因为终端设备无法处理STP报文。

    2. 边缘端口不会参与到生成树的计算过程中,当某个接口被设置为边缘端口,则立即切换到转发状态

      1. 边缘端口的关闭或激活不会触发RSTP拓扑变更。

    3. [sw3-GigabitEthernet0/0/22]stp edged-port enable 
      
      ---设置为边缘端口
    4. 边缘接口会持续性发送BPDU报文。---但是这种持续性发送是没有必要的。

    5. [sw1-GigabitEthernet0/0/1]stp bpdu-filter enable 
      
      ----激活接口的BPDU过滤功能,激活后,该接口不会再发送BPDU报文。并且,该接口收到BPDU报文后,会直接忽略掉。
    6. 注意:一旦边缘端口收到BPDU报文,会立即丧失边缘端口属性,成为普通的STP端口,并重新进行生成树计算,引发网络震荡。----故,上述两条配置一般共同使用

P/A机制----加快收敛

 

  • 改变状态切换机制,将原本基于计时器的切换方式,修改为选择出端口角色,立即切换状态。

image-20240531194516302

  1. SW11发送P标记位置为1的BPDU报文,请求将本接口的状态切换为转发状态。---能切换的前提是后续网络无环
  2. SW12收到该报文后,将本地除了根端口以外的端口全部阻塞。来保证本地无环
  3.   这个阻塞接口的过程被称为“同步过程”
  4. 完成同步过程后,本地其他接口都处于丢弃状态,设备向上游发送A标记位置为1的BPDU报文,并将自己的根端口切换为转发状态。
  5. SW11收到该报文后,将自己的接口转换为转发状态。
  6. 向下游重复该过程,直到所有的根端口和指定端口状态切换为转发状态。

改进点5---对BPDU处理方式

  • 所有设备在网络收敛完成后,都会周期性发送BPDU报文

 

  • 缩短了BPDU的超时时间
  • RSTP将最大老化时间修改为三个周期更新时间(6S)

  1. 对次优BPDU报文的处理方式

    • 每一个交换机的每一个接口都会保存一份BPDU报文。---一定是最优的BPDU报文

      • 对于根端口和非指定端口而言,交换机保存的是对端发送的BPDU报文。

      • 对于指定端口而言,交换机保存的是根据根节点发送的BPDU而计算出的本地的BPDU报文。

      • 次优BPDU===接收收到的不如接口保存的BPDU报文。

    • STP

      • 指定端口:收到一个次优BPDU报文,它将立即发送自己的BPDU报文。

      • 非指定端口:收到一个次优BPDU报文,需要等待接口所保存的BPDU报文老化后,重新计算自己的BPDU报文,并将新的BPDU报文发送出去。

    • RSTP

      • 无论任何接口角色,只要接口收到的次优BPDU报文,立即发送自己的BPDU报文

 改进点6---保护功能

  • BPDU保护
    •   
       [Huawei]stp bpdu-protection 
      
       ---在全局激活BPDU保护功能,激活后,如果边缘端口收到的BPDU报文,则交换机直接关闭边缘端口。
    •     受保护的边缘接口由于收到BPDU报文而被关闭,缺省时,不会自动恢复。需要网络管理员在接口下通过undo shutdown命令打开。
  • 根保护
    •     如果在一个稳定的二层网络环境中,新加入一台第三方设备,并且该设备的BID小于根网桥。那么会抢占原本的根网桥角色,从而引发网络的重新收敛。
    •     部署根保护功能后,根网桥上的指定接口在收到更优的BPDU报文后,会忽略这些BPDU报文并将接口状态切换到丢弃状态。从而保证根网桥的地址。
    • [Huawei-GigabitEthernet0/0/1]stp root-protection   
      
      ---开启根保护功能,只能在指定接口上激活。
    •  当接口不再收到更优的BPDU报文后,经过两倍的转发延迟时间,接口状态从丢弃直接切换到转发状态。
环路保护  

  • 网络正常时,接口将持续收到BPDU报文,而当网络出现链路的单向故障或者网络拥塞等问题时,接口无法正常接收BPDU报文,导致交换机需要重新计算RSTP,此时接口角色和状态发生改变,可能引入环路。

image-20230419033305693

  • 根端口

    • 如果常时间没有收到BPDU报文,那么交换机会重新选举根端口,并且该端口调整为指定端口。该接口状态切换为丢弃状态,避免环路产生。

  • 替代端口

    • 如果常时间没有收到BPDU报文,该端口调整为指定端口。将其状态保持在丢弃状态。

[Huawei-GigabitEthernet0/0/20]stp loop-protection ---开启接口的环路保护。
 拓扑变更保护

image-20230419033949053

  • 如果网络环境极度不稳定,导致TC报文频繁洪泛,又或者网络中存在攻击者发送大量的TC报文,那么交换机的性能将受到极大的损耗。
  • 拓扑变更保护功能---在单位时间内只进行一定次数的TC报文处理,如果超出这个次数,则按照规定次数处理,对于超出的部分,等待一段时间后进行处理
[Huawei]stp tc-protection ---开启TC保护

在单位时间2S周期内,只会处理一次TC报文。

改进点7---拓扑变更机制的改进

image-20230419030312788

  1. 如果SW3收不到根桥发送的BPDU报文,设备所有的指定端口和根端口启动一个TC计时器(4S)。并且清空所有端口学习到的MAC地址。然后向外发送TC置位的BPDU报文。
  2. 一旦计时器超时,则停止发送BPDU报文
  3. SW2收到该报文后,清空所有端口的MAC地址信息,将自己的接口也启动TC计时器,并将TC置位报文向上游发送。
  4. 重复上述过程。

5.MSTP---802.1S----多实例生成树

MSTP的特点

  • PVST----一个VLAN为一个生成树
  • MSTP---引入了“示例”----instance-----多个VLAN的集合
  • instance ID-----示例标识----12bit-------instance 0--华为默认存在的
  • MSTI---多生成树实例
  • 一个实例能够包含多个VLAN,但是一个VLAN只能属于一个实例

注意:

MSTP域----类似于OSPF中的区域的概念。可以将一个交换网络划分为多个MST域,在一个MST域中,会存在单个或多个实例

  • 相同的域名

  • 相同的修订等级

  • 相同的vlan和instance的映射关系

必须保证上述三点完全一致,交换机对MSTP的认知才相同

MSTP:多实例生成树实战配置

image-20240601141826821

[sw1]stp mode mstp 
[sw1]stp enable 

MST域的配置
[sw1]stp region-configuration  ----进入MST域配置视图
[sw1-mst-region]region-name HCIP  ---修改域名
[sw1-mst-region]revision-level ?  ---修改修订等级,默认为0
  INTEGER<0-65535>  Revision level 
[sw1-mst-region]instance 1 vlan 2 to 10  ---创建一个instance 1,并加入vlan2到10
[sw1-mst-region]instance 2 vlan 11 to 20
[sw1-mst-region]active region-configuration   ---激活MSTP配置,如果未激活,则之前的配置不生效


[sw1]stp instance 0 root primary ---设定为实例0的主根
[sw1]stp instance 1 root primary 
[sw1]stp instance 2 root secondary 

image-20240601142611253

补充:
  • 默认情况下,域名使用的是交换机的MAC地址。  

;