802.1W生成树
802.1D生成树需要50秒的时间才能把一个处于阻塞状态的端口打开使其工作,这大大影响了用户的通信,为此而开发的快速生成树协议(RSTP-Rapid STP)对这种情况做了改善。

  快速生成树协议标准是IEEE802.1W,是对IEEE802.1D的一个发展,所以802.1D中的主要术语和参数在802.1W中都保留 不变,使得熟悉IEEE802.1D的用户能够很快学会使用快速生成树。运行快速生成树协议的交换机端口也可以与运行802.1D协议的交换机端口在同一 网段上使用,但不足之处就是它将失去"快速"特性。802.1w最终计算出的拓扑和802.1d是完全一样的,主要是节约端口状态转变时所需时间(不再有 转发延迟计时器)。另外802.1W并不是在所有交换机平台上都支持的,并且也有操作系统版本的要求,请读者使用时查阅相关产品文档。

  1.  端口状态
802.1d定义了4种端口状态:倾听、学习、转发、阻塞。从运行的观点来看,处于阻塞状态的端口和处于倾听状态的端口没什么区别,它们都不转发数 据,也不学习地址,不同之处在于802.1d给它们指派的角色(role)不同。同理,一旦一个端口处于转发状态,也无法区分它是根端口还是指定端口。 RSTP把端口状态和端口角色区分开来解决了这些问题。
802.1w定义了3中端口状态,对应与3中可能的运行状态。802.1w把802.1d定义的disable、blocking、 listening状态合并为discarding状态。另外两种状态是learning和forwarding。表11-1列出了802.1d和 802.1w端口状态的比较。


802.1d端口状态
802.1w端口状态
在活动拓扑中吗?
学习MAC地址吗?
Disable
Discarding
No
No
Blocking
Discarding
No
No
Listening
Discarding
No
No
Learning
Learning
No
Yes
Forwarding
Forwarding
Yes
Yes

表 11-1 802.1d和802.1w端口状态比较
802.1d端口状态 802.1w端口状态 在活动拓扑中吗? 学习MAC地址吗?
Disable Discarding No No
Blocking Discarding No No
Listening Discarding No No
Learning Learning No Yes
Forwarding Forwarding Yes Yes

  2.  端口角色

  802.1w定义了4种端口角色,根端口角色和指定端口角色保持不变,和802.1d中定义的含义相同。RSTP为了快速收敛,在拓扑变化中一 旦端口被选举为新的根端口,该端口立即进入转发状态,不再经由listening、learning阶段。802.1d中定义的blocking角色在 802.1w中被分为两种角色,分别是替代端口角色(alternate port role)和备份端口角色(backup port role)。

  替代端口角色是指能够收到其他交换机BPDU的一个discarding端口,一旦该交换机的根端口失效,该端口立即进入转发状态而替代失效的 根端口建立与根桥的连接,不需要等待30秒的转发延迟。如图11-13所示,交换机A的下面的端口可以收到交换机B转发的BPDU,且当前为 discarding状态,所以成为替代端口角色。一旦A的根端口失效,它将立即转变为转发状态。


12243911Y-0.jpg 图 11-13 替代端口
备份端口不同于替代端口的是备份端口不负责根端口的失效并和被备份的端口处在同一台交换机上,为同网段的指定端口做备份。备份端口是指能收到同一台交换机BPDU的discarding 端口。如图11-14所示,交换机B的右侧端口作为当前指定端口的备份端口。


1224396110-1.jpg图 11-14 备份端口
RSTP计算生成树的最终拓扑使用的选举原则和802.1d使用的原则相同(比较交换机ID和路径花费等值),通过定义不同的端口状态和端口角色把端口所处的状态及其在RSTP中的功能角色二者分开,能够提供更多的信息,使拓扑收敛更快。

  3.  边缘端口和链路类型
快速收敛是RSTP的重要特性。为了达到端口快速收敛目的802.1w定义了另外两个新参数:边缘端口(edge port)和链路类型(link type)。

  (1)边缘端口:直接与终端主机(end  station)相连的端口称为边缘端口。由于这种端口在网络中不会产生环路,所以它们可以直接进入转发状态而跳过倾听和学习阶段。这种端口在拓扑变化时 也不会产生拓扑变化的信息,但是,一旦收到BPDU它将失去边缘端口的属性,成为普通的生成树端口。边缘端口可以使用portfast参数设置。

  (2)链路类型:运行在全双工模式下的端口被认为是点到点端口,它们所形成的链路称为点到点链路(point-to-point  link)。RSTP可以在点到点端口上通过使用协商机制获得快速转换到转发状态的特性。相对于点到点链路,半双工模式下的链路看作是共享链路 (shared link)。

  4. 802.1W特性

  在拓扑发生变化时,802.1d生成树协议计算出一个新拓扑是非常快的,问题在于当一个端口被选为指定端口要工作时,需要经历30秒的转发延迟,这意味着有30秒的数据中断。原因是802.1d没有反馈机制用来通知实际上几秒钟后网络已达到收敛的信息。802.1w采纳了反馈机制及其他一些特性使端口快速转换到转发状态,这些特性包括:

  802.1w对BPDU的处理不同。非根桥不停地发送BPDU,缺省为每2秒发送一个,即使没有收到任何根桥的BPDU它也这么做,而 802.1d则不这样。在这里BPDU实际上充当了交换机之间的存活信号(keepalive)的作用,一旦交换机连续3个BPDU数据没有收到,它就会 认为与直连的根桥或指定网桥失去了连接。
