抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >


STP

STP

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

STP 的作用

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

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

以太网环路产生的影响

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

STP 专有名词

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

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

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

STP 的开销:

dot1d: 1-65535

dot1t: 1-200000000

legacy: 1-200000

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

PID: 端口 ID, 是由端口优先级和端口编号构成 (8 + 8). 端口优先级取值范围 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计算

STP计算-p

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 地址, 收发用户数据.

状态收 BPDU发 BPDU收用户数据发用户数据学习 MAC 地址
禁用状态xxxxx
阻塞状态vxxxx
监听状态vvxxx
学习状态vvvxv
转发状态vvvvv

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 不同的拓扑, 并且单独计算生成树.

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

留言区

Are You A Robot?