生成树算法(Spanning Tree Algorithm)
交换机内的生成树算法(STA)使你可以创建一条备用链路(当网络中存在多台交换机时)。在主链路正常工作时,备用链路处于空闲状态(不工作);只有在主链路出现问题时,备用链路才不需要任何人工干预自动地接替主链路。这种自动重构的功能,使得网络上的用户能够最大限度地与网络保持正常的连接。生成树算法较复杂,所以,建议最好在充分研究理解其之后,再更改其一些设置。请仔细阅读并理解下述内容之后,再去更改交换机上的生成树的默认设置。
网络环路的侦测和预防(Network loop detection and prevention):任何两个局域网之间应该只有一条路径,否则,网络中将出现环路。如果存在着多于一条的路径,那么生成树算法将会侦测到环路的发生,并自动选择开销值(cost)最低的那条路径作为可使用的路径(主链路),而阻断其它路径,将它们作为备用路径(备用链路)。
自动拓扑重构(Automatic topology re-configuration):当主链路出现故障时,生成树算法将自动启用备用链路,重构网络结构。
生成树的级别(STA Operation Levels)
生成树有两种工作级别:桥级别(bridge level)和端口级别(port level)。在桥一级上,生成树算法为每台交换机计算桥的标志级数(Bridge Identifier),然后设定根桥(Root Bridge)和指定桥(Designated Bridges)。而在端口一级上,生成树算法设定根端口(Root Port)和指定端口(Designated Ports)。详述如下:
根桥(Root Bridge):具有最小桥标志级数的(lowest Bridge Identifier)交换机是根桥(Root Bridge)。当然,你希望根桥是环路中所有交换机当中最好的一台(交换机),以保证能够提供最好的网络性能和可靠性。
桥标志级数(Bridge Identifier):桥标志级数是桥的优先级(Bridge Priority)和交换机的MAC地址的综合数值,其中桥的优先级(Bridge Priority)是一个你可以设定的参数。例如,“4 00 80 C8 00 01 00”中的“4”是桥的优先级,“00 80 C8 00 01 00”是交换机的MAC地址。交换机的桥标志级数越低,则交换机的优先级越高,这样可以增加其成为根桥的可能性。
指定桥(Designated Bridge):在每个网段中,到根桥(Root Bridge)的路径开销最低的(lowest Root Path Cost)桥将成为指定桥(Designated Bridge),数据包将通过它转发到网段。一旦所有的交换机具有相同的根路径开销(Root Path Cost),那么具有最低的桥标志级数的(lowest Bridge Identifier)交换机才会被定为指定桥(Designated Bridge)。
根路径开销(Root Path Cost):一台交换机的根路径开销(Root Path Cost)是根端口(Root Port)的路径开销(Path Cost)与数据包经过的所有交换机的根路径开销(Root Path Cost)之和。根桥(Root Bridge)的根路径开销(Root Path Cost)是零。
桥的优先级(Bridge Priority):是一个用户可以设定的参数。设定的值越小,优先级越高。交换机具有越高的优先级,才越有可能成为根桥。
根端口(Root Port):每台交换机都有一个根端口(Root Port),这个端口到根桥的路径开销最低。一旦多个端口具有相同的到根桥的路径开销时,那么具有最低的端口标志级别的才会成为根端口。
指定端口(Designated Port): 指定端口就是指定桥(Designated Bridge)上的端口。
端口优先级(Port Priority):数值越小,端口的优先级就越高。具有越高端口优先级,才越有可能成为根端口。
路径开销(Path Cost):这是一个可变的参数,它将随着生成树中的设定值的变化而变化。每个10Mbps网段和100Mbps网段都有一个固定的路径开销值19。
生成树参数(STA Parameters)
生成树的参数用户可以根据自己的需要进行修改,但是建议最好使用出厂时的默认设置。除非确实需要对出厂设置值进行变动时,再去改动默认值。用户可以改动的生成树参数有如下几个:
¨ 桥优先级(Bridge Priority):数值范围从0到65535。“0”的优先级最高。
¨ 呼叫时间(Bridge Hello Time):数值范围从1秒到10秒。是指根桥向其它所有交换机发出BPDU数据包的时间间隔,以告知其它所有交换机它是根桥。如果你的交换机还未是根桥时为其设置了呼叫时间,那么,一旦你的交换机成为根桥,该呼叫时间就会派上用处。
注意:呼叫时间不能大于桥的最大老化时间(Max. Age),否则,将出现错误信息。
¨ 最大的桥老化时间(Bridge Max. Age):数值范围从6秒到40秒。如果在超出最大老化时间之后,还没有收到根桥发出的BPDU数据包,那么,在允许的条件下你的交换机将充当根桥向其它所有的交换机发出BPDU数据包。如果交换机确实具有最小的桥标志级数,那么,它将随之成为根桥。
¨ 桥转发时延(Bridge Forward Delay):数值范围从4秒到30秒。是指交换机的端口从阻塞状态转为转发状态所用的监听时间。
当你欲变动生成树参数时,请一定记住下述公式:
最大的桥老化时间≤ 2 x(桥转发时延 – 1秒)
即:Max. Age ≤ 2 x (Forward Delay - 1 second)
最大的桥老化时间≥ 2 x(呼叫时间 + 1秒)
即:Max. Age ≥ 2 x (Hello Time + 1 second)
端口优先级(Port Priority):数值范围从0到255。数值越小,那么该端口越可能成为根端口。
举例在一个环路中有三个桥(或三台交换机),如图1-1所示。在此例中,如果不使用生成树技术,你可以预见到可能发生的一些网络故障。例如,如果桥1向桥2发出一个广播包,那么,桥2将把此数据包广播给桥3,而桥3又会将此数据包广播回给桥1。随后会一直将如此反复,广播包将会在这个环路中被循环往复地传递,从而导致严重的网络故障。
为了减轻网络环路的发生,可以如图1-2所示采用生成树(STA)来解决。生成树将阻断桥1与桥2之间的连接,以打破环路的形成。生成树算法将根据计算出来的各桥和端口之间的数值,来决定断开哪一条连接。现在,如果桥1向桥3发出一个广播包,那么,桥3将把此数据包广播给桥2,而随后此广播将结束。
生成树的算法较复杂,所以,建议尽量不要改动其出厂默认设置值。生成树将自动任命根桥/根端口,并避免环路的形成。但是,如果你确实需要改动生成树(STA)的参数时,请参考表1-1。
生成树参数
|
缺省值
|
效果
|
备注
|
桥优先级(Bridge Priority)
|
数值越小,优先级越高
|
增加成为根桥的机会
|
如果交换机用于大型的工作组级的网络中,那么,尽量避免使用。
|
呼叫时间(Hello Time)
|
2秒
|
如果不是根桥,那么,没有任何影响。
|
不要大于最大老化时间(Max. Age Time)。
|
最大老化时间(Max. Age Time)
|
20秒
|
如果没有收到BPDU数据包,那么,竞争成为根桥。
|
尽量不要选用较小的数值,以免不断不必要地重设根桥。
|
转发时延(Forward Delay)
|
15秒
|
数值越高,时延越长。
|
Max. Age ≤2 x (Forward Delay - 1) Max. Age≥ 2 x (Hello Time + 1)
|
端口级生成树参数(Port Level STA parameters)
|
Enable / Disable
|
Enable / Disable
|
Enable / disable
|
将某个端口设置为Disable,以隔离故障或者出于安全的目的。
|
端口优先级(Port Priority)
|
数值越小,优先级越高。
|
增加成为根端口的可能性。
|
|