2010-06-01 17:31:50| 分类: CISCO|字号 订阅
STP(802.1d)的一个致命的缺点是,收敛时间太长(30~50秒)。IEEE在802.1w中定义了快速生成树协议(Rapid STP)。RSTP是向后兼容的,其收敛时间一般在1~10秒间。
STP 之所以收敛时间太长,是因为其“被动等待”的特性:假若交换机在侦听阶段用了很短的时间就已经知道某原先阻塞的端口进入转发状态后不会产生循环,那它是不是立即会进入学习状态呢?不会,它要等15秒的转发延迟时间过期;假若交换机的端口在学习阶段用了很短的时间就学习完了所有的MAC地址,它是不是就立即进入转发状态呢?不是,它还要等15秒的转发延迟。
RSTP之所以收敛时间变快了,是因为它变“被动等待”为“主动协商”。虽然在RSTP中仍然有“转发延迟”,但如果处于阻塞状态的端口通过与邻居协商后发现其应该进入转发状态,则它会立即进入转发状态,而不会去等待那15秒的“转发延迟”。
RSTP与STP具有以下相同之处:
● 使用同样的参数和方法选择根网桥;
● 使用同样的规则在非根网桥上选择根端口;
● 使用同样的规则为每个网段选择指定端口。
1、 端口角色和状态 (1) Root Port (2) Designated Port (3) Alternate Port 另外一种定义Alternate Port的形式是:接收次优BPDU的端口(相对于根端口而言)。如果根端口失效,交换机上的RSTP就会选择Alternate Port作为新的根端口开始更快的收敛过程。即其“替换”(alternate)的是本交换机上的根端口。这种定义更准确。 (4) Backup Port (5) Disabled Port 2、 状态的快速转换 (1) Edge Port (2) Link Type (3) 状态的快速转换过程 Root和A之间的连接端口UP起来之后,它们首先是处于Blocking(现在是Discarding)状态,这与STP没有什么区别。接下来发生的事情可就不一样了。 接下来,就是一个交换机A与Root的协商过程。交换机A收到Root的BPDU后,将其所有的非边缘端口阻塞(it blocks its non-edge designated ports, this operation is called sync.),然后通知Root:可以将端口置为“转发”状态。当然,A也将其端口置为转发状态。由于A已经将其非边缘端口置为“阻塞”,所以是不会产生环路的。于是我们得到了下面的图。 同样地,A与B协商,A与C协商:B/C将其所有的非边缘端口阻塞后,A-B/A-C之间链路的端口就可以置为转发状态而不会产生环路。 RSTP比STP的优越性:
在802.1w中,定义了五种端口角色(role),它们是:root port(根端口)、designated port(指定端口)、alternate port(后备端口)、backup port(备份端口)和disabled port(无用端口)。
在 RSTP(802.1w)中,这些端口可能处于三种状态之一:Discarding, Learning, and Forwarding。即802.1d将STP端口所处的Blocking, Listening等状态归结为一种状态:Discarding。如下表所示。
STP,RSTP)" style="BORDER-LEFT-COLOR: rgb(0,0,0); BORDER-BOTTOM-COLOR: rgb(0,0,0); BORDER-TOP-COLOR: rgb(0,0,0); BORDER-RIGHT-COLOR: rgb(0,0,0)" alt="" src="http://www.21days.cn/zhaoag/079.jpg" border=0 real_src="http://www.21days.cn/zhaoag/079.jpg"
当Root Bridge确定以后,Root Bridge发出的BPDU比其它交换机发出的BPDU都好。Root Bridge发出的BPDU可以被其它的交换机接收到,如果某交换机的某端口接收到的BPDU(Root Bridge发出的)最好,则该端口成为该交换机的Root Port。
STP,RSTP)" style="BORDER-LEFT-COLOR: rgb(0,0,0); BORDER-BOTTOM-COLOR: rgb(0,0,0); BORDER-TOP-COLOR: rgb(0,0,0); BORDER-RIGHT-COLOR: rgb(0,0,0)" alt="" src="http://www.21days.cn/zhaoag/080.jpg" border=0 real_src="http://www.21days.cn/zhaoag/080.jpg"
如果交换机的一个端口能够向它所连接的网段(segment)发送最好的BPDU,则该端口成为该segment的指定端口(designated port)。
STP,RSTP)" style="BORDER-LEFT-COLOR: rgb(0,0,0); BORDER-BOTTOM-COLOR: rgb(0,0,0); BORDER-TOP-COLOR: rgb(0,0,0); BORDER-RIGHT-COLOR: rgb(0,0,0)" alt="" src="http://www.21days.cn/zhaoag/081.jpg" border=0 real_src="http://www.21days.cn/zhaoag/081.jpg"
Alternate port角色和Backup port角色对应于802.1d中的blocking状态。“阻塞端口”(blocked port)被定义为“不是指定端口也不是根端口”。在某segment上,某端口只所以是“阻塞端口”,是因为它从该segment上收到了更好的 BPDU(相对于它自己发出的BPDU而言)。为了使“阻塞端口”能够保持“阻塞状态”,阻塞端口必须能收到更好的BPDU。Alternate port是因为从其它交换机上收到了更好BPDU从而处于阻塞状态的端口。
STP,RSTP)" style="BORDER-LEFT-COLOR: rgb(0,0,0); BORDER-BOTTOM-COLOR: rgb(0,0,0); BORDER-TOP-COLOR: rgb(0,0,0); BORDER-RIGHT-COLOR: rgb(0,0,0)" alt="" src="http://www.21days.cn/zhaoag/082.jpg" border=0 real_src="http://www.21days.cn/zhaoag/082.jpg"
Backup Port是因为从本交换机上收到了更好BPDU从而处于阻塞状态的端口。
另外一种对 Backup Port的定义方式是,只有当单个交换机有两条(多条)链路通往同一个segment时才会使用它。如果交换机的某端口收到了一个发自本交换机的更好的 BPDU,则显然该交换机到同一个网段有冗余连接/冗余端口,该端口就是“备份”端口。如果本交换机上到该网段的指定端口失效了,则RSTP可以立即将备份端口置成转发状态。
STP,RSTP)" style="BORDER-LEFT-COLOR: rgb(0,0,0); BORDER-BOTTOM-COLOR: rgb(0,0,0); BORDER-TOP-COLOR: rgb(0,0,0); BORDER-RIGHT-COLOR: rgb(0,0,0)" alt="" src="http://www.21days.cn/zhaoag/083.jpg" border=0 real_src="http://www.21days.cn/zhaoag/083.jpg"
一个被管理性禁用了的端口为Disabled Port。
Switch(config-if)# shutdown
状态的快速转换是IEEE 802.1w最重要的特征。RSTP做的第一个改进与STP如何使用最大时间有关。STP规定:一个交换机不能从其根端口收到BPDU到开始收敛需要等待一个MaxAge,这个时间为20秒;在RSTP中,如果在三个连续的Hello时间内(6秒)没有收到BPDU就认为到邻居的链路发生了故障并开始收敛。另外(更重要的),此前的生成树算法(STA)在接口转为转发状态前是被动地等待网络的收敛,被动等待各计时器的过期;RSTP则是主动地与邻居协商,使一个接口安全地转为转发状态更为快速而无需依赖于计时器的配置。为在接口上实现快速收敛,IEEE 802.12协议依靠两个新的变量:边缘端口(edge port)和链路类型(link type)。
所谓边缘端口就是直接连接着最终工作站的端口,当该端口接通后直接进入转发状态不会产生环路,因而可以跳过listening和learning状态,直接进入forwarding状态。
RSTP 的Edge port对应于Cisco的PortFast,一旦在该端口上收到BPDU,它会立即失去Edge Port的特性而成为一个普通的Spanning Tree端口。事实上,在Cisco交换机上,为了在边缘端口上启用RSTP,只需要简单地配置PortFast即可。
链路类型(Link Type)根据端口的双工模式(Duplex mode)自动产生,如果端口运行于全双工模式则为点对点链路(point-to-point link)类型,如果运行于半双工模式则为共享链路(shared port)类型。当然,也可以显式的配置某端口是什么链路类型。
在共享链路上,RSTP与STP没有什么不同。RSTP只能在“Edge Port”和“point-to-point links”上实现状态的快速转换(从阻塞状态快速转换为转发状态)。不过,现在的交换机之间的链路一般都不是共享链路,而是点对点链路。
通过下面的图可以说明RSTP的快速转换。
图中,有A、B、C、D、Root交换机,并且在Root和 D交换机之间还有很多交换机(用一个云图表示),组成了一个交换式网络。在这些交换机上运行着RSTP,Root是根,并且处于稳定状态。现在,我们在 Root和A之间增加一条链路,如右边的图所示。拓扑发生了变化,因此RSTP需要收敛。
STP,RSTP)" style="BORDER-LEFT-COLOR: rgb(0,0,0); BORDER-BOTTOM-COLOR: rgb(0,0,0); BORDER-TOP-COLOR: rgb(0,0,0); BORDER-RIGHT-COLOR: rgb(0,0,0)" alt="" src="http://www.21days.cn/zhaoag/084.jpg" border=0 real_src="http://www.21days.cn/zhaoag/084.jpg"
STP,RSTP)" style="BORDER-LEFT-COLOR: rgb(0,0,0); BORDER-BOTTOM-COLOR: rgb(0,0,0); BORDER-TOP-COLOR: rgb(0,0,0); BORDER-RIGHT-COLOR: rgb(0,0,0)" alt="" src="http://www.21days.cn/zhaoag/085.jpg" border=0 real_src="http://www.21days.cn/zhaoag/085.jpg"
STP,RSTP)" style="BORDER-LEFT-COLOR: rgb(0,0,0); BORDER-BOTTOM-COLOR: rgb(0,0,0); BORDER-TOP-COLOR: rgb(0,0,0); BORDER-RIGHT-COLOR: rgb(0,0,0)" alt="" src="http://www.21days.cn/zhaoag/086.jpg" border=0 real_src="http://www.21days.cn/zhaoag/086.jpg"
最终,达到如右边所示的稳定拓扑。
实际上,通过上图,我们也能够感受到为什么只在“点对点”链路上才能进行这种主动协商然后快速状态转换:假设,上图中的C是一个HUB(那C也就不懂什么 RSTP了),则A与D之间的链路就不是点对点链路,“A”与“C下面的交换机”(图中未画出)之间也不是点对点链路。这时候,A不能和D协商一下(D将其所有的非边缘端口阻塞)就将A的端口置为“转发”状态(在点对点链路上只有两个站点,在多路访问MA网络上有多个站点不能靠简单地协商就解决问题)。
改进一:如果旧的根端口已经进入阻塞状态,而且新根端口连接的对端交换机的指定端口处于Forwarding状态,在新拓扑结构中的根端口可以立刻进入转发状态.
改进二:网络边缘的端口,即直接与终端相连,而不是和其它网桥相连的端口可以直接进入转发状态,不需要任何延时.
改进三:增加了网桥之间的协商机制—Proposal/Agreement.指定端口可以通过与相连的网桥进行一次握手,快速进入转发状态.其中 Proposal报文为正常的BPDU报文,且Proposal Bit位置位.Agreement报文为Proposal报文的拷贝,且以Agreement Bit代替Proposal Bit位置位.
通过以上三点重要改进,RSTP的收敛速度比STP快很多,且RSTP可以兼容STP,因此对于支持RSTP的设备,我们不考虑运行STP.
对于RSTP设备和STP设备混用的情况,请尽可能将RSTP的设备放置在网络中心区域,将STP设备放置在网络的边缘,这样可以保证网络整体收敛速度较快.
对于支持RSTP的交换机,应把所有连接主机或服务器的端口配置为边缘端口,以加快网络的收敛速度,降低网络的广播流量.对于边缘端口可打开BPDU-Protection 功能,避免将此类端口误连到交换机上,引起暂时环路.
单生成树协议STP/RSTP不能够针对不同的VLAN形成不同的生成树,所有VLAN使用同一生成树,因此所有Trunk链路应包括网络中(或局部网络中)配置的VLAN.对于复杂的网络建议启动GVRP.
RSTP协议中引入边缘端口的概念,在边缘端口物理层UP的时候即进入Forwarding状态,这样可以提高网络收敛速度,降低网络中广播报文数量.但如果我们误把交换机接到边缘端口上,可能会导致短暂的环路.
如果我们在边缘端口上再启动BPDU-Protection的功能,则在此端口上如果接收到BPDU报文,这个端口将被自动关闭,直到人为打开为止.
把端口配置为STP-disable,会导致端口丢弃BPDU报文,从而将整个二层网络切割成两个生成树,引起永久性环路,不推荐使用.
多生成树协议中的CIST仍然为单生成树,不能实现不同VLAN间的负载分担.如果要实现不同VLAN的负载分担,必须配置负载分担的区域为同一个域.
若配置不同的交换机在同一个域内,必须保证交换机的域名相同,VLAN和STP实例的对应关系相同.