新一代交换技术 构建全新生成树


功能强大、可靠的网络需要有效地传输流量 , 提供冗余和故障快速恢复功能 。在第二层网络中 , 路由协议不可用 , 生成树协议通过从网格化物理拓扑结构而构建一个无环路逻辑转发拓扑结构 , 提供了冗余连接 , 消除了数据流量环路的威胁 。原始生成树协议 IEEE 802.1D通常在50秒内就可以恢复一个链接故障[融合时间=(2xForward_Delay) Max_Age] 。当设计此协议时 , 这种停机还是可接受的 , 但是当前的要害任务应用(如语音和视频)却要求更快速的网络融合 。
为加速网络融合并解决与生成树和虚拟LAN(VLAN)交互相关的地址可扩展性限制的问题 , IEEE委员会开发了两种新标准:在IEEE 802.1w中定义的快速生成树协议(RSTP)和在IEEE 802.1s中定义的多生成树协议(MST) 。
本文介绍了802.1w和802.1s的主要特性、与传统生成树协议的互操作性 , 并提供了一些协议移植准则建议 。
IEEE 802.1w快速生成树协议
IEEE意识到原始802.1D生成树协议的融合特性与现代化的交换网络和应用相比是有差距的 , 为此设计了一种全新的802.1w快速生成树协议(RSTP) , 以解决802.1D的融合问题 。IEEE 802.1w RSTP的特点是将许多思科增值生成树扩展特性融入原始802.1D中 , 如Portfast、Uplinkfast和Backbonefast 。通过利用一种主动的网桥到网桥握手机制取代802.1D根网桥中定义的计时器功能 , IEEE 802.1w协议提供了交换机(网桥)、交换机端口(网桥端口)或整个LAN的快速故障恢复功能 。通过将生成树"hello"作为本地链接保留的标志 , RSTP改变了拓扑结构的保留方式 。这种做法使原始802.1D fwd-delay和max-age计时器主要成为冗余设备 , 目前主要用于备份 , 以保持协议的正常运营 。
除了下面章节中列举的新概念外 , RSTP引入了新的BPDU处理和新的拓扑结构变更机制 。每个网桥每次"hello time"都会生成BPDU , 即使它不从根网桥接收时也是如此 。BPDU起着网桥间保留信息的作用 。假如一个网桥未能从相邻网桥收到BPDU , 它就会认为已与该网桥失去连接 , 从而实现更快速的故障检测和融合 。
在RSTP中 , 拓扑结构变更只在非边缘端口转入转发状态时发生 。丢失连接--例如端口转入阻塞状态 , 不会像802.1D一样引起拓扑结构变更 。802.1w的拓扑结构变更通知(TCN)功能不同于802.1D , 它减少了数据的溢流 。在802.1D中 , TCN被单播至根网桥 , 然后组播至所有网桥 。802.1D TCN的接收使网桥将转发表中的所有内容快速失效 , 而无论网桥转发拓扑结构是否受到影响 。相形之下 , RSTP则通过明确地告知网桥 , 溢出除了经由TCN接收端口了解到的内容外的所有内容 , 优化了该流程 。TCN行为的这一改变极大地降低了拓扑结构变更过程中 , MAC地址的溢出量 。
端口作用
RSTP在端口状态(转发或阻塞流量)和端口作用(是否在拓扑结构中发挥积极作用)间进行了明确的划分 。除了从802.1D沿袭下来的根端口和指定端口定义外 , 还定义了两种新的作用(见图1):
 
图1
? 备份端口--用于指定端口到生成树树叶的路径的备份 , 仅在到共享LAN网段有2个或2个以上连接 , 或2个端口通过点到点链路连接为环路时存在
? 替代端口--提供了替代当前根端口所提供路径、到根网桥的路径
这些RSTP中的新端口实现了在根端口故障时替代端口到转发端口的快速转换 。下面的例子中具体解释了此过程 。
端口状态
端口的状态控制转发和学习过程的运行 。
RSTP定义了3种状态:放弃、学习和转发 。根或指定端口在拓扑结构中发挥着积极作用 , 而替代或备份端口不参与主动拓扑结构 。在稳定的网络中 , 根和指定端口处于转发状态 , 替代和备份端口则处于放弃状态 。
快速融合概述
如前所述 , RSTP 旨在尽快地将根端口和指定端口转成转发状态 , 以及将替代和备份端口转成阻塞状态 。为防止生成转发环路 , RSTP在网桥间采用了明确的"握手"功能 , 以确保端口作用在网络中分配的一致性 。
 
