「STP」- 端口状态

端口状态转换的关系

Disabled

禁用(Disable),该接口不能收发BPDU,也不能收发业务数据帧,例如接口为down

Blocking

阻塞(Blocking/Discarding),该接口被 STP 阻塞。

当设备初始时,Designated Port,虽然为 Blocking 状态,但是依旧能够发送和接收 BPDU 帧;
当网络收敛时,接口处于阻塞状态,不能发送 BPDU,不能收发业务数据帧,不会进行MAC地址学习,但是会持续侦听 BPDU 帧;

当交换机拓扑发生变化时,其他端口也会进入 Discarding 状态。

Blocking 切换到 Listening 状态的时间很短。

Listening

侦听(Listening)

当接口处于该状态时:
1)表明 STP 初步认定该接口为 Root Port 或 Designated Port,此时接口可以收发BPDU,
2)但接口依然处于 STP 计算的过程,不能收发业务数据帧,不会进行 MAC 地址学习

Listening 经过 15s 转发延迟,进入 Learning 状态;

Learning

学习(Learning)

当接口处于该状态时:
1)会侦听业务数据帧,并在收到业务数据帧后进行 MAC 地址学习(主要目的)
2)但不能转发业务数据帧;

然后,再经过 15s 转发延迟,进入 Forwarding 状态;

Forwarding

转发(Forwarding),处于该状态的接口可以正常地收发业务数据帧,也会进行BPDU处理。接口的角色需是根接口或指定接口才能进入转发状态。为了避免环路,交换机不会立刻进入 Forwarding 状态。

因此 Alternate Port ⇒ Root Port 需要 30s 时间,这种通过等待足够的时间,以避免出现环路。

补充说明

STP 对计时器的依赖(缺点)

STP采用计时器防止临时环路,当STP选举出端口角色后,即便角色为指定端口和根端口,仍然需要等待两个Forward Delay时间(30s)才能进入转发。

在运行STP的环境下,终端或服务器接入后,由于端口需要从Disabled状态依次切换到Blocking、Listening、Learning及Forwarding状态,此时主机A在接入后,需要等待两个Forward Delay时间才能访问网络服务。

STP 重收敛过程慢

1)被阻塞的端口会从Blocking状态,依次切换到Listening及Learning状态,最终进入Forwarding状态。
2)直连链路故障,端口状态转换,延时30s后进入Forwarding状态。

1)非直连故障
由于被阻塞端口上不再收到更优的BPDU,因此20s后端口开始从Blocking状态依次切换到Listening、Learning及Forwarding状态。
非直连故障会导致50s左右的恢复时间,等于Max Age加上2倍的Forward Delay时间。