MHuiG

「看庭前花开花落,望天上云卷云舒」

STP

# STP

STP: 生成树协议，在以太网中，通过阻塞部分链路形成树状结构，从而消除网络中的环路结构，当主链路发生故障时，被阻塞的链路可以自行恢复转发状态，从而保证网络中链路的可靠性.

## STP 的作用

消除环路：通过阻断多余的链路来消除网络中可能存在的环路.

备份链路：当活动链路出现故障时，激活备份链路，代替活动链路继续进行数据转发.

## 以太网环路产生的影响

1. 广播风暴：广播帧在以太网中通过泛洪的方式进行数据转发，所以一旦出现环路，则广播帧会在环路中无限都是进行传递，如果 PC 不断发送广播帧，最终可能导致网络数据帧的阻塞，导致网络瘫痪，网络中充斥着重复的广播帧.
2. MAC 地址表的漂移：当产生环路时，MAC 地址表不断的学习和刷新以及删除 MAC 地址表项.
3. 主机收到重复的数据帧.

## STP 专有名词

根桥: ROOT, 是 STP 协议中的逻辑根设备，是 STP 的逻辑中心.

BID: 桥 ID, 描述交换机设备的参数，由优先级和 MAC 地址两个部分组成，在比较时先比较优先级，当优先级相同时比较 MAC 地址，越小越优.

桥优先级范围:`0-65535`, 步长 `4096`, 缺省值 `32768`, 最大值 `61440`.

STP 的开销:

dot1d: `1-65535`

dot1t: `1-200000000`

legacy: `1-200000`

RPC: 根路径开销，非根交换机到达根的路径开销总和 (从根到该交换机的入方向接口开销总和)

PID: 端口 ID, 是由端口优先级和端口编号构成。端口优先级取值范围 0-255, 必须是 16 的倍数，缺省值为 128.

## STP 计算

1. 选举根桥，比较桥优先级，数值越小越优，如果优先级相同，比较 MAC 地址，MAC 地址越小越优.

2. 在所有非根交换机上选举根端口，根端口只存在于非根交换机，每个非根交换机只有一个根端口.

   - 1. 比较该设备每个端口到达根桥的 RPC, 开销越小越优.
   - 2.RPC 一致时，则比较上游设备的 BID,BID 越小越优.
   - 3. 上游 BID 一致时，则比较上游设备的 PID, 越小越优.
   - 4. 上游设备 PID 一致时，则比较本设备的 PID, 越小越优.

3. 指定桥：本网段内到达根桥的最优设备。每个链路内，选举指定桥，指定桥最优端口为指定端口.

   - 1. 比较链路内的交换机到达根桥的根路径开销，开销数值越小的交换机成为指定桥.
   - 2. 如果开销一致，则比较 BID 大小，越小越优，指定端口一定在指定桥上.
   - 3. 如果指定桥在该链路有多个端口到达根桥，则比较 PID,PID 数值小的成为指定端口.

4. 所剩的非根非指定端口被阻塞，阻塞端口不为用户转发数据，并成为 STP 中的备份链路.

## STP 计时器

Hello Time: STP 协议连续发送 BPDU 报文的间隔，默认 2s.

Max Age: 最大寿命，交换机接收 BPDU 的最大间隔，超过 Max Age 还没有接收到 BPDU, 则认为链路失效。默认值 20s.

Message Age: BPDU 每经过一个交换机就 + 1, 当超过最大值时则 BPDU 失效，默认值 20.

## STP 的端口状态

1. 禁用状态: disable, 当端口处于禁用或没有正常运行 STP 时. STP 的初始状态，该状态下，接口既不收发 BPDU 也不为用户转发数据.

2. 阻塞状态: blocking, 是端口阻塞的最终状态，交换机在该状态下接收 BPDU, 但不发送 BPDU, 不为用户转发数据，也不会学习 MAC 地址.

3. 监听状态: listening, 是一个过度状态，在该状态下交换机会收发 BPDU, 通过 BPDU 的交互最终确定端口角色该状态不会学习 MAC 地址，也不为用户转发数据.

等待转发延迟计时器 (15s), 超时进入到 learning 状态.

4. 学习状态: learning, 是一个过度状态，在该状态下交换机可以收发 BPDU, 可以学习 MAC 地址，为用户转发数据做准备，但不能发送用户数据.

等待转发延迟计时器 (15s), 超时进入到 forwarding 状态.

5. 转发状态: forwarding, 是根端口和指定端口的最终状态，在该状态下可以收发 BPDU, 学习 MAC 地址，收发用户数据.

## Shell

    [SW1]stp enable // 开启 stp
    [SW1]stp disable // 关闭 stp
    [SW1]display stp brief
     MSTID  Port                        Role  STP State     Protection
       0    GigabitEthernet0/0/1        ALTE  DISCARDING      NONE
       0    GigabitEthernet0/0/2        ROOT  FORWARDING      NONE

    [SW1]stp root ?
      primary    Primary root switch // 根桥 优先级变0
      secondary  Secondary root switch // 备份根桥 优先级变4096

    [SW1]stp priority ?  // 修改优先级
      INTEGER<0-61440>  Bridge priority, in steps of 4096

    [SW1]stp pathcost-standard ? // 修改开销计算方式 整个网络都需要修改
      dot1d-1998  IEEE 802.1D-1998
      dot1t       IEEE 802.1T
      legacy      Legacy

    [SW1-GigabitEthernet0/0/1]stp cost ? // 修改开销
      INTEGER<1-200000000>  Port path cost

    [SW1-GigabitEthernet0/0/1]stp port priority ? // 修改接口优先级
      INTEGER<0-240>  Port priority, in steps of 16

## PVI

PVI: 协议版本标识符.

0: STP, 标准 STP, 基于 802.1D, 所有 STP 的基础。所有的 VLAN 共用一个 STP 拓扑，收敛速度慢 (30-50s).

2:RSTP, 快速 STP, 基于 802.1W, 在标准 STP 的基础上增加了部分快速收敛机制.

3:MSTP, 多实例 STP, 基于 802.1S, 在 RSTP 的基础上增加了多实例的配置，可以实现多 VLAN 的 STP 不同的拓扑，并且单独计算生成树.

OSPF基础

OSPF 基础 OSPF 基础 动态路由AS (自治系统): 由同一个技术机构进行管理并且运行相同的路由选路策略的一组路由器. 动态路由分类按照使用范围分类: IGP: 内部网...

推荐阅读
交换网络基础 以太网帧结构 实现VLAN间通信 OSPF基础 数据转发过程 网络通信

留言区

Notes
数据通信网络
Are You A Robot?