生成树协议(STP)
生成树协议
1.STP概述
STP(Spanning Tree Protocol,生成树协议)就是用来把一个环形的结构改变成一个树形的结构。STP协议就是将物理上存在的环路的网络,通过一种算法,在逻辑上阻塞一些端口,来生成一个逻辑上的树形结构。
通过在交换网络中部署生成树(Spanning-tree)技术,能够防止网络中出现二层环路。STP运行后,如果网络中存在环路,那么STP通过阻塞(Biock)特定的接口从而打破环路,并且在网络出现拓扑变更及时手链,以保证网络的冗余性。
那么网络中出现环路,生产数协议通过拓扑计算可以实现以下两点:
消除环路:通过阻塞冗余链路消除网络中可能存在的网络通信环路;
当前活动的路径发生故障时,激活冗余备份链路,恢复网络连通性。
2.STP的工作原理
桥协议数据单元(BPDU)
BPDU的报文字段
主要的是四个部分:
根ID:发送此配置BPDU的交换机所认为的根交换机的交换机标识;
到根的路径开销:从发送此配置BPDU的交换机到达根交换机的最短路径总开销(cost),含交换机根端口的开销,不含发送此配置BPDU的端口的开销
桥ID:发送此配置BPDU的交换机的STP交换机标识
端口ID:发送此配置BPDU的交换机端口的STP端口标识
优先级是:根ID >路径开销>桥ID>端口ID(值越小优先级越先)
STP的操作
(1)每个交换网络选举一个根桥(RP)
如何选择根网桥
依据:网桥ID(BID)
网桥ID=网桥优先级+网桥的MAC地址
网桥优先级的取值范围:0-65535
默认值:32768
优先比较优先级,选最小
当优先级相等的情况下,选MAC地址小的
(2)每个非根桥选举一个根端口(RP)
如何选择根端口
到根桥最低的根路径成本
某个网桥到达根网桥的中间所有线路的路径成本之和
用来代表一条线路带宽的大小
直连的网桥ID最小的
对端端口ID(PID)最小的
端口ID=端口优先级+端口编号
端口优先级:0-255 默认值:128
(3)每个段选举一个指定端口(DP)
如何选择指定端口
根网桥上的每个端口都是指定端口,都不会被阻塞
比较到达根桥的RPC(Root Path Cost),越小越优。
比较BPDU包发送者的BID,越小越优。
比较BPDU包发送者的PID,越小越优。
比较BPDU包接收者的PID,越小越优。
总结:stp算法中的比较都是选小的
(4)阻塞非指定端口
3.STP的端口状态
disable
此状态端口处于关闭状态
blocking
此状态端口处于阻塞状态,仅仅接收bpdu报文,不发送BPDU报文,不学习mac地址,如果计时器到期还未接收到BPDU报文此端口会变为listening状态
listening
此状态端口处于监听状态,不接受转发流量,接收并发送BPDU报文,不学习mac地址,确定端口角色,再进行选举
learning
此状态端口处于学习状态,不接受转发流量,接受并发送BPDU报文,学习MAC地址
forwarding
此端口处于转发状态,接收并转发数据帧,接受并发送BPDU报文,学习MAC地址
4.实例分析
找阻塞端口
首先选举根桥,比较优先级,图中优先级一样,比较交换机mac地址,以小为优,所以根桥是sw1
选举根端口,根端口在非根桥上,且选举cost值越小越优,sw2根端口就是与sw1直连的端口,sw3的根端口是与sw2相连的端口
选举指定端口,因为根桥上的指定端口是固定的,sw2的端口到根桥的最小cost值为19,sw3到根桥最小cost值为100,cost以小为优,所以指定端口是sw2上与sw3直连的端口
逻辑阻塞端口就是sw3上与sw1直连的端口