在由交换机构成的交换网络中,通常会设计有冗余链路(冗余拓扑)。冗余功能可以消除单点故障,即可以防止网络中一个点的失败导致整个网络出现故障的情况。然而,这样也随之带来了一些问题,冗余拓扑的设计导致网络中产生交换回路,交换回路的产生会带来如下问题:1.广播风暴;2.帧有多个副本;3.MAC地址表不稳定。
生成树协议(STP:Spanning Tree Protocol)的使用可以有效地解决环路问题。生成树协议定义在IEEE802.1D中,是一种链路管理协议,它能够为网络提供路径冗余的同时防止产生环路。生成树协议通过将网络中某些端口至于阻塞状态而提供无环路的冗余网络。
一些基本概念:
1.网桥ID:
非扩展(传统):网桥ID = 网桥优先级(2Bytes)+ MAC地址。 优先级默认为32768.
扩展(思科):网桥ID = 网桥优先级(4bits)+ 系统标识(VLAN ID,12bits)MAC地址。
2.网桥协议数据单元(BPDU):
网桥之间通过BPDU来交换各自的状态信息。生成树协议通过BPDU所提供的各个网桥的状态信息,选出根网桥与根端口,自动完成无环路结构最佳路径的计算与网桥端口配置的任务。根网桥默认状态下每隔2秒钟发送一个BPDU帧。
3.路径开销(路径成本):
生成树的计算原则:1.每个广播域有一个根桥;2.每个非根桥有一个根端口;3.每个网段有一个指定端口;4;阻塞非指定端口。
具体的操作方法为:
1.先计算根桥:
比较各个设备的BID(Bridge ID,网桥ID):先比较设备的优先级(默认为32768),如果优先级相同,在比较MAC地址。MAC地址最小的设备为根桥。
2.计算根端口:根桥之外的设备到根桥最短的端口为设备的根端口。
先比较路径开销,开销小的端口为根端口;开销相同的情况下再比较相邻设备的网桥ID,相邻设备的网桥ID小的端口为根端口;如果还相同,再比较相邻端口的PORT ID。
3.计算指定端口:(根桥的所有端口默认都是指定端口。)
先比较路径开销;若相同,再比较设备的网桥ID;若相同,再比较端口PORT ID。