本篇技术博文摘要 🌟
- 本文介绍了生成树协议(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;
欢迎各位彦祖与热巴畅游本人专栏与技术博客
你的三连是我最大的动力
以下图片仅代表专栏特色 [点击➡️指向的专栏名即可闪现]
上节回顾
目录
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的接口工作状态
阻塞
设备激活STP协议后进入的第一个状态
不能收发业务数据、不能学习MAC地址、不能发送BPDU,但是可以接收BPDU。
目的:将二层网络中的所有数据报文全部清空。
每个设备需要在阻塞状态停留20S时间。进入下一个状态
侦听
目的:完成STP的所有角色选举过程。
接口可以收发BPDU报文,但是不能收发业务数据,也不能学习MAC地址。
需要在侦听状态停留一个转发延迟时间(15S)。
当转发延迟时间超时后,跟端口和指定端口会进入下一个状态,而非指定端口会退回到阻塞状态。
学习
目的:学习MAC地址,从而填充MAC地址表项
可以收发BPDU报文,可以学习MAC地址,不能收发业务数据。
需要在学习状态停留一个转发延迟时间(15S)。
转发
可以正常收发业务数据和BPDU报文。
只有根端口和指定端口可以处于转发状态。
STP收敛时间[记住就好,根据具体业务快速而定]
首次收敛---50S
结构突变
根网桥故障---50S
直连链路故障---30S
立即将端口状态切换到侦听
非直连链路故障---50S
3.生成树STP基本配置实战
启动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
4.RSTP---802.1W---快速生成树协议
- 收敛速度慢----STP的算法是一种被动的算法,依赖于计时器来进行状态变化
- 路利用率低
- RSTP向下兼容STP协议
RSTP在园区网络中的应用位置
RSTP对STP的改进点讨论
改进点1---端口角色
- 802.1D协议---根端口、指定端口、非指定端口
- 802.1W协议---根端口、指定端口、(替代端口、备份端口)
- 替代端口----简单理解为根端口的备份。
- 替代端口是收到其他交换机的BPDU报文从而被阻塞的端口。
- 如果根端口发生故障,那么替代端口可以成为新的根端口,加快了网络的收敛速度。
- 一台交换机,有且只有一个根端口;替代端口可以有0个或多个。如果存在多个,最优的替代接口将成为新的根端口。
- 备份端口----理解为指定端口的备份。
- 备份端口是一台设备上由于收到了自己所发送的BPDU报文从而被阻塞的接口。
改进点2----端口状态
改进点3----RST BDPU报文
bit 6----表示同意的含义,P/A机制
bit 5----表示转发状态
bit 4----表示学习状态
bit 3和bit 2----代表发送该报文的端口角色
bit 1----表示提议含义,P/A机制
- RSTP在网络稳定后,任何设备,都可以周期性发送RST BPDU报文。
改进点4---快速收敛机制
根端口和指定端口的快速切换。
P/A机制
边缘端口
如果交换机的某个端口处于网络的边缘,即不与其他交换设备相连,直接与终端设备直连,这种端口可以被设置为边缘端口----因为终端设备无法处理STP报文。
边缘端口不会参与到生成树的计算过程中,当某个接口被设置为边缘端口,则立即切换到转发状态。
边缘端口的关闭或激活不会触发RSTP拓扑变更。
[sw3-GigabitEthernet0/0/22]stp edged-port enable ---设置为边缘端口
边缘接口会持续性发送BPDU报文。---但是这种持续性发送是没有必要的。
[sw1-GigabitEthernet0/0/1]stp bpdu-filter enable ----激活接口的BPDU过滤功能,激活后,该接口不会再发送BPDU报文。并且,该接口收到BPDU报文后,会直接忽略掉。
注意:一旦边缘端口收到BPDU报文,会立即丧失边缘端口属性,成为普通的STP端口,并重新进行生成树计算,引发网络震荡。----故,上述两条配置一般共同使用。
P/A机制----加快收敛
- 改变状态切换机制,将原本基于计时器的切换方式,修改为选择出端口角色,立即切换状态。
- SW11发送P标记位置为1的BPDU报文,请求将本接口的状态切换为转发状态。---能切换的前提是后续网络无环
- SW12收到该报文后,将本地除了根端口以外的端口全部阻塞。来保证本地无环
- 这个阻塞接口的过程被称为“同步过程”
- 完成同步过程后,本地其他接口都处于丢弃状态,设备向上游发送A标记位置为1的BPDU报文,并将自己的根端口切换为转发状态。
- SW11收到该报文后,将自己的接口转换为转发状态。
- 向下游重复该过程,直到所有的根端口和指定端口状态切换为转发状态。
改进点5---对BPDU处理方式
- 所有设备在网络收敛完成后,都会周期性发送BPDU报文
- 缩短了BPDU的超时时间
- RSTP将最大老化时间修改为三个周期更新时间(6S)
对次优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,此时接口角色和状态发生改变,可能引入环路。
根端口
如果常时间没有收到BPDU报文,那么交换机会重新选举根端口,并且该端口调整为指定端口。该接口状态切换为丢弃状态,避免环路产生。
替代端口
如果常时间没有收到BPDU报文,该端口调整为指定端口。将其状态保持在丢弃状态。
[Huawei-GigabitEthernet0/0/20]stp loop-protection ---开启接口的环路保护。
拓扑变更保护
- 如果网络环境极度不稳定,导致TC报文频繁洪泛,又或者网络中存在攻击者发送大量的TC报文,那么交换机的性能将受到极大的损耗。
- 拓扑变更保护功能---在单位时间内只进行一定次数的TC报文处理,如果超出这个次数,则按照规定次数处理,对于超出的部分,等待一段时间后进行处理。
[Huawei]stp tc-protection ---开启TC保护 在单位时间2S周期内,只会处理一次TC报文。
改进点7---拓扑变更机制的改进
- 如果SW3收不到根桥发送的BPDU报文,设备所有的指定端口和根端口启动一个TC计时器(4S)。并且清空所有端口学习到的MAC地址。然后向外发送TC置位的BPDU报文。
- 一旦计时器超时,则停止发送BPDU报文
- SW2收到该报文后,清空所有端口的MAC地址信息,将自己的接口也启动TC计时器,并将TC置位报文向上游发送。
- 重复上述过程。
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:多实例生成树实战配置
[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
补充:
默认情况下,域名使用的是交换机的MAC地址。