图2
图2介绍了将端口转换成转发前达成的协定/建议握手 。当链接激活时 , "P1"和"P2"都成为处于放弃状态的指定端口 。
在这种情况下 , "P1"将向交换机A发送一个建议BPDU 。收到新BPDU后 , 交换机A将确认根交换机有较优根成本 。因为BPDU包含较高的根优先级 , 交换机A在将新的根端口"P2"转入转发状态前 , 会先启动同步机制 。假如一个端口处于阻塞状态或是一个边缘端口(位于网桥LAN边缘或连接到终端工作站) , 该端口与根信息同步 。
端口3("P3")已满足上述要求 , 因为它已经是阻塞的 。因此 , 不会对该端口采取任何行动 。但是 , "P4"是一种指定端口 , 需要阻塞 。一旦交换机A上的所有接口处于同步状态 , "P2"就会承认从前从根接收的建议 , 并可以安全地转入转发状态 。在收到交换机A的认可后 , 根交换机将立即将"P1"转入转发 。建议/协定信息的类似传送波将从"P4"传播至网络枝叶部分 。
由于这种握手机制不依靠计时器 , 因此它可以快速地传播至网络边缘 , 并在拓扑结构变更后迅速恢复连接 。假如协定并未复制建议信息 , 端口会转换成802.1D模式 , 并通过传统听学顺序转入转发状态 。需要说明的是 , 802.1w协议只适用于点到点链接 。在媒体共享的情况下 , 802.1w协议将转换成802.1D运行 。
多生成树协议
在Cisco MISTP[多实例生成树协议]的推动下 , MST通过将一些基于VLAN的生成树汇聚入不同的实例 , 并且每实例只运行一个(快速)生成树 , 从而改进了RSTP的可扩展性 。为确定VLAN实例的相关性 , 802.1s引入了MST区域概念 。每台运行MST的交换机都拥有单一配置 , 包括一个字母数字式配置名、一个配置修订号和一个4096部件表 , 它与潜在支持某个实例的各4096 VLAN相关联 。作为公共MST区域的一部分 , 一组交换机必须共享相同的配置属性 。重要的是请记住 , 配置属性不同的交换机会被视为位于不同的区域 。
为确保一致的VLAN实例映射 , 协议需要识别区域的边界 。因此 , 区域的特征都包括在BPDU中 。交换机必须了解它们是否像邻居一样位于同一区域 , 因此会发送一份VLAN实例映射表摘要 , 以及修订号和名称 。当交换机接收到BPDU后 , 它会提取摘要 , 并将其与自身的计算结果进行比较 。为避免出现生成树环路 , 假如两台交换机在BPDU中所接收的参数不一致 , 负责接收BPDU的端口就会被公布为边界端口 。
IEEE 802.1s引入了IST(内部生成树)概念和MST实例 。IST是一种RSTP实例 , 它扩展了MST区域内的802.1D单一生成树 。IST连接所有MST网桥 , 并从边界端口发出、作为贯穿整个网桥域的虚拟网桥 。MST实例(MSTI)是一种仅存在于区域内部的RSTP实例 。它可以缺省运行RSTP , 无须额外配置 。不同于IST的是 , MSTI在区域外既不与BPDU交互 , 也不发送BPDU 。MST可以与传统和PVST 交换机互操作 。思科实施定义了16种实例:一个IST(实例0)和15个MSTI , 而802.1s则支持一个IST和63个MSTI 。
与传统生成树的互操作性
RSTP和MSTP都能够与传统生成树协议互操作 。但是 , 当与传统网桥交互时 , 802.1w的快速融合优势就会失去 。
为保留与基于802.1D网桥的向后兼容性 , IEEE 802.1s网桥在其端口上接听802.1D格式的BPDU 。假如收到了802.1D BPDU , 端口会采用标准802.1D行为 , 以确保兼容性 。例如 , 在图3中 , 交换机A上的"P4"一旦在至少两倍的"hello time"中检测到PVSTBPDU , 它就会发送PVSTBPDU 。要说明的是 , 假如PVST 网桥从网络中删除后 , 交换机A就无法发现拓扑结构变更 , 需要人工重启协议移植 。
图3
图3介绍了应用于VLAN 2000的转发拓扑结构 , 它映射至RSTP/MSTP区域中的MST #2 。用于IST和MST #2的根交换机驻留于RSTP/MSTP区域内 。MSTI BPDU并未发送至边界端口"P4"外 , 只有IST BPDU是如此 。通过在PVST 域所有现用VLAN上复制ISTP BPDU , MST区域模拟了PVST 邻居 。然后 , PVST 域接收IST上发送的BPDU , 并选择交换机B作为VLAN 2000的根交换机(注:交换机B是IST的根 。)
假如PVST 域中出现拓扑结构变更 , 在传统云中生成的相应的拓扑结构变化通知(TCN)BPDI将由IST在MST域中处理 , 不致影响MST转发拓扑结构 。为了避免可能导致环路的错误配置 , 强烈建议为MST域中的PVST 实例(即IST根)配置根交换机 。
主要定义
IEEE 802.1D--IEEE建议 , 在整个第二层域中定义单一无环路拓扑结构 。由于802.1D无虚拟LAN(VLAN)感知功能 , 因此转发拓扑结构是唯一的 , 独立于网络中现用的VLAN 。这种方案从计算开支的角度是可扩展的 , 但在配置多个VLAN的情况下 , 无法为冗余链接提供负载均衡功能 。
PVST --思科生成树为每个VLAN构建了一个不同的逻辑拓扑结构 。这种方案通过答应每个VLAN拥有不同的转发链接 , 实现了负载均衡 , 但它却是CPU密集型的--网桥协议数据单元(BPDU)是根据各个VLAN生成并处理的 。