米葫芦网

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

热度:7℃ 发布时间:2023-11-16 19:37:28

功能强大、可靠的网络需要有效地传输流量,提供冗余和故障快速恢复功能。在第二层网络中,路由协议不可用,生成树协议通过从网格化物理拓扑结构而构建一个无环路逻辑转发拓扑结构,提供了冗余连接,消除了数据流量环路的威胁。原始生成树协议 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"中检测到PVST+ BPDU,它就会发送PVST+ BPDU。要说明的是,假如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生成并处理的。

网友评论
评论
发 布

更多软件教程
  • 软件教程推荐
更多+
Greenfoot设置中文的方法

Greenfoot设置中文的方法

Greenfoot是一款简单易用的Java开发环境,该软件界面清爽简约,既可以作为一个开发框使用,也能够作为集成开发环境使用,操作起来十分简单。这款软件支持多种语言,但是默认的语言是英文,因此将该软件下载到电脑上的时候,会发现软件的界面语言是英文版本的,这对于英语基础较差的朋友来说,使用这款软件就会...

07-05

Egret UI Editor修改快捷键的方法

Egret UI Editor修改快捷键的方法

Egret UI Editor是一款开源的2D游戏开发代码编辑软件,其主要功能是针对Egret项目中的Exml皮肤文件进行可视化编辑,功能十分强大。我们在使用这款软件的过程中,可以将一些常用操作设置快捷键,这样就可以简化编程,从而提高代码编辑的工作效率。但是这款软件在日常生活中使用得不多,并且专业性...

07-05

KittenCode新建项目的方法

KittenCode新建项目的方法

KittenCode是一款十分专业的编程软件,该软件给用户提供了可视化的操作界面,支持Python语言的编程开发以及第三方库管理,并且提供了很多实用的工具,功能十分强大。我们在使用这款软件进行编程开发的过程中,最基本、最常做的操作就是新建项目,因此我们很有必要掌握新建项目的方法。但是这款软件的专业性...

07-05

Thonny设置中文的方法

Thonny设置中文的方法

Thonny是一款十分专业的Python编辑软件,该软件界面清爽简单,给用户提供了丰富的编程工具,具备代码补全、语法错误显示等功能,非常的适合新手使用。该软件还支持多种语言,所以在下载这款软件的时候,有时候下载到电脑中的软件是英文版本的,这对于英语基础较差的小伙伴来说,使用这款软件就会变得十分困难,...

07-05

最新软件下载