“SCSA-T学习导图+”系列:交换技术之STP
  

深信服认证 177472人觉得有帮助

{{ttag.title}}
本帖最后由 深信服认证 于 2023-1-4 14:33 编辑

本期引言:在通信工程当中,从物理层面上,我们可以采用冗余链路保证网络的健壮性。冗余是指出于系统安全和可靠性等方面的考虑,人为地对一些关键部件或功能进行重复的配置。当系统发生故障时,比如某一设备发生损坏,冗余配置的部件可以作为备援,及时介入并承担故障部件的工作,由此减少系统的故障时间。那么,物理上的冗余,是否就能保证业务的顺畅?实际上,使用冗余链路会在交换网络中产生环路,并导致广播风暴、MAC地址表不稳定以及多帧复制等故障现象,从而导致用户通信质量较差。本期我们要讨论的内容就是如何解决冗余链路带来的环路问题-生成树协议STP(Spanning Tree Protocol)技术。

01
什么是STP生成树协议
STP (spanning-tree-protocol)是交换机通过某种特定算法来逻辑阻塞物理冗余网络中某些接口,以达到避免数据转发循环,生成无环路拓扑的一种二层协议。

02
生成树的基本知识2.1 生成树协议的分类
生成树协议的分类,按照产生的时间先后顺序为STP、RSTP、MSTP。STP/RSTP是基于端口,PVST/PVST+是基于VLAN,MSTP是基于实例。

2.2 生成树协议所遵循的IEEE标准
三种生成树所遵循的IEEE标准分别为STP-IEEE 802.1d,RSTP-IEEE802.1W,MSTP-IEEE 802.1S。

2.3 STP基本思想
网桥之间彼此传递一种特殊的配置消息,802.1D协议将这种配置消息称为“配置桥协议数据单元”或者“配置BPDU”。配置消息中包含了足够的信息来保证网桥完成生成树的计算。

名词解释:网桥是交换机的前身,由于STP是在网桥基础上开发的,因此现在交换机的网络中仍然沿用网桥这一术语。
网桥利用收到的配置消息做以下动作:
  • 确定最小的根网桥ID(网桥优先级+背板MAC地址)
  • 确定最小路径开销cost
  • 确定最小发送网桥ID
  • 确定最小发送端口ID


03
STP的原理和算法-BPDU3.1 网桥协议数据单元
配置消息也被称作桥协议数据单元(BPDU)。网桥协议数据单元(BPDU,Bridge Protocol Data Unit)生成树协议是一种桥嵌套协议,在IEEE 802.1d规范里定义,可以用来消除桥回路。工作原理:生成树协议定义了一个数据包,叫做桥协议数据单元BPDU(Bridge Protocol Data Unit)。网桥用BPDU来相互通信,并用BPDU的相关机能来动态选择根桥和备份桥。但是因为从中心桥到任何网段只有一个路径存在,所以桥回路被消除。

3.2 STP选举的几个概念和关键参数

3.2.1根网桥的Identifier(RootID)
根桥就是“网桥ID”最优的桥,当STP的拓扑结构稳定之后由根桥负责每2秒(Hello Time)向树中所有的网桥发送配置BPDU报文,其他网桥接收并转发。

3.2.2从指定网桥到根网桥的最小路径开销(根路径开销RPC)
根端口即去往根桥路径最近的端口,这个最近的衡量是靠Root Path Cost来判定的。有关Path Cost的计算,是每当一个端口收到一个BPDU后,会在该BPDU所指示的Path Cost上加上该端口的Port Path Cost(这是可以人为配置的)。比较累计Root Path Cost最小的端口就是根端口,如果有两条开销相同的路径,那么就选择桥BID较小的。

3.2.3指定网桥的Identifier(发送设备BID)
指定桥就是对下游来说向它转发BPDU报文的桥,一个LAN上除了根桥以外的所有网桥都是指定桥。指定桥上必定有指定端口(即使是网络边缘的网桥也有-连接到主机的端口),而指定端口就是用来转发BPDU报文的。拓扑稳定后Root Port是不发送BPDU报文的,虽然它的状态是Forwarding,它只接收BPDU。

