一种路由方法及设备与流程

文档序号:17481266发布日期:2019-04-20 06:28阅读:256来源:国知局
一种路由方法及设备与流程

本发明的实施例涉及计算机技术领域,尤其涉及一种路由方法及设备。



背景技术:

分段路由segmentrouting中的任播组anycastgroup是指在域中的多个节点上分配相同的前缀、相同segment。这样的前缀segment不标识特定节点,而标识一组节点。网络中要去往anycast地址的流量会被路由到anycastgroup中距离最近的那个成员。如果anycast集合的两个或更多个成员的距离相同,则流量将在这些距离相同的成员之间负载均衡,通过这一机制将流量分发给anycastgroup的所有成员。anycastgroup目前提供针对anycast集合的一个或多个成员的故障保护机制是当anycastgroup中的一个节点发生故障时,若anycastgroup中存在与发生故障的节点距离相同的其它节点,则流量将通过负载均衡的方法将流量全部引导到其它距离相同的节点上;否则,通过网络硬收敛的方法,在源节点上将anycastgroup的前缀和segment(sid)关联到其它的anycastgroup节点上,然后流量从原来的距离最近的成员迁移到故障情况后的距离最近的成员上。然而,传统的anycastgroup节点故障的路由方法主要依靠设备上的路由收敛过程,这一过程与网络复杂度、设备路由条目数、设备负载等有直接的关系,通常路由收敛时间为秒级。



技术实现要素:

本发明的实施例提供一种路由方法及设备,能够通过将设备信息数据库与多跳bfd联动,从而实现数据传输路径的快速切换。

为达到上述目的,本发明采用如下技术方案:

第一方面,提供一种路由方法,该方法包括:当源节点在第一优选路径中未接收到第一anycast成员发送的第一多跳bfd报文,确定第一anycast成员故障;其中,第一anycast成员为第一优选路径中的其中一个节点,第一优选路径为源节点至宿节点所用的数据传输路径;源节点根据第一宿节点前缀匹配设备信息数据库中的第二宿节点前缀确定至少一个备用路径,根据至少一个备用路径确定第二优选路径;其中第二优选路径为源节点至宿节点所用的数据传输路径;源节点根据第二优选路径获取第二anycast成员;其中第二anycast成员为第二优选路径中的其中一个节点;源节点通过第二anycast成员的出接口将数据发送至宿节点。

在上述方法中,当源节点确定第一anycast成员故障后;首先,根据第一宿节点前缀匹配设备信息数据库中的第二宿节点前缀确定至少一个备用路径,并根据至少一个备用路径确定第二优选路径;然后,根据第二优选路径获取第二anycast成员;最后,通过第二anycast成员的出接口将数据发送至宿节点。本发明实施例能够通过将设备信息数据库与多跳bfd联动,从而实现数据传输路径的快速切换。

第二方面,提供一种节点设备,该设备包括:处理单元,用于当接收单元在第一优选路径中未接收到第一anycast成员发送的第一多跳bfd报文,确定第一anycast成员故障;其中,第一anycast成员为第一优选路径中的其中一个节点,第一优选路径为源节点至宿节点所用的数据传输路径;处理单元,还用于根据第一宿节点前缀匹配设备信息数据库中的第二宿节点前缀确定至少一个备用路径,并根据至少一个备用路径确定第二优选路径;其中第二优选路径为源节点至宿节点所用的数据传输路径;处理单元,还用于根据第二优选路径获取第二anycast成员;其中第二anycast成员为第二优选路径中的其中一个节点;发送单元,用于通过处理单元获取的第二anycast成员的出接口将数据发送至宿节点。

可以理解地,上述提供的节点设备用于执行上文所提供的第一方面对应的方法,因此,其所能达到的有益效果可参考上文第一方面对应的方法以及下文具体实施方式中对应的方案的有益效果,此处不再赘述。

第三方面,提供了一种节点设备,该节点设备的结构中包括处理器和存储器,存储器用于与处理器耦合,保存该节点设备必要的程序指令和数据,处理器用于执行存储器中存储的程序指令,使得该节点设备执行第一方面的方法。

第四方面,提供一种计算机存储介质,计算机存储介质中存储有计算机程序代码,当计算机程序代码在如第三方面的节点设备上运行时,使得节点设备执行上述第一方面的方法。

第五方面,提供一种计算机程序产品,该计算机程序产品储存有上述计算机软件指令,当计算机软件指令在如第三方面的节点设备上运行时,使得节点设备执行如上述第一方面方案的程序。

附图说明

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明的实施例提供的一种数据传输路径的结构示意图;

图2为本发明的实施例提供的一种路由方法的流程示意图;

图3为本发明的实施例提供的一种节点设备的结构示意图;

图4为本发明的实施例提供的又一种节点设备的结构示意图;

