当前位置:文档之家› 理解快速生成树协议(RSTP)

理解快速生成树协议(RSTP)

快速生成树协议(802.1w)注:本文译自思科的白皮书Understanding Rapid Spanning Tree Protocol(802.1w).---------------------------------------------------------------------------------------------------------------------- 介绍Catalyst 交换机对RSTP的支持新的端口状态和端口角色端口状态(Port State)端口角色(Port Roles)新的BPDU格式新的BPDU处理机制BPDU在每个Hello-time发送信息的快速老化接收次优BPDU快速转变为Forwarding状态边缘端口链路类型802.1D的收敛802.1w的收敛Proposal/Agreement 过程UplinkFast新的拓扑改变机制拓扑改变的探测拓扑改变的传播与802.1D兼容结论---------------------------------------------------------------------------------------------------------------------- 介绍在802.1d 生成树(STP)标准设计时,认为网络失效后能够在1分钟左右恢复,这样的性能是足够的。

随着三层交换引入局域网环境,桥接开始与路由解决方案竞争,后者的开放最短路由协议(OSPF)和增强的内部网关路由协议(EIGRP)能在更短的时间提供备选的路径。

思科引入了Uplink Fast、Backbone Fast和Port Fast等功能来增强原始的802.1D标准以缩短桥接网络的收敛时间,但这些机制的不足之处在于它们是私有的,并且需要额外的配置。

快速生成树协议(RSTP;IEEE802.1w)可以看作是802.1D标准的发展而不是革命。

802.1D 的术语基本上保持相同,大部分参数也没有改变,这样熟悉802.1D的用户就能够快速的配置新协议。

在大多数情况下,不经任何配置RSTP的性能优于思科的私有扩展。

802.1w能够基于端口退回802.1D以便与早期的桥设备互通,但这会失去它所引入的好处。

新版的802.1D标准,IEEE802.1D-2004,合并了IEEE802.1t-2001 和IEEE802.1w标准。

本文提供了RSTP对先前的802.1D标准增强的内容。

Catalyst 交换机对RSTP的支持新的端口状态和端口角色802.1D定义了四个不同的端口状态:●Listening,●Learning,●Blocking●Forwarding参见下面的表格以获得更多信息。

这些端口的状态,无论对于阻塞或转发流量,还是它在活动拓扑中的角色(Root端口,Desgnated端口等)来说,都是混杂的。

比如,从操作的观点来看,Blocking和Listening状态的端口没有区别,它们都丢弃帧,也不学习MAC地址。

真正的不同在于生成树给予它们的角色。

我们可以安全的确定,Listening状态是Designated端口或Root端口在转变成Forwarding状态的过程中。

不幸的是,一旦成为Forwarding状态,我们无法从端口状态推断该端口是Root还是Designated角色。

这一点说明这个基于状态的术语的失败。

RSTP通过分离端口的角色和状态来陈述这个主题。

端口状态(Port State)RSTP中只留下了三个端口状态,它们对应着三个可能的操作状态。

802.1D中的Disabled,端口角色(Port Roles)现在,角色成为赋予端口的一个变量。

root端口和Designated端口这两种角色仍然保留,然而Blocking端口角色被分成了Backup和Alternate角色。

生成树算法(STA)根据桥协议数据单元(BPDUs)决定端口角色。

简单起见,关于BPDU需要记住,总有一个方法可以用来比较它们并决定哪一个是最优的,这是基于存于BPDU中的变量来得到的,偶尔也存在接收它们的端口上。

考虑到这种情况,以下的段落用实践的方式来解释端口角色。

Root端口角色在桥设备上接收最优BPDU的端口是Root端口。

它是按照术语路径开销(path cost)来计算的距离根网桥最近的端口。

生成树算法(STA)在整个桥接网络中选择一个根桥,根网桥发送的BPDU比其他桥设备更有用。

根网桥是在桥接网络中唯一没有Root端口的设备,所有其他的网桥都至少在一个端口上接收BPDU。

Designated 端口角色如果一个端口在向它所连接的网段上发送最优BPDU,该端口就是一个Designated端口。

802.1D桥设备把不同的段(segments),比如以太网段,连接在一起来产生一个桥接域。

在一给定的段中,只能有一条通往根桥的路径。

如果有两条的话,网络中就会有桥接环路。

连在同一段的所有桥设备侦听每个BPDU,并一致同意发送最好BPDU的网桥作为该段的指定网桥,该网桥的相应端口就是Desinated端口。

Alternate和Backup端口角色有两个端口角色对应于802.1D的Blocking状态。

阻塞的端口被定义为非Designated和Root 的端口。

阻塞的端口接收到的BPDU优于其发送的BPDU。

记住,一个端口绝对需要接收BPUD以便保持阻塞。

为此,RSTP引入了两个角色。

Alternate端口由于收到其它网桥更优的BPDU而被阻塞,如下图所示:Backup端口由于收到自己发出的更优的BPDU而被阻塞,如下图所示:这种区别其实在802.1D中已经做了区分,这也正是思科UplinkFast功能的本质。