3.2.4指定网桥的指定端口的Identifier(发送端口PID)
指定端口即在一个LAN里面负责转发BPDU的端口,根桥和指定桥上都有它,但根端口只在指定桥上有,同样block端口也只存在于指定桥上。
Block端口即被对方的指定端口抑制的端口,Block端口不转发任何报文,但他接收BPDU,监听网络变化。

3.3 STP工作步骤
将各个端口收到的配置消息和自己的配置消息做比较,得出优先级最高的配置消息更新本身的配置消息,主要工作有:
◆选择根网桥RootID:最优配置消息的RootID;◆计算到根桥的最短路径开销RootPathCost:如果自己是根桥,则最短路径开销为0,否则为它所收到的最优配置消息的RootPathCost与收到该配置消息的端口开销之和;◆选择根端口RootPort:如果自己是根桥,则根端口为0,否则根端口为收到最优配置消息的那个端口;◆选择指定端口:包括在生成树上处于转发状态的其他端口;从指定端口发送新的配置消息。

04
STP算法示例示例:

STP拓扑结构的建立微观上说是一个全网交换机互相交互的过程,各台交换机相互之间不停的发送配置BPDU,发送和接受BPDU的是各switch的Ports,BPDU不单在不同交换机的端口之间比较,也在交换机的内部作比较。

如果发现比自己“优”的BPDU,就进行报文的更新,如果发现对方传来的BPDU不如自己的,则丢弃报文,直到再收不到比自己更优的BPDU为止。

当网络中所有的交换机都处于这种状态的时候我们可以认为拓扑结构已经建立,但根端口和指定端口还得经过2个Forward Delay Time才能进入转发状态。

所以STP拓扑结构的建立实际上可以理解为端口角色的建立,所有端口都为指定端口的交换机被选为根桥,其余的为指定桥。

4.1 STP 根桥的选择
根桥选择依据:1. 优先级2. MAC地址注:根据网桥ID选择根网桥,网桥ID=两字节长度的优先级+6字节长度的MAC地址
交换机的优先级取值范围0-65536,增量为4096。优先级的值越小,优先级越高。
通常交换机优先级的默认值为32768,可以使用命令人工修改该值。
在网络中,所有的网桥都分配了一个数值,这个值称为网桥优先级,优先级最小的网桥称为根网桥。首先会比较交换机的优先级,如果优先级相同,那么MAC地址越小的即为根桥。

图:STP 根桥的选择

4.2 STP 选择根端口

根端口选择依据:1. 根路径成本最低2. 直连网桥的网桥ID最小3. 直连网桥的端口ID最小
根端口存在每个非根网桥上,需要在每个非根网桥上选择一个根端口。
根端口即去往根桥路径最近的端口,这个最近的衡量是靠Root Path Cost来判定的。有关Path Cost的计算,是每当一个端口收到一个BPDU后,会在该BPDU所指示的Path Cost上加上该端口的Port Path Cost(这是可以人为配置的)。比较累计Root Path Cost最小的端口就是根端口,如果有两条开销相同的路径,那么就选择桥BID较小的。Root Path Cost不是一个可配置项,即它是由交换机根据Port Path Cost比较而累积得出的,Port Path Cost才是一个可配置的选项。
另外,一般端口的路径开销越大,该端口连接的LAN就越接近生成树的末梢,那么这个端口的流量就较少。如果某个LAN的带宽较小或者用户希望减少某个LAN的流量,就可以将该端口对应的路径开销配置一个较大的值。

图:STP 选择根端口-根据Cost值

图:STP 选择根端口-根据网桥ID
选根端口,在比较网桥ID时,比较的是端口直连发送方网桥ID值。


图:STP 选择根端口选择-根据端口ID端口优先级,同网桥的优先级一样,端口优先级取值越小,则优先级越大。选根端口,在比较端口ID时,比较的是端口接收到的对端的端口ID值。

4.3 STP 指定端口
每个网段选择一个指定端口
1. 根桥上的端口都是指定端口
2. 非根桥上的指定端口• 根据路径成本Cost值(网段的最低根路径)• 端口所在的网桥ID值较小
直连网桥的端口ID值较小。

指定端口即在一个LAN里面负责转发BPDU的端口,根桥和指定桥上都有它,但根端口只在指定桥上有,同样block端口也只存在于指定桥上。

Block端口即被对方的指定端口抑制的端口,Block端口不转发任何报文,但他接收BPDU,监听网络变化。

选指定端口,在比较网桥ID和端口ID时,比较的是端口所在交换机的网桥ID值和端口ID值。

总结:本文从交换技术的概念出发,以STP生成树协议为主,简要的介绍了生成树协议的分类,生成树协议所遵循的IEEE标准,STP基本思想,以及STP算法-BPDU,并通过生成树算法示例帮助我们更好的理解STP的工作原理。

练习题:网络故障发生后,如何才能判断故障是由环路引发的呢?举个例子,如果网络访问速度变慢,ping外网有严重丢包,ping内网有延时很大,故障的原因可能有多种。怎么才能断定这个故障是环路引发的呢,现象提示:
一、广播风暴:链路上的广播包可以占满带宽,100M约30000~50000/pps。
二、多帧复制:抓包可以抓到同一个帧的多个副本,只限广播帧和组播帧。
三、MAC地址表抖动:交换机上可以周期性的看到MAC地址翻滚(flapping)的日志。
大家可以思考一下验证实验的设计思路。

作者介绍:
傅先全,深信服产业教育中心教学教研副主任
深信服云计算认证专家(SCCE-C),产业教育中心资深讲师,曾任职于中国电信集团、华晟经世教育集团,分别担任云平台资深架构师、IT课程总监及名师团金牌讲师、多所高校特聘专家讲师;十余年云计算、大数据行业从业经验,在企业信息化建设、企业项目管理、云平台架构设计等方面有较强的实战经验;研究方向为云计算、大数据技术等,具有丰富的知识转换以及课程交付经验;同时,在院校学科建设、人才培养、项目科研、职业技能人才认证等方面具有丰富的产教融合体系建设与组织经验。

打赏鼓励作者,期待更多好文!

打赏
53人已打赏

小鱼儿 发表于 2023-1-5 16:52
  
感谢楼主分享,学习一下
日出 发表于 2023-1-5 16:57
  

感谢楼主分享,学习一下
小小胖 发表于 2023-1-5 17:01
  
感谢楼主分享,学习一下
小飞鱼 发表于 2023-1-5 17:06
  
感谢楼主分享,学习一下
司马缸砸了光 发表于 2023-1-5 18:45
  
感谢分享,资料很全面。
新手078326 发表于 2023-1-5 18:49
  
资料非常完整,非常感谢
新手899116 发表于 2023-1-5 18:52
  
资料非常完整,非常感谢
JM 发表于 2023-1-5 18:55
  
资料非常完整,非常感谢
夏国梁 发表于 2023-1-5 19:03
  
感谢楼主分享,学习一下
发表新帖
热门标签
全部标签>
西北区每日一问
安全效果
技术盲盒
干货满满
技术笔记
【 社区to talk】
每日一问
信服课堂视频
GIF动图学习
新版本体验
2023技术争霸赛专题
技术咨询
功能体验
产品连连看
安装部署配置
通用技术
秒懂零信任
技术晨报
自助服务平台操作指引
原创分享
标准化排查
排障笔记本
玩转零信任
排障那些事
SDP百科
深信服技术支持平台
升级&主动服务
畅聊IT
答题自测
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
每周精选
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
高手请过招
高频问题集锦
社区新周刊
POC测试案例
全能先锋系列
云化安全能力

本版版主

90
268
0

发帖

粉丝

关注

本版达人