STP的基本原理是,通过在交换机之间传递一种特殊的协议报文,网桥协议数据单元(Bridge Protocol Data Unit,简称BPDU),来确定网络的拓扑结构。
搭建网络需要考虑一个网络的备份冗余,也就是说要有多条到达目的网络的路径,以防止其中一条路径断开而导致网络崩溃。但也产生了环路问题。stp协议的出现就是为了解决环路问题。协议的原理是按照树的结构来构造网络拓扑,消除网络中的环路,避免由于环路的存在而造成广播风暴问题。
STP生成树的选举过程:
(1)每一台交换机启动STP后,都认为自己是根桥,互相发送BPDU,BPDU携带根桥id(桥ID由优先级与MAC地址组成)、到根桥的开销、发送者桥ID以及端口ID(端口id由端口优先级默认是128和端口编号组成),首先通过比较根桥id来选举出根交换机,桥id越小越优先;如果根桥id一样,则比较到达根桥的开销,开销越小越优先;如果开销一样,则比较发送者的桥ID,桥ID越小越优先;如果发送者桥ID一样,则比较端口ID;这样比较完就可以选举出根桥。
(2)根桥选举完毕后就在每台交换机上选举根端口,每台交换机有且只有一个根端口,通过依次比较到根桥的路径开销,发送BPDU对端网桥的BID,PID来进行选举,与根桥相连接的端口都是RP
(3)选举指定端口,在一根线上进行比较,通过比较到根桥的路径开销,对端的BID,PID来进行选举,一个网段有且只有一个DP
(4)剩下的端口作为替代端口
把性能比较好的交换机的优先级调低,让其成为根桥,因为数据转发都要途进根桥,根桥的负载比较达,所以应该让性能比较好的交换机充当根桥
一般我们把汇聚层的交换机拿来当根桥。stp priority 0 设置交换机优先级,根桥的优先级是4096的倍数,最小为0然后就是4096接着就是8192
display stp brief 查看生成树接口角色
display stp 查看生成树配置参数
端口状态从Listening进入Learning需要15s的时间,从Learing进入Forwarding需要15s的时间,所以一个端口要进入转发状态至少需要30s的时间。
R
配置BPDU用来选举根桥和DP、RP以及AP端口。拓扑BPDU用来通知交换机网络拓扑已发生改变,要刷新mac地址表,否则会造成mac地址表错误。当一台交换机检测到拓扑变化后,它就发送TCN给根桥,TCN是由RP端口向根桥方向发出的,一层层往上发到根交换机上。任何一台交换机从它的DP端口上收到了TCN类型的BPDU包后,都必须必须从DP上发出TCA位被置1的BPDU回复包。当TCN传遍全网,到达根交换机后,根交换机会发出一个配置的BPDU包,包内的TC字段会被置1。TC即topology change,表示发现拓扑变化。下层交换机收到根桥发出来的这个配置的BPDU后,会刷新mac地址表,把mac地址表的老化时间从300s变为15s。
这个包也会被所有交换机转发,同样的TC位会置1,直至传遍全网,所有交换机都得知拓扑变化为止