基本原理在于Alternate端口提供了一个到根网桥的备选路径,因此如果Root端口失效可以替代Root 端口。

当然,Backup端口提供了到达同段网络的备选路径,但不能保证到根网桥的备用连接。

因此,它不包括在Uplink的组中。

同样,RSTP用和802.1D同样的标准来计算生成树最终的拓扑,网桥和端口优先级的使用也没有丝毫改变,在思科的实现中,Discarding状态被称作Blocking,CatOS release 7.1及其后版本仍然显示Listening和Learning状态,这就比IEEE标准提供了更多的有关端口的信息。

然而,这新功能会使协议定义的端口角色和它当前状态存在不一致的情况。

比如,现在一个端口同时既是Designated又是Blocking是完全合法的,然而,这种情况只发生在很短的时间内,只是表示该端口正在向Designated forwarding状态转变。

新的BPDU格式RSTP的BPDU引入了很少改变。

在802.1D中仅仅定义了两个标志:拓扑改变(TC)和TC 确认(TCA)。

然而,如今RSTP用来剩余的所有6位,用于:●编码产生该BPDU的端口的角色和状态●执行Proposal/Agreement机制新的BPDU处理机制BPDU在每个Hello-time发送BPDU在每个Hello-time时间间隔都会发送,而不再仅仅传播(relay)。

在802.1D中,非根网桥只有在其Root端口收到BPDU时,才产生BPDU。

事实上,网桥只是传播(relay)BPDU,而不是生成BPUD。

在802.1w中不再是这样,网桥在每一个<hello-time>(默认2秒)都会发送包含自己当前信息的BPDU,即便自己没有收到根网桥的BPDU。

信息的快速老化一个端口如果连续三次没有收到hello,协议信息就会立即老化(或者如果max_age过期)。

由于上面提到的协议修改,BPUD可以用作网桥之间的keep-alive机制。

如果一个网桥连续没有收到三个BPDU,它就会认为自己已经和其直连的Root或Designated网桥失去连接。

信息的快速老化可以快速的检测链路故障,如果一个网桥不能从其相邻的设备收到BPDU,它们之间的连接无疑已经断开了。

这和802.1D是不同的,这种问题在802.1D中可能发生在通往根网桥的路径中的任何地方。

注:物理链路的失效能够更快的探测出来。

接收次优BPDU这个概念是BackboneFast(Cisco)的核心。

IEEE 802.1w委员会决定在RSTP中引入类似的机制。

当网桥从它的Designated或Root网桥收到次优的BPUD,它会立即接受它并替换掉先前存储的信息。

由于网桥C仍然知道根(Root)网桥是有效的和正常的,它立即想网桥B发送一个包含根网桥信息的BPDU。

因此,网桥B不再发送它自己的BPDU,并接受连接到网桥C的端口为Root端口。

快速转变为Forwarding状态快速转变是802.1w引入的最重要的功能。

先前的STA(快速生成树算法)在把一个端口转变成Forwarding状态前,只是被动的等待网络收敛。

要想获得较快的收敛只能调整保守的默认参数(Forward Delay和Max_age定时器),并往往造成网络的稳定性问题。

新的快速STP能够主动的确定端口能够安全的转变成Forwarding状态,而无需依赖任何定时器。

现在,在RSTP兼容的设备中有了一个真正的反馈机制。

为了在端口上获得快速收敛,协议依靠两个新的变量:边缘端口(edge port)和链路类型(link type)。

边缘端口边缘端口的概念思科生成树用户早已熟知,因为它和PortFast功能紧密相关。

在网络中,所有和终端用户直连的端口不会产生环路。

因此,边缘端口可以直接转变为Forwarding状态,而略去Listening和Learning阶段。

当链路断开或连上时,边缘端口和使能了PortFast的端口都不会引起拓扑改变。

与PortFast不同,边缘端口一旦收到一个BPDU,它就会立即失去边缘端口的属性而称为一个正常的生成树端口。

从这一点来看,边缘端口有一个用户配置值和一个操作值。

思科在实现中保留了PortFast关键字用于边缘端口的配置,这使用户易于转变到RSTP。

链路类型RSTP只能在边缘端口和点对点链路上实现快速的转换为Forwarding状态。

链路类型是从端口的双工模式(duplex mode)自动获取的。

默认时,操作在全双工模式的端口被认为是点对点的,而操作在半双工模式的端口被认为是共享端口。

这自动设置的链路类型能被显式的配置所覆盖。

在当今的交换网络中,大多数的链路都是工作在全双工模式,RSTP会认为它们是点对点链路。

因此,它们可以快速的转换为Forwarding状态。

802.1D的收敛下面的图演示了当一个新的链路新加入桥网络时,802.1D的处理过程:Root和交换机A中新加入的端口立即进入Listening状态,阻塞流量。

相关主题