专利名称:一种大容量mac地址存在时二层环网协议加快收敛的方法
技术领域:
本发明涉及计算机网络通讯领域,特别涉及一种二层环网协议在大容量MAC地址存在时链路故障恢复以后,减少丢包、加快链路收敛速度的方法。
背景技术:
以太网技术自1973年发明以来,以其简单开放、成本低廉获得了长足发展,渐渐的在局域网的领域获得了领导地位,目前新建的局域网几乎都是基于以太网技术的,进而城域网也开始向以太网靠近,MEF(城域以太网论坛)的成员几乎囊括了所有业界主流厂商。近年来,在一些以太网或者城域网的环境中,需要利用备份的链路快速取代发生故障的链路,以保障数据的通信不受影响。该功能对一些关键应用已经必不可少,而且显得越发重要。所以越来越多的厂商以及标准组织都在致力于二层环网协议的研究与改进工作,其中最具有代表性的包括以下几种USTP(Spanning-Tree Protocol,生成树协议,以下简称STP)是一个用于在局域网中消除环路的协议。运行该协议的交换机通过彼此交互信息而发现网络中的环路,并适当对某些端口进行阻塞以消除环路。换句话说,STP协议构造了一个包含局域网内部所有二层交换机的一棵没有环路的树。树上的所有节点都是属于局域网的一台交换机。生成树协议基于以下几点(1)有一个唯一的组地址(01-80-C2-00-00-00)标识一个特定LAN上的所有的交换机,这个组地址能被所有的交换机识别;( 每个交换机有一个唯一的标识 (BridgeIdentifier) ; (3)每个交换机的端口有一个唯一的端口标识(Port Identifier)。 对生成树的配置进行管理还需要对每个交换机调协一个相对的优先级;对每个交换机的每个端口调协一个相对的优先级;对每个端口调协一个路径花费。具有最高优先级的交换机被称为根(root)交换机。每个交换机端口都有一个根路径花费,根路径花费是该交换机到根交换机所经过的各个跳段的路径花费的总和。一个交换机中根路径花费的值为最低的端口称为根端口,若有多个端口具有相同的根路径花费,则具有最高优先级的端口为根端口。在每个LAN中都有一个交换机被称为选取(designated)交换机,它属于该LAN 中根路径花费最少的交换机。把LAN和选取交换机连接起来的端口就是LAN的选取端口 (designated port)。如果选取交换机中有两个以上的端口连在这个LAN上,则具有最高优先级的端口被选为选取端口。2、RSTP电子和电气工程师协会IEEE于2001年发布了 802. IW标准,里面提出了一种新的更好的STP——RSTP,全称为快速生成树协议(Rapid Spanning-Tree I^rotocol),详细描述了该协议规范。RSTP协议基于STP协议,但是对原有协议做了更加细致的修改和补充。事实上,STP虽然能够防止环路,但还是存在很多不足之处,其设计有一些细节考虑的并不周全,而本身采用的计时器机制又十分笨拙。此外,没有对一些特殊的情况进行设计,导致了协议整体上比较粗糙。而RSTP则是局域网中最精细的协议之一。根据STP的不足,RSTP新增加了端口的角色概念。并且把端口属性充分的按照状态和角色分解,使得可以更加精确的描述端口。增加了 Alternate端口和Backup端口。RSTP的状态规范把原来的5种状态缩减为3种R)rwarding、Learning、Discarding,更好的精简了协议。此外RSTP为了使网络拓扑达到快速收敛,引入了 P/A协商机制、根端口快速切换机制、边缘端口等。3、MSTP多生成树(MST)是把IEEE802. Iw的快速生成树(RST)算法扩展而得到的,多生成树协议定义文档是IEEE802. 1S。多生成树提出了域的概念,在域的内部可以生成多个生成树实例,并将VLAN关联到相应的实例中,每个VLAN只能关联到一个实例中。这样在域内部每个生成树实例就形成一个逻辑上的树拓扑结构,在域与域之间由CIST实例将各个域连成一个大的生成树。各个VLAN内的数据在不同的生成树实例内进行转发,这样就提供了负载均衡功能。4、EAPSEAPS (Ethernet Automatic Protection Switching),以太网链路自动保护协议。 EAPS是针对以太网协议实现的一个简单的,快速的链路备份和恢复协议。通常情况下,以太网内的交换机连接成一个环。EAPS的主节点阻塞其副端口,以保证该链路的畅通,且让链路不成为环路。在该环上任意一个节点的端口(需是接入该环路的端口)发生Down事件时, EAPS协议会在这种情况下立即打开其主节点的副端口,从而保证了整个链路的畅通,保证了数据通信不被中断。数据链路的恢复时间与环上接入的交换机数目有关,快则几百毫秒, 通常能够在2秒之内迅速恢复链路的畅通。而在发生Down事件的节点Up之后,EAPS协议会重新阻塞其副端口,恢复EAPS协议运行时的初始状态。EAPS协议比较简单,因此该协议运行的开销时间较少,且配置简单。APS是一个用于以太网环路保护的链路层协议。它在以太网环完整时能够防止数据环路引起的广播风暴,而当以太网环上一条链路断开时能迅速恢复环网上各个节点之间的通信通路。EAPS协议功能上类似于STP协议。同STP协议相比,EAPS具有收敛速度快的特点,通常小于1秒,理想状况下可以达到50-100毫秒。5、RRPPRRPP (Rapid Ring Protection Protocol),快速环网保护协议。RRPP 技术是一种专门应用于以太网环的链路层协议,它在以太网环中能够防止数据环路引起的广播风暴, 当以太网环上链路或设备故障时,能迅速切换到备份链路,保证业务快速恢复。与STP协议相比,RRPP协议具有算法简单、拓扑收敛速度快和收敛时间与环网上节点数无关等显著优势。6、MRPPMRPP 的全称是多层环网保护协议(Multi-layer Ring Protection Protocol),是一个用于以太网环路保护的链路层协议。它在以太网环完整时能够防止数据环路引起的广播风暴,而当以太网环上一条链路断开时能迅速恢复环网上各个节点之间的通信通路。以太网内的部分交换机连接成一个MRPP环,MRPP的主节点阻塞其副端口,以保证该链路的畅通,且让链路不成为环路。在该环上任意一个节点的端口(需是接入该环路的端口)发生 Down事件时,MRPP协议会在这种情况下立即打开其主节点的副端口,从而保证了整个链路的畅通,保证了数据通信不被中断。而在发生Down事件的节点Up之后,MRPP协议会重新阻塞其副端口,恢复MRPP协议运行时的初始状态。MRPP在不同的Layer中实现链路的快速恢复。和生成树协议相比,MRPP具有收敛速度快,协议计算简单,占据系统资源少,组网理念清晰、简洁等优势,可有效提高以太网运营的可靠性。以上几种二层环网协议的共同特点都是依靠将正常的端口设置阻塞状态以防止广播风暴。衡量这些环网协议最重要的指标之一就是收敛时间,本文中所提到的迁移时间或者收敛时间都是指由于链路故障或者链路恢复导致的链路切换过程中流量中断的时间。 环网协议的广播流量收敛时间往往和协议密切相关,由于不涉及到硬件和底层处理,所以可以很容易达到50ms以内的量级。但是,二层环网协议已知单播的收敛时间往往和硬件密切相关,随着数据中心对大容量MAC的需求以及Team芯片的普及当前交换机的MAC容量越来越大,而MAC地址容量的增加就不可避免的增加了硬件访问以及删除MAC地址的时间,从而对二层环网协议的收敛速度带来很大影响。例如MRPP在最大支持12K MAC地址的交换机上四台设备的组网可以达到IOms左右的收敛速度,但是当MAC地址容量达到128K左右时,这个时间会增加到IOOms以上。
发明内容
有鉴于此,本发明的目的在于提供一种二层环网协议在大容量MAC地址存在时链路故障恢复以后,减少丢包、加快收敛速度的方法。使用本发明的技术方案,能够在运行二层环网协议的交换机支持大容量MAC时,极大的缩短了单播收敛时间。本发明能够运用在所有基于以太网的环网协议之上,包括STP、RSTP、MSTP、RRPP、 EAPS, MRPP等。不论是哪种环网协议都是依靠设置端口 Block的方式阻塞端口,即当链路恢复时需要将原来forwarding的备份端口恢复为Block,将原来因为链路故障而Block的端口恢复为forwarding。以上过程中涉及多个端口的设置以及删除MAC地址等操作,通过调整上述操作的顺序以及通知机制能够极大的提高链路恢复时环网协议的切换速度。具体方法是通过在设置端口 block之前先禁止MAC学习,再调用删除MAC地址函数,底层驱动删除完成后通知上层协议,最后再进行设置Block和Rewarding的状态切换。本发明克服了在大容量MAC (包括Team扩展MAC)存在的情况下,各环网协议在链路故障恢复以后切换到原有链路上时由于MAC删除较慢从而导致了丢包较多同时收敛速度较慢的现象,可以将链路恢复时间达到IOms左右,并且及时MAC地址表的大小继续增加,收敛时间也不会有所变化。本发明提出的技术方案为一般情况下当二层环网协议检测到链路故障恢复以后具体的处理方法为1)根据计算结果,将原来为forwarding状态的某个端口设置Block,同时删除该端口下的MAC地址;2)再将链路恢复的端口设置为转发,为了避免临时环路的产生,所以必须先进行步骤1),再进行步骤2);3)最后发送拓扑变化通知报文,通知其他设备进行MAC地址更新和拓扑更新;本发明提出的具体处理方法为1)优先发送拓扑变化通知报文,通知其他设备进行MAC地址更新和拓扑更新,这样可以减少删除MAC地址时整个网络的等待时间,网络中设备越多效果就越为明显;
2)根据计算结果,将原来为forwarding状态的某个端口设置Block并且删除MAC 地址,具体步骤如下;a)在设置端口 Block之前,先设置底层驱动的状态禁止MAC地址的硬件学习以避免删除的过程中学习到新的MAC从而产生丢包;b)调用底层驱动删除MAC地址函数,删除MAC地址。底层驱动开始删除操作,当删除成功以后返回OK给上层协议;c)删除MAC地址完成以后,再将该端口设置为Block状态;d)最后将链路恢复的端口设置为forwarding状态;在步骤b如果不等待底层驱动返回0K,就执行步骤c和步骤d,则由于MAC地址此时没有删除完毕,即使端口的状态切换完毕,依然会由于MAC地址错误从而产生大量丢包, 并且随着MAC地址的数量增加这个时间会越来越长。本发明公开了一种大容量MAC地址存在时二层环网协议加快收敛的方法,其特征在于,该方法在链路故障恢复以后,二层环网协议经过计算需要将目前正处在转发状态的端口 X迁移到阻塞状态,同时将刚恢复的链路上阻塞状态的端口 Y迁移到转发状态,具体步骤包括步骤A,环网协议检测到链路故障恢复,进行拓扑计算;步骤B,根据计算结果,设置端口 X为Block,设置端口 Y为forwarding,并且发送拓扑变化报文,通知其他设备删除MAC地址。其中,步骤B进一步包括步骤Bi,优先发送拓扑变化报文,通知其余设备删除MAC地址;步骤B2,先禁止端口 X的MAC地址学习功能;步骤B3,删除端口 X的MAC地址后,通知上层环网协议;步骤B4,上层环网协议收到底层删除MAC地址完毕的消息后,设置端口 X为Block 状态;步骤B5,设置端口 Y为!^rwarding状态
本发明还公开了一种大容量MAC地址存在时二层环网协议加快收敛的方法,其特征在于,该方法在链路故障恢复以后,二层环网协议经过计算需要将目前正处在转发状态的端口 X迁移到阻塞状态,同时将刚恢复的链路上阻塞状态的端口 Y迁移到转发状态,具体步骤包括步骤A,优先发送拓扑变化通知报文,通知其他设备进行MAC地址更新和拓扑更新;步骤B,根据计算结果,将原来为forwarding状态的端口 X设置Block,并且删除 MAC地址;步骤C,最后发送拓扑变化通知报文,通知其他设备进行MAC地址更新和拓扑更新。其中,步骤B进一步包括步骤Bi,在设置端口 X为Block之前,先设置底层驱动的状态禁止MAC地址的硬件学习,以避免删除的过程中学习到新的MAC从而产生丢包;步骤B2,调用底层驱动删除MAC地址函数,删除MAC地址,底层驱动开始删除操作,
7当删除成功以后,返回OK给上层协议;步骤B3,删除MAC地址完成以后,再将该端口 X设置为Block状态;步骤B4,最后将链路恢复的端口 Y设置为forwarding状态。本发明还公开了一种大容量MAC地址存在时二层环网协议加快收敛的方法,其特征在于,该方法在链路故障恢复以后,MRPP协议经过计算需要将目前正处在转发状态的端口 X迁移到阻塞状态,同时将刚恢复的链路上阻塞状态的端口 Y迁移到转发状态,具体步骤包括1)底层驱动检测到链路UP事件以后上报给上层协议MRPP处理;2)MRPP协议收到链路UP事件,判断拓扑发生变化,第一时间发送flush报文通知其他设备删除MAC地址;3) MRPP上层协议计算结果要将端口 X设置为Block状态,在设置之前首先调用底层驱动将端口 X的硬件MAC地址学习功能关闭;4) MRPP调用MAC地址删除函数,删除端口 X的MAC,底层驱动开始删除;5)底层驱动删除完MAC地址以后通知MRPP协议,MRPP收到以后将端口 X设置为 Block状态;6) MRPP 将端口 Y 设置为 forwarding 状态。特别的,所述方法支持机架式交换机和盒式交换机。特别的,所述方法支持所有二层环网协议包括但不限于STP、RSTP, MSTP, EAPS, RRPP、MRPP 等。特别的,所述大容量MAC包括Team扩展MAC。按照上述方法修改以后可以极大的加快链路恢复时的收敛速度,特别是在MAC地址容量大,删除较慢的机架式交换机上尤其明显。综上所述,本发明的优点在于1)可以支持所有的二层环网协议,并不针对某个特定协议,使用范围广;2)能够支持机架式交换机和盒式交换机在四台典型评测环境中达到IOms左右的收敛速度;3)支持大容量的MAC地址,并且随着MAC地址容量增加并不会增加收敛时间;4)该方法实现简单,不需要特别的硬件支持,只要支持二层环网协议的设备都可以采用该方法提高单播的收敛速度,只是根据硬件删除MAC的速度不同,提高的时间有差别。
图1为本发明基于二层环网协议的典型组网示意图;图2为本发明方法的处理过程示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步详细描述。如图1所示,它是本发明中基于二层环网协议的一个典型组网。交换机1 (SWl)、交换机2(SW》、交换机3(SW;3)、交换机4(SW4)连接成一个环路。四台交换机都启用了相同的二层环网协议,本实施例以MRPP进行举例。初始时由于环网协议会将1-2-3-4-5-6的某个端口置为block状态,流量从红色的链路8-7进行转发。当端口 8-7的链路中断时,协议将会按照1-2-3-4-5-6的链路恢复转发,此时流量沿着蓝色链路转发。当8-7之间的链路故障恢复时,根据MRPP协议,最终流量依然会切换到8-7的链路上。如果在链路恢复过程中始终存在用户流量,并且多数都为已知单播,那么当链路恢复时由于MAC地址依然指向蓝色的链路,所以会产生少量丢包,具体的丢包个数和MAC地址的硬件删除速度直接相关,当设备的MAC地址容量很大(U8K以上)时,丢包个数较多,将丢包个数换算成时间,甚至达到IOOms以上。使用本发明的方法可以将链路恢复时的收敛时间缩短到IOms左右,并且即使MAC地址继续增加,并且硬件删除速度降低,都不会影响链路恢复的收敛时间图2为本发明方法的处理过程示意图,以图2为例,对本发明作进一步详细描述, 如图2所示,本发明公开的一种二层环网协议在大容量MAC地址存在时加快链路收敛速度的方法,具体包括有以下步骤1)底层驱动检测到链路UP事件以后上报给上层协议MRPP处理;2)MRPP协议收到链路UP事件,判断拓扑发生变化,第一时间发送flush报文通知其他设备删除MAC地址;3) MRPP上层协议计算结果要将SW3的端口 1设置为Block状态,在设置之前首先调用底层驱动将端口 1的硬件MAC地址学习功能关闭,此时流量依然在蓝色链路上转发,不会丢包,只是端口 1不再学习MAC地址;4)MRPP调用MAC地址删除函数,删除端口 1的MAC,底层驱动开始删除,删除过程中不会有新MAC学习到,此时流量依然沿着蓝色链路转发;5)底层驱动删除完MAC地址以后通知MRPP协议,MRPP收到以后将端口 1设置为 Block状态,此时因为端口 1和端口 8都是block状态,同时恢复MAC地址学习功能,此时开始丢包;6) MRPP将端口 8设置为R)rWarding状态。此时因为端口 1上已经没有MAC地址, 所以流量会沿着8-7的红色链路转发;以上过程中的丢包只在步骤5和步骤6之间进行,设置底层端口状态的时间很短, 即使机架式设备也仅仅几个ms的时间,所以能够做到在大容量MAC的情况下MRPP的链路故障恢复收敛时间在IOms左右。与一般情况下先设置端口 Block,再删除MAC地址最后通知拓扑变化的流程相比, 本发明可以实现不依赖于硬件删除MAC地址速度的情况下,提高了二层环网协议在链路故障恢复以后的迁移速度,并且只要支持环网协议的交换机就可以用该方法提高收敛速度, 从而在很大程度上提高了协议的可用性,尤其是部分大容量MAC的交换机,由于MAC地址删除较慢,可以将二层环网协议的收敛时间从100ms提高到IOms左右。
权利要求
1.一种大容量MAC地址存在时二层环网协议加快收敛的方法,其特征在于,该方法在链路故障恢复以后,二层环网协议经过计算需要将目前正处在转发状态的端口 X迁移到阻塞状态,同时将刚恢复的链路上阻塞状态的端口 Y迁移到转发状态,具体步骤包括步骤A,环网协议检测到链路故障恢复,进行拓扑计算;步骤B,根据计算结果,设置端口 X为Block,设置端口 Y为Rewarding,并且发送拓扑变化报文,通知其他设备删除MAC地址。
2.根据权利要求1所述的方法,其特征在于,步骤B进一步包括步骤Bl,优先发送拓扑变化报文,通知其余设备删除MAC地址;步骤B2,先禁止端口 X的MAC地址学习功能;步骤B3,删除端口 X的MAC地址后,通知上层环网协议;步骤B4,上层环网协议收到底层删除MAC地址完毕的消息后,设置端口 X为Block状态;步骤B5,设置端口 Y为forwarding状态。
3.一种大容量MAC地址存在时二层环网协议加快收敛的方法,其特征在于,该方法在链路故障恢复以后,二层环网协议经过计算需要将目前正处在转发状态的端口 X迁移到阻塞状态,同时将刚恢复的链路上阻塞状态的端口 Y迁移到转发状态,具体步骤包括步骤A,优先发送拓扑变化通知报文,通知其他设备进行MAC地址更新和拓扑更新;步骤B,根据计算结果,将原来为forwarding状态的端口 X设置Block,并且删除MAC 地址;步骤C,最后发送拓扑变化通知报文,通知其他设备进行MAC地址更新和拓扑更新。
4.根据权利要求3所述的方法,其特征在于,步骤B进一步包括步骤Bl,在设置端口 X为Block之前,先设置底层驱动的状态禁止MAC地址的硬件学习,以避免删除的过程中学习到新的MAC从而产生丢包;步骤B2,调用底层驱动删除MAC地址函数,删除MAC地址,底层驱动开始删除操作,当删除成功以后,返回OK给上层协议;步骤B3,删除MAC地址完成以后,再将该端口 X设置为Block状态;步骤B4,最后将链路恢复的端口 Y设置为forwarding状态。
5.一种大容量MAC地址存在时二层环网协议加快收敛的方法,其特征在于,该方法在链路故障恢复以后,MRPP协议经过计算需要将目前正处在转发状态的端口 X迁移到阻塞状态,同时将刚恢复的链路上阻塞状态的端口 Y迁移到转发状态,具体步骤包括1)底层驱动检测到链路UP事件以后上报给上层协议MRPP处理;2)MRPP协议收到链路UP事件,判断拓扑发生变化,第一时间发送flush报文通知其他设备删除MAC地址;3)MRPP上层协议计算结果要将端口 X设置为Block状态,在设置之前首先调用底层驱动将端口 X的硬件MAC地址学习功能关闭;4)MRPP调用MAC地址删除函数,删除端口 X的MAC,底层驱动开始删除;5)底层驱动删除完MAC地址以后通知MRPP协议,MRPP收到以后将端口X设置为Block 状态;6)MRPP将端口Y设置为forwarding状态。
6.根据权利要求1、3或5所述的方法,其特征在于,所述方法支持机架式交换机和盒式交换机。
7.根据权利要求1、3或5所述的方法,其特征在于,所述方法支持所有二层环网协议包括但不限于 STP、RSTP、MSTP、EAPS、RRPP、MRPP 等。
8.根据权利要求1、3或5所述的方法,其特征在于,所述大容量MAC包括Team扩展MAC。
全文摘要
本发明涉及计算机网络通讯领域,提供一种大容量MAC地址存在时二层环网协议加快收敛速度的方法,能运用在所有基于以太网的环网协议之上。通过在设置端口block之前先禁止MAC学习,再调用删除MAC地址函数,底层驱动删除完成后通知上层协议,最后再进行设置Block和Forwarding的状态切换。通过调整操作的顺序以及通知机制能够极大的提高链路恢复时环网协议的切换速度,克服了在大容量MAC存在的情况下,各环网协议在链路故障恢复后切换到原有链路上时由于MAC删除较慢从而导致了丢包较多同时收敛速度较慢的现象,可以将已知单播的链路恢复时间达到10ms左右,并且即使MAC地址表的大小继续增加,收敛时间也不会有所变化。
文档编号H04L29/06GK102291261SQ201110238339
公开日2011年12月21日 申请日期2011年8月16日 优先权日2011年8月16日
发明者张研 申请人:神州数码网络(北京)有限公司