这章描述在你的交换机上怎样配置IEEE802.1WRSTP)和IEEE802.1SMSTP)的Cisco实现。
  
  RSTP提供生成树的快速收敛。MSTPRSTP来提供快速收敛,使VLANs被分组进入一个生成树实例,为数据流量提供多转发路径,并且使之负载平衡。他改善了因为一个实列(转发路径)失效而没有在其他实列(转发路径)产生作用的失败的冗余。MSTPRSTP初期通常是部署在骨干和一个二层交换网络的分发层;这个部署提供了在服务提供商环境中被要求的高可用的网络。
  
  RSTPMSTP两者在保持与基于802.1D生成树,与现行的Cisco per-VLAN生成树(PVST+),以及与现行的Cisco专有多实例生成树协议(MISTP)向后兼容的同时,改善了生成树的运作。需要关于STP的信息,请看配置STP”。需要关于可选生成树特性的信息,请看配置可选生成树特性
  
  注意:需要使用在本这?械拿畹耐暾ê褪褂眯畔
慰脊赜诟梅邪娴腃atalyst 3550 Multilayer Switch Command Reference
  这章由这些内容组成:
 
理解RSTP
l
l理解MSTP
 
802.1D生成树协议协同工作性
l  
 
配置RSTPMSTP特性
l  
l   显示MST配置和状态
  理解RSTP
  RSTP利用点到点线路并提供生成树的快速收敛。生成树可在1秒内重新配置,对于像语音和视频这些对延迟敏感的网络承载流量来说是至关重要的。

  
  这部分描述RSTP怎样工作。包括这些方面:
  
l   端口角色与活跃拓扑
  
 
端口角色的快速收敛
l  
  
 
端口角色的同步
l  
  
l   桥接协议数据单元(BPDU)格式和处理
  
  需要配置信息,请看配置RSTPMSTP特性部分。
  
  端口角色和活跃拓扑
  
  RSTP靠指派端口角色和判断活跃拓扑来提供生成树的快速收敛。RSTP建立于IEEE802.1D STP来选择有最高交换机优先级(最低数字的优先级值)的交换机作为根交换机,正如根交换机选择部分中描述的那样。接着,RSTP指派这些端口角色中的一个给特定端口:
  
l   根端口---当交换机转发数据包给根交换机时,提供最好路径(最低开销)。
  
l   指定端口---连接指定交换机,当从局域网转发数据包到根交换机,该指定交换机拥有最短路经开销。这个把指定交换机连在局域网上的端口被称为指定端口。
  
l   供选择端口---提供一条由当前根部端口提供的到该根交换机的供选择路径。
  
l   备份端口---作为由一个指定端口提供的到生成树叶节点(译者注:末端节点)路径的备份。当两个端口被一个点到点链路的一个环回(loopback)连在一起时,或者当一个交换机有两个或多个到共享局域网段的连接时,一个备份端口才能存在。
  
l   禁用端口---在生成树运行中不担当任何角色。
  
  一个有根端口或指定接口角色的端口被包含在活跃拓扑中。一个有供选择或备份端口角色的端口不被包含在活跃拓扑中。
  
  在整个网络都有协调的端口角色的一个稳定拓扑中,RSTP确保每个根端口和指定端口立即转换为转发状态,同时所有的冗余和备份端口总是在丢弃状态(对等于802.1D中的阻断)。端口状态控制转发和学习步骤地运行。表15-1提供了一个802.1DRSTP端口状态的对比。
  
  Table 15-1: 端口状态对比
  运行的状态 STP 端口状态 RSTP 端口状态端口是否被包含在活跃拓扑中?
  启用 阻断  丢弃
No
  启用 监听  丢弃 
No
  启用 学习  学习 
Yes
  启用 转发  转发 
Yes
  禁用 禁用 禁用 
No
  

  为了与Cisco STP提法一至,该指导文档的端口状态中用blocking代替discarding。指定端口始于监听状态。
  
  快速收敛
  
  RSTP提供交换机,一个交换端口,或者一个局域网失效后的可连通行的快速恢复。他为边缘端口,新根端口,以及下面通过点到点链路而连接的端口提供了快速收敛:
  
