STP(生成树协议)

1:为啥要用STP?
答:为了提高网络可靠性,交换网络中通常会使用冗余链路。然而,冗余链路会给交换网络带来环路风险,并导致广播风暴以及MAC地址表不稳定等问题,进而会影响到用户的通信质量。生成树协议STP ( Spanning Tree Protocol )可以在提高可靠性的同时又能避免环路带来的各种问题。

STP(802.1D)

1:不用STP会导致的问题

  • 广播风暴
    - 根据交换机的转发原则,如果交换机从一个端口上接收到的是一个广播帧,或者是一个目的MAC地址未知的单播帧,则会将这个帧向除源端口之外的所有其他端口转发。如果交换网络中有环路,则这个帧会被无限转发,此时便会形成广播风暴,网络中也会充斥着重复的数据帧。

  • MAC地址震荡

    • STP(生成树协议)_第1张图片
    • 如图,单播帧从LSW2出去(两个口),这是LSW1,LSW3的MAC表会更新,当LSW1收到LSW3的数据时又会更新MAC表,覆盖之前LSW2传过来的数据(同一MAC的数据会被覆盖),LSW3同理,如此无限循环。
  • 重复数据帧

STP作用

作用原理:堵塞(逻辑)端口来实现消除环路,并实现链路备份的目的
主要作用:

  1. 消除环路︰通过阻断冗余链路来消除网络中可能存在的环路。
  2. 链路备份∶当活动路径发生故障时,激活备份链路,及时恢复网络连通性。

STP的工作过程

  1. 选举一个根网桥
  • STP中根桥的选举依据的是桥ID,STP中的每个交换机都会有一个桥ID(Bridge ID)。桥ID由16位的桥优先级(Bridge Priority )和48位的MAC地址构成。在STP网络中,桥优先级是可以配置的,取值范围是0~65535,默认值为32768。优先级最高的设备(数值越小越优先)会被选举为根桥。如果优先级相同,则会比较MAC地址,MAC地址越小则越优先。。
  • 交换机启动后就自动开始进行生成树收敛计算。默认情况下,所有交换机启动时都认为自己是根桥,自己的所有端口都为指定端口,这样BPDU报文就可以通过所有端口转发。对端交换机收到BPDU报文后,会比较BPDU中的根桥ID和自己的桥ID。如果收到的BPDU报文中的桥ID优先级低,接收交换机会继续通告自己的配置BPDU报文给邻居交换机。如果收到的BPDU报文中的桥ID优先级高,则交换机会修改自己的BPDU报文的根桥ID字段,宣告新的根桥。
  1. 每个非根交换机选举一个根端口
  • 非根交换机在选举根端口时分别依据该端口的根路径开销、对端BID(Bridge ID)、对端PID (Port ID)和本端PID。
    交换机的每个端口都有一个端口开销(Port Cost)参数,此参数表示该端口在STP中的开销值。默认情况下端口的开销和端口的带宽有关,带宽越高,开销越小。从一个非根桥到达根桥的路径可能有多条,每一条路径都有一个总的开销值,此开销值是该路径上所有接收BPDU端口的端口开销总和(即BPDU的入方向端口),称为路径开销。非根桥通过对比多条路径的路径开销,选出到达根桥的最短路径,这条最短路径的路径开销被称为RPC(Root Path Cost,根路径开销),并生成无环树状网络。根桥的根路径开销是0。·
  • 一般情况下,企业网络中会存在多厂商的交换设备,华为X7系列交换机支持多种STP的路径开销计算标准,提供最大程度的兼容性。缺省情况下,华为X7系列交换机使用IEEE802.1t标准来计算路径开销。
  • 运行STP交换机的每个端口都有一个端口ID,端口ID由端口优先级和端口号构成。端口优先级取值范围是0到240,步长为16,即取值必须为16的整数倍。缺省情况下,端口优先级是128。端口ID ( Port ID)可以用来确定端口角色。
  • 每个非根桥都要选举一个根端口。根端口是距离根桥最近的端口,这个最近的衡量标准是靠路径开销来判定的,即路径开销最小的端口就是根端口。端口收到一个BPDU报文后,抽取该BPDU报文中根路径开销字段的值,加上该端口本身的端口开销即为本端口路径开销。如果有两个或两个以上的端口计算得到的累计路径开销相同,那么选择收到发送者BID最小的那个端口作为根端口。
  • 如果两个或两个以上的端口连接到同一台交换机上,则选择发送者PID最小的那个端口作为根端口。如果两个或两个以上的端口通过Hub连接到同一台交换机的同一个接口上,则选择本交换机的这些端口中的PID最小的作为根端口。
  1. 每个网段选举一个指定端口
  • ·在网段上抑制其他端口(无论是自己的还是其他设备的)发送BPDU报文的端口,就是该网段的指定端口。每个网段都应该有一个指定端口,根桥的所有端口都是指定端口(除非根桥在物理上存在环路)。
  • 指定端口的选举也是首先比较累计路径开销,累计路径开销最小的端口就是指定端口。如果累计路径开销相同,则比较端口所在交换机的桥ID,所在桥ID最小的端口被选举为指定端口。如果通过累计路径开销和所在桥ID选举不出来,则比较端口ID,端口ID最小的被选举为指定端口。
  • 网络收敛后,只有指定端口和根端口可以转发数据。其他端口为预备端口,被阻塞,不能转发数据,只能够从所连网段的指定交换机接收到BPDU报文,并以此来监视链路的状态。
  1. 阻塞非根,非指定端口

