CN116319533A - 故障处理方法、装置、设备和介质 - Google Patents

故障处理方法、装置、设备和介质 Download PDF

Info

Publication number
CN116319533A
CN116319533A CN202211649683.4A CN202211649683A CN116319533A CN 116319533 A CN116319533 A CN 116319533A CN 202211649683 A CN202211649683 A CN 202211649683A CN 116319533 A CN116319533 A CN 116319533A
Authority
CN
China
Prior art keywords
ecmp
target
link
target member
group
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211649683.4A
Other languages
English (en)
Inventor
陈晨
尤树华
武帅
杨磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Centec Communications Co Ltd
Original Assignee
Suzhou Centec Communications Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Centec Communications Co Ltd filed Critical Suzhou Centec Communications Co Ltd
Priority to CN202211649683.4A priority Critical patent/CN116319533A/zh
Publication of CN116319533A publication Critical patent/CN116319533A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的实施例提供了一种故障处理方法、装置、设备和介质,涉及网络通信技术领域,方法应用于转发设备,转发设备中包括ECMP组,ECMP组中包括多个成员。方法包括:确定ECMP组中是否存在对应的链路出现故障的目标成员,若是,将ECMP组中除目标成员之外的其他至少一个成员对应的链路作为目标成员对应的目标链路,以在接收到对应于目标成员的报文时,基于目标链路对报文进行转发,从而提高链路故障时报文传输的可靠性和合理性。

Description