更快的信息老化机制。对于给定的一个端口,如果收不到邻居的连续3个BPDU,就立即把协议信息老化掉。这种快速信息老化方法使得链路失败能够被快速检测出来。
802.1w使用协商机制(称为proposal/agreement)。在802.1d环境下,一个端口被选为指定端口后需要经历一个转发延迟时间才到达转发状态。而802.1w不使用任何计时器,使用协商的办法快速达到转发状态。
拓扑变化(TC)的信息被每个交换机向网络中传播,而不是象802.1d那样单单依靠根桥。

  5. 802.1W运行过程
需要提醒的一点是:802.1w和802.1d在同样的环境下计算出的最终拓扑是一致的,只是它们的步骤和达到收敛所需时间不同。

  下面以图11-15所示的拓扑解释快速生成树的运行过程。本例中假设在交换机A和根桥(root)之间有一条非直连路径(经由C、D),当在它们之间新增了一条直连链路后,下面的过程将会发生。

  (1)  新的链路建立之后,链路两端的端口立即处于discarding状态,这与802.1d没什么区别。不同的是此时A和root会发起协商,双方交换 BPDU(如图11-15所示),root向交换机A发送的BPDU称为proposal。A一收到来自root的BPDU,就把自己的非边缘端口阻塞 掉,这种操作称为sync(意思是与新的根桥BPDU信息同步)。一旦sync结束,交换机A就会明确地授权交换机root把它的端口置于转发状态(A发 送给root的BPDU称为agreement)。
(2)
提示:边缘端口和处于discarding状态的端口被认为已经同步了。

12243953B-2.jpg 图 11-15过程1的图例
(2)当交换机A把自己的非边缘端口阻塞掉之后,它和root之间的链路就转变为forwarding状态。在这一阶段,交换机A上新近被阻塞的端口 也会向它的邻居端口(分别在B和C上)进行协商(发送proposal BPDU),试图快速转向forwarding状态(如图  11-16所示),这时两条链路上都进行sync的操作。假设交换机B只有边缘端口,所以它可以立即授权A把端口置为转发状态(发送agreement  BPDU)。假设交换机C上也有两个边缘端口,那么交换机C只需把与D相连的端口置于discarding即可授权A把端口置于转发状态,而后过程进入第 三步。


1224396094-3.jpg图 11-16  过程2的图例
(3)交换机C的端口与相邻的交换机D的端口协商,进入sync操作。在没有得到邻居的授权后(假设D的端口在选举过程中落选,成为非指定端口,那么 它处于discarding状态,所以已经sync),交换机C的端口转变为转发状态。最终的拓扑如图11-17所示,在D和C之间的链路上,D的端口被 阻塞。

12243a547-4.jpg 图 11-17 过程3的图例
上述过程显示,RSTP没有采纳任何计时器,而是使用了协商机制,使端口快速转变为forwarding状态,绕过了30秒的转发延迟。为了有效利用RSTP的快速收敛特性,管理员应该注意以下两点:
协商仅可能发生在由点到点链路互连的交换机之间。
边缘端口的角色更加重要了,需要正确配置,否则影响收敛。

  生成树运行方式

  在生成树的运行方式上,CISCO标准和IEEE标准采取了不同的方案,所以在交换机上运行的生成树有以下几种方式:

  基于VLAN的生成树(PVST):每一个VLAN运行一个生成树是CISCO的专用实施方法,需要ISL的封装。
公共生成树(CST):CST是IEEE802.1Q对于VLAN和生成树的解决方案。所有的VLAN运行一个生成树,BPDU信息运行在VLAN1上。
增强型的PVST(PVST+):为了支持802.1Q标准,CISCO扩展了PVST而成为PVST+。该运行方式基于802.1D。
基于VLAN的快速生成树(Rapid PVST+):基于802.1W的生成树。
多棵生成树(MST-Multiple Spanning Tree):这种生成树方式不同于PVST和CST,既不是一个VLAN一棵树,也不是所有VLAN一棵树,而是多个VLAN共用一棵树。MST基于802.1s和802.1w,并兼容CST和PVST。