端口的五种状态

  • Forwarding :转发状态。端口既可转发用户流量也可转发BPDU报文,只有根端口或指定端口才能进入Forwarding状态。
  • Learning :学习状态。端口可根据收到的用户流量构建MAC地址表,但不转发用户流量。增加Learning状态是为了防止临时环路。
  • Listening :侦听状态。端口可以转发BPDU报文,但不能转发用户流量。
  • Blocking :阻塞状态。端口仅仅能接收并处理BPDU,不能转发BPDU,也不能转发用户流量。此状态是预备端口的最终状态。
  • Disabled:禁用状态。端口既不处理和转发BPDU报文,也不转发用户流量。

BPDU报文

在这里插入图片描述

  • 为了计算生成树,交换机之间需要交换相关的信息和参数,这些信息和参数被封装在BPDU( Bridge Protocol Data Unit )中。
  • BPDU有两种类型∶配置BPDU和TCN BPDU。
  • 配置BPDU包含了桥ID、路径开销和端口ID等参数。STP协议通过在交换机之间传递配置BPDU来选举根交换机,以及确定每个交换机端口的角色和状态。在初始化过程中,每个桥都主动发送配置BPDU。在网络拓扑稳定以后,只有根桥主动发送配置BPDU,其他交换机在收到上游传来的配置BPDU后,才会发送自己的配置BPDU。
  • TCN BPDU是指下游交换机感知到拓扑发生变化时向上游发送的拓扑变化通知。
  • 配置BPDU中包含了足够的信息来保证设备完成生成树计算,其中包含的重要信息如下∶
    1. 根桥ID∶由根桥的优先级和MAC地址组成,每个STP网络中有且仅有一个根桥。
    2. 根路径开销∶到根桥的最短路径开销。
    3. 指定桥ID∶由指定桥的优先级和MAC地址组成。
    4. 指定端口ID∶由指定端口的优先级和端口号组成。
    5. Message Age:配置BPDU在网络中传播的生存期。
    6. Max Age:配置BPDU在设备中能够保存的最大生存期。
    7. Hello Time :配置BPDU发送的周期。
    8. Forward Delay:端口状态迁移的延时。

故障

1:跟网桥故障
非根网桥会在BPDU老化(20S)之后开始重新开始根网桥的选举
2:直连链路故障
启用之前被阻塞的端口成为根端口(30)
3:非直连链路故障
启用之前被阻塞的端口成为根端口(50S)

缺点

1、收敛速度慢
2、链路利用率低 – 备份链路正常不转发数据

你可能感兴趣的:(hcip,交换机)