故障处理方法、装置、设备和介质
技术领域
本发明涉及网络通信技术领域,具体而言,涉及一种故障处理方法、装置、设备和介质。
背景技术
ECMP(Equal Cost Multi-path,等价多路径路由)技术在路由通信中可用于实现等价多路径的负载分担和链路备份的目的。在路由下一跳只有单条路径时传输带宽低,且当链路出现问题时,通信将会出现中断。使用ECMP技术,路由的下一跳为一个ECMP组,一个ECMP组中包含多个成员,每个成员表示一条可用的传输路径,待传输报文进入转发设备,根据提前配置的规则,如hash算法,通过对报文的相关字段进行hash计算,根据计算结果从ECMP组中选出一条路径将报文发送出去,由于有多条路径可用,因此实现了负载分担的功能。
然而,经研究发现,基于ECMP技术进行报文传输,当存在传输路径出现故障时,传输的可靠性和合理性有待提升。
发明内容
本发明的目的之一包括,例如,提供了一种故障处理方法、装置、设备和介质,以至少部分地提高基于ECMP技术进行报文传输,在传输路径出现故障时传输的可靠性和合理性。
本发明的实施例可以这样实现:
第一方面,本发明提供一种故障处理方法,应用于转发设备,所述转发设备中包括ECMP组,所述ECMP组中包括多个成员,所述方法包括:
确定ECMP组中是否存在对应的链路出现故障的目标成员;
若是,将所述ECMP组中除所述目标成员之外的其他至少一个成员对应的链路作为所述目标成员对应的目标链路,以在接收到对应于所述目标成员的报文时,基于所述目标链路对所述报文进行转发。
在可选的实施方式中,所述将所述ECMP组中除所述目标成员之外的其他至少一个成员对应的链路作为所述目标成员对应的目标链路,包括:
将所述ECMP组中,除所述目标成员之外的其他所有成员对应的链路均作为所述目标成员对应的目标链路;
所述在接收到对应于所述目标成员的报文时,基于所述目标链路对所述报文进行转发,包括:
在接收到对应于所述目标成员的报文时,按照设定规则依次选择各所述目标链路之一,对所述报文进行转发,以使对应于所述目标成员的报文均衡地由所述ECMP组中除所述目标成员之外的其他所有成员对应的链路进行转发。
在可选的实施方式中,所述转发设备中维护有多个数据库,所述多个数据库包括ECMP member DB和ECMP DB,所述ECMP member DB中保存有所述ECMP组中所有的成员,所述ECMP DB中保存有当前使用中的ECMP表项,所述ECMP DB为所述ECMP member DB的重复铺开;
所述将所述ECMP组中,除所述目标成员之外的其他所有成员对应的链路均作为所述目标成员对应的目标链路,包括:
使用所述ECMP member DB中除所述目标成员之外的其他所有成员,依次对所述ECMP DB中的所述目标成员进行替换,得到更新后的ECMP DB;
将更新后的ECMP DB进行下发,以使对应于所述目标成员的报文均衡地由所述ECMP组中除所述目标成员之外的其他所有成员对应的链路进行转发。
在可选的实施方式中,所述方法还包括:
确定所述目标成员对应的故障链路是否恢复正常;
若是,重新将恢复正常的链路作为所述目标成员对应的唯一链路。
在可选的实施方式中,所述数据库还包括ECMP Backup DB,所述方法还包括:
将出现故障之前的ECMP DB备份至所述ECMP Backup DB;
所述重新将恢复正常的链路作为所述目标成员对应的唯一链路,包括:
遍历所述ECMP Backup DB,在ECMP DB中确定链路恢复正常的目标成员的位置;
将ECMP DB中相应位置的成员替换为链路恢复正常的目标成员,得到调整后的ECMP DB;
将调整后的ECMP DB进行下发,以使对应于所述目标成员的报文重新由恢复正常的链路进行转发。
在可选的实施方式中,所述方法还包括:
在所述ECMP组中存在对应的链路出现故障的目标成员的情况下,在所述ECMP组中保留所述目标成员,不对所述目标成员进行删除;保持所述ECMP member DB不变。
在可选的实施方式中,所述方法还包括:
响应于成员添加请求,将ECMP DB保存至所述ECMP Backup DB,将所述成员添加请求对应的成员添加至所述ECMP member DB,对ECMP DB进行更新,使用添加成员后的ECMPmember DB重复铺开得到更新后的ECMP DB;
响应于成员删除请求,将ECMP DB保存至所述ECMP Backup DB,将所述成员删除请求对应的成员从所述ECMP member DB删除,对ECMP DB进行更新,使用删除成员后的ECMPmember DB重复铺开得到更新后的ECMP DB。
第二方面,本发明实施例提供一种故障处理装置,应用于转发设备,所述转发设备中包括ECMP组,所述ECMP组中包括多个成员,所述故障处理装置包括:
信息确定模块,用于确定ECMP组中是否存在对应的链路出现故障的目标成员;
信息处理模块,用于在所述ECMP组中存在对应的链路出现故障的目标成员时,将所述ECMP组中除所述目标成员之外的其他至少一个成员对应的链路作为所述目标成员对应的目标链路,以在接收到对应于所述目标成员的报文时,基于所述目标链路对所述报文进行转发。
第三方面,本发明提供一种转发设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述实施方式任一项所述的故障处理方法。
第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,所述计算机程序运行时控制所述计算机可读存储介质所在转发设备执行前述实施方式任一项所述的故障处理方法。
本发明实施例的有益效果包括,例如:通过巧妙设计,使得ECMP组的成员链路故障后流量仍然能够通过其他正常工作的ECMP成员链路转发,实现了ECMP组的成员链路故障前后,正常链路不受影响的会话保持,通过保证正常链路上的转发流量不受影响,从而解决了由链路故障导致的正常链路流量转发受影响而切换转发路径的问题,进而保障了相应业务的稳定,确保了报文传输的可靠性和合理性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的一种应用场景示意图。
图2示出了本发明实施例提供的一种故障处理方法的流程示意图。
图3示出了本发明实施例提供的一种应用架构示意图。
图4示出了本发明实施例提供的一种报文传输路径示意图。
图5示出了本发明实施例提供的一种故障发生时的报文传输路径示意图。
图6示出了本发明实施例提供的一种故障恢复后的报文传输路径示意图。
图7示出了本发明实施例提供的一种故障处理装置的示例性结构框图。
图标:100-转发设备;110-存储器;120-处理器;130-通信模块;140-故障处理装置;141-信息确定模块;142-信息处理模块。
具体实施方式
现今,基于ECMP技术进行报文传输,当存在传输路径出现故障时,常用处理方式为:将故障链路对应的成员从ECMP组删除,使得转发设备后续收到报文进行hash计算,再从ECMP组中选择下一跳传输路径时,不会选中故障传输路径,进而实现了链路备份的功能。
经研究发现,采用上述方式,将故障传输路径对应的成员从ECMP组中删除后,ECMP组的成员数及成员顺序会发生变化,导致相同的报文计算出来相同的hash值,可能会索引到不同的成员出口上,包括正常链路上的流量,从而无法保证各业务,如会话保持业务等的正常运行。
示例性地,若某ECMP组有3个成员A、B、C,报文一根据hash计算结果从成员B转发出去。当成员A链路出现故障时,采用上述方式将ECMP组中的成员A删除后,ECMP组中仅有2个成员B、C。针对报文一进行hash计算后,很可能会导致原报文一需要从成员C链路出去,即被删除的成员A影响了正常链路上的报文转发业务,使得传输的可靠性和合理性有待提升。例如,报文一通过成员B转发时,成员B中存储了报文一的处理相关信息,而切换至成员C后,成员C中可能需要重新处理、存储报文一的处理相关信息,从而影响处理效率,造成资源浪费。
为了提高传输的可靠性和合理性,可以考虑通过硬件实现备份链路,链路故障后,ECMP组成员不变,对报文进行正常的hash计算转发,当计算出的路径为故障链路后,从备份路径中再选出一条正常链路作为真正的出口进行转发。
然而,硬件实现势必会增加相应的硬件成本、维护成本和复杂度。
基于上述研究,本发明实施例提供一种等价多路径故障处理方案,提出一种负载均衡弹性散列实现方法,通过巧妙配置,使得ECMP组的成员链路故障后流量仍然能够均匀的分布到不同的ECMP成员链路上,实现了ECMP组的成员链路故障前后,正常链路不受影响的会话保持,通过保证正常链路上的转发流量不受影响,从而解决了由链路故障导致的正常链路流量转发受影响而切换转发路径的问题,进而保障了相应业务的稳定,确保了报文传输的可靠性和合理性。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本发明实施例针对上述问题所提出的解决方案,都应该是发明人在发明过程中做出的贡献。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
请参照图1,是本实施例提供的一种转发设备100的方框示意图,本实施例中的转发设备100可以为能够进行数据交互、处理的服务器、处理设备、处理平台等,例如,可以为路由器、通讯服务器等。所述转发设备100包括存储器110、处理器120及通信模块130。所述存储器110、处理器120以及通信模块130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,存储器110用于存储程序或者数据。所述存储器110可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(ErasableProgrammable Read-Only Memory,EPROM),电可擦除只读存储器(Electric ErasableProgrammable Read-Only Memory,EEPROM)等。
处理器120用于读/写存储器110中存储的数据或程序,并执行相应地功能。
通信模块130用于通过所述网络建立所述转发设备100与其它通信终端之间的通信连接,并用于通过所述网络收发数据。
应当理解的是,图1所示的结构仅为转发设备100的结构示意图,所述转发设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
请结合参阅图2,为本发明实施例提供的一种故障处理方法的流程示意图,可以由图1所述转发设备100执行,例如可以由转发设备100中的处理器120执行。转发设备100中包括ECMP组,所述ECMP组中包括多个成员。该故障处理方法包括S110和S120。
S110,确定ECMP组中是否存在对应的链路出现故障的目标成员。若是,执行S120。若否,则结束,或者继续执行S110。
S120,将所述ECMP组中除所述目标成员之外的其他至少一个成员对应的链路作为所述目标成员对应的目标链路,以在接收到对应于所述目标成员的报文时,基于所述目标链路对所述报文进行转发。
采用上述方案,在基于ECMP技术进行报文传输、存在传输路径出现故障时,能够在不改变ECMP组中成员的情况下,使得ECMP组的成员链路故障后仍然能够通过其他正常工作的ECMP成员链路转发,在实现故障链路流量处理的同时保证了正常链路上的转发流量不受影响,提高了报文传输的可靠性和合理性。
S110中,确定链路是否出现故障的方式有多种,例如,可以通过链路探测技术确定链路处于正常工作状态还是出现故障。又例如,可以通过探测报文确定链路处于正常工作状态还是出现故障。又例如,可以基于报错信息,分析得到哪些链路可能出现故障。
S120中,将所述ECMP组中除所述目标成员之外的其他至少一个成员对应的链路作为所述目标成员对应的目标链路,可以有多种实现。
例如,可以基于负载均衡原则,从ECMP组中除目标成员之外的其他所有成员中确定负载最小的成员对应的链路作为目标链路,以确保对应于目标成员的报文能够被及时处理。
又例如,可以由用户从ECMP组中除目标成员之外的其他所有成员中指定一个以上成员对应的链路作为目标链路。
又例如,可以将所述ECMP组中,除所述目标成员之外的其他所有成员对应的链路均作为所述目标成员对应的目标链路。相应地,在接收到对应于所述目标成员的报文时,基于所述目标链路对所述报文进行转发,可以包括:在接收到对应于所述目标成员的报文时,按照设定规则依次选择各所述目标链路之一,对所述报文进行转发,以使对应于所述目标成员的报文均衡地由所述ECMP组中除所述目标成员之外的其他所有成员对应的链路进行转发。
其中,设定规则可以有多种,例如,可以为按一定顺序依次排列。又例如,可以为针对所有目标链路形成的集合进行随机调用,通过轮询,随机调用集合中还未被使用的目标链路,直至集合中的所有目标链路在本轮中均被调用过,则针对集合中的各目标链路进行下一次轮询。
本实施例中,将所述ECMP组中,除所述目标成员之外的其他所有成员对应的链路均作为所述目标成员对应的目标链路可以通过多种方式实现。在一种实现方式中,转发设备中可以维护有多个数据库,所述多个数据库包括ECMP member DB和ECMP DB,所述ECMPmember DB中保存有所述ECMP组中所有的成员,所述ECMP DB中保存有当前使用中的ECMP表项,所述ECMP DB为所述ECMP member DB的重复铺开。
相应地,可以使用所述ECMP member DB中除所述目标成员之外的其他所有成员,依次对所述ECMP DB中的所述目标成员进行替换,得到更新后的ECMP DB。将更新后的ECMPDB进行下发,以使对应于所述目标成员的报文均衡地由所述ECMP组中除所述目标成员之外的其他所有成员对应的链路进行转发。
在此基础上,为了确保正常链路的利用率,还可以确定所述目标成员对应的故障链路是否恢复正常,若是,重新将恢复正常的链路作为所述目标成员对应的唯一链路。
重新将恢复正常的链路作为所述目标成员对应的唯一链路的方式可以灵活选择,例如,在转发设备中维护有多个数据库的情况下,数据库还可以包括ECMP Backup DB,所述方法还包括:将出现故障之前的ECMP DB备份至所述ECMP Backup DB。相应地,重新将恢复正常的链路作为所述目标成员对应的唯一链路,可以包括:遍历所述ECMP Backup DB,在ECMP DB中确定链路恢复正常的目标成员的位置。将ECMP DB中相应位置的成员替换为链路恢复正常的目标成员,得到调整后的ECMP DB。将调整后的ECMP DB进行下发,以使对应于所述目标成员的报文重新由恢复正常的链路进行转发。
本实施例中的方案,在ECMP组中存在对应的链路出现故障的目标成员的情况下,在所述ECMP组中保留所述目标成员,不对所述目标成员进行删除,保持所述ECMP memberDB不变。从而确保了链路故障时,同一报文对应的成员一致,保证了正常链路上的转发流量不受影响。
在转发设备中维护有多个数据库的情况下,可以进行成员添加操作,相应地,转发设备可以响应于成员添加请求,将ECMP DB保存至所述ECMP Backup DB,将所述成员添加请求对应的成员添加至所述ECMP member DB,对ECMP DB进行更新,使用添加成员后的ECMPmember DB重复铺开得到更新后的ECMP DB。
类似地,可以进行成员删除操作,转发设备可以响应于成员删除请求,将ECMP DB保存至所述ECMP Backup DB,将所述成员删除请求对应的成员从所述ECMP member DB删除,对ECMP DB进行更新,使用删除成员后的ECMP member DB重复铺开得到更新后的ECMPDB。
为了更为清楚地阐述本实施例中的故障处理方案,现以下述场景为例,对本发明实施例的实现原理进行举例说明。
本发明实施例的主要设计思路是,当链路故障时,使用正常链路对应的成员替换ECMP组中故障链路对应的成员,保证根据报文特征计算出来的hash值索引到的ECMP组的成员位置不变,即正常链路上的流量转发不受影响。采用ECMP组成员重复平铺,正常链路成员作为备份轮流替换ECMP组中的故障链路成员的方式,保证了一定程度上的负载均衡。增加备份DB(DoggaByt,刀字节,又称数据存储单元、数据库),当链路故障恢复后,根据备份DB的成员位置恢复,保证恢复时的正常链路数据流量不受影响。
示例性地:
若ECMP组最大支持m个成员,但是实际成员数n小于m,即环境正常时有n条链路相互实现负载分担和冗余备份,当转发设备收到报文时,根据报文特征计算出来的hash值,从A、B、C、D……等n个成员中选择一个成员出口,将报文发送出去。
请参阅图3和图4,应用架构如下:转发设备包括用户配置接口、算法及相应DB,以及转发芯片。
其中,用户配置接口包含命令行、Web(World Wide Web,全球广域网或万维网)、SNMP(Simple Network Management Protocol,简单网络管理协议)等配置手段,配置相应的路由,形成ECMP组。
算法及相应DB用于实现ECMP组成员的更新、故障发生及恢复时的相应处理逻辑,并将更新后的ECMP组下到转发芯片中。
转发芯片用于接收报文,根据报文相应字段计算hash值,从ECMP组的成员中选择一个作为出口,将报文发送出去。
转发设备维护三份DB,ECMP member DB、ECMP DB和ECMP Backup DB。其中,ECMPmember DB中保存ECMP组所有的member(成员)。ECMP DB中保存当前使用中的ECMP表项,转发芯片中的ECMP表项来自于ECMP DB,可以理解为将ECMP member DB重复铺开即为ECMPDB。ECMP Backup DB为故障发生前的ECMP DB的备份,用于故障恢复时成员的替换。
基于上述应用架构和配置,正常情况下:
当配置第一个成员时,新创建一个ECMP组,由于当前只有一个成员,如成员A,因此使用该成员全部填满ECMP组,生成ECMP DB和ECMP Backup DB,并将ECMP DB下发到转发芯片中,ECMP member DB中增加一个成员。
因为当前ECMP组的成员都是相同的,所以转发设备收到报文,根据报文特征计算出来hash值,无论hash值是多少,选择的出口都是相同的,ECMP DB示例如下:
Figure BDA0004009812260000151
当继续添加成员时,在更新ECMP DB前,先把ECMP DB保存到ECMP Back DB。为了做到hash均匀,使用之前已经存在的成员与当前新增成员的重复序列更新ECMP DB,并将ECMPDB下发到转发芯片中,ECMP member DB中再增加一个成员。
此处用增加第二个成员,如成员B举例,相较于只有一个成员A时,此时根据报文特征计算出来的hash值选择的出口就可能为A、B两种情况,如下:
Figure BDA0004009812260000152
Figure BDA0004009812260000161
删除成员时,在更新ECMP DB前,先把ECMP DB保存到ECMP Back DB,使用剩下成员的重复序列更新ECMP DB,count(计数)减1,并将ECMP DB下发到转发芯片中,在ECMPmember DB中找到该成员,然后删除。
以含有A、B、C三个成员的ECMP组删除一个成员举例,当删除成员C时,相应DB更新如下:
Figure BDA0004009812260000162
故障发生时:
当ECMP组成员对应的链路出现故障,把ECMP DB保存到ECMP Back DB,遍历ECMPDB中的所有成员,如果当前成员为故障链路对应的成员,则使用ECMP member DB中的成员(ECMP member中的故障成员除外)依次替换该成员,得到更新后的ECMP DB。
ECMP member DB不变,使用更新后的ECMP DB下发转发芯片。
以含有A、B、C、D四个成员的ECMP组,成员B发生故障为例,相应DB更新如下:
Figure BDA0004009812260000171
因为只对ECMP组中的故障链路的成员进行了替换,未改变正常链路对应的成员,因此后续报文进入转发设备后,通过hash计算,需要从正常链路上转发出去的流量仍然能够保持不变。而需要从故障链路转发出去的流量,算出来的hash值对应的成员已经替换成了正常链路的成员,故相应流量也能正常转发出去,从而既实现了流量保持,又实现了链路备份,同时替换掉的位置在一定程度上实现了负载均衡。
请参阅图5,为故障发生时的切换示例图。其中,虚线为故障前的流量,实线为故障后的流量,相同符号的线计算出来的hash值一致。从图中可以看出,原来走成员A、D的流量得到了保持,原来应该走成员B的流量走A口得到了备份转发。
当故障链路恢复正常时:
遍历ECMP Backup DB组,找到故障恢复的成员的位置,将ECMP DB中相应位置的成员替换为故障恢复的成员。ECMP Backup DB和ECMP member DB保持不变。将ECMP DB下发转发芯片。
以上述含有A、B、C、D四个成员的ECMP组为例,成员B恢复故障后的DB更新如下:
Figure BDA0004009812260000181
请参阅图6,为故障恢复后的转发示例图。其中,虚线为故障时的流量,实线为故障恢复后的流量,相同符号的线计算出来的hash值一致。从图中可以看出,原来走成员A、D的流量得到了保持,原来应该走成员A的流量重新走成员B恢复了正常转发。
基于上述设计构思,实现了路由负载均衡弹性散列处理。
为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种故障处理装置的实现方式。请参阅图7,图7为本发明实施例提供的一种故障处理装置140的功能模块图,该故障处理装置140可以应用于图1所示转发设备100。转发设备100中包括ECMP组,所述ECMP组中包括多个成员。需要说明的是,本实施例所提供的故障处理装置140,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。该故障处理装置140包括信息确定模块141和信息处理模块142。
其中,信息确定模块141用于确定ECMP组中是否存在对应的链路出现故障的目标成员。
信息处理模块142用于在所述ECMP组中存在对应的链路出现故障的目标成员时,将所述ECMP组中除所述目标成员之外的其他至少一个成员对应的链路作为所述目标成员对应的目标链路,以在接收到对应于所述目标成员的报文时,基于所述目标链路对所述报文进行转发。
在上述基础上,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,所述计算机程序运行时控制所述计算机可读存储介质所在转发设备执行上述的故障处理方法。
采用本发明实施例中的上述方案,可以在链路故障前后,实现故障前后的会话保持和故障后的负载均衡。链路正常时使用成员依次平铺ECMP表项;链路发生故障时遍历ECMP表项内的成员,使用正常链路的成员轮流替代故障链路对应的成员,使正常链路上的会话得到保持,故障链路上的流量又能均匀的分配到正常链路上。故障解除后,再把被替换掉的成员换回来,正常链路上的流量仍然不受影响,尽可能的保证流量转发的稳定性,确保了流量传输的可靠性和合理性。设计巧妙,实现较为便捷。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种故障处理方法,其特征在于,应用于转发设备,所述转发设备中包括ECMP组,所述ECMP组中包括多个成员,所述方法包括:
确定ECMP组中是否存在对应的链路出现故障的目标成员;
若是,将所述ECMP组中除所述目标成员之外的其他至少一个成员对应的链路作为所述目标成员对应的目标链路,以在接收到对应于所述目标成员的报文时,基于所述目标链路对所述报文进行转发。
2.根据权利要求1所述的故障处理方法,其特征在于,所述将所述ECMP组中除所述目标成员之外的其他至少一个成员对应的链路作为所述目标成员对应的目标链路,包括:
将所述ECMP组中,除所述目标成员之外的其他所有成员对应的链路均作为所述目标成员对应的目标链路;
所述在接收到对应于所述目标成员的报文时,基于所述目标链路对所述报文进行转发,包括:
在接收到对应于所述目标成员的报文时,按照设定规则依次选择各所述目标链路之一,对所述报文进行转发,以使对应于所述目标成员的报文均衡地由所述ECMP组中除所述目标成员之外的其他所有成员对应的链路进行转发。
3.根据权利要求2所述的故障处理方法,其特征在于,所述转发设备中维护有多个数据库,所述多个数据库包括ECMP member DB和ECMP DB,所述ECMP member DB中保存有所述ECMP组中所有的成员,所述ECMP DB中保存有当前使用中的ECMP表项,所述ECMP DB为所述ECMP member DB的重复铺开;
所述将所述ECMP组中,除所述目标成员之外的其他所有成员对应的链路均作为所述目标成员对应的目标链路,包括:
使用所述ECMP member DB中除所述目标成员之外的其他所有成员,依次对所述ECMPDB中的所述目标成员进行替换,得到更新后的ECMP DB;
将更新后的ECMP DB进行下发,以使对应于所述目标成员的报文均衡地由所述ECMP组中除所述目标成员之外的其他所有成员对应的链路进行转发。
4.根据权利要求3所述的故障处理方法,其特征在于,所述方法还包括:
确定所述目标成员对应的故障链路是否恢复正常;
若是,重新将恢复正常的链路作为所述目标成员对应的唯一链路。
5.根据权利要求4所述的故障处理方法,其特征在于,所述数据库还包括ECMP BackupDB,所述方法还包括:
将出现故障之前的ECMP DB备份至所述ECMP Backup DB;
所述重新将恢复正常的链路作为所述目标成员对应的唯一链路,包括:
遍历所述ECMP Backup DB,在ECMP DB中确定链路恢复正常的目标成员的位置;
将ECMP DB中相应位置的成员替换为链路恢复正常的目标成员,得到调整后的ECMPDB;
将调整后的ECMP DB进行下发,以使对应于所述目标成员的报文重新由恢复正常的链路进行转发。
6.根据权利要求5所述的故障处理方法,其特征在于,所述方法还包括:
在所述ECMP组中存在对应的链路出现故障的目标成员的情况下,在所述ECMP组中保留所述目标成员,不对所述目标成员进行删除;保持所述ECMP member DB不变。
7.根据权利要求5所述的故障处理方法,其特征在于,所述方法还包括:
响应于成员添加请求,将ECMP DB保存至所述ECMP Backup DB,将所述成员添加请求对应的成员添加至所述ECMP member DB,对ECMP DB进行更新,使用添加成员后的ECMPmember DB重复铺开得到更新后的ECMP DB;
响应于成员删除请求,将ECMP DB保存至所述ECMP Backup DB,将所述成员删除请求对应的成员从所述ECMP member DB删除,对ECMP DB进行更新,使用删除成员后的ECMPmember DB重复铺开得到更新后的ECMP DB。
8.一种故障处理装置,其特征在于,应用于转发设备,所述转发设备中包括ECMP组,所述ECMP组中包括多个成员,所述故障处理装置包括:
信息确定模块,用于确定ECMP组中是否存在对应的链路出现故障的目标成员;
信息处理模块,用于在所述ECMP组中存在对应的链路出现故障的目标成员时,将所述ECMP组中除所述目标成员之外的其他至少一个成员对应的链路作为所述目标成员对应的目标链路,以在接收到对应于所述目标成员的报文时,基于所述目标链路对所述报文进行转发。
9.一种转发设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至7任一项所述的故障处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序,所述计算机程序运行时控制所述计算机可读存储介质所在转发设备执行权利要求1至7任一项所述的故障处理方法。
CN202211649683.4A 2022-12-21 2022-12-21 故障处理方法、装置、设备和介质 Pending CN116319533A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211649683.4A CN116319533A (zh) 2022-12-21 2022-12-21 故障处理方法、装置、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211649683.4A CN116319533A (zh) 2022-12-21 2022-12-21 故障处理方法、装置、设备和介质

