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

理解快速生成树协议(802.1w)

理解快速生成树协议(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的支持

下表总结了Catalyst交换机对RSTP的支持和所需软件的最低版本。

Catalyst Platform MST w/ RSTP RPVST+ (PVRST+)

Catalyst 2900 XL / 3500 XL Not available. Not available.

Catalyst 2940 12.1(20)EA2 12.1(20)EA2

Catalyst 2950/2955/3550 12.1(9)EA1 12.1(13)EA1

Catalyst 2970/3750 12.1(14)EA1 12.1(14)EA1

Catalyst 3560 12.1(19)EA1 12.1(19)EA1

Catalyst 3750 Metro 12.1(14)AX 12.1(14)AX

Catalyst 2948G-L3/4908G-L3 Not available. Not available.

Catalyst 4000/2948G/2980G (CatOS) 7.1 7.5

Catalyst 4000/4500 (IOS) 12.1(12c)EW 12.1(19)EW

Catalyst 5000/5500 Not available. Not available.

Catalyst 6000/6500 7.1 7.5

Catalyst 6000/6500 (IOS) 12.1(11b)EX,

12.1(13)E, 12.2(14)SX 12.1(13)E

Catalyst 8500 Not available. Not available.

新的端口状态和端口角色

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,

Blocking 和Listening状态在802.1w中合并为同一个Discarding状态。

STP (802.1D) 端口状态 RSTP (802.1w)端口状态 端口包括在活动拓扑中? 端口学习MAC地址?

Disabled Discarding No No

Blocking Discarding No No

Listening Discarding Yes No

Learning Learning Yes Yes

Forwarding Forwarding Yes Yes

端口角色(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中不再是这样,网桥在每一个(默认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,它会立即接受它并替换掉先前存储的信息。

相关主题