发布时间: 2017-10-13 23:45:40
为了增加局域网的冗余性,我们常常会在网络中引入冗余链路,然而这样却会引起交换
环路。交换环路会带来三个问题:广播风暴、同一帧的多个拷贝、交换机CAM 表不稳定。
STP(STP,Spanning Tree Protocol)可以解决这些问题,STP 基本思路是阻断一些交换机接
口,构建一棵没有环路的转发树。STP 利用BPDU(Bridge Protocol Data Unit)和其他交换
机进行通信,从而确定哪个交换机该阻断哪个接口。在BPDU 中有几个关键的字段,例如:
根桥ID、路径代价、端口ID 等。
为了在网络中形成一个没有环路的拓扑,网络中的交换机要进行以下三个步骤:(1)选
举根桥、(2)选取根口、(3)选取指定口。这些步骤中,哪个交换机能获胜将取决于以下因
素(按顺序进行):
(1) 最低的根桥ID;
(2) 最低的根路径代价;
(3) 最低发送者桥ID;
(4) 最低发送者端口ID。
每个交换机都具有一个唯一的桥ID,这个ID 由两部分组成:网桥优先级+MAC 地址。网
桥优先级是一个2 个字节的数,交换机的默认优先级为32768;MAC 地址就是交换机的MAC
地址。具有最低桥ID 的交换机就是根桥。根桥上的接口都是指定口,会转发数据包。
选举了根桥后,其他的交换机就成为非根桥了。每台非根桥要选举一条到根桥的根路径。
STP 使用路径Cost 来决定到达根桥的最佳路径(Cost 是累加的,带宽大的链路Cost 低),
最低Cost 值的路径就是根路径,该接口就是根口;如果Cost 职一样,就根据选举顺序选举
根口。根口是转发数据包的。
交换机的其他接口还要决定是指定口还是阻断口,交换机之间将进一步根据上面的四个
因素来竞争。指定口是转发数据帧的。剩下的其它的接口将被阻断,不转发数据包。这样网
络就构建出一棵没有环路的转发树。
当网络的拓扑发生变化时,网络会从一个状态向另一个状态过渡,重新打开或阻断某些
接口。交换机的端口要经过几种状态: 禁用(Disable)、阻塞(Blocking)、监听状态
(Listening)、学习状态(Learning)、最后是转发状态(Forwarding)。
那么接下来讲具体的选举过程:
最开始选举根交换机也就是根桥,根桥的选举根据桥ID,桥ID小的优先。
接着在每一台非根交换机上选举根端口:
1.对比该端口的根路径开销
2.对端BID
3.对端PID
4.本端PID
选举完后就在每一条链路上选举一个指定端口顺序如下:
1.根路径开销
2.BID
3.PID
然后阻塞非根非指定端口,成为备用端口。