2009年1月4日星期日

STP简介

生成树协议(Spanning Tree Protocol STP)是一个运行在网桥和交换机上的层二的协议。STP也被定义为IEEE 802.1D。STP的主要目的是确保在网络中使用冗余链路的时候不会产生环路。环路对网络来说是致命的。

有好几种STP,但是802.1D是最流行的,应用也是最广泛的。我们在交换机和网桥上使用STP以防止网络中环路的产生,我们一般在配置冗余链路并且不希望产生环路的情况下,才会使用STP。冗余链路与备用链路一样重要,以防网络的中断。主链路的失效能够激活备用链路以使得用户能够继续使用网络。如果网桥和交换机上没有运行STP,使用冗余链路会导致环路的产生。如果两个连接到一起的交换机运行不同的STP,它们会需要不同的时间来达到收敛。当交换机上使用不同的STP时,这会导致在blocking和Forwarding状态的时间不相同,这会产生很大的问题。因此,我们需要使用相同的STP。

为了满足冗余链路的需求同时又要避免环路,STP定义了一个在可扩展的,延伸到网络中所有交换机上的树。STP强制某条冗余链路成为备用状态(blocked)堵塞,保留另一条链路处于转发状态(forwarding)。如果处于转发状态的链路变得不可用,STP会重新配置网络,将某个合适的备用链路激活,使得数据能够通过这个重新选择的路径进行转发。

一、STP技术简介
STP的关键是为网络中的所有交换机选举一个根桥,根桥是整个网络的焦点。网络中的所有其他决定,比如那个端口要被堵塞,那个端口用于转发数据,都是由根桥来决定的。在一个交换环境中(与桥接环境区别),大部分都有多个VLAN。当你使交换网络中的一个根桥生效的时候,我们通常将根桥指定为根交换机。每个VLAN必须有它自己的根桥,因为每个VLAN是一个独立的广播域。不同VLAN的根桥,可以在同一交换机上也可以在不同的交换机上。
注:某一个VLAN的根桥的选择是非常重要的,你可以自己选择根桥,或者可以让交换机自己决定。BPDU负责承载这些信息。每个交换机会将交换机发送给邻居的BPDU中的参数与从邻居那里接收到的BPDU中的参数作比较。
在STP根桥选举的过程中,越小越好。如果交换机A通告的根ID比交换机B通告的根ID要低,从交换机A那里通告的信息更好。交换机B停止通告它的根ID,并且接收交换机A的根ID。
此外还有其他的一些可选的STP功能,比如:PortFast、Root guard、Loop guard、BPDU guard


二、STP 的运行
1、首要条件(Prerequisites)
在配置STP,首先要选择一个交换机作为生成树的根,根交换机不需要是性能最好的交换机,但是必须选择网络的中心。所有通过网络的数据流都是通过根桥来看整个网络的,并且选择网络中干扰最少的交换机(即通过根桥的视角来看网络,从根桥那里获得到达目的地的哪条路径是最好的;与OSPF区别,OSPF是以自己为根,生成到达所有路由器的最短路径的树)。骨干交换机经常作为生成树的根,因为这些交换机一般不会连接到终端,通常,网络的移动和改变一般不会影响到这些骨干交换机。
在决定了根交换机以后,通过设置合适的参数将某个交换机指定为根交换机。我们必须设置的参数是桥优先级。如果某个交换机的优先级比所有其他的交换机要低(即交换机的优先级的数比其它交换机的优先级的数要低),那么其他交换机就自动将这个交换机选举为根交换机。
2、交换机端口上的终端
我们也可以在基于单端口的情况下,使用portfast(即只有一个端口连接到到上一级交换机)。当我们在端口是启用portfast属性时,这个端口能够立刻从阻塞状态转换为转发状态。使用portfast可以防止诸如:使用DHCP获取IP地址或者使用Novell Netware的客户端由于等待收敛,而超时。但是在交换机之间连接的时候,不要使用portfast属性,在这种情况下,这个属性可能会导致环路。当我们连接两个交换机的时候,端口从堵塞状态转变成转发状态会有30-60秒的延迟,这个延迟能够防止可能出现的环路。

三、STP的运行规则
当交换机第一次被启动的时候,他们首先启动根交换机选举进程。每个交换机都会给直接相连的交换机发送BPDU(这个过程是基于VLAN的,只发送给每个VLAN中直接相连的交换机)。
在BPDU通过整个网络的过程中,每个交换机会把自己发送的BPDU与从邻居那里接收到的BPDU进行比较。然后,网络中的交换机会就哪个交换机作为根交换机这个问题达成一致。最终,网络中,具有最小的桥ID的交换机会赢得这场选举。
注:每个VLAN都必须确定一个根交换机。在根交换机确定以后,交换机会遵守下面这些规则:
1、根交换机上的所有端口都必须处于转发状态
注:在某些特殊情况下,比如有自环路端口存在的交换机,是这个规则的一个例外
此外,每隔交换机会决定到达根交换机的最好的路径。交换机通过比较它在所有端口上收到的BPDU中包含的信息,来决定这个最佳路径。交换机使用BPDU中信息量最少的端口,作为根端口,向根桥传递数据。在一个交换机确定自己的根端口以后,交换机会应用规则2
2、根端口必须处于转发状态
此外,处于同一LAN分段上的两个交换机(比如连接到一个HUB上的两台交换机,该HUB上还可能连接许多主机),会彼此通信以决定那个交换机,是这个分段用于同根交换机通信的最优的交换机。这个最优的交换机被称为指定交换机
3、在一个LAN分段中,连接到LAN分段的指定交换机的端口,必须处于转发状态
4、所有交换机的其他端口(就每个VLAN而言),必须被置为阻塞状态。这个规则只适用于连接到其他网桥或者交换机的端口。STP不会影响那些连接到PC或工作站的端口,这些端口仍然处于转发状态。
注:当STP运行在单VLAN生成树(PVST/PVST+)模式下的时候,VLAN的增加或者删除会触发那个VLAN的生成树的重新计算,而且只有那个VLAN的流量会受到影响,同一Trunk链路上的其他VLAN流量还会被正常转发。当STP运行在多VLAN生成树(MST)模式下的时候,VLAN的增加或者删除也会触发生成树的重计算,但是这个会影响到这个MST例子中所有VLAN中的流量。
注:默认情况下,在每个端口上都会运行生成树。在交换机上,基于单个端口(per-port basis),生成树功能不能被关闭。虽然这个不提倡,但是在基于单个VLAN的情况下或者在交换机的全局模式下,可以将STP关闭。不管什么时候,在关闭STP之前都必须非常谨慎,因为这可能会在网络中导致层二环路的产生。

没有评论:

发表评论