l   边缘端口---如果你在一个RSTP交换机上用spanning-tree portfast接口配置命令配置一个端口为边缘端口,该边缘端口立即转换为转发状态。一个边缘端口就像一个Port Fast-enabled端口,并且你应该只在连接了一个单独的末端站点的端口上启用他。
  
l   根端口---如果RSTP选择了一个新端口,他阻断旧根端口并且立即转换新根端口为转发状态。
  
l   点到点链路---如果你通过一个点到点链路连接一个端口到另一个端口,并且本地端口成为一个指定端口,他和靠使用计划-同意握手(proposal-agreement handshake)的其他端口协商一个快速转换来确保一个无环路的拓扑。
  
  就像图15-1显示的那样,交换机A通过点到点链路被连接到交换机B,并且所有端口都为阻断状态。假设交换机A有一个和交换机B一样的优先级数字值。交换机A发送一个计划(proposal)消息(一个带有proposal标志设置的BPDU)给交换机B,计划他自身作为指定交换机。
  
  在收到交换机B的同意(agreement)消息后,交换机A立即也转换他自己的指定端口为转发状态。因为交换机B阻断了所有他自己的非边缘端口,并且因为在交换机A和交换机B之间有一条点到点链路,无环路的网络被构成。
  
  当交换机C被连接到交换机B时,一个类似的握手消息设置被交换。交换机C选择连接交换机B的端口作为他自己的根端口,并且两个端点都立即转换为转发模式。随着这个握手过程的每次重复,更多的交换机加入到活跃拓扑中。就像网络收敛一样,这个计划-同意握手过程从根一直到生成树的叶节点(译者注:末端节点)。
  
  交换机从端口双工模式判断链路类型:一个全双工端口被认为有一个点到点的连接;一个半双工的端口被认为有一个共享连接。你可以靠使用命令对双工的设定来覆盖缺省设置:
  (interface) spanning-tree link-type
  

  图15-1:针对快速收敛的计划和同意握手(Proposal and Agreement Handshaking
  端口角色的同步
  当交换机接在他的一个端口上收到一个计划(proposal)消息,并且该端口被选择作为新根端口,RSTP迫使所有其他端口与新根信息同步。
  如果所有其他端口同步了,交换机就和从根端口收到的上级根信息同步了。一个交换机上的单独的端口是同步的,如果:
  该端口为阻断状态
  它是一个边缘端口(在网络边缘被配置的一个端口)
  如果一个指定端口为转发状态并且没有被配置成边缘端口,当RSTP迫使他和新根信息同步时,该端口转换为阻断状态。通常,当RSTP迫使一个端口和根信息同步并且端口不符合以上的任何情况,他的端口状态被设置为阻断。
  
  在却定所有端口同步以后,交换机发送一个与他的根端口相符的同意(agreement)消息给指定交换机。当一个点到点链路连接的交换机在有关他们端口角色的agreement中时,RSTP立即转换端口的状态为转发。事件的顺序展示在图15-2中:
  
  图 15-2: 快速收敛期间的事件顺序
  
  
  
  BPDU格式和处理
  
  RSTPBPDU格式和IEEE802.1D的格式一样,除了协议的版本号被设置为了2。一个新的1字节版本1长度域被设置为0,这意味着没有版本1协议信息存在。表15-2展示了RSTP标志域。
  
  表 15-2: RSTP BPDU 标志
  Bit 功能
  0 拓扑改变
(TC)
  1 计划(Proposal

  2-3:
  
00
  
01
  
10
  11 端口角色
:
  未知(Unknown

  冗余端口(Alternate port
  根端口(oot port
  指定端口(Designated port
  4 学习(Learning
  5 转发(Forwarding
  6 同意(Agreement
  7 拓扑变化确认 (TCA)
  

  发送交换机在RSTPBPDU中设置计划(proposal)标志来打算让他自己作为局域网上的指定交换机。计划(proposal)消息中的端口角色总是被设定为指定端口。
  
  发送交换机设置RSTPBPDU中的同意标志来接收前边的计划(proposal)。Agreement消息中的端口角色总是被设置为根端口。
  
  RSTP没有一个单独的拓扑变化通知(TCNBPDU。他使用拓扑变化(TC)标志来显示拓扑变化。然而,为了和802.1D交换机的协同工作性,RSTP交换机处理和产生TCN BPDUs
  
  根据发送端口状态来设置学习和转发标志。
  
  处理上级BPDU信息
  
  如果一个端口接收上级根信息(比目前端口保存的更低的桥ID,更低的路径开销,等等),RSTP触发一个重配置。如果端口作为新根端口被计划和被选择,RSTP迫使所有其他端口同步。
  
  如果接收到的BPDU是一个带有计划标志设定的RSTP BPDU,交换机在所有的其他端口同步以后发送一个agreement消息。如果该BPDU是一个802.1D BPDU,交换机不设置proposal标志,并且为端口启动转发延迟计时器。新根端口需要双倍的转发延迟时间来转换到转发状态。
  
  如果端口上收到的上级信息导致端口变成一个备份或者供选择端口,RSTP设置端口为阻断状态但是不发送agreement消息。指定端口继续发送带有置位的proposal标志的BPDUs直到转发延迟计时器超时,这时端口转换为转发模式。
  
  处理下级BPDU信息
  
  如果一个指定端口接收一个具有指定端口角色,有比目前端口保存的更高桥ID,更高路径开销,等等的下级BPDU,他立即用它自己的信息响应。
  
  拓扑变化
  
  这个部分描述RSTP802.1D之间在处理生成树拓扑变化时的差异。
  
l   检测---不同于802.1D的在阻断和转发状态之间的任何转变都会导致一次拓扑变化,只有从阻断到转发状态的变化才会导致一次RSTP拓扑的变化(仅当连通性的一次增加才会考虑一次拓扑变化)。在一个边缘端口上的状态变化不会引起一次拓扑变化。当RSTP交换机检测到了一个拓扑变化时,他会在他的所有边缘端口上刷新所学到的信息。
  
l   通知---不同于802.1D使用TCN BPDUsRSTP不使用他们。然而,为了与802.1D的共同可*作性,一个RSTP交换机处理并且产生TCN BPDUs
  
l   确认---当一台RSTP交换机在一个指定端口接收到来自于一个802.1D交换机的一个TCN消息时,他回应一个TCA被置位的802.1D结构的BPDU 。然而,如果TC-while计时器(等同于802.1D中的topoloty-change计时器)在一个连接着一个802.1D交换机的根端口上是活跃的,并且一个带有置位TCA结构的BPDU被收到时,该TC-while计时器被置位。
  
  这种做法只在支持802.1D交换机时被要求。RSTP BPDUs永远不会有被置位的TCA
  
l   传递---当一台RSTP交换机通过一个指定或者根端口从其他交换机收到一条TC消息,他传递该拓扑变化个所有他的非边缘,边缘,指定端口,和根端口(除了接收端口)。交换机为所有端口启动TC-while计时器并且刷新他们已学到的信息。
  
l   协议移植---为了和802.1D交换机的向后兼容,RSTP有选择性的在一个预端口(per-port)上发送802.1D结构BPDUsTCN BPDUs
  
  当一个端口被初始化,移植延迟(migrate-delay)计时器被启动(指明RSTP BPDUs被发送期间的最小时间),并且RSTP BPDUs被发送。同时这个计时器是活跃的,交换机处理所有在该端口上收到的BPDU并且忽略协议类型。
  
  如果交换机在端口的migration-dely计时器已经超时以后收到一个802.1D BPDU,他认为它被连接到一台802.1D交换机,并且开始只使用802.1D BPDUs。然而,如果RSTP交换机在端口上正在使用802.1D BPDUs,并且在计时器已经超时以后接收到一条RSTP BPDU,他重新开始计数器并且在该端口上使用RSTP BPDUs
  
  理解MSTP
  

  MSTP,他用RSTP来快速收敛,使VLANs被分组进入一个生成树实例,每个实例有一个独立于其他生成树实例的生成树拓扑。这种布置方法为数据流量提供多转发路径,使负载平衡,并且减少因支持许多VLANs所需的生成树实例数量。
  
  这个部分描述MSTP怎样工作以及这章的内容:
  
l   多生成树区域
  
 IST
CIST,和CST
l  
  
l   跳计数
  
  需要配置信息,请看配置RSTPMSTP特性部分。
  
  多生成树区域
  
  为交换机加入多生成树(MST)实例,你必须保证用相同的MST配置信息来配置交换机。正如图15-3展示的一样,有相同MST配置的互联的交换机的聚集构成一个MST区域。
  
  MST配置决定每台交换机属于哪一个MST区域。配置包括区域名,修正号,和MST VLAN实例指派图(instance-to-VLAN assignment map)。你为一个区域配置交换机用命令:
  (global) spanning-tree mst configuration
  在交换机输入MST配置模式后,你可以用命令映射VLANs到一个MST实例:

  (config-mst) instance instance-id vlan vlan-range
  用命令指派区域名:

  (config-mst) name name
  并用命令设置修订号:

  (config-mst) revision number
  

  一个区域可以有一个或多个带有相同MST配置的成员;每个成员必须有能力处理RSTP BPDUs。在一个网络中没有MST区域的数量限制,但是每个区域可以支持到16个生成树的上限。你在一个时间只能指派一个VLAN给一个生成树实例。
  
  ISTCIST,和CST
  

  不像PVST+中每个生成树是独立的,MSTP建立和维护两种类型的生成树:
  
l   一种是内部生成树(IST),它是运行在一个MST区域的生成树。
  
  在每个MST区域内,MSTP维护多生成树实例。对于一个区域,生成树实例0是特殊的实例,也叫内部生成树(IST)。所有其他MST实例被从115标号。
  
  IST是唯一发送和接收BPDUs的生成树实例;所有其他生成树的信息被包含在M记录中(M-records),该纪录被封装在MSTP BPDUs中。为支持多生成树实例而需要由一台交换机来处理的BPDUs的数目被显著减少了。
  
  所有在同一个区域中的MDT共享相同的协议计时器,但是每个MST实例有他自己的拓扑参数,就像根交换机ID,根路径开销,等等。却省情况下,所有VLANs被指派到IST
  
  一个MST实例对区域来说是本地的。例如,在区域A中的MST实例1独立于区域B中的MST实例1,即使区域AB是相互连接的。
  
l   一个公共和内部生成树(CIST),是每个MST区域中的ISTs的聚集,以及MST区域与单生成树互连的公共生成树(CST)。
  
  一个区域里被计算的生成树,就像包含了整个被交换域的CST中的一个子树一样出现。CIST作为在802.1W802.1S,和802.1D协议交换机之间运行生成树计算的一个结果被构成。一个MST区域里的CIST和一个区域外的CST相同。
  
  需要更多信息,请看在一个MST区域运作部分和MST区域之间运作
  部分。

  
  在一个MST区域运作
  
  IST连接一个区域里的所有MSTP交换机。当IST收敛时,IST的根成为主IST(在图15-3种显示),它是在区域里拥有到CST根的最低桥ID和路径开销的交换机。如果在网络内仅只有一个区域,那么主IST也是CST根。如果CST根在区域外,在区域边界的MSTP交换机之一被选择为主IST
  
  当一个MSTP初始化时,他发送BPDUs声明他自己为CST和主IST的根,到CST根和到主IST的路径开销都被设为0。交换机也初始化他的所有MST实例,并且对他们声称是根。如果交换机接收上级MST根信息(比当前端口保有的更低桥ID,更低路径开销,等等),他放弃声称作为主IST
  
  在初始化期间,一个区域可能有许多子区域,每个区域都带有他自己的主IST。作为一个交换机接收上级IST信息,他们离开旧的子区域并且加入可能包含真正主IST的新区域。结果所有子区域缩小,除了包含有主IST的那个区域。
  
  为了正确的运作,MST区域里的所有的交换机必须同意相同的主IST。因此,只有当他们聚合为一个主CIST时,区域里任意两个交换机为一个MST实例而同步他们的端口角色。
  
  在MST区域之间运作
  
  如果在网络中有多区域或者传统的802.1D交换机,MSTP建立并维护CST,他包含所有MST区域和网络中的所有传统的 STP交换机。MST实例和在区域边缘的IST相结合成为CST
  
  IST连接区域中所有的MSTP交换机并且作为围绕整个被交换域的CST出现,带有子网根的是主ISTMST区域作为一个虚拟交换机连接STP交换机和MST区域。
  
  图15-3显示了一个带有三个MST区域和一个传统的802.1D交换机的网络。区域1A)的主IST也是CST根。区域2B)的主IST和区域3C)的主ISTCST内的各自子树的根。
  
  图 15-3: MST 区域, IST, CST
  
  
  
  图15-3没有显示额外每个区域的MST接口。注意MST实例的拓扑可以不同于同一个区域的IST的拓扑。
  
  只有CST实例接受和发送BPDUs,并且MST实例添加他们的生成树信息进入BPDUs来与邻居交换机相互作用和计算最终的生成树拓扑。就是因为这,与BPDU传输有关的生成树参数(例如,hello时间,forward时间,max-age时间,和max-hops)只被配置在CST接口而不对所有的MST接口起作用。与生成树拓扑有关的参数(例如,交换机优先级,端口VLAN开销,端口VLAN优先级)可以在CST实例和MST实例上都被配置。
  
  MSTP交换机使用版本3 RSTP BPDUs或者802.1D STP BPDUs来和传统的 802.1D交换机通讯。MSTP交换机使用MSTP BPDUs来和MSTP交换机通讯。
  
  跳计数
  
  ISTMST实例在配置BPDU中不使用消息老化期信息(message-age information)和最小老化期信息(maximum-age information)来计算生成树拓扑。代替的是,他们使用到根的路径开销和一个与IP TTL机制相似的跳计数机制。
  
  你可以配置内部区域的最小跳数并把它应用到区域中的IST和所有的MST实例。用命令:
  (global) spanning-tree mst max-hops
  跳计数得到了消息老化期信息(message-age information)(决定什么时候触发一次重配置)一样的结果。根实例交换机总十发送带有0开销和跳计数值被设为最大的一个(或者多纪录M-recordBPDU。当一台交换机接收到这条BPDU,他把接收到的现存跳计数减1,并且传播这个做为在他产生的BPDU中剩下的跳计数的值。当计数达到0,交换机丢弃该BPDU并且老化该端口保有的信息。

  
  BPDURSTP部分中的消息老化期和最大老化期信息在整个区域里保持相同,并且该相同值依靠在边界的区域指定端口传播出去。
  
  边界端口
  
  一个边界端口是这样一个接口,它连接一个MST区域到一个运行RSTP的单独生成树区域,或到一个传统的 802.1D的单独生成树区域,或到带有不同MST配置的另一个MST区域。一个边界端口也连接到一个局域网,指定交换机,该交换机即是一个单独生成树交换机也是一个带有不同MST配置的交换机。
  
  在边界,MST端口的角色不被关心,并且他们的状态被迫和IST端口状态(只有当IST端口为转发状态时,在边界的MST端口才为转发状态)一样。一个在边界的IST端口除了备份端口角色外可以是任何端口角色。
  
  在一个共享边界链路上,MST端口在转换为学习状态之前,在阻断状态等待转发延迟时间超时。在转换到转发状态之前MST端口等待另一个转发延迟时间。
  
  如果边界端口在点到点链路上并且它是IST根端口,MST端口在IST端口转换为转发状态时立刻转换到转发状态。
  
  如果IST端口在点到点链路上是一个指定端口,并且如果IST端口因为从他的对等体端口收到的一个agreement而转换为转发状态,MST端口也立即转换到转发状态。
  
  如果一个边界端口在一个IST实例中转换为转发状态,他将在所有的MST实例中转发,并且一个拓扑变化被触发。如果一个带有IST根或指定端口角色的边界端口接收到一条外出到MST云的拓扑变化通知,MSTP交换机在IST实例中和活跃在该端口上的所有MST实例中触发一条拓扑变化。
  
  与802.1D生成树协议协同工作性
  
  一个运行MSTPRSTP的交换机支持一个内建的运算机制,该运算机制使他与传统的 802.1D交换机议协同工作。如果这台交换机接收一个传统的802.1D配置的BPDU(一个带有协议版本设为0BPDU),他在该端口上只发送802.1D BPDUs。一台MST交换机当他收到一条传统的BPDU时也可以检测到一个端口在区域的边界,一条MST BPDU(版本3)和一个不同的区域或一条RSTP BPDU(版本2)联系到一起。
  
  然而,因为他无法确定是否传统的交换机已经从链路上移除了,除非该传统的交换机是指定交换机,交换机不会自动回复到MSTP模式。并且,当与该交换机相联接的交换机已加入了区域时,一个交换机可能继续指派一个边界角色给一个端口。为重新启动协议移植进程,你可以使用命令:
  (exec) clear spanning-tree detected-protocols
  

  如果所有链路上的传统的交换机是RSTP交换机,他们可以就像他们是RSTP BPDUs一样处理MSTP BPDUs。因此,MSTP交换机在边界端口要么发送一个版本0配置和TCN BPDUs,要么版本3 MSTP BPDUs。一个边界端口连接到一个局域网,指定交换机,该交换机要么是一台单独生成树交换机,要么是一台有不同的MST配置的交换机。
  
  配置RSTPMSTP特性
  
l   这些部分包括基本的RSTPMSTP配置信息:
  
 
缺省RSTPMSTP配置
l  
  
l   RSTPMSTP配置指导
  
 
详细说明MST区域配置和启用MSTP(必须的)
l  
  
l   配置根交换机(可选的)
  
 
配置一台备用根交换机(可选的)
l  
  
 
配置端口优先级(可选的)
l  
  
l   配置端口路径开销(可选的)
  
 
配置交换机优先级(可选的)
l  
  
l   配置Hello时间(可选的)
  
 
配置转发延迟(可选的)
l  
  
 
配置最大老化时间(可选的)
l  
  
l   配置选大跳数(可选的)
  
 
详细说明链路类型来确保快速转换(可选的)
l  
  
l   重启协议移植进程(可选的)
  
  缺省RSTPMSTP配置
  
  表15-3显示缺省的RSTPMSTP配置
  
  表15-3: Default RSTP and MSTP Configuration
  
Feature Default Setting
  生成树模式 PVST (MSTP and RSTP 被禁用
).
  交换机优先级 (在一个per-CIST 接口基础上可配置
) 32768.
  生成树端口优先级 (在一个per-CIST 接口基础上可配置
) 128.
  生成树端口开销 (在一个per-CIST 接口基础上可配置
) 1000 Mbps: 4.
  
100 Mbps: 19.
  
10 Mbps: 100.
  Hello 时间
2 seconds.
  转发延迟时间
15 seconds.
  最大老化时间
20 seconds.
  最大跳计数
20 hops.
  

  RSTPMSTP配置指导
  
 
这些是RSTPMSTP的配置指导:
l  
  
l   上行速链路,速骨干,和交叉堆叠上行速链路特性不被RSTPMSTP所支持。
  
 
VLANper-vlan
l   RSTP不被支持。用以下命令时,RSTP被启用:
  (global) spanning-tree mode mst
  

l   PVSTPVST+MSTP被支持,但在任意时间只有一个版本可以是活跃的;所有VLANs运行PVST,或者所有VLANa运行MSTP
  
l   MST配置的VTP传播不被支持。然而,你可以靠使用命令行接口(CLI)或者通过SNMP支持在MST区域里的每个交换机上人工配制MST配置(区域名,修订号,和VLAN到实例(VLAN-to-instance)映射)。
  
l   为了穿越网络冗余路径的负载平衡运作,所有VLAN到实例映射分配必须匹配;否则,所有流量将在一条单独的链路上流动。
  
l   所有MST边界端口必须在一个PVST+和一个MST云团之间为负责平衡而转发。为了这能发生,MST云团的主IST应也是CST的根。如果MST云团由多MST区域所组成,MST区域中的一个必须包含CST根,并且所有其他的MST区域必须有一条比穿过PVST+云团更好的去往MST所包含根的路径。你可能不得不手工配置云团中的交换机。
  
l   把网络分成拥有大量区域的方式不被推荐。然而,如果这种情况不可避免,我们建议你把被交换网络分配成由路由器或者非二层设备互联的小的局域网。