【网络基础】STP原理
目录
一. 概念
二. STP工作原理
- 二层交换网络
- 广播风暴
- MAC地址表震荡
- STP的作用
- STP操作
- 跟桥选举
- 根端口选举
- 端口状态转换
- BPDU
- 计时器
- 故障
一.概念
为了提高网络可靠性,交换网络中通常会使用冗余链路。然而,冗余链路会给交换网络带来环路风险,并导致广播风暴以及MAC地址表不稳定等问题,进而会影响到用户的通信质量。生成树协议STP(Spanning Tree Protocol)可以在提高可靠性的同时又能避免环路带来的各种问题。
二.STP工作原理
1. 二层交换网络
二层交换网络中会有多条链路互连,虽然提升网络可靠性,但也会带来环路问题
2. 广播风暴
如图,例如主机A发送一个广播帧,SWB会执行泛洪操作,转发给SWA和SWC,此时SWA也收到一个广播帧,也会执行泛洪,发送给SWC,此时SWC收到了两次广播帧,并且自己又会执行泛洪操作发给主机B和SWB,SWB又会泛洪给主机A和SWA,无限循环。这就造成了一个广播风暴。
3. MAC地址表震荡
主机A发送数据帧后MAC地址和G0/0/3接口形成对应关系存在SWB的MAC地址表中,在环路中进行转发操作后又回到SWB与G0/0/2接口形成对应关系存入SWB的MAC地址表中,就会造成地址表震荡。
4. STP的作用
- 消除环路:逻辑阻塞一条链路
- 链路备份:
5. STP操作
- 选举一个根桥。
- 每个非根交换机选举一个根端口。
- 每个网段选举一个指定端口。
- 阻塞非根(既不是根端口又不是指定端口)、非指定端口。
端口角色:
- RP:根端口(非根桥向根桥发送数据)
- DP:指定端口(发送BPDU)
- AP:阻塞端口(只能接受BPDU)
6. 根桥选举
通过BPDU(桥数据单元)中的BID(桥优先级(必须是4096的倍数,缺省值为32768)+设备MAC地址)来选举根桥,BID越小,优先级越大。
交换机启动后就自动开始进行生成树收敛计算。默认情况下,所有交换机启动时都认为自己是根桥,自己的所有端口都为指定端口,这样BPDU报文就可以通过所有端口转发。对端交换机收到BPDU报文后,会比较BPDU中的根桥ID和自己的桥ID。如果收到的BPDU报文中的桥ID优先级低,接收交换机会继续通告自己的配置BPDU报文给邻居交换机。如果收到的BPDU报文中的桥ID优先级高,则交换机会修改自己的BPDU报文的根桥ID字段,宣告新的根桥。
7. 根端口选举
非根交换机在选举根端口时分别依据该端口的根路径开销、对端BID、对端PID(端口号+端口优先级(缺省值为128))和本端PID。
8. 指定端口选举
非根交换机在选举指定端口时分别依据根路径开销、本端BID、本端PID。
未被选举为根端口或指定端口的端口为预备端口,将会被阻塞(阻塞端口)。
9. 端口状态转换
- Disabled:禁用状态(不收发任何报文)
- Blocking:阻塞状态(不收发数据,但收BPDU)
- Listening:监听状态(不收发数据,但可以发送并接受BPDU)
- Learning:学习状态(不收发数据,但可以收发BPDU并开启地址学习)
- Forwarding:转发状态(收发数据和BPDU,并且可以进行地址学习)
- 端口初始化或使能;
- 端口被选为根端口或指定端口。
- 端口不再是根端口或指定端口。
- forward delay计时器超时。
- 端口禁用或链路失效。
10. BPDU
- PID:协议ID
- PVI:协议版本
- BPDU Type:
配置BPDU
TCN BPDU - Flags:标识位
TC:拓扑变化标识
TCA:拓扑变化确认标识 - Root ID:根桥ID
- RPC:根路径开销
- Bridge ID:桥ID
- Port ID:端口ID
- Message age:生存期
- Max age:最大生存期(20s)
- Hello time:发送BPDU的时间间隔
- Fwd delay:转发延迟(15s)
11. 计时器
配置BPDU报文每经过一个交换机,Message Age都加1。
如果Message Age大于Max Age,非根桥会丢弃该配置BPDU。
12. 故障
12.1 根桥故障
在稳定的STP拓扑里,非根桥会定期收到来自根桥的BPDU报文。如果根桥发生了故障,停止发送BPDU报文,下游交换机就无法收到来自根桥的BPDU报文。如果下游交换机一直收不到BPDU报文,Max Age定时器就会超时(Max Age的默认值为20秒),从而导致已经收到的BPDU报文失效,此时,非根交换机会互相发送配置BPDU报文,重新选举新的根桥。根桥故障会导致50秒左右的恢复时间,恢复时间约等于Max Age加上两倍的Forward Delay收敛时间。
12.2 直连链路故障
SWB检测到直连链路物理故障后,会将预备端口转换为根端口。
SWB新的根端口会在30 秒后恢复到转发状态。
12.3 非直连链路故障