图5为本发明的实施例提供的再一种节点设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。

还需要说明的是,本发明实施例中,“的(英文:of)”,“相应的(英文:corresponding,relevant)”和“对应的(英文:corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。

为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不是在对数量和执行次序进行限定。

分段路由segmentrouting中的任播组anycastgroup是指在域中的多个节点上分配相同的前缀、相同segment。这样的前缀segment不标识特定节点,而标识一组节点。网络中要去往anycast地址的流量会被路由到anycastgroup中距离最近的那个成员。如果anycast集合的两个或更多个成员的距离相同,则流量将在这些距离相同的成员之间负载均衡,通过这一机制将流量分发给anycastgroup的所有成员。anycastgroup目前提供针对anycast集合的一个或多个成员的故障保护机制是当anycastgroup中的一个节点发生故障时,若anycastgroup中存在与发生故障的节点距离相同的其它节点,则流量将通过负载均衡的方法将流量全部引导到其它距离相同的节点上;否则,通过网络硬收敛的方法,在源节点上将anycastgroup的前缀和segment(sid)关联到其它的anycastgroup节点上,然后流量从原来的距离最近的成员迁移到故障情况后的距离最近的成员上。

示例性的,如图1所述,总共有5个节点,节点的具体编号为1~5,共组成两条数据传输路径,分别为1~3~5以及1~2~4~5。假设所有数据传输路径的cost均相同。节点3和节点4组成anycastgroup,节点1欲向节点5发送数据包,节点1会优选anycastgroup中的节点3作为传输中间点,进而发送给节点5。若anycastgroup中的节点3发生故障,则节点1会通过路由收敛后,进而通过节点2选择anycastgroup中的节点4为传输中间点。然而,传统的路由收敛过程,与网络的复杂程度,设备上学习到的路由条目多少,设备负载情况有直接的关系,通常路由收敛时间是秒级。

基于上述技术背景以及现有技术存在的问题,参照图2,本发明实施例提供一种路由方法,该方法包括:

201、当源节点在第一优选路径中未接收到第一anycast成员发送的第一多跳bfd报文,确定第一anycast成员故障;其中,第一anycast成员为第一优选路径中的其中一个节点,第一优选路径为源节点至宿节点所用的数据传输路径。

202、源节点根据第一宿节点前缀匹配设备信息数据库中的第二宿节点前缀确定至少一个备用路径,并根据至少一个备用路径确定第二优选路径;其中第二优选路径为源节点至宿节点所用的数据传输路径。

具体的,源节点根据第一宿节点前缀匹配设备信息数据库中的第二宿节点前缀,确定第二宿节点前缀与第一宿节点前缀相同的至少一个备用路径,将至少一个备用路径中的最短路径作为第二优选路径。

示例性的,参照表1,对该设备信息数据库中所包含的条目解释如下:inlabel是指进入本端设备的数据包所带标签,outlabel是指从本端设备发出的数据包所带标签,prefix是指宿节点的地址前缀,sid是指宿节点的segmentid,outint是指到达宿节点的本端设备上的出接口,anycast-pre是指到达宿节点经过的anycastgroup的前缀(若路径上不经过anycastgroup,此字段与后面三个字段均置空),anycast-sid是指到达宿节点经过的anycastgroup的segmentid,priority是指本条条目是否为anycastgroup的优选路径,bfd是指本条条目上是否已经开启了到达anycastgroup的多跳bfd,其中,“1”表示“是”,“-”表示“否”。

表1203、源节点根据第二优选路径获取第二anycast成员;其中第二anycast成员为第二优选路径中的其中一个节点。

另外,在步骤203之后还包括:

源节点根据第二优选路径向第二anycast成员发送第二多跳bfd报文,并接收第二anycast成员返回的第三多跳bfd报文;其中第二多跳bfd报文与第三多跳bfd报文一一对应。

可选的,第一anycast成员与第二anycast成员属于同一anycast组。

204、源节点通过第二anycast成员的出接口将数据发送至宿节点。

为了更好的理解,结合表1以及图1,对上述步骤201~204进行示例性说明,表1中的outint对应的示例中的f1/1和f1/2为源节点与宿节点之间的数据传输路径;f1/1为优选路径。其中,f1/1可以理解为图1中所示的数据传输路径1~3~5;f1/2可以理解为图1所示的1~2~4~5,当图1的节点1欲与节点5发送数据包时(节点1为源节点,节点5为宿节点),根据距离最短的规则,节点1首选anycastgroup中的节点3进行路由转发,即数据传输路径是f1/1,经由1~3~5将数据包发送至节点5;具体包括:

s1、节点1向节点3发送多跳bfd报文。跳转至步骤s2。

s2、若节点1在3个周期未收到来自节点3的多跳bfd报文,则认为节点1与节点3之间的链路发生问题。跳转至步骤s3。

s3、节点1查找表1所示的设备信息数据库,查找到节点5的出接口还可以通过f1/2进行发送;跳转至步骤s4。

s4、节点1将数据包从f1/2发送出去,转发路径为1~2~4~5;同时,节点1与节点4交换多跳bfd报文。

基于上述步骤s1~s4,节点1完成anycastgroup中节点3发生故障的业务的保护倒换动作。

在上述方法中,当源节点确定第一anycast成员故障后;首先,根据第一宿节点前缀匹配设备信息数据库中的第二宿节点前缀确定至少一个备用路径,并根据至少一个备用路径确定第二优选路径;然后,根据第二优选路径获取第二anycast成员;最后,通过第二anycast成员的出接口将数据发送至宿节点。本发明实施例能够通过将设备信息数据库与多跳bfd联动,从而实现数据传输路径的快速切换。

参照图3,本发明实施例提供一种节点设备30,该节点设备30包括:

处理单元302,用于当接收单元301在第一优选路径中未接收到第一anycast成员发送的第一多跳bfd报文,确定第一anycast成员故障;其中,第一anycast成员为第一优选路径中的其中一个节点,第一优选路径为源节点至宿节点所用的数据传输路径。

处理单元302,还用于根据第一宿节点前缀匹配设备信息数据库中的第二宿节点前缀确定至少一个备用路径,并根据至少一个备用路径确定第二优选路径;其中第二优选路径为源节点至宿节点所用的数据传输路径。

处理单元302,还用于根据第二优选路径获取第二anycast成员;其中第二anycast成员为第二优选路径中的其中一个节点。

发送单元303,用于通过处理单元302获取的第二anycast成员的出接口将数据发送至宿节点。

在一种示例性的方案中,发送单元303,还用于根据第二优选路径向第二anycast成员发送第二多跳bfd报文;

接收单元301,还用于接收第二anycast成员返回的第三多跳bfd报文;其中第二多跳bfd报文与第三多跳bfd报文一一对应。

在一种示例性的方案中,第一anycast成员与第二anycast成员属于同一anycast组。

在一种示例性的方案中,处理单元302,具体用于根据第一宿节点前缀匹配设备信息数据库中的第二宿节点前缀,确定第二宿节点前缀与第一宿节点前缀相同的至少一个备用路径,将至少一个备用路径中的最短路径作为第二优选路径。

由于本发明实施例中的节点设备可以应用于实施上述方法实施例,因此,其所能获得的技术效果也可参考上述方法实施例,本发明实施例在此不再赘述。

在采用集成的单元的情况下,图4示出了上述实施例中所涉及的节点设备30的一种可能的结构示意图。节点设备30包括:处理模块401、通信模块402和存储模块403。处理模块401用于对节点设备30的动作进行控制管理,例如,处理模块401用于支持节点设备30执行图2中的过程201~203。通信模块402用于支持节点设备30与其他实体的通信。存储模块403用于存储节点设备30的程序代码和数据。

其中,处理模块401可以是处理器或控制器,例如可以是中央处理器(centralprocessingunit,cpu),通用处理器,数字信号处理器(digitalsignalprocessor,dsp),专用集成电路(application-specificintegratedcircuit,asic),现场可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等等。通信模块402可以是收发器、收发电路或通信接口等。存储模块403可以是存储器。

当处理模块401为如图5所示的处理器,通信模块402为图5的收发器,存储模块403为图5的存储器时,本申请实施例所涉及的节点设备30可以为如下的节点设备30。

参照图5所示,该节点设备30包括:处理器501、收发器502、存储器503和总线504。

其中,处理器501、收发器502、存储器503通过总线504相互连接;总线504可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

处理器501可以是一个通用中央处理器(centralprocessingunit,cpu),微处理器,特定应用集成电路(application-specificintegratedcircuit,asic),或一个或多个用于控制本申请方案程序执行的集成电路。

存储器503可以是只读存储器(read-onlymemory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(randomaccessmemory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。

其中,存储器503用于存储执行本申请方案的应用程序代码,并由处理器501来控制执行。收发器502用于接收外部设备输入的内容,处理器501用于执行存储器503中存储的应用程序代码,从而实现本申请实施例中的路由方法。

应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriberline,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solidstatedisk,ssd))等。

本发明实施例还提供一种计算机程序产品,该计算机程序产品可直接加载到存储器中,并含有软件代码,该计算机程序产品经由计算机载入并执行后能够实现上述的交易跟踪方法。

应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriberline,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solidstatedisk,ssd))等。

本发明实施例还提供一种计算机程序产品,该计算机程序产品可直接加载到存储器中,并含有软件代码,该计算机程序产品经由计算机载入并执行后能够实现上述的路由方法。

以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1