文章目录


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



欢迎扫码关注微信公众号


Cisco交换机 ——STP_交换机

生成树协议

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

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

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

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

生成树协议有多个版本,这里我们首先介绍​​IEEE​​​版​​802.1d​​​,​​Cisco​​交换机默认使用的就是这个版本

生成树术语


  • 根网桥

    • 根网桥就是网桥​​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​

    • 在​​S2​​和​​S3​​之间选择网桥​​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​​​占用的网桥资源介于​​CST​​​和​​PVST+​​之间

  • 快速​​PVST+​
  • 思科专用的改进版​​RSTP​​​,使用​​PVST+​​,其汇聚速度​极快​,数据传输路径最佳

1、公用生成树

这种类型的生成树协议只会产生一个​根网桥​,也就是所有的​​VLAN​​共用一个根网桥,而其他的每个网桥都将确定一条前往根网桥最佳的路径

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

但这种解决方案并不是对所有​​VLAN​​​都是最佳的,因此思科就开发出了自己的​​CST​​​,​​PVST+​​​ --> ​​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)]

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

​SA​​和​​SB​​之间的链路同理

修改和验证网桥​​ID​

很简单的一个拓扑图:

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

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

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

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

​sys-id-ext​​​是​​PVST+​​中的​扩展系统ID​字段

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

我们查看​​S1​​​的结果,可以看到其到达根网桥的成本是​​19​​​,因为我们使用的是​​fast Ethernet​​​(​​100Mbit/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