802.1D STP Port States
- 共5种状态,唯一一种有5个状态的生成树协议
- Disabled —— 掉线
- BLocking —— 初始化状态,BPDU可以接收
- Listening —— BPDU 可以转发,可以接收
- Learning —— 在Listening的基础上学习MAC
- Forward ——
802.1D Timer
- 不同状态之间转换的
- 3个Timer
- Hello : 2s,根桥发送BPDU的频率
- Forward Delay : 15s,listening 到 learning等15s,从 learning 到 Forwarding 等 15s
- Max Age :20s,从Blocking 到 Listening 之间的间隔
- 没有收到BPDU,或者收到和之前不同的BPDU,就等20s,然后进入Listening
- 另1种说法,保存BPDU 20s,发现差异时触发生成树的重新计算
- 从端口接入 到可以正常转发 需要等待 20 + 15 + 15 = 50s
- 从 Blocking 到 Forwarding的过程,就叫 Converge
802.1D STP Converge
- 50s case : A到B线路断掉 —— 疑问:是能等同于B到C的线路断掉吗
- 30s case : A到C线路断掉,Blocking 就不需要再等20s —— C发现自己的RP所在线路断掉
5 Minutes Down Time
- 802.1D 最快可以在30s 重新生成
- 但是并不代表30s 就可以恢复网络通信,因为MAC Table的有效期(缓存)是300s
- 但是 MAC Table 不可以随便修改
STP Topology Change Mechanism
- 在STP 拓扑发生变化后,通知MAC Table 调整有效期,形成联动机制
- 交换机检测到拓扑变化时,将其广播到整个网络
- 其他交换机随后减少MAC Table有效时间到 forward-delay 默认15s,并持续一定时间(默认 MAX_AGE + Forway_Delay, 20+15=35s)
- 在这种机制下,最快可以实现30s 收敛完成可以通信
- 拓扑变化
- 端口从 forward 变为 block
- 端口变为 forward 同时 该 Bridge 拥有1个 Designated Port
- 如何通知拓扑变化,通过TCN BPDU来实现
- Case1
- 非Root Bridge 发送 TCN BPDU, 通知 Root Bridge
- Root Bridge 将Configuration BPDU 中的TC bit 标志位置位, 将其广播,
- Case2
- Root Bridge 发现自己直连的线路变化时,会自己侦测到,并向外发送TC,而不是死等300s 的MAC Aging
- Case1
- Configuration BPDU 只有 Root 生成
- TCN BPDU 非 Root 也能生成
- 疑问:TCN 的发送路径,只走Root Port ???
TCN Flood
- Root Bridge 对外发送走的是广播
- 如何避免TCN Flood,要走Rapid