Publications (1)

Publication Number Publication Date
CN116319533A true CN116319533A (zh) 2023-06-23

Family

ID=86798471

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211649683.4A Pending CN116319533A (zh) 2022-12-21 2022-12-21 故障处理方法、装置、设备和介质

Country Status (1)

Country Link
CN (1) CN116319533A (zh)

Similar Documents

Publication Publication Date Title
US6392989B1 (en) High speed protection switching in label switched networks through pre-computation of alternate routes
US7200117B2 (en) Method of optimizing network capacity and fault tolerance in deadlock-free routing
EP2285051B1 (en) Transport control server, transport control system, and backup path setting method
US5463615A (en) Node failure restoration tool
US8953499B2 (en) Method and apparatus for establishing spanning trees
CN108023812B (zh) 云计算系统的内容分发方法及装置、计算节点及系统
EP2922248B1 (en) Communication system, control device, method for controlling same, and program
CN111092813B (zh) 一种等价多路径ecmp切换方法、网络设备及系统
CN112491700A (zh) 网络路径调整方法、系统、装置、电子设备及存储介质
US7564780B2 (en) Time constrained failure recovery in communication networks
US11695856B2 (en) Scheduling solution configuration method and apparatus, computer readable storage medium thereof, and computer device
CN111629386B (zh) 通信方法、系统及设备
US20090316572A1 (en) Method and system for managing port statuses of a network device and relay device
US8724511B2 (en) Method for provisioning circuits on multiple parallel links with a single setup message
CN116319533A (zh) 故障处理方法、装置、设备和介质
CN111130871B (zh) 保护切换方法、装置和网络设备
CN114615190B (zh) 重路由方法、通信装置及存储介质
CN108390780B (zh) 用于处理信息的方法和装置
EP1940092B1 (en) Method and device for selecting a sub-route
CN105515968B (zh) 报文转发方法、装置、sdn及系统
KR20190048324A (ko) 다중 네트워크 기반의 서비스를 제공하는 방법 및 장치
CN117596140A (zh) 一种云网络运维方法、装置、设备以及可读存储介质
CN117353806A (zh) 主干光路保护方法和系统、光矩阵设备、电子设备、介质
US20220069935A1 (en) Fault tolerance method for any set of simultaneous link faults in dynamic wdm optical networks with wavelength continuity constraint
CN117097642A (zh) 表项处理方法、转发面设备和虚拟化宽带远程接入服务器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination