CN113315699A - 一种区分优先级的多主多备快速重路由系统及方法 - Google Patents
一种区分优先级的多主多备快速重路由系统及方法 Download PDFInfo
- Publication number
- CN113315699A CN113315699A CN202110533478.0A CN202110533478A CN113315699A CN 113315699 A CN113315699 A CN 113315699A CN 202110533478 A CN202110533478 A CN 202110533478A CN 113315699 A CN113315699 A CN 113315699A
- Authority
- CN
- China
- Prior art keywords
- routing
- hop
- next hop
- group
- fec
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing 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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种区分优先级的多主多备的快速重路由系统,包括CPU控制平面和硬件数据平面,所述CPU控制平面运行多种路由协议,计算路由信息,生成多个具有相同路由管理距离的下一跳ECMP组,并在多个下一跳ECMP组中根据路由管理的优先级选择主下一跳ECMP组和备下一跳ECMP组,将主下一跳ECMP组和备下一跳ECMP组构成一个FRR组;硬件数据平面创建路由前缀,以及将主下一跳ECMP组创建为ECMP组类型的工作FEC条目,将备下一跳ECMP组创建为ECMP组类型的保护FEC条目,创建对应的保护倒换FEC条目,将保护倒换FEC条目级联到下一级的工作FEC条目和保护FEC条目,并将路由前缀的下一跳设置为保护倒换FEC。通过本发明实现区分优先级的基于ECMP组的多主多备的快速重路由的技术方案。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种区分优先级的多主多备快速重路由系统及方法。
背景技术
在IP网络的路由转发中,快速重路由(Fast ReRoute,FRR)典型应用于多个下一跳链路的保护倒换等场景。基于FRR技术,对于去往同一目的地的一条路由,在多个下一跳之间形成主备保护路径,路由器只需要检测并修改IP路由下一跳的状态,并主动及时将流量都切换到IP FRR的备份路径上。
等费用负载均衡(Equal Cost Multi-Path,ECMP)存在于费用相同的多条不同链路到达同一目的地址的网络环境中。与FRR类似,ECMP也在去往同一目的地的多个下一跳之间形成。不同的是,ECMP是在各下一跳等费用情况下,实现多路径负载均衡和链路备份的目的,多条IP路由均为主。芯片在执行报文转发时,对每一个报文进行哈希之后,选择ECMPgroup中不同的下一跳进行实际的路由转发,不同报文的流量会均衡地在多个下一跳之间分担转发。
为增强ECMP场景的可靠性,路由协议可以支持ECMP FRR功能,为ECMP组的每条主链路独立计算备份下一跳。但是存在以下问题:FRR组的主路径或备路径只能是单个的下一跳链路,不能是同时是已经存在的ECMP组;路由器只能监测单个链路失效事件作为FRR倒换的条件,不能监测整个ECMP组失效事件,因此无法实现类似将(ECMP组1,ECMP组2)形成多主多备FRR保护的功能;仅基于芯片的ECMP资源来实现FRR功能,会将原本需要区分优先级实现主备保护的FRR方案在硬件层面实现为无优先级区分的主主均衡保护,不符合FRR技术的设计初衷;典型地在同一动态路由协议内部,或具有相同管理距离的静态路由之间形成ECMP保护,对于具有不同优先级的路由协议无法形成保护。
发明内容
有鉴于此,本发明提供一种区分优先级的多主多备快速重路由系统及方法,实现区分优先级的基于ECMP组的多主多备的快速重路由的技术方案。
为实现上述目的,本发明提供了一种区分优先级的多主多备的快速重路由系统,所述系统包括CPU控制平面和硬件数据平面,其中:
所述CPU控制平面包括:
路由协议模块,用于运行多种路由协议,并基于每一种路由协议各自计算得到对应的路由信息,所述路由信息包括路由前缀、与所述路由前缀对应的多个下一跳,以及每一个下一跳所对应的路由管理距离;
路由管理模块,用于根据所述路由信息生成所述路由前缀所对应的多个具有相同路由管理距离的下一跳ECMP组,并在所述多个下一跳ECMP组中根据路由管理的优先级选择主下一跳ECMP组和备下一跳ECMP组,将所述主下一跳ECMP组和备下一跳ECMP组构成一个FRR组;
所述硬件数据平面,用于根据所述路由管理模块创建所述路由前缀,以及将主下一跳ECMP组创建为ECMP组类型的工作FEC条目,将备下一跳ECMP组创建为ECMP组类型的保护FEC条目,并根据所述FRR组创建对应的保护倒换FEC条目,将所述保护倒换FEC条目级联到下一级的工作FEC条目和保护FEC条目,并将所述路由前缀的下一跳设置为保护倒换FEC条目。
优选的,所述路由管理模块包括:
路由表,根据所述路由信息创建路由表,所述路由信息包括路由前缀、与所述路由前缀对应的多个下一跳,以及每一个下一跳所对应的路由管理距离;
下一跳表,根据所述路由信息生成所述路由前缀所对应的多个下一跳ECMP组,并将下一跳ECMP组作为所述下一跳表的表项,其中,将去往同一个路由前缀的子网并且具有相同路由管理距离的多个下一跳构成一个下一跳ECMP组;
FRR组表,在所述FRR组表中创建多个FRR组,每一个FRR组均由主下一跳ECMP组和备下一跳ECMP组构成,其中,主下一跳ECMP组为具有最优路由优先级的下一跳ECMP组,备下一跳ECMP组为具有次优路由优先级的下一跳ECMP组,设置最小路由管理距离为最优路由优先级,以及设置次小路由管理距离为次优路由优先级,所述路由前缀与对应的FRR组建立引用关系。
优选的,所述FRR组中的主下一跳ECMP组和备下一跳ECMP组来源于不同的路由协议。
优选的,所述硬件数据平面包括:
硬件路由表,在所述硬件路由表中创建所述路由前缀的路由项;
下一跳FEC表,根据所述下一跳表和FRR组表,将主下一跳ECMP组创建为ECMP组类型的工作FEC条目,将备下一跳ECMP组创建为ECMP组类型的保护FEC条目;
保护倒换FEC组表,根据所述FRR组表中的FRR组创建对应的保护倒换FEC条目,将所述保护倒换FEC条目级联到下一级的工作FEC条目和保护FEC条目,多个不同的路由前缀引用同一个保护倒换FEC条目。
优选的,所述CPU控制平面包括:
驱动软件模块,通过调用芯片的软件开发工具包SDK API接口,将所述路由管理模块中的路由表、下一跳FEC表以及FRR组表写入所述硬件数据平面。
优选的,所述CPU控制平面包括:
下一跳可达性检测模块,用于实时监测所述路由前缀的下一跳up/down事件,以及,
所述路由管理模块,根据下一跳up/down事件,联动响应更新所述路由表中的下一跳信息,并当该下一跳信息导致所述下一跳表中的下一跳ECMP组发生变化时,执行如下操作:
若下一跳ECMP组中的所有下一跳成员没有全部失效,则调用SDK更新所述下一跳FEC表中对应的工作FEC条目或保护FEC条目;
若主下一跳ECMP组中的所有下一跳成员全部失效,则调用SDK向硬件转发平面的芯片执行FRR保护倒换指令,根据所述路由前缀对应的保护倒换FEC组执行保护倒换。
优选的,所述下一跳可达性检测模块包括:
下一跳链路可达性检测表,根据路由管理模块的请求创建相应的下一跳链路的可达性检测条目,对创建的下一跳链路进行实时的可达性检测,并在下一跳链路发生up/down事件时通知路由管理模块进行相应的联动响应;
下一跳地址可达性检测表,根据路由管理模块的请求创建相应的下一跳IP地址的可达性检测条目,对创建的下一跳IP地址进行实时的可达性检测,并在下一跳IP地址发生up/down事件时通知路由管理模块进行相应的联动响应;
下一跳ECMP组可达性检测表,根据路由管理模块的请求创建相应的下一跳ECMP组的可达性检测条目,对创建的下一跳ECMP组进行实时的可达性检测,并在下一跳ECMP组发生up/down事件时通知路由管理模块进行相应的联动响应。
优选的,
所述路由协议模块,当接收到下一跳的up/down事件的通知时,重新计算所述路由前缀的路由信息,得到更新后的路由信息;
所述路由管理模块,根据更新后的路信息,更新所述路由表、下一跳表以及FRR组表;
所述硬件数据平面,通过SDK功能调用更新所述硬件路由表、下一跳FEC表以及保护倒换FEC组表。
为实现上述目的,本发明提供了一种区分优先级的多主多备的快速重路由方法,所述方法包括:
运行多种路由协议,并基于每一种路由协议各自计算得到对应的路由信息,所述路由信息包括路由前缀、与所述路由前缀对应的多个下一跳,以及每一个下一跳所对应的路由管理距离;
根据所述路由信息生成所述路由前缀所对应的多个具有相同路由管理距离的下一跳ECMP组,并在所述多个下一跳ECMP组中根据路由管理的优先级选择主下一跳ECMP组和备下一跳ECMP组,将所述主下一跳ECMP组和备下一跳ECMP组构成一个FRR组;
在芯片中创建所述路由前缀,以及将主下一跳ECMP组创建为ECMP组类型的工作FEC条目,将备下一跳ECMP组创建为ECMP组类型的保护FEC条目,并根据所述FRR组创建对应的保护倒换FEC条目,将所述保护倒换FEC条目级联到下一级的工作FEC条目和保护FEC条目,并将所述路由前缀的下一跳设置为保护倒换FEC条目。
优选的,所述方法还包括:
创建下一跳链路可达性检测表、下一跳地址可达性检测表以及下一跳ECMP组可达性检测表,当检测到下一跳可达性变化事件时,联动响应该事件;
根据变化的下一跳或者下一跳ECMP组检索下一跳表,更新下一跳表中的下一跳可达性信息;
根据变化的下一跳或者下一跳ECMP组检索FRR组表,更新FRR组表中对应的主下一跳ECMP组或备下一跳ECMP组;
根据下一跳可达性变化信息检索FRR表,若该下一跳可达性变化导致FRR组的主路径发生变化,则调用SDK功能,对芯片的下一跳的保护倒换FEC条目执行1bit保护倒换命令;
通过SDK功能对芯片中的下一跳FEC表中的FEC条目进行更新;
通知路由协议软件下一跳可达性变化事件,执行路由重新计算。
与现有技术相比,本发明提供一种区分优先级的多主多备快速重路由系统及方法,所带来的有益效果为:通过在网络设备的硬件数据平面上实现通过区分优先级的基于ECMP组的多主多备的快速重路由的技术方案,通过在路由管理模块中扩展FRR选择机制和FRR组表,通过路由管理距离的优先级选择主下一跳ECMP组和备下一跳ECMP组,并组成FRR组;灵活利用芯片的FEC级联能力,将硬件路由表引用的下一跳的保护倒换FEC中的主备下一跳从单一下一跳扩展为ECMP组;通过下一跳可达性检测模块中扩展下一跳ECMP组可达性检测功能,使得系统能够快速检测和响应ECMP组的up/down事件,实时动态地设置硬件数据平面的FRR FEC资源分配,能够实现硬件数据平面的多主多备的快速重路由扩展,有利于基于已有硬件能力支持更灵活的业务保障需求;在核心路由表层面实现的跨路由协议的多主多备快速重路由能够以硬件高速实现以一个备ECMP组保护一个主ECMP组,有利于最大化挖掘网络的业务支持能力,有利于网络应用和业务向5G等未来方向的平滑演进。
附图说明
图1是根据本发明的一个实施例中区分优先级的多主多备快速重路由系统的系统框图。
具体实施方式
以下将结合附图所示的具体实施方式对本发明进行详细描述,但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
如图1所示的本发明一实施例中,本发明提供一种区分优先级的多主多备的快速重路由系统,所述系统包括CPU控制平面1和硬件数据平面2,其中,
所述CPU控制平面1包括:
路由协议模块10,用于运行多种路由协议,并基于每一种路由协议各自计算得到对应的路由信息,所述路由信息包括路由前缀、与所述路由前缀对应的多个下一跳,以及每一个下一跳所对应的路由管理距离;
路由管理模块11,用于根据所述路由信息生成所述路由前缀所对应的多个具有相同路由管理距离的下一跳ECMP组,并在所述多个下一跳ECMP组中根据路由管理的优先级选择主下一跳ECMP组和备下一跳ECMP组,将所述主下一跳ECMP组和备下一跳ECMP组构成一个FRR组;
所述硬件数据平面2,用于根据所述路由管理模块创建所述路由前缀,以及将主下一跳ECMP组创建为ECMP组类型的工作FEC条目,将备下一跳ECMP组创建为ECMP组类型的保护FEC条目,并根据所述FRR组创建对应的保护倒换FEC条目,将所述保护倒换FEC条目级联到下一级的工作FEC条目和保护FEC条目,并将所述路由前缀的下一跳设置为保护倒换FEC条目。
本发明中的网络设备可以是5G传送网设备,也可以是支持硬件三层转发平面的网络设备,包括PON设备、路由器、交换机、PTN、光传送网设备、状态监测防火墙设备、VPN网关设备等。本发明通过对路由管理模块进行逻辑扩展实现区分优先级的多主多备的快速重路由系统。该系统包括CPU控制平面和硬件数据平面,CPU控制平面包括路由协议模块和路由管理模块,通过软件进行控制管理。
路由协议模块运行着各种的上层路由协议软件,路由协议包括静态路由协议、BGP路由协议、OSPF路由协议、ISIS路由协议等。通过运行的路由协议或者用户的静态路由配置对当前的目的地子网进行路由计算,每一个路由协议会得到一个路由计算结果,将计算得到各个路由计算结果写入到路由管理模块中,路由计算结果包括目的地子网的网段(即路由前缀)、路由管理距离、可达的下一跳信息。不同的路由协议,对于相同的目的地址,可以独立计算出各自的不同路由转发结果。每一种路由协议在路由管理模块中的路由表写入路由信息时,都会携带有路由管理距离属性,比如OSPF是110,BGP是120.路由管理属性可由用户进行配置。
路由管理模块运行于CPU控制平面,路由管理模块根据路由协议模块计算得到各个路由计算结果,创建并维护路由表、下一跳表和FRR组表。根据所述路由信息创建路由表,路由表中的路由信息包括路由前缀、与所述路由前缀对应的多个下一跳,以及每一个下一跳所对应的路由管理距离。多个不同的路由前缀可以指向相同的下一跳,即多个不同的目的地可以指向相同的下一跳。下一跳包括下一跳出口接口名称和下一跳IP地址。使用等价路由ECMP资源,根据所述路由信息生成所述路由前缀所对应的多个下一跳ECMP组,将生成的多个下一跳ECMP组写入到下一跳表中的对应的表项中,将路由前缀与下一跳ECMP进行关联,其中,将去往同一个路由前缀的子网并且具有相同路由管理距离的多个下一跳构成一个下一跳ECMP组。比如,去往目的地10.10.10.0/24(路由前缀)的路由有两个下一跳1.1.1.1和2.2.2.2,其路由管理距离都等于110,则这两个下一跳1.1.1.1和2.2.2.2构成去往10.10.10.0/24的下一跳ECMP组。下一跳表中的表项还包括路由前缀所对应的下一跳,比如路由前缀的下一跳分别是NH1、NH2,那么在下一跳表中还包括NH1、NH2这两个表项。在所述FRR组表中创建多个FRR组,每一个FRR组均由主下一跳ECMP组和备下一跳ECMP组构成,其中,主下一跳ECMP组为具有最优路由优先级的下一跳ECMP组,备下一跳ECMP组为具有次优路由优先级的下一跳ECMP组,设置最小路由管理距离为最优路由优先级,以及设置次小路由管理距离为次优路由优先级。路由前缀对应的多个下一跳中,根据路由管理距离设置路由优先级,并基于该优先级设置FRR组表,即路由管理距离最小的下一跳ECMP组设置为主下一跳ECMP组,即主下一跳ECMP组中的多个下一跳对应为主路径,路由管理距离次小的下一跳ECMP组为设置备下一跳ECMP组,即备下一跳ECMP组的多个下一跳对应为备份路径。FRR组中的主下一跳ECMP组和备下一跳ECMP组可来源于同一个路由协议。优选的,FRR组中的主下一跳ECMP组和备下一跳ECMP组可来源于不同的路由协议。FRR组中成员的路由信息可以来自不同的路由协议,比如,FRR组中的主下一跳ECMP组的下一跳信息来自于BGP路由协议计算得到的,备下一跳ECMP组的下一跳信息来自于静态路由协议配置得到的。
根据该技术方案,FRR快速重路由的主路径和备路径都可以是ECMP组。在FRR组的ECMP组成员内,IP报文以负载均衡方式进行路由分担,在FRR组的成员下一跳之间,转发路径以主备方式进行保护倒换,无需手工配置每个链路的FRR组,路由管理模块根据路由优先级自动选择当前次优的下一跳ECMP组作为当前最优的下一跳ECMP组的备份路径,实现多主多备的自动化快速重路由系统。
根据本发明的一具体实施例,所述CPU控制平面包括驱动软件模块12,通过调用芯片的软件开发工具包SDK API接口,将所述路由管理模块中的路由表、下一跳FEC表以及FRR组表写入所述硬件数据平面。驱动软件模块通过支持不同的SDK可以支持不同硬件数据平面的硬件操作功能。驱动软件模块可以响应路由管理模块的调用,通过调用SDK的硬件操作功能,执行对交换芯片硬件路由表及下一跳资源的相应操作,改变报文在硬件数据平面的转发行为。
所述硬件数据平面根据所述路由管理模块中的路由表、下一跳FEC表以及RFF组表在驱动芯片中创建硬件路由表、下一跳FEC表和FEC保护倒换组表。本发明中硬件数据平面可以是ASIC芯片,也可以是支持三层转发机制的硬件平面,包括网络处理器、FPGA等。
所述硬件平面包括硬件路由表、下一跳FEC表和FEC保护倒换组表。根据所述核心管理模块中的路由表,通过SDK功能将路由表下发至驱动芯片中,在硬件路由表中创建多个路由前缀,即创建多个目的地址子网段。创建下一跳FEC(Forwarding Equivalent Class,转发等价类)表,根据所述路由管理模块中的下一跳表和FRR组表,将主下一跳ECMP组创建为ECMP组类型的工作FEC条目,将备下一跳ECMP组创建为ECMP组类型的保护FEC条目。芯片中没有路由管理距离的信息,路由管理模块根据路由管理距离优先级设定的ECMP组和FRR组来调用芯片SDK,在芯片中创建相应类型的FEC条目,在芯片中需要按照相同路由优选及进行负载均衡的FEC条目,组合成ECMP组类型的FEC条目。多个不同的路由前缀引用同一个保护倒换FEC条目。路由管理模块中的路由表中可能存在超过2个不同管理距离的多个ECMP下一跳组。例如,去往目的地1.1.1.0/24的路由在路由表中可能存在管理距离为10的静态路由下一跳(NH1,NH2),管理距离为110的OSPF路由下一跳(NH3,NH4),管理距离为150的BGP路由下一跳(NH5,NH6)。路由管理模块选择(NH1,NH2)构成的ECMP组1作为FRR的主路径,(NH3,NH4)构成的ECMP组2作为FRR的备路径,通过SDK下发到硬件转发平面,在下一跳FEC表中创建主ECMP组类型的FEC条目和备ECMP组类型的FEC条目。创建保护倒换FEC组表,根据所述FRR组表中的FRR组创建对应的保护倒换FEC条目,将所述保护倒换FEC条目级联到下一级的工作FEC条目和保护FEC条目,组合为FRR和ECMP组合类型的FEC条目。芯片对于路由命中ECMP组类型的FEC条目的报文可以基于配置的哈希算法进行负载均衡。利用芯片的FEC级联功能,一个保护倒换FEC组可以应用一主一备的两个下一级的FEC条目。
根据本发明的一具体实施例来对本发明进行详细说明。路由协议模块通过各种的路由协议进行路由计算,得到去往目的地IP为10.10.10.0/24的路由信息。路由管理模块将这些路由信息写入到路由表中,比如该目的IP对应的下一跳信息为:管理距离为10的静态路由下一跳(NH1,NH2);管理距离为110的OSPF路由下一跳(NH3,NH4);管理距离为150的BGP路由下一跳(NH5,NH6)。下一跳可由下一跳出口接口名称和下一跳IP地址等信息构成。路由管理模块选择(NH1,NH2)构成的ECMP group 1作为FRR的主路径,(NH3,NH4)构成的ECMPgroup 2作为FRR的备路径,并通过SDK下发到硬件数据转发平面。在路由表创建路由前缀为DIP1=10.10.10.0/24,并引用FRR Group1;下一跳表中创建由(NH1,NH2)构成的ECMP1,(NH3,NH4)构成的ECMP2,(NH5 NH6)构成的ECMP3;在FRR组中创建有(ECMP1,ECMP2)构成的FRR group1。通过SDK下发至芯片中,在芯片中创建芯片条目。在硬件路由表中创建路由前缀10.10.10.0/24,在下一跳FEC表中创建ECMP类型的芯片FEC条目工作FEC1=ECMP(NH1,NH2),创建ECMP类型的芯片FEC条目保护FEC2=ECMP(NH3,NH4)。在保护倒换FEC组表中创建保护倒换FEC条目FEC3=failover(FEC1,FEC2),将前缀10.10.10.0/24的下一跳设置为FEC3,它级联两个ECMP类型的FEC1和FEC2,由此芯片中完成了具有多主多备的FRR+ECMP下一跳的FEC条目。当转发报文在芯片中命中该路由10.10.10.0/24的时候,就会在NH1,NH2间哈希进行负载均衡,并且当发生保护倒换时,SDK能直接下发failover命令执行快速芯片倒换,倒换到ECMP(NH3,NH4)这一组。
根据本发明的一具体实施例,所述CPU控制平面包括下一跳可达性检测模块13,用于实时监测所述路由前缀的下一跳的up/down事件。所述路由管理模块根据下一跳的up/down事件,联动响应更新所述路由表中的下一跳信息,并当该下一跳信息导致所述下一跳表中的下一跳ECMP组发生变化时,执行如下操作:若下一跳ECMP组中的所有下一跳成员没有全部失效,则调用驱动软件模块中的SDK功能更新硬件数据转发平面中的下一跳FEC表中对应的工作FEC条目或保护FEC条目;若主下一跳ECMP组中的所有下一跳成员全部失效,则调用SDK向硬件转发平面的芯片执行FRR保护倒换指令,将芯片中的下一跳执行保护倒换,根据所述路由前缀对应的保护倒换FEC组执行保护倒换,切换到备ECMP组,从而实现无需上层路由协议软件参与的情况下,执行芯片层面的快速FRR主备倒换。当检测到up/down事件时,向路由协议模块通知下一跳接口up/down事件,所述路由协议模块当接收到下一跳的up/down事件的通知时,响应链路状态事件发生,重新计算所述路由前缀的路由信息,得到更新后的路由信息,并将更新后的路由信息发送到路由管理模块。所述路由管理模块根据更新后的路信息,更新所述路由表、下一跳表以及FRR组表。所述硬件数据平面通过SDK功能调用更新所述硬件路由表、下一跳FEC表以及保护倒换FEC组表。
优选的,所述下一跳可达性检测模块包括下一跳链路可达性检测表、下一跳地址可达性检测表以及下一跳ECMP组可达性检测表。所述下一跳可达性检测模块运行于CPU控制平面。所述下一跳链路可达性检测表,根据路由管理模块的请求创建相应的下一跳链路的可达性检测条目,对创建的下一跳链路进行实时的可达性检测,并在下一跳链路发生up/down事件时通知路由管理模块进行相应的联动响应。下一跳地址可达性检测表,根据路由管理模块的请求创建相应的下一跳IP地址的可达性检测条目,对创建的下一跳IP地址进行实时的可达性检测,并在下一跳IP地址发生up/down事件时通知路由管理模块进行相应的联动响应,用于检测下一跳IP地址是否可达的检测资源。典型的如BFD的OAM session,可以每下一跳自动创建。下一跳链路可达性检测用于实时检测下一跳是否失效,以保证FRR的亚秒级保护倒换。常规用下一跳接口up/down事件就可以检测下一跳IP是否可达,在一些特定网络场景中,例如下一跳出口和下一跳IP之间有二层交换机,则需要用到下一跳地址可达性检测条目。所述下一跳ECMP组可达性检测表,根据路由管理模块的请求创建相应的下一跳ECMP组的可达性检测条目,对创建的下一跳ECMP组进行实时的可达性检测,并在下一跳ECMP组发生up/down事件时通知路由管理模块进行相应的联动响应,用于检测ECMP包含的所有下一跳都失效的事件。当ECMP组中的所有下一跳都down时,所述下一跳可达性检测模块上报下一跳ECMP组down事件。
根据本发明的一实施例,本发明提供一种区分优先级的多主多备的快速重路由方法,所述方法包括:
运行多种路由协议,并基于每一种路由协议各自计算得到对应的路由信息,所述路由信息包括路由前缀、与所述路由前缀对应的多个下一跳,以及每一个下一跳所对应的路由管理距离;
根据所述路由信息生成所述路由前缀所对应的多个具有相同路由管理距离的下一跳ECMP组,并在所述多个下一跳ECMP组中根据路由管理的优先级选择主下一跳ECMP组和备下一跳ECMP组,将所述主下一跳ECMP组和备下一跳ECMP组构成一个FRR组;
在芯片中创建所述路由前缀,以及将主下一跳ECMP组创建为ECMP组类型的工作FEC条目,将备下一跳ECMP组创建为ECMP组类型的保护FEC条目,并根据所述FRR组创建对应的保护倒换FEC条目,将所述保护倒换FEC条目级联到下一级的工作FEC条目和保护FEC条目,并将所述路由前缀的下一跳设置为保护倒换FEC条目。
启动上层的路由协议,通过各种路由协议进行路由学习或者静态路由配置,计算得到当前路由的路由信息,所述路由信息包括路由前缀、与所述路由前缀对应的多个下一跳,以及每一个下一跳所对应的路由管理距离。
根据计算得到的路由信息创建并维护路由表,路由表中的路由信息包括路由前缀、与所述路由前缀对应的多个下一跳,以及每一个下一跳所对应的路由管理距离。根据所述路由信息创建并维护下一跳表,根据所述路由信息生成所述路由前缀所对应的多个下一跳ECMP组,并将下一跳ECMP组作为所述下一跳表的表项,其中,将去往同一个路由前缀的子网并且具有相同路由管理距离的多个下一跳构成一个下一跳ECMP组。具有相同路由管理距离的下一跳以ECMP组的形式在下一跳表中占据一行。创建FRR组表,在所述FRR组表中创建多个FRR组,每一个FRR组均由主下一跳ECMP组和备下一跳ECMP组构成,其中,主下一跳ECMP组为具有最优路由优先级的下一跳ECMP组,备下一跳ECMP组为具有次优路由优先级的下一跳ECMP组,设置最小路由管理距离为最优路由优先级,以及设置次小路由管理距离为次优路由优先级,所述路由前缀与对应的FRR组建立引用关系。FRR组表根据去往同一目的地的不同下一跳的路由优先级记录相应的主、备成员下一跳。这里的主、备成员下一跳可以是单个的下一跳、也可以是ECMP组。当路由信息变化时,对路由表、下一跳表和FRR组表进行更新和维护。如果路由的更新导致下一跳表中的下一跳或下一跳ECMP组出现增删变化,下一跳可达性检测模块则相应更新其检测的下一跳检测对象表。例如,动态路由学习到的新路由使用了新的下一跳ECMP组,则下一跳表中会新增相应ECMP组的下一跳条目,并在下一跳可达性模块中创建相应的下一跳ECMP up/down检测表。创建之后,系统会检测ECMP组中成员下一跳的可达性,并在整个ECMP成员端口不可达时,上报ECMP组不可达事件。
通过SDK功能在芯片中创建所述路由前缀,以及将主下一跳ECMP组创建为ECMP组类型的工作FEC条目,将备下一跳ECMP组创建为ECMP组类型的保护FEC条目,并根据所述FRR组创建对应的保护倒换FEC条目,将所述保护倒换FEC条目级联到下一级的工作FEC条目和保护FEC条目,并将所述路由前缀的下一跳设置为保护倒换FEC条目。
根据本发明的一具体实施例,所述方法还包括:
创建下一跳链路可达性检测表、下一跳地址可达性检测表以及下一跳ECMP组可达性检测表,当检测到下一跳可达性变化事件时,联动响应该事件,为达到亚秒级的快速重路由保护,ECMP组成员不可达与下一跳不可达检测都可以基于硬件检测高速实现,包括检测下一跳接口的linkdown事件;通过BFD检测下一跳IP地址的可达性等。
根据变化的下一跳或者下一跳ECMP组检索下一跳表,更新下一跳表中的下一跳可达性信息;
根据变化的下一跳或者下一跳ECMP组检索FRR组表,更新FRR组表中对应的主下一跳ECMP组或备下一跳ECMP组。例如,某个FRR组引用的备路径下一跳或备下一跳ECMP组从可达变为不可达,则需要从FRR group组表中删除相应的备路径信息。若相关下一跳未被当前创建的FRR组引用,则表明当前变化的下一跳在硬件路由表中当前没有使用,无需更新操作硬件路由表。
根据下一跳可达性变化信息检索FRR表,若该下一跳可达性变化导致FRR组的主路径发生变化,则调用SDK功能,对芯片的下一跳的保护倒换FEC条目执行1bit保护倒换命令,这里芯片执行1bit保护倒换时不需要再下发每一个子网路由前缀的详细信息,而是直接修改路由的下一跳。因此,如果指向这个FRR组的路由很多,则快速重路由方法可以间接地修改所有这些子网路由前缀的下一跳,从而实现与路由表规模无关的快速重路由。
通过SDK功能对芯片中的下一跳FEC表中的FEC条目进行更新。
通知路由协议软件下一跳可达性变化事件,执行路由重新计算。路由协议软件可以异步地响应路由下一跳的up/down事件执行相应的路由更新计算。
尽管为示例目的,已经公开了本发明的优选实施方式,但是本领域的普通技术人员将意识到,在不脱离由所附的权利要求书公开的本发明的范围和精神的情况下,各种改进、增加以及取代是可能的。
Claims (10)
1.一种区分优先级的多主多备的快速重路由系统,其特征在于,所述系统包括CPU控制平面和硬件数据平面,其中:
所述CPU控制平面包括:
路由协议模块,用于运行多种路由协议,并基于每一种路由协议各自计算得到对应的路由信息,所述路由信息包括路由前缀、与所述路由前缀对应的多个下一跳,以及每一个下一跳所对应的路由管理距离;
路由管理模块,用于根据所述路由信息生成所述路由前缀所对应的多个具有相同路由管理距离的下一跳ECMP组,并在所述多个下一跳ECMP组中根据路由管理的优先级选择主下一跳ECMP组和备下一跳ECMP组,将所述主下一跳ECMP组和备下一跳ECMP组构成一个FRR组;
所述硬件数据平面,用于根据所述路由管理模块创建所述路由前缀,以及将主下一跳ECMP组创建为ECMP组类型的工作FEC条目,将备下一跳ECMP组创建为ECMP组类型的保护FEC条目,并根据所述FRR组创建对应的保护倒换FEC条目,将所述保护倒换FEC条目级联到下一级的工作FEC条目和保护FEC条目,并将所述路由前缀的下一跳设置为保护倒换FEC条目。
2.如权利要求1所述的区分优先级的多主多备的快速重路由系统,其特征在于,所述路由管理模块包括:
路由表,根据所述路由信息创建路由表,所述路由信息包括路由前缀、与所述路由前缀对应的多个下一跳,以及每一个下一跳所对应的路由管理距离;下一跳表,根据所述路由信息生成所述路由前缀所对应的多个下一跳ECMP组,并将下一跳ECMP组作为所述下一跳表的表项,其中,将去往同一个路由前缀的子网并且具有相同路由管理距离的多个下一跳构成一个下一跳ECMP组;
FRR组表,在所述FRR组表中创建多个FRR组,每一个FRR组均由主下一跳ECMP组和备下一跳ECMP组构成,其中,主下一跳ECMP组为具有最优路由优先级的下一跳ECMP组,备下一跳ECMP组为具有次优路由优先级的下一跳ECMP组,设置最小路由管理距离为最优路由优先级,以及设置次小路由管理距离为次优路由优先级,所述路由前缀与对应的FRR组建立引用关系。
3.如权利要求2所述的区分优先级的多主多备的快速重路由系统,其特征在于,所述FRR组中的主下一跳ECMP组和备下一跳ECMP组来源于不同的路由协议。
4.如权利要求2所述的区分优先级的多主多备的快速重路由系统,其特征在于,所述硬件数据平面包括:
硬件路由表,在所述硬件路由表中创建所述路由前缀的路由项;
下一跳FEC表,根据所述下一跳表和FRR组表,将主下一跳ECMP组创建为ECMP组类型的工作FEC条目,将备下一跳ECMP组创建为ECMP组类型的保护FEC条目;
保护倒换FEC组表,根据所述FRR组表中的FRR组创建对应的保护倒换FEC条目,将所述保护倒换FEC条目级联到下一级的工作FEC条目和保护FEC条目,多个不同的路由前缀引用同一个保护倒换FEC条目。
5.如权利要求4所述的区分优先级的多主多备的快速重路由系统,其特征在于,所述CPU控制平面包括:
驱动软件模块,通过调用芯片的软件开发工具包SDKAPI接口,将所述路由管理模块中的路由表、下一跳FEC表以及FRR组表写入所述硬件数据平面。
6.如权利要求5所述的区分优先级的多主多备的快速重路由系统,其特征在于,所述CPU控制平面包括:
下一跳可达性检测模块,用于实时监测所述路由前缀的下一跳up/down事件,以及,
所述路由管理模块,根据下一跳up/down事件,联动响应更新所述路由表中的下一跳信息,并当该下一跳信息导致所述下一跳表中的下一跳ECMP组发生变化时,执行如下操作:
若下一跳ECMP组中的所有下一跳成员没有全部失效,则调用SDK更新所述下一跳FEC表中对应的工作FEC条目或保护FEC条目;若主下一跳ECMP组中的所有下一跳成员全部失效,则调用SDK向硬件转发平面的芯片执行FRR保护倒换指令,根据所述路由前缀对应的保护倒换FEC组执行保护倒换。
7.如权利要求6所述的区分优先级的多主多备的快速重路由系统,其特征在于,所述下一跳可达性检测模块包括:
下一跳链路可达性检测表,根据路由管理模块的请求创建相应的下一跳链路的可达性检测条目,对创建的下一跳链路进行实时的可达性检测,并在下一跳链路发生up/down事件时通知路由管理模块进行相应的联动响应;
下一跳地址可达性检测表,根据路由管理模块的请求创建相应的下一跳IP地址的可达性检测条目,对创建的下一跳IP地址进行实时的可达性检测,并在下一跳IP地址发生up/down事件时通知路由管理模块进行相应的联动响应;下一跳ECMP组可达性检测表,根据路由管理模块的请求创建相应的下一跳ECMP组的可达性检测条目,对创建的下一跳ECMP组进行实时的可达性检测,并在下一跳ECMP组发生up/down事件时通知路由管理模块进行相应的联动响应。
8.如权利要求7所述的区分优先级的多主多备的快速重路由系统,其特征在于,
所述路由协议模块,当接收到下一跳的up/down事件的通知时,重新计算所述路由前缀的路由信息,得到更新后的路由信息;
所述路由管理模块,根据更新后的路信息,更新所述路由表、下一跳表以及FRR组表;
所述硬件数据平面,通过SDK功能调用更新所述硬件路由表、下一跳FEC表以及保护倒换FEC组表。
9.一种区分优先级的多主多备的快速重路由方法,其特征在于,所述方法包括:
运行多种路由协议,并基于每一种路由协议各自计算得到对应的路由信息,所述路由信息包括路由前缀、与所述路由前缀对应的多个下一跳,以及每一个下一跳所对应的路由管理距离;
根据所述路由信息生成所述路由前缀所对应的多个具有相同路由管理距离的下一跳ECMP组,并在所述多个下一跳ECMP组中根据路由管理的优先级选择主下一跳ECMP组和备下一跳ECMP组,将所述主下一跳ECMP组和备下一跳ECMP组构成一个FRR组;
在芯片中创建所述路由前缀,以及将主下一跳ECMP组创建为ECMP组类型的工作FEC条目,将备下一跳ECMP组创建为ECMP组类型的保护FEC条目,并根据所述FRR组创建对应的保护倒换FEC条目,将所述保护倒换FEC条目级联到下一级的工作FEC条目和保护FEC条目,并将所述路由前缀的下一跳设置为保护倒换FEC条目。
10.如权利要求9所述的区分优先级的多主多备的快速重路由方法,其特征在于,所述方法还包括:。
创建下一跳链路可达性检测表、下一跳地址可达性检测表以及下一跳ECMP组可达性检测表,当检测到下一跳可达性变化事件时,联动响应该事件;
根据变化的下一跳或者下一跳ECMP组检索下一跳表,更新下一跳表中的下一跳可达性信息;
根据变化的下一跳或者下一跳ECMP组检索FRR组表,更新FRR组表中对应的主下一跳ECMP组或备下一跳ECMP组;
根据下一跳可达性变化信息检索FRR表,若该下一跳可达性变化导致FRR组的主路径发生变化,则调用SDK功能,对芯片的下一跳的保护倒换FEC条目执行1bit保护倒换命令;
通过SDK功能对芯片中的下一跳FEC表中的FEC条目进行更新;
通知路由协议软件下一跳可达性变化事件,执行路由重新计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110533478.0A CN113315699B (zh) | 2021-05-17 | 2021-05-17 | 一种区分优先级的多主多备快速重路由系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110533478.0A CN113315699B (zh) | 2021-05-17 | 2021-05-17 | 一种区分优先级的多主多备快速重路由系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113315699A true CN113315699A (zh) | 2021-08-27 |
CN113315699B CN113315699B (zh) | 2022-05-17 |
Family
ID=77373453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110533478.0A Active CN113315699B (zh) | 2021-05-17 | 2021-05-17 | 一种区分优先级的多主多备快速重路由系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113315699B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114785697A (zh) * | 2022-05-10 | 2022-07-22 | 杭州云合智网技术有限公司 | Ecmp组的可靠保护方法、存储介质 |
CN114884868A (zh) * | 2022-05-10 | 2022-08-09 | 杭州云合智网技术有限公司 | 基于ecmp组的链路保护方法 |
CN115955432A (zh) * | 2021-10-09 | 2023-04-11 | 北京三快在线科技有限公司 | 一种确定物理链路的方法、装置及电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030233595A1 (en) * | 2002-06-12 | 2003-12-18 | Cisco Technology, Inc. | Distinguishing between link and node failure to facilitate fast reroute |
CN101442494A (zh) * | 2008-12-16 | 2009-05-27 | 中兴通讯股份有限公司 | 一种实现快速重路由的方法 |
US20100260197A1 (en) * | 2009-04-09 | 2010-10-14 | Nortel Networks Limited | In-band signaling for point-multipoint packet protection switching |
CN102201964A (zh) * | 2010-03-22 | 2011-09-28 | 杭州华三通信技术有限公司 | 一种实现快速路径切换的方法和装置 |
CN103281253A (zh) * | 2013-05-27 | 2013-09-04 | 杭州华三通信技术有限公司 | 一种非等价路由的负载分担方法和设备 |
CN104486214A (zh) * | 2014-12-26 | 2015-04-01 | 杭州华三通信技术有限公司 | 实现rip快速重路由的方法和装置 |
CN106385362A (zh) * | 2016-08-30 | 2017-02-08 | 迈普通信技术股份有限公司 | 一种非负载均衡路由切换方法及装置 |
CN110011911A (zh) * | 2018-01-04 | 2019-07-12 | 中兴通讯股份有限公司 | 一种静态路由处理方法及装置 |
CN111092822A (zh) * | 2019-12-25 | 2020-05-01 | 安徽皖通邮电股份有限公司 | 一种vpls的pw线性保护转发负载均衡的方法 |
CN111953592A (zh) * | 2020-07-31 | 2020-11-17 | 新华三技术有限公司 | 等价链路收敛方法及装置 |
-
2021
- 2021-05-17 CN CN202110533478.0A patent/CN113315699B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030233595A1 (en) * | 2002-06-12 | 2003-12-18 | Cisco Technology, Inc. | Distinguishing between link and node failure to facilitate fast reroute |
CN101442494A (zh) * | 2008-12-16 | 2009-05-27 | 中兴通讯股份有限公司 | 一种实现快速重路由的方法 |
US20100260197A1 (en) * | 2009-04-09 | 2010-10-14 | Nortel Networks Limited | In-band signaling for point-multipoint packet protection switching |
CN102201964A (zh) * | 2010-03-22 | 2011-09-28 | 杭州华三通信技术有限公司 | 一种实现快速路径切换的方法和装置 |
CN103281253A (zh) * | 2013-05-27 | 2013-09-04 | 杭州华三通信技术有限公司 | 一种非等价路由的负载分担方法和设备 |
CN104486214A (zh) * | 2014-12-26 | 2015-04-01 | 杭州华三通信技术有限公司 | 实现rip快速重路由的方法和装置 |
CN106385362A (zh) * | 2016-08-30 | 2017-02-08 | 迈普通信技术股份有限公司 | 一种非负载均衡路由切换方法及装置 |
CN110011911A (zh) * | 2018-01-04 | 2019-07-12 | 中兴通讯股份有限公司 | 一种静态路由处理方法及装置 |
CN111092822A (zh) * | 2019-12-25 | 2020-05-01 | 安徽皖通邮电股份有限公司 | 一种vpls的pw线性保护转发负载均衡的方法 |
CN111953592A (zh) * | 2020-07-31 | 2020-11-17 | 新华三技术有限公司 | 等价链路收敛方法及装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115955432A (zh) * | 2021-10-09 | 2023-04-11 | 北京三快在线科技有限公司 | 一种确定物理链路的方法、装置及电子设备 |
CN115955432B (zh) * | 2021-10-09 | 2024-04-19 | 北京三快在线科技有限公司 | 一种确定物理链路的方法、装置及电子设备 |
CN114785697A (zh) * | 2022-05-10 | 2022-07-22 | 杭州云合智网技术有限公司 | Ecmp组的可靠保护方法、存储介质 |
CN114884868A (zh) * | 2022-05-10 | 2022-08-09 | 杭州云合智网技术有限公司 | 基于ecmp组的链路保护方法 |
CN114884868B (zh) * | 2022-05-10 | 2024-04-12 | 云合智网(上海)技术有限公司 | 基于ecmp组的链路保护方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113315699B (zh) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113315699B (zh) | 一种区分优先级的多主多备快速重路由系统及方法 | |
US8576721B1 (en) | Local forwarding bias in a multi-chassis router | |
EP2878100B1 (en) | System, method and apparatus for signaling and responding to ero expansion failure in inter domain te lsp | |
EP2645640B1 (en) | Oam label switched path for fast reroute of protected label switched paths | |
CN110535760B (zh) | 聚合接口的转发检测 | |
CN111478851B (zh) | 一种报文处理方法和装置 | |
US10439880B2 (en) | Loop-free convergence in communication networks | |
US9537756B2 (en) | Method for synchronized BGP and VRRP failover of a network device in a network | |
EP3306873B1 (en) | Routing method, and relevant device and system | |
US9832121B1 (en) | Next hop instruction associations for forwarding unit programming within a network device | |
US10904130B2 (en) | Method for scalable computer network partitioning | |
CN113992569A (zh) | Sdn网络中多路径业务收敛方法、装置及存储介质 | |
EP3637688B1 (en) | Method and device for determining link state | |
JP2015104042A (ja) | 転送装置、サーバ、および経路変更方法 | |
Papán et al. | Analysis of existing IP Fast Reroute mechanisms | |
US20180248785A1 (en) | Failure handling at logical routers according to a non-preemptive mode | |
US7869351B2 (en) | Communication techniques and generic layer 3 automatic switching protection | |
Kalyan et al. | Optimal selection of Dynamic Routing Protocol with real time case studies | |
US11374849B1 (en) | High availability router switchover decision using monitoring and policies | |
US9544225B2 (en) | Method for end point identification in computer networks | |
US11212221B1 (en) | Methods to improve ECMP for BGP services and BGP for provider edges with hybrid label distribution | |
Abujassar | Feasibility of IP by adaptive virtual routing in IGP networks to enhance services in cloud computing | |
JP2008166942A (ja) | ノード装置およびパス設定方法 | |
CN113507383A (zh) | 一种路由管理方法、装置、设备及机器可读存储介质 | |
CN118101552A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |