文章目录

  • 生成树协议
    • 生成树术语
    • STP工作过程
    • 生成树协议类型
    • 修改和验证网桥`ID`

欢迎扫码关注微信公众号

生成树协议

目的就是为了消除由网桥或者交换机所组建的二层网络产生的环路

STP使用生成树算法创建拓扑数据库,再找出并禁用冗余链路,在运行了STP的情况下,帧只会被转发到STP选定的最佳链路

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MQyuGPq0-1597374528673)(https://i.imgur.com/yaRFOzQ.png)]

冗余链路的存在会造成广播风暴、多帧复制、MAC地址表抖动的后果

生成树协议有多个版本,这里我们首先介绍IEEE802.1dCisco交换机默认使用的就是这个版本

生成树术语

  • 根网桥

    • 根网桥就是网桥ID最小(最佳)的网桥,在STP网络中,交换机选举一个根网桥,根网桥是网络的核心,其他所有决策都是从根网桥的角度做出的,在选举出根网桥之后,其他所有的网桥都必须确定前往根网桥的最佳路径,而这条最佳路径连接的端口称为根端口(根网桥上的所有端口都是根端口)
  • 非根网桥
    • 顾名思义,指的是除根网桥外的其他所有网桥
    • 非根网桥与其他所有网桥交换BPDU,并更新STP拓扑数据结库,这有助于避免环路,并能在链路出现故障时采取补救措施(因为他们之间一直都保持通信,如果发生了故障可以在通信周期的获得发生故障的信息)
  • BPDU
    • 所有交换机都彼此交换信息,并根据这些信息来配置网络
    • 每台交换机都将其发送给邻居的BPDU参数同从其他邻居那里收到的BPDU参数进行比较,BPDU包含提供它的网桥的ID
    • BPDU帧格式
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MnnBW8cI-1597374528676)(https://i.imgur.com/iZ45pg7.png)]
  • 网桥ID
    • STP使用网桥ID跟踪网络中的所有交换机
    • 网桥ID由网桥优先级和MAC地址共同决定
    • 网桥ID最小的网桥将成为根网桥
    • 选举出根网桥后,其他的每台交换机都必须确定前往根网桥的最佳路径
    • 大多数网络都将受益于将特定网桥或交换机指定为根网桥(这句话从书上抄的,我也不太明白是啥意思,受益??有什么可受益的??)
    • 要让特定网桥成为根网桥,可以将其优先级设置成很低的一个值
  • 端口成本
    • 两台交换机之间有多条链路时,将根据端口成本确定最佳路径
    • 链路的成本取决于带宽
    • 每个网桥都根据路径成本确定前往根网桥的最佳路径
  • 路径成本
    • 在交换机和根网桥之间可能隔着一台或多台其他的交换机,因此从这台交换机前往根网桥时,可能存在多条路径
    • 将对前往根网桥的每条路径进行分析,计算路径成本,计算方式为:
      • 将路径中各个端口的成本相加

1、端口角色

  • **根端口 **

    • 从根端口出发前往根网桥的路径成本最低,如果有多条前往根网桥的路径,将根据带宽计算每条路径的成本,并将成本最低的路径对应的端口作为根端口
    • 如果有多条链路连接到同一台上游设备,且经由该上游设备前往根网桥的路径成本最低,则将这样的端口作为根端口,即它连接的上游设备端口的编号最小
    • 根网桥上的每个端口都是根端口,其他的交换机都有且只有一个根端口
  • 指定端口
    • 指定端口的确定方式是,从该端口出发,前往特定网段的路径成本最低
    • 指定端口将被标记为转发端口,而对于给定网段,只能有一个转发端口
  • 非指定端口
    • 前往给定网段时,从非指定端口出发的路径成本比从指定端口出发高
    • 基本上除了根端口和指定端口之外,其他的端口都是非指定端口
    • 非指定端口处于阻断或丢弃模式,即不进行数据包的转发
  • 转发端口
    • 转发端口对帧进行转发,要么是根端口,要么是指定端口
  • 阻断端口
    • 该类型端口不转发帧,以免形成环路
    • 阻断端口不断**侦听(只是进行侦听而已)**来自邻居交换机的BPDU帧,其他帧统统被丢弃,且转发任何帧
  • 替代端口
    • 这是802.1w(思科快速生成树协议)中的术语,相当于802.1d中的阻断端口
    • 替代端口位于这样的交换机上,即该交换机连接的LAN网段中还有多台交换机,且其中一台交换机有指定端口
  • 备用端口
    • 这是802.1w(思科快速生成树协议)中的术语,相当于802.1d中的阻断端口
    • 备用端口与指定端口连接到同一个LAN

2、端口状态

在运行IEEE 802.1d STP的网桥和交换机上,端口有以下5种状态

  • 禁用

    • 处于管理性禁用状态的端口不参与帧转发和STP,处于禁用状态的端口和down掉的端口的效果是一样的
  • 阻断
    • 阻断端口不转发数据帧,只是侦听BPDU而已
    • 将端口置于阻断状态旨在避免环路,在交换机刚启动的时候,所有的端口都是处于阻断状态的
  • 侦听
    • 端口侦听BPDU,确保它对数据帧进行转发时不会导致环路
    • 处于侦听状态的端口时刻准备着转发数据帧,但不填充MAC地址表
  • 学习
    • 交换机端口侦听BPDU并获悉交换型网络中的所有路径
    • 处于学习状态的端口填充MAC地址表,但不转发数据帧
    • 转发延迟指的是端口从侦听模式切换到学习模式或从学习模式切换到转发模式所需的时间,默认为15秒,这种设置可使用命令show spanning-tree来查看
  • 转发
    • 端口收发数据帧
    • 学习阶段结束后,如果端口为指定端口或根端口,它将切换到转发状态
      3、会聚

会聚指的是所有网桥和交换机的端口都处于转发或者阻断模式

在会聚完毕之前,不会转发任何数据,在此期间,任何主机都无法通过交换机传输数据

802.1d中,从阻断模式过渡到转发模式默认需要50秒钟

因此有其他STP版本代替802.1d

4、链路成本

其实就是一个表

链路速度 端口成本
10Mbit/s 100
100Mbit/s 19
1000Mbit/s 4
10000Mbit/s 2

STP工作过程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q61E2PZE-1597374528678)(https://i.imgur.com/uhQ2sSv.png)]

其实是很简单的

  • 选举根网桥RB

    • 网桥的ID是由优先级MAC共同决定的,从上图中我们可以看到,他们的优先级是相等的,然后我们就去比较他们的MAC地址的值,明显S1最小,因此**S1被选举为根网桥**
  • 选举根端口RP
    • 每台交换机都会确定一个根端口,即唯一一条qi前往根网桥de的路径,选择路径的标准就是路径成本最低
    • 很明显,选择直接与根网桥相连的端口作为根端口是最合理的
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fKJL8LCU-1597374528680)(https://i.imgur.com/jtURx7o.png)]
  • 选举网段中的指定端口DP
    • S2S3之间选择网桥ID比较小的交换机的端口作为DP,则S3的端口会被选举为DP,然后S2左边的端口被阻断

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZfH4tkRz-1597374528680)(https://i.imgur.com/G9FmdDu.png)]

生成树协议类型

  • IEEE 802.1d

    • 上面所说的一直都是它,这种类型的STP标准,速度非常慢,但占用的网桥资源很少,也被称为公用生成树(CST)
  • PVST+
    • 是思科专用的改进版STP,为每个VLAN提供一个生成树实例,速度和CST一样慢,但是可以有多个根网桥,提高了网络链路的效率,同时也占用了更多的网桥资源
  • IEEE 802.1w
    • 亦称为快速生成树协议RSTP,它改进了BPDU的交换方式,为极大地提高网络汇聚速度铺平了道路,但像CST一样只允许每个网络中有一个根网桥
    • RSTP占用的网桥资源介于CSTPVST+之间
  • 快速PVST+
    • 思科专用的改进版RSTP,使用PVST+,其汇聚速度极快,数据传输路径最佳

1、公用生成树

这种类型的生成树协议只会产生一个根网桥,也就是所有的VLAN共用一个根网桥,而其他的每个网桥都将确定一条前往根网桥最佳的路径
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pVIFUTXc-1597374528681)(https://i.imgur.com/lieZPBZ.png)]

但这种解决方案并不是对所有VLAN都是最佳的,因此思科就开发出了自己的CSTPVST+ --> Per-VLAN Spanning Tree

2、PVST+

思科专用CST扩展,它让每一个VLAN都拥有一个属于自己的根网桥
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nNg4GwUN-1597374528682)(https://i.imgur.com/HRHZqPa.png)]

为了支持PVST+,在BPDU中新增了一个字段,该字段包含扩展的系统ID,让PVST+能够为每个STP实例选择根网桥,这样一来,在所有字段总长度不变的情况下,网桥优先级字段就缩短了,从16位变成了4位,其中12位用来作为系统ID字段
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D2OFDijv-1597374528687)(https://i.imgur.com/2vP5fKY.png)]

这样以来,网桥优先级的增量就变成了4096(2^12),使用show spanning-tree可以看到系统ID字段的值

默认会聚时间和CST一样,都是50秒,的确是有点长,因此出现了新的生成树协议IEEE 802.1w

3、802.1w
快速生成树协议调整了CST的端口状态,由5中改成了3种,这样一来,状态间的切换就方便了很多
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dNomly1I-1597374528688)(https://i.imgur.com/0zBbAKF.png)]

示例:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TRPtjZW9-1597374528689)(https://i.imgur.com/9TMduaO.png)]

三个角色的选举方法只有三步:

  • 根据网桥ID选举出根网桥
  • 找出前往根网桥的最佳路径,以确定根端口
  • 根据网桥ID确定指定端口
    • 注意,在为网段选择指定端口时,优先考虑路径成本,如果路径成本相同,再考虑网桥ID

注意:已经当选为根端口的端口不会参与指定端口的选举

再来看一个示例:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-By7GRXLE-1597374528690)(https://i.imgur.com/mmsZ2AU.png)]

上面这张拓扑图会聚完成之后的结果是这样的:(其中的F代表指定端口

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oXTiO0rX-1597374528691)(https://i.imgur.com/cWuJDBV.png)]

SASD的链路选举指定端口时,我们优先考虑到达根网桥的路径成本,故而选择了SA的端口作为该链路中的指定端口

SASB之间的链路同理

修改和验证网桥ID

很简单的一个拓扑图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w4Obs4Hi-1597374528691)(https://i.imgur.com/88g4SP2.png)]

各网桥信息以及根网桥S2,思科默认运行的是PVSt+

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aFFunGzd-1597374528692)(https://i.imgur.com/LgTQm5f.png)]

s2VLAN1的根网桥,观察一下就可以看到,各网桥的优先级都是32769,这是因为计算实际的优先级值的时候,需要将优先级值与sys-id-ext相加,交换机默认优先级值是32768sys-id-ext值是1,因此最终的优先级值是32769

sys-id-extPVST+中的扩展系统ID字段

S2的两个段口都是指定端口Desg,这些信息在show spanning-tree的结果中都是可以看到的

我们查看S1的结果,可以看到其到达根网桥的成本是19,因为我们使用的是fast Ethernet100Mbit/s),根端口是Fa0/1

我们可以使用show cdp neighbors来查看交换机的邻居交换机的信息

使用spanning-tree vlan 2 priority ?命令为交换机设置其在某一VLAN中的优先级值,在PVST+中,交换机的优先级因该是4096的倍数

另一种方式是直接指定根网桥spanning-tree vlan 2 root primary

最后说一下如何在cisco交换机中启用RSTP,这个只需要一条命令即可:

spanning-tree mode rapid-pvst

Cisco交换机 ——STP相关推荐

  1. cisco 华三 对接_H3C交换机与Cisco交换机STP协议对接注意事项

    1 . H3C 交换机与 CISCO 交换机的 MST 互通 ( 1 ) 由于思科对于 mstp 摘要计算方法特殊, 导致 H3C 交换机和 CISCO 交换机在 做 MSTP 对接时,即使它们的域配 ...

  2. CISCO交换机配置命令大全

    CISCO交换机配置命令大全 1.在基于IOS的交换机上设置主机名/系统名: switch(config)# hostname hostname 在基于CLI的交换机上设置主机名/系统名: switc ...

  3. 《Cisco交换机配置与管理完全手册》(第二版)前言和目录

    史上最具人气.最受好评的网络设备图书领域"四大金刚"的全新升级版本再现江湖了,他们分别是:<Cisco交换机配置与管理完全手册>(第二版).<H3C交换机配置与管 ...

  4. CISCO交换机配置命令及释义

    CISCO交换机配置命令及释义 1.设置交换机名称 switch(config)#hostname DSHD DSHD(config)# 2.设置交换机管理IP地址 switch(config)#in ...

  5. 《通用版CISCO交换机配置命令及释义》——【全面、通用,含部分功能的注释】

    CISCO交换机配置命令及释义 1.设置交换机名称 switch(config)#hostname DSHD DSHD(config)# 2.设置交换机管理IP地址 switch(config)#in ...

  6. H3C交换机与cisco交换机对接配置案例和注意事项

    7506E与CISCO交换机MSTP协议对接配置 一. 组网需求: 安徽某客户要求我司75E交换机与CISCO交换机MSTP协议对接,并具备防环和链路备份功能. 二. 组网图: 客户网络架构如下图,两 ...

  7. Cisco交换机端口假死(err-disable)解决方法

    我的一台3750G透过单模光纤接2960交换机,今天早上之间网络不通,3750G和2960上的SFP模块指示灯都不亮,查看CISCO 3750G的日志,有如下提示: Apr 27 05:22:03: ...

  8. cisco 交换机指示灯

    cisco交换机的LED指示灯均标注有各自的含义,不同颜色则表明不同的连通状态. system LED指示灯用于显示系统加电情况.当该指示灯熄灭时,表示系统未加电:当该指示灯呈绿色时,表示电源正常,系 ...

  9. Cisco交换机解决网络蠕虫病毒***问题

    Cisco交换机解决网络蠕虫病毒***问题          今年来网络蠕虫泛滥给ISP和企业都造成了巨大损失,截至目前已发现近百万种病毒及***.受感染的网络基础设施遭到破坏,以Sql Slamme ...

最新文章

  1. CVPR 2021 比CNN和Transformer更好的Backbone?伯克利谷歌提出BoTNet,精度达84.7%
  2. 4.3、Libgdx启动类和配置
  3. [翻译]使用C#创建SQL Server的存储过程(Visual Studio 2005 + SQL Server 2005)
  4. ITK:从二进制图像中的对象计算距离图
  5. python词云图代码示例 无jieba_【词云图】如何用python的第三方库jieba和wordcloud画词云图...
  6. 总结的若干关于RecursionError: maximum recursion depth exceeded问题的解决办法
  7. CSS层叠样式选择器归纳
  8. 2019年开源安全现状调查报告发布
  9. 饭卡问题(0-1背包的变形)
  10. 理解OpenCL数据类型
  11. gen_fsm的学习笔记
  12. IT行业毕业生投简历或面试技巧
  13. 【STM32】HAL库 STM32CubeMX系列学习教程
  14. 车载终端794认证,905认证
  15. 很有意思的几个考验知识广度的问题
  16. Qt 快速入门学习笔记
  17. vue3在控制台打印相关变量的值
  18. 有效的括号(leetcode 20)
  19. 网络信息安全之基于时间的安全模型(PDR和PPDR模型)
  20. 1054:三角形判断

热门文章

  1. STM32 USB HID设置(STM32CubeMX)
  2. python数据类型与数据结构--内置数据类型
  3. 普通人学python有意义吗_普通人学python有什么用
  4. 致广大而尽精微,极高明而道中庸
  5. Oracle rtrim、to_char函数格式化数字 小数Format展示,FM999990D99
  6. scala val 与var 区别
  7. 在vue项目中使用html2canvas实现保存网页为图片
  8. java 消除png 锯齿_反转(移除)抗锯齿滤波器
  9. Linux下TCP网络编程-创建服务器与客户端
  10. python 类 子类 初始化 super