STP介绍:
STP(Spanning Tree Protocol)生成树协议:工作在局域网的数据链路层,用于防止交换机冗余链路产生的物理环路问题(广播风暴、MAC地址翻摆、多帧复制等),同时能通过链路备份,在链路故障时自动切换及时恢复网络;
STP角色:
根桥:整个生成树的根节点,优先级最高;
指定桥:负责一个物理段上数据转发任务的网桥;
根端口(RP):一个网桥上距离根桥最近的端口(根桥无根端口,非根桥有且仅有一个根端口);
指定端口(DP):指定桥上的端口(根桥的端口皆为指定端口);
替换端口(AP):根端口和指定端口做备份的端口(平时阻塞);
STP工作过程:
一、角色确定
确定根桥:每个交换机起动STP服务,都会向外发送自己为根桥的BPDU报文,通过收到的BPDU比较桥ID(16位的桥优先级+48位的MAC地址),其中桥优先级默认为32768(可修改范围:0-65535)。如果比较收到的BPDU发现自己不是根桥,则不发送BPDU,直到所有交换机达成一致,认定唯一一个交换机为根桥;
(优先级越小越优先 > MAC地址越小越优先)
确定根端口:当确认自己不是根桥后便开始确定端口角色。当交换机多个端口同时接受到根桥的BPDU报文,会根据根路径开销即RPC(Root Path Cost)与接收端口的链路开销之和,最小的为根端口;
(根路径开销+链路开销越小越优先 > 发送BPDU的指定桥桥ID越小越优先 > 发送端口的端口ID越小越优先)
确定指定端口:确定根端口时选择最优,则次优的为指定端口;
阻塞替换端口:确定指定端口后,剩余的为替换端口且进行阻塞;
二、拓扑变化
当拓扑发生变化(端口断开或新的网桥加入等),会通过TCN BPDU报文进行快速收敛;
变化处通过根端口向上传递TCN BPDU(TCA置1)报文,根桥从指定端口向下传递TCN BPDU(TCA置1)报文,一层层确定,各网桥收到TCA为1的BPDU报文后,将MAC地址老化时间缩短为15s;
STP状态:
端口状态 说明
Disabled(禁用状态) 端口不转发数据帧,不学习MAC地址,不参与生成树计算
Blocking(阻塞状态) 端口不转发数据帧,不学习MAC地址,接收并处理BPDU,不向外发送BPDU
Listening(侦听状态) 端口不转发数据帧,不学习MAC地址,只参与生成树计算,接收并发送BPDU
Learning(学习状态) 端口不转发数据帧,学习MAC地址,参与生成树计算,接收并发送BPDU
Forwarding(转发状态) 端口正常转发数据帧,学习MAC地址,参与生成树计算,接收并发送BPDU
Listening:路由器开启时,所有端口处于该状态,并认为自己是根桥,每2s向外发送一次BPDU报文,如果收到桥ID更小的BPDU,则停止发送,直到扩撒完毕;
Bolcking:端口角色选举结束后,AP端口为此状态,持续15s(转发延迟),进入Learning状态;
Learning:学习MAC地址,经过15s(转发延迟)后进入Forwarding状态;
Forwarding:开始转发数据,接收并转发来自根桥的BPDU报文,维护拓扑(只有根桥发送BPDU,其他只进行转发);
(当加入新的网桥时:端口状态为Learning状态,竞选根桥,竞选成功网络断开,失败则经过30s进行端口角色的计算)
STP的缺陷:
拓扑收敛慢,每个端口的计算需要经过至少30s才能进入Forwarding状态进行数据转发;
网络拓扑较大时,频繁的拓扑变化会导致TCN BPDU报文频繁发送,以至于MAC地址老化时间长期处于15s的时间;
不能提供负载均衡,AP端口处于Blocking状态,不能参与转发,浪费资源。
生成树总结
最新推荐文章于 2024-04-15 23:19:51 发布