STP引入:为了提高网络的性能,交换机之间往往会通过多条链路来互联,从而引起环路问题。为了解决环路问题从而引入了STP(Spanning Tree Protocol)。环路与交换机本身转发机制有关(泛洪、转发、丢弃) 。
环路的影响:产生广播风暴、收到重复的数据帧、MAC地址表震荡。
STP工作原理:通过阻塞备份链路(只是逻辑阻塞,其实还在工作只是不转发数据),侦听主用链路,当主用链路断开时,备份链路就会转变成主链路从而转发数据。
STP计算过程
根交换机通过发送桥接协议数据单元(BPDU),每2秒发送一次,来确定STP树。
1、选举根桥
比较每台交换机的桥ID(由优先级和MAC地址组成),桥ID小的成为根桥,优先级和MAC越小越优先。每台交换机启动后都会以自己为根桥,向全网发送BPDU来选举根桥,不是根桥的只会转发根桥的BPDU。
2、选举非根交换机的根端口
到根桥的开销+发送者的桥ID(优先级+MAC)+端口ID(端口优先级+发送端口的端口号)
到根桥的开销小的成为根端口,如果开销相同,则比较发送者的桥ID,小的成为根端口,如果桥ID相同,则比较端口ID,小的成为根端口。
3、每个网段选举指定端口
到根桥的开销+桥ID+端口ID
到根桥的开销小的成为根端口,如果开销相同,则比较发送者的桥ID,小的成为根端口,如果桥ID相同,则比较端口ID,小的成为根端口。
根交换机上的接口都是指定端口。
4、阻塞非根非指定端口
不是根端口或指定端口的接口成为阻塞端口。
修改桥优先级 stp priority 0(4096倍数,默认32768)
修改端口优先级 stp port priority 16(16倍数,默认128)
修改开销 stp cost 100
端口状态
Disabled:不转发数据帧,不参与生成树计算,不学习MAC。
Blocking:不转发数据帧,不参与生成树计算,接收处理BPDU,不学习MAC。
Listening:不转发数据帧,参与生成树计算,接收发送BPDU,不学习MAC。
Learning:不转发数据帧,参与生成树计算,接收发送BPDU,学习MAC。
Forwarding:转发数据帧,参与生成树计算,接收发送BPDU,学习MAC。
从listening状态进入learning状态需要15秒,从learning状态进入forwarding状态需要15秒,从启动到进入转发状态至少需要30秒。而老化时间为20秒,则至多需要50秒。
BPDU类型
配置BPDU:configuration(0x00)
TCN BPDU:opology change notification(0x80)
配置BPDU为一般BPDU,而TCN BPDU只有在网络拓扑发生变化时才会触发。
当网络拓扑发生变化时会触发tcn报文,tcn发送给根桥,根桥再发tc,收到tc后Mac地址表老化时间由300秒变成15秒同时会发tca用来对tcn确认 。