STP
STP
以太网环路产生的影响
- 广播风暴:广播帧在以太网中通过泛洪的方式进行数据转发,所以一旦出现环路,则广播帧会在环路中无限都是进行传递,如果 PC 不断发送广播帧,最终可能导致网络数据帧的阻塞,导致网络瘫痪,网络中充斥着重复的广播帧.
- MAC 地址表的漂移:当产生环路时,MAC 地址表不断的学习和刷新以及删除 MAC 地址表项.
- 主机收到重复的数据帧.
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 计算
选举根桥,比较桥优先级,数值越小越优,如果优先级相同,比较 MAC 地址,MAC 地址越小越优.
在所有非根交换机上选举根端口,根端口只存在于非根交换机,每个非根交换机只有一个根端口.
- 1. 比较该设备每个端口到达根桥的 RPC, 开销越小越优.
- 2.RPC 一致时,则比较上游设备的 BID,BID 越小越优.
- 3. 上游 BID 一致时,则比较上游设备的 PID, 越小越优.
- 4. 上游设备 PID 一致时,则比较本设备的 PID, 越小越优.
指定桥:本网段内到达根桥的最优设备。每个链路内,选举指定桥,指定桥最优端口为指定端口.
- 1. 比较链路内的交换机到达根桥的根路径开销,开销数值越小的交换机成为指定桥.
- 2. 如果开销一致,则比较 BID 大小,越小越优,指定端口一定在指定桥上.
- 3. 如果指定桥在该链路有多个端口到达根桥,则比较 PID,PID 数值小的成为指定端口.
所剩的非根非指定端口被阻塞,阻塞端口不为用户转发数据,并成为 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 地址,收发用户数据.
状态 | 收 BPDU | 发 BPDU | 收用户数据 | 发用户数据 | 学习 MAC 地址 |
---|---|---|---|---|---|
禁用状态 | x | x | x | x | x |
阻塞状态 | v | x | x | x | x |
监听状态 | v | v | x | x | x |
学习状态 | v | v | v | x | v |
转发状态 | v | v | v | v | v |
Shell
[SW1]stp enable // 开启 stp |