Cisco交换机 ——STP

版权声明:欢迎提问:[email protected] https://blog.csdn.net/include_heqile/article/details/85286464

生成树协议

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

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

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

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

生成树术语

  • 根网桥
    • 根网桥就是网桥ID最小(最佳)的网桥,在STP网络中,交换机选举一个根网桥,根网桥是网络的核心,其他所有决策都是从根网桥的角度做出的,在选举出根网桥之后,其他所有的网桥都必须确定前往根网桥的最佳路径,而这条最佳路径连接的端口称为根端口(根网桥上的所有端口都是根端口)
  • 非根网桥
    • 顾名思义,指的是除根网桥外的其他所有网桥
    • 非根网桥与其他所有网桥交换BPDU,并更新STP拓扑数据结库,这有助于避免环路,并能在链路出现故障时采取补救措施(因为他们之间一直都保持通信,如果发生了故障可以在通信周期的获得发生故障的信息)
  • BPDU
    • 所有交换机都彼此交换信息,并根据这些信息来配置网络
    • 每台交换机都将其发送给邻居的BPDU参数同从其他邻居那里收到的BPDU参数进行比较,BPDU包含提供它的网桥的ID
    • BPDU帧格式
  • 网桥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工作过程

其实是很简单的

  • 选举根网桥RB
    • 网桥的ID是由优先级MAC共同决定的,从上图中我们可以看到,他们的优先级是相等的,然后我们就去比较他们的MAC地址的值,明显S1最小,因此**S1被选举为根网桥**
  • 选举根端口RP
    • 每台交换机都会确定一个根端口,即唯一一条qi前往根网桥de的路径,选择路径的标准就是路径成本最低
    • 很明显,选择直接与根网桥相连的端口作为根端口是最合理的
  • 选举网段中的指定端口DP
    • S2S3之间选择网桥ID比较小的交换机的端口作为DP,则S3的端口会被选举为DP,然后S2左边的端口被阻断

生成树协议类型

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

1、公用生成树

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

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

2、PVST+

思科专用CST扩展,它让每一个VLAN都拥有一个属于自己的根网桥

为了支持PVST+,在BPDU中新增了一个字段,该字段包含扩展的系统ID,让PVST+能够为每个STP实例选择根网桥,这样一来,在所有字段总长度不变的情况下,网桥优先级字段就缩短了,从16位变成了4位,其中12位用来作为系统ID字段

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

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

3、802.1w
快速生成树协议调整了CST的端口状态,由5中改成了3种,这样一来,状态间的切换就方便了很多

示例:

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

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

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

再来看一个示例:

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

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

SASB之间的链路同理

修改和验证网桥ID

很简单的一个拓扑图:

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

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

猜你喜欢

转载自blog.csdn.net/include_heqile/article/details/85286464
STP
今日推荐