背景技术
以太网、MPLS-TP、MPLS、VXLAN、GRE、SR、SRv6等承载网络,为了达到更高的可靠性,通常在业务的部署时,配置各种故障切换技术。故障切换技术根据具体的使用场景,可以分为——线性保护、多归属保护、环网保护等。不同的网络承载技术的故障切换方案,对应的不同的标准草案或者标准。
故障切换技术通过给每一条工作链路分配专属的高优先级保护链路,工作链路发生故障后以一种可预测的方式实现网络资源切换,更易于网络管理者有效地规划网络、感知网络的活动状态,实现承载网络具有小于50ms(sub50ms)的保护倒换能力。大客户专线等对网络通信质量要求较高的网络应用,通常在网络开通时预先部署专属的故障切换保护组,以保证网络服务的SLA质量,实现电信级的运营。
随着大数据、云计算、移动互联网、人工智能等应用的迅速发展,网络承载的流量与日俱增,对网络可靠性提出了更高的要求。电信级网络的高可靠性,主要体现在通信链路或者网络设备发生故障后,网络系统可以从故障中快速恢复,业务恢复时间满足50ms甚至更高的故障切换性能指标。
如图1所示,Device A和Device C间建立了故障切换机制,主用通路为Device A–Device B–Device C,备用通路为Device A-Device H-Device G-Device F-Device E-Device D–Device C,主用和备用通路均配置有故障检测机制。若主用通路发生故障后,可采用预先设定的备用通路传输Device A——>Device C的业务,实现快速的故障切换。
如图2所示,以典型的L3VPN FRR为例,通常预先建立好主用通路表项、备用通路表项,FRR工作在主用通路时,路由表指向主用通路next_hop;若FRR需要切换到备用通路,需要逐个更新路由表,指向备用通路next_hop。保护切换的性能与路由表项的条目数n正相关,切换操作的时间复杂度为O(n)。
而且在转发芯片的常规实现中,等价多路径技术采用专门的等价多路径(EqualCost Multiple Path,ECMP)组实现,故障切换技术采用专门的主用和备用通路实现,同时支持等价多路径技术和故障切换技术,需要占用较多的转发芯片资源。
发明内容
针对上述问题,本发明实施例的目的在于提供一种故障切换实现方法、装置及转发芯片,以改善上述问题。
本发明实施例提供了一种故障切换实现方法,其包括:
创建ECMP组;其中,MAC表、路由表、灵活匹配ACL、VPN索引指向所述ECMP组,且所述ECMP组的成员为故障切换保护模块的当前活动通路;
当检测到当前链路发生故障时,更新所述ECMP组的成员,实现故障切换。
优选地,当工作在主用通路时,ECMP组的成员指向主用通路下一跳;当工作在备用通路时,ECMP数组的成员指向备用通路下一跳。
优选地,更新ECMP组的成员通过切换ECMP组的成员实现。
优选地,更新ECMP组的成员通过更新ECM组的成员的表项内容实现。
本发明实施例还提供了一种故障切换实现装置,其包括:
创建单元,用于创建ECMP组;其中,MAC表、路由表、灵活匹配ACL、VPN索引指向所述ECMP组,且所述ECMP组的成员为故障切换保护模块的当前活动通路;
更新单元,用于当检测到当前链路发生故障时,更新所述ECMP组的成员,实现故障切换。
优选地,当工作在主用通路时,ECMP组的成员指向主用通路下一跳;当工作在备用通路时,ECMP数组的成员指向备用通路下一跳。
优选地,更新ECMP组的成员通过切换ECMP组的成员实现。
优选地,更新ECMP组的组成员通过更新ECM组的成员的表项内容实现。
本发明实施例还提供了一种转发芯片,其包括存储器以及处理器,所述存储器内存储有计算机程序,所述计算机程序能够被所述处理器执行,以实现如上述的故障切换实现方法。
综上所述,本实施例采用转发芯片的等价多路径组资源实现快速故障切换应用,切换操作的时间复杂度为O(1),且可有效利用转发芯片的资源。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本发明的理解,下面对本发明涉及的一些常用术语进行必要的定义:
Failover——故障切换
L2VPN——Layer 2Virtual Private Network,二层虚拟专用网路
L3VPN——Layer 3Virtual Private Network,三层虚拟专用网路
EVPN——Ethernet Virtual Private Network,以太虚拟专用网路
FRR——Fast Reroute,快速重路由
LFA——Loop-Free Alternate,无环路备份
RLFA——Remote Loop-Free Alternate,远端无环路备份
TI-LFA——Topology-Independent Loop-Free Alternate,拓扑无关无环路备份
请参阅图3,本发明第一实施例提供了一种故障切换实现方法,其可由转发芯片来实现,并包括如下步骤:
S101,创建ECMP组;其中,MAC表、路由表、灵活匹配ACL、VPN索引指向所述ECMP组,且所述ECMP组的成员为故障切换保护模块的当前活动通路;
S102,当检测到当前链路发生故障时,更新所述ECMP组的成员,实现故障切换。
在本实施例中,ECMP存在到达同一个目标的多条路径,可实现网络的带宽增加、负载均衡、路径间的互相保护等功能。存在到达同一个目标的多条路径,应用ECMP可实现网络的带宽增加、负载均衡、路径间的互相保护等功能。当设备支持ECMP时,发往目的设备的二层或者三层流量就可以通过不同的路径承载,实现网络链路的负载均衡,并在成员链路出现故障时,实现网络的快速切换。
承载在ECMP组上的流量,在这些等价链路上平均分配,不会考虑链路带宽的差异。ECMP算法被多种路由协议支持,例如:OSPF、ISIS、EIGRP、BGP等。在数据中心的网络架构中,其承载的业务也广泛使用ECMP作为负载均衡算法。
如图4所示,按照网络的承载层次,可分为接口级别的ECMP、隧道级别的ECMP、业务级别的ECMP等。接口级别的ECMP类似LAG,每条链路均可跨设备。隧道级别的ECMP,其成员隧道可以为VxLAN、GRE、MPLS、SRv6等类型。业务级别的ECMP,根据业务类型可具体细分为L2VPN的ECMP、L3VPN的ECMP、灵活引流的ECMP等。
在本实施例中,通过在转发芯片的业务转发的表项路径中增加ECMP组,MAC表、路由表、灵活匹配ACL、VPN索引等均指向ECMP组。当工作在主用通路时,ECMP组的成员指向主用通路下一跳(主用通路next_hop);当工作在备用通路时,ECMP数组的成员指向备用通路下一跳(备用通路next_hop)。
当检测到当前链路发生故障时,更新所述ECMP组的成员,实现故障切换,切换操作的时间复杂度为O(1)。
更新ECMP组的成员next_hop有两种方案,即切换成员以及更新成员next_hop表项内容。
其中,切换成员的方案如图5所示,工作在主用通路时,ECMP组的成员next_hop为主用通路next_hop。工作在备用通路时,ECMP组的组成员next_hop为备用通路next_hop。
其中,更新成员next_hop表项内容的方案如图6所示,工作在主用通路时,ECMP组的成员next_hop内容采用主用通路next_hop覆盖。工作在备用通路时,ECMP组的成员next_hop内容采用备用通路next_hop覆盖。
综上所述,本实施例采用转发芯片的等价多路径组资源实现快速故障切换应用,切换操作的时间复杂度为O(1),且可有效利用转发芯片的资源。
请参阅图7,本发明第二实施例还提供了一种故障切换实现装置,其包括:
创建单元210,用于创建ECMP组;其中,MAC表、路由表、灵活匹配ACL、VPN索引指向所述ECMP组,且所述ECMP组的成员为故障切换保护模块的当前活动通路;
更新单元220,用于当检测到当前链路发生故障时,更新所述ECMP组的成员,实现故障切换。
优选地,当工作在主用通路时,ECMP组的成员指向主用通路下一跳;当工作在备用通路时,ECMP数组的成员指向备用通路下一跳。
优选地,更新ECMP组的成员通过切换ECMP组的成员实现。
优选地,更新ECMP组的组成员通过更新ECM组的成员的表项内容实现。
本发明第三实施例还提供了一种转发芯片,其特征在于,包括存储器以及处理器,所述存储器内存储有计算机程序,所述计算机程序能够被所述处理器执行,以实现如上述的故障切换实现方法。
在本发明实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-On ly Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
实施例中提及的“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序。应该理解“第一\第二”区分的对象在适当情况下可以互换,以使这里描述的实施例能够以除了在这里图示或描述的那些内容以外的顺序实施。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。