CN113872863B - 一种路径搜索方法及装置 - Google Patents
一种路径搜索方法及装置 Download PDFInfo
- Publication number
- CN113872863B CN113872863B CN202110981740.8A CN202110981740A CN113872863B CN 113872863 B CN113872863 B CN 113872863B CN 202110981740 A CN202110981740 A CN 202110981740A CN 113872863 B CN113872863 B CN 113872863B
- Authority
- CN
- China
- Prior art keywords
- routing
- node
- mask
- target
- address
- 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.)
- Active
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/74—Address processing for 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/24—Multipath
-
- 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/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- 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/54—Organization of routing tables
-
- 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
- H04L45/745—Address table lookup; Address filtering
-
- 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/70—Reducing energy consumption in communication networks in wireless communication networks
Abstract
本发明公开了一种路径搜索方法及装置,应用于目标电子设备,可以获得节点地址信息,其中,节点地址信息包括目标路由节点的第一IP地址和目的地节点的第二IP地址,在第一数据表中查找与第一IP地址对应的目标路由掩码集,利用布谷鸟过滤器,从目标路由掩码集中确定与节点地址信息相匹配的目标路由掩码,基于第二IP地址和目标路由掩码确定相应的目标路由前缀,基于第一IP地址、目标路由前缀和目标路由掩码。本发明可以查找出目标路由节点的下一跳节点,有利于实现对路由路径的搜索。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种路径搜索方法及装置。
背景技术
随着计算机技术的发展,网络路由技术不断提高。
当前,现有技术在进行网络数据传输的过程中,可以采用等价多路径(Equal-CostMultipathRouting,ECMP)路由协议,将数据包由源节点传输至目的地节点。其中,数据包在由源节点传输至目的地节点的过程中可以存在有多条路由路径,当传输过程中出现异常时,现有技术需要搜索所有的路由路径,从中确定导致异常的路由路径。
但是,现有技术无法有效实现对路由路径的搜索。
发明内容
鉴于上述问题,本发明提供一种克服上述问题或者至少部分地解决上述问题的路径搜索方法及装置,技术方案如下:
一种路径搜索方法,应用于目标电子设备,所述方法包括:
获得节点地址信息,其中,所述节点地址信息包括目标路由节点的第一IP地址和目的地节点的第二IP地址,所述目标路由节点为由源节点至所述目的地节点的路由路径上的一个路由节点;
在第一数据表中,查找与所述第一IP地址对应的目标路由掩码集,所述第一数据表中对应保存有节点IP地址和路由掩码集;
利用布谷鸟过滤器,从所述目标路由掩码集中确定与所述节点地址信息相匹配的目标路由掩码;
基于所述第二IP地址和所述目标路由掩码确定相应的目标路由前缀;
基于所述第一IP地址、目标路由前缀和所述目标路由掩码,在节点路由条目表中确定出所述目标路由节点的下一跳节点的节点标识,所述节点路由条目表中保存有多条节点路由条目,各所述节点路由条目中均对应保存有:节点IP地址、路由前缀、路由掩码和下一跳节点的节点标识。
可选的,在所述在节点路由条目表中确定所述目标路由节点的下一跳节点的节点标识之后,所述方法还包括:
将已确定的所述目标路由节点的下一跳节点确定为新的目标路由节点,返回执行所述获得节点地址信息的步骤,直至确定由所述源节点至所述目的地的所有路由路径上的全部路由节点;
依据所述全部路由节点间的上下跳关系,确定由所述源节点至所述目的地的所有路由路径。
可选的,所述利用布谷鸟过滤器,从所述目标路由掩码集中确定与所述节点地址信息相匹配的目标路由掩码,包括:
利用布谷鸟过滤器,从所述目标路由掩码集中确定出与所述节点地址信息相匹配的至少一个路由掩码;
按照路由掩码最长匹配原则,在与所述节点地址信息相匹配的各路由掩码中,将最长路由掩码确定为所述目标路由掩码。
可选的,所述利用布谷鸟过滤器,从所述目标路由掩码集中确定出与所述节点地址信息相匹配的至少一个路由掩码,包括:
将所述目标路由掩码集中的一个路由掩码确定为当前处理掩码;
基于所述第一IP地址和当前处理掩码,从第二数据表中确定出目标布谷鸟过滤器的过滤器标识,所述第二数据表中对应保存有路由节点IP地址、路由掩码和布谷鸟过滤器的过滤器标识,所述目标布谷鸟过滤器中保存有从目标路由节点的北向接口中获得的与当前处理掩码对应的至少一条路由前缀;
指令所述目标布谷鸟过滤器,以使得所述目标布谷鸟过滤器查找自身保存的全部路由前缀中是否存在有对象路由前缀,如果是,则将当前处理掩码确定为与所述节点地址信息相匹配的一个路由掩码,所述路由前缀为当前掩码,所述对象路由前缀为基于当前处理掩码和所述第二IP地址所获得的路由前缀;
返回执行所述将所述目标路由掩码集中的一个路由掩码确定为当前处理掩码的步骤,直至确定出与所述节点地址信息相匹配的全部路由掩码。
可选的,所述方法还包括:
分别从各节点的北向接口上获得各节点的路由条目,各节点的路由条目中均对应保存有:节点IP地址、路由前缀、路由掩码和下一跳节点的节点标识;
基于已获得的各节点的路由条目,创建所述节点路由条目表。
可选的,所述方法还包括:
从所述节点路由条目表中,分别确定各节点IP地址对应的路由掩码;
分别在各节点IP地址对应的路由掩码中进行去重处理,以分别确定各节点IP地址对应的至少一个去重处理后掩码;
分别将各节点IP地址对应的所有去重处理后掩码组合为一个路由掩码集,以确定各节点IP地址对应的路由掩码集;
基于已确定的各节点IP地址对应的路由掩码集,创建所述第一数据表。
可选的,所述方法还包括:
将节点IP地址和路由掩码均相同的所有路由条目,确定为一个目标路由条目组;
针对所述目标路由条目组,创建相应的布谷鸟过滤器;
将所述目标路由条目组中各条路由条目的路由前缀,均保存至已创建好的与所述目标路由条目组对应的布谷鸟过滤器中;
返回执行所述将节点IP地址和路由掩码均相同的路由条目,确定为目标路由条目组的步骤,直至获得所有的目标路由条目组和相应的已保存好路由前缀的布谷鸟过滤器;
将所有相对应的节点IP地址、路由掩码和已保存好路由前缀的布谷鸟过滤器的过滤器标识,确定为所述第二数据表。
一种路径搜索装置,应用于目标电子设备,所述装置包括:第一获得单元、第一查找单元、第一确定单元、第二确定单元和第三确定单元;其中:
所述第一获得单元,被配置为执行:获得节点地址信息,其中,所述节点地址信息包括目标路由节点的第一IP地址和目的地节点的第二IP地址,所述目标路由节点为由源节点至所述目的地节点的路由路径上的一个路由节点;
所述第一查找单元,被配置为执行:在第一数据表中,查找与所述第一IP地址对应的目标路由掩码集,所述第一数据表中对应保存有节点IP地址和路由掩码集;
所述第一确定单元,被配置为执行:利用布谷鸟过滤器,从所述目标路由掩码集中确定与所述节点地址信息相匹配的目标路由掩码;
所述第二确定单元,被配置为执行:基于所述第二IP地址和所述目标路由掩码确定相应的目标路由前缀;
所述第三确定单元,被配置为执行:基于所述第一IP地址、目标路由前缀和所述目标路由掩码,在节点路由条目表中确定出所述目标路由节点的下一跳节点的节点标识,所述节点路由条目表中保存有多条节点路由条目,各所述节点路由条目中均对应保存有:节点IP地址、路由前缀、路由掩码和下一跳节点的节点标识。
可选的,所述装置还包括:第四确定单元、第一触发单元和第五确定单元,其中:
所述第四确定单元,被配置为执行:在所述在节点路由条目表中确定所述目标路由节点的下一跳节点的节点标识之后,将已确定的所述目标路由节点的下一跳节点确定为新的目标路由节点;
所述第一触发单元,被配置为执行:触发所述第一获得单元,直至确定由所述源节点至所述目的地的所有路由路径上的全部路由节点;
所述第五确定单元,被配置为执行:依据所述全部路由节点间的上下跳关系,确定由所述源节点至所述目的地的所有路由路径。
可选的,所述第一确定单元,包括:第六确定单元和第七确定单元;
所述第六确定单元,被配置为执行:利用布谷鸟过滤器,从所述目标路由掩码集中确定出与所述节点地址信息相匹配的至少一个路由掩码;
所述第七确定单元,被配置为执行:按照路由掩码最长匹配原则,在与所述节点地址信息相匹配的各路由掩码中,将最长路由掩码确定为所述目标路由掩码。
可选的,所述第六确定单元,包括:第八确定单元、第九确定单元、第二查找单元、第十确定单元和第二触发单元;
所述第八确定单元,被配置为执行:将所述目标路由掩码集中的一个路由掩码确定为当前处理掩码;
所述第九确定单元,被配置为执行:基于所述第一IP地址和当前处理掩码,从第二数据表中确定出目标布谷鸟过滤器的过滤器标识,所述第二数据表中对应保存有路由节点IP地址、路由掩码和布谷鸟过滤器的过滤器标识,所述目标布谷鸟过滤器中保存有从目标路由节点的北向接口中获得的与当前处理掩码对应的至少一条路由前缀;
所述第二查找单元,被配置为执行:指令所述目标布谷鸟过滤器,以使得所述目标布谷鸟过滤器查找自身保存的全部路由前缀中是否存在有对象路由前缀,如果是,则触发所述第十确定单元;
所述第十确定单元,被配置为执行:将当前处理掩码确定为与所述节点地址信息相匹配的一个路由掩码,所述路由前缀为当前掩码,所述对象路由前缀为基于当前处理掩码和所述第二IP地址所获得的路由前缀;
所述第二触发单元,被配置为执行:触发所述第八确定单元,直至确定出与所述节点地址信息相匹配的全部路由掩码。
可选的,所述装置还包括:第二获得单元和第一创建单元;
所述第二获得单元,被配置为执行:分别从各节点的北向接口上获得各节点的路由条目,各节点的路由条目中均对应保存有:节点IP地址、路由前缀、路由掩码和下一跳节点的节点标识;
所述第一创建单元,被配置为执行:基于已获得的各节点的路由条目,创建所述节点路由条目表。
可选的,所述装置还包括:掩码确定单元、去重处理单元、组合单元和第二创建单元;
所述掩码确定单元,被配置为执行:从所述节点路由条目表中,分别确定各节点IP地址对应的路由掩码;
所述去重处理单元,被配置为执行:分别在各节点IP地址对应的路由掩码中进行去重处理,以分别确定各节点IP地址对应的至少一个去重处理后掩码;
所述组合单元,被配置为执行:分别将各节点IP地址对应的所有去重处理后掩码组合为一个路由掩码集,以确定各节点IP地址对应的路由掩码集;
所述第二创建单元,被配置为执行:基于已确定的各节点IP地址对应的路由掩码集,创建所述第一数据表。
可选的,所述装置还包括:条目组确定单元、第三创建单元、保存单元、第三触发单元和数据表确定单元;
所述条目组确定单元,被配置为执行:将节点IP地址和路由掩码均相同的所有路由条目,确定为一个目标路由条目组;
所述第三创建单元,被配置为执行:针对所述目标路由条目组,创建相应的布谷鸟过滤器;
所述保存单元,被配置为执行:将所述目标路由条目组中各条路由条目的路由前缀,均保存至已创建好的与所述目标路由条目组对应的布谷鸟过滤器中;
所述第三触发单元,被配置为执行:触发所述条目组确定单元,直至获得所有的目标路由条目组和相应的已保存好路由前缀的布谷鸟过滤器;
所述数据表确定单元,被配置为执行:将所有相对应的节点IP地址、路由掩码和已保存好路由前缀的布谷鸟过滤器的过滤器标识,确定为所述第二数据表。
本发明提出的路径搜索方法及装置,应用于目标电子设备,可以获得节点地址信息,其中,所述节点地址信息包括目标路由节点的第一IP地址和目的地节点的第二IP地址,所述目标路由节点为由源节点至所述目的地节点的一条待搜索路由路径上的一个路由节点,在第一数据表中,查找与所述第一IP地址对应的目标路由掩码集,所述第一数据表中对应保存有节点IP地址和路由掩码集,利用布谷鸟过滤器,从所述目标路由掩码集中确定与所述节点地址信息相匹配的目标路由掩码,基于所述第二IP地址和所述目标路由掩码确定相应的目标路由前缀,基于所述第一IP地址、目标路由前缀和所述目标路由掩码,在节点路由条目表中确定出所述目标路由节点的下一跳节点的节点标识,所述节点路由条目表中保存有多条节点路由条目,各所述节点路由条目中均对应保存有:节点IP地址、路由前缀、路由掩码和下一跳节点的节点标识。本发明可以查找出目标路由节点的下一跳节点,有利于实现对路由路径的搜索。
上述说明仅是本发明技术方案的概述,为了能够更清楚地了解本发明的技术手段,可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1示出了本发明实施例提供的第一种路径搜索方法的流程图;
图2示出了本发明实施例提供的一种多重ECMP的结构示意图;
图3示出了本发明实施例提供的第二种路径搜索方法的流程图;
图4示出了本发明实施例提供的第三种路径搜索方法的流程图;
图5示出了本发明实施例提供的第一种路径搜索装置的结构示意图;
图6示出了本发明实施例提供的第二种路径搜索装置的结构示意图;
图7示出了本发明实施例提供的第三种路径搜索装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
如图1所示,本实施例提出了第一种路径搜索方法,该方法可以应用于目标电子设备,该方法可以包括以下步骤:
S101、获得节点地址信息,其中,所述节点地址信息包括目标路由节点的第一IP地址和目的地节点的第二IP地址,所述目标路由节点为由源节点至所述目的地节点的一条路由路径上的一个路由节点;
其中,目标电子设备可以为一个电子设备,也可以包括多个电子设备。需要说明的是,电子设备可以为台式电脑、手机或平板电脑等网络设备。
其中,目标路由节点可以为在由源节点至目的地节点的路由路径上的一个非源节点且非目的地节点的路由节点。
其中,第一IP地址可以为目标路由节点的IP地址,第二IP地址可以为目的地节点的第二IP地址。
需要说明的是,本发明可以基于网络路由架构的规范,来确定源节点在一条待搜索路由路径上的下一跳节点。
具体的,本发明可以先行将源节点在待搜索路由路径上的下一跳节点作为目标路由节点,并执行图1所示方法,确定目标路由节点的下一跳节点,之后再将已确定出的目标路由节点的下一跳节点作为新的目标路由节点,再执行图1所示方法……依次循环直至确定该条待搜索路径上的全部路由节点,完成对该条待搜索路径的搜索。
还需要说明的是,在ECMP路由协议中,源节点至目的地节点间可以包括多重ECMP,而每一重ECMP均可以包括一个或多个路由节点。如图2所示,源节点至目的地节点间可以包括三重ECMP,第一重、第二重和第三重中均可以包括四个路由节点。
可以理解的是,本发明可以将任一重ECMP中的任一路由节点作为上述目标路由节点,执行图1所示方法,以确定由源节点至目的地节点的所有可能存在的路由路径,实现对所有路由路径的覆盖搜索,避免对路由路径的搜索错漏。
S102、在第一数据表中,查找与所述第一IP地址对应的目标路由掩码集,所述第一数据表中对应保存有节点IP地址和路由掩码集;
其中,目标路由掩码集可以是在目标路由节点中保存的所有路由条目中的路由掩码的集合。
其中,路由条目可以记录目标节点将数据包路由至下一跳节点的路由信息,该路由信息可以包括目标节点IP地址、路由前缀、路由掩码和下一跳节点的节点标识。
需要说明的是,本发明可以通过从各节点的北向接口中获得各节点的所有路由条目,基于各节点的所有路由条目来创建上述第一数据表。可选的,上述方法还可以包括:
分别从各节点的北向接口上获得各节点的路由条目,各节点的路由条目中均对应保存有:节点IP地址、路由前缀、路由掩码和下一跳节点的节点标识;
基于已获得的各节点的路由条目,创建所述节点路由条目表。
具体的,本发明可以将各节点的路由条目整体确定为节点路由条目表。比如,节点路由条目表可以为下述表1。
表1节点路由条目表
节点IP地址 | 路由前缀 | 路由掩码 | 下一跳节点的节点标识 |
10.1.1.1 | 172.16.0.0 | 16 | C、D、E、F |
10.1.1.2 | 171.0.0.0 | 8 | G |
10.1.1.3 | 172.16.1.0 | 24 | H、F |
可以理解的是,表1中的每一行均可以为一条路由条目。
可选的,上述方法在创建出节点路由条目表后,还可以包括:
从所述节点路由条目表中,分别确定各节点IP地址对应的路由掩码;
分别在各节点IP地址对应的路由掩码中进行去重处理,以分别确定各节点IP地址对应的至少一个去重处理后掩码;
分别将各节点IP地址对应的所有去重处理后掩码组合为一个路由掩码集,以确定各节点IP地址对应的路由掩码集;
基于已确定的各节点IP地址对应的路由掩码集,创建所述第一数据表。
其中,节点IP地址在节点路由条目表中对应的所有路由条目中的路由掩码,即为节点IP地址对应的路由掩码。比如,某个节点IP地址{10.1.1.1}在节点路由条目表中对应有五条路由条目,这四条路由条目中的路由掩码分别为8、8、10、16和16,则该节点IP地址{10.1.1.1}在节点路由条目表中对应的路由掩码即为8、8、10、16和16。
具体的,本发明在确定各节点IP地址对应的全部路由掩码后,可以分别进行去重处理,整理出各节点的IP地址对应的路由掩码集。比如,对于上述节点IP地址{10.1.1.1},本发明可以对其对应的路由掩码8、8、10、16和16进行去重处理,确定该节点IP地址对应的去重处理后掩码为8、10和16,从而确定该节点IP地址对应的路由掩码集为{8,10,16}。
具体的,本发明可以在确定各节点的IP地址对应的路由掩码集后,可以基于各节点的IP地址对应的路由掩码集创建第一数据表。比如,第一数据表可以为:{"10.1.1.1":[8,10,16],"10.1.1.2":[8,10,16,20],"10.1.1.3":[8,10,16,20,21]}。
具体的,本发明可以在确定目标路由节点的第一IP地址时,即可以根据第一IP地址在第一数据表中确定出相应的路由掩码集,即上述目标路由掩码集。
S103、利用布谷鸟过滤器,从所述目标路由掩码集中确定与所述节点地址信息相匹配的目标路由掩码;
需要说明的是,本发明可以通过应用布谷鸟过滤器,从目标路由掩码集中确定与由源节点至目的地节点的路由路径相匹配的目标路由掩码。
可选的,如图3所示,在本实施例提出的第二种路径搜索方法中,步骤S103可以包括步骤S201和S202,其中:
S201、利用布谷鸟过滤器,从所述目标路由掩码集中确定出与所述节点地址信息相匹配的至少一个路由掩码;
具体的,本发明可以先行通过应用布谷鸟过滤器,从目标路由掩码集中确定与由源节点至目的地节点的路由路径相匹配的全部路由掩码,之后从确定出的全部路由掩码中确定目标路由掩码。
可选的,本发明在创建出上述节点路由条目表后,可以先行基于节点路由条目表创建布谷鸟过滤器和第二数据表,之后可以基于第二数据表和布谷鸟过滤器来确定与节点地址信息相匹配的全部路由掩码。
可选的,在创建出上述节点路由条目表后,上述方法还可以包括:
将节点IP地址和路由掩码均相同的所有路由条目,确定为一个目标路由条目组;
针对所述目标路由条目组,创建相应的布谷鸟过滤器;
将所述目标路由条目组中各条路由条目的路由前缀,均保存至已创建好的与所述目标路由条目组对应的布谷鸟过滤器中;
返回执行所述将节点IP地址和路由掩码均相同的路由条目,确定为目标路由条目组的步骤,直至获得所有的目标路由条目组和相应的已保存好路由前缀的布谷鸟过滤器;
将所有相对应的节点IP地址、路由掩码和已保存好路由前缀的布谷鸟过滤器,确定为所述第二数据表。
其中,一个路由条目组可以由节点路由条目表中节点IP地址和路由掩码均一致的所有路由条目构成。比如,如果节点路由条目组中包括有节点IP地址同为第三IP地址、路由掩码同为第一路由掩码的三条路由条目,则本发明可以将该三条路由条目整体确定为第一路由条目组。
其中,本发明可以分别基于各路由条目组,创建出相应的布谷鸟过滤器。比如,当路由条目组包括有第一路由条目组和第二路由条目组时,本发明可以基于第一路由条目组创建出第一布谷鸟过滤器,基于第二路由条目组创建出第二布谷鸟过滤器。
具体的,本发明可以将路由条目组中各条路由条目的路由前缀均保存至相应的布谷鸟过滤器中。比如,对于上述创建出的相对应的第一路由条目组和第一布谷鸟过滤器,本发明可以将第一路由条目组中的三条路由条目中的路由前缀均保存至第一布谷鸟过滤器中。
可以理解的是,本发明可以基于所有相对应的路由条目组和已保存路由前缀的布谷鸟过滤器,来创建对应保存有节点IP地址、路由掩码和已保存好路由前缀的布谷鸟过滤器的过滤器标识的第二数据表。比如,对于上述创建出的相对应的第一路由条目组和第一布谷鸟过滤器,本发明可以在第二数据表中对应保存有上述第三IP地址、上述第一路由掩码和上述已保存路由前缀的第一布谷鸟过滤器的过滤器标识。再比如,第二数据表可以为:{"10.1.1.1-8":布谷鸟过滤器1,"10.1.1.1-10":布谷鸟过滤器2,"10.1.1.1-16":布谷鸟过滤器3,"10.1.1.1-20":布谷鸟过滤器4,"10.1.1.1-21":布谷鸟过滤器5,"10.1.1.1-22":布谷鸟过滤器6},该第二数据表中各元素的数据结构即可以为"节点IP地址-掩码":布谷鸟过滤器的过滤器标识。
需要说明的是,布谷鸟过滤器的过滤器标识可以由数字、汉字和字母等字符中的一种或几种构成,本发明对此不做限定。
具体的,本发明可以利用第二数据表和已保存路由前缀的布谷鸟过滤器,来从目标掩码集中确定出与节点地址信息相匹配的所有路由掩码。可选的,步骤S201可以包括:
将所述目标路由掩码集中的一个路由掩码确定为当前处理掩码;
基于所述第一IP地址和当前处理掩码,从第二数据表中确定出目标布谷鸟过滤器的过滤器标识,所述第二数据表中对应保存有路由节点IP地址、路由掩码和布谷鸟过滤器的过滤器标识,所述目标布谷鸟过滤器中保存有从目标路由节点的北向接口中获得的与当前处理掩码对应的至少一条路由前缀;
指令所述目标布谷鸟过滤器,以使得所述目标布谷鸟过滤器查找自身保存的全部路由前缀中是否存在有对象路由前缀,如果是,则将当前处理掩码确定为与所述节点地址信息相匹配的一个路由掩码,所述路由前缀为当前掩码,所述对象路由前缀为基于当前处理掩码和所述第二IP地址所获得的路由前缀;
返回执行所述将所述目标路由掩码集中的一个路由掩码确定为当前处理掩码的步骤,直至确定出与所述节点地址信息相匹配的全部路由掩码。
其中,本发明可以基于当前处理掩码和第二IP地址确定相应的对象路由前缀。比如,当第二IP地址为176.16.1.1,当前处理掩码为16时,本发明可以确定对象路由前缀为176.16.0.0。
需要说明的是,对于目标路由掩码集中的任一路由掩码,本发明均可以将其确定为当前处理掩码,之后从第二数据表中确定与第一IP地址和该当前处理掩码相对应的过滤器标识,获得该过滤器标识对应的布谷鸟过滤器,在该布谷鸟过滤器保存的全部路由前缀中查找是否存在有对象路由前缀,如果存在,则可以将当前处理掩码确定为与所述节点地址信息相匹配的一个路由掩码,否则可以将当前处理掩码确定为与节点地址信息不匹配的路由掩码。比如,如果当前处理掩码为16,第二IP地址为176.10.1.1,本发明可以从第二数据表中确定与第一IP地址和路由掩码16对应的过滤器标识,获得该过滤器标识对应的布谷鸟过滤器,在该布谷鸟过滤器保存的全部路由前缀中查找是否存在对象路由前缀176.16.0.0,如果存在,则确定当前处理掩码16为与所述节点地址信息相匹配的一个路由掩码。
S202、按照路由掩码最长匹配原则,在与所述节点地址信息相匹配的各路由掩码中,将最长路由掩码确定为所述目标路由掩码。
具体的,本发明可以将与所述节点地址信息相匹配的全部路由掩码中的最长路由掩码,确定为目标路由掩码。
S104、基于所述第二IP地址和所述目标路由掩码确定相应的目标路由前缀;
具体的,目标路由前缀即可以为基于第二IP地址和目标路由掩码所确定的对象路由前缀。比如,当第二IP地址为176.16.1.1,目标路由掩码为16时,本发明可以确定目标路由前缀为176.16.0.0。
S105、基于所述第一IP地址、目标路由前缀和所述目标路由掩码,在节点路由条目表中确定出所述目标路由节点的下一跳节点的节点标识,所述节点路由条目表中保存有多条节点路由条目,各所述节点路由条目中均对应保存有:节点IP地址、路由前缀、路由掩码和下一跳节点的节点标识。
具体的,本发明可以在确定目标路由前缀之后,基于第一IP地址、目标路由前缀和目标路由掩码,在已创建出的节点路由条目表中查找目标路由节点的下一跳节点的节点标识,确定目标路由节点的下一跳节点。
可以理解的是,本发明查找出的目标路由节点的下一跳节点可以包括一个或多个路由节点。比如,当目标路由节点为A时,本发明可以查找出的A的下一跳节点可以包括路由节点C、D、E和F。
需要说明的是,本发明通过图1所示方法,可以查找出目标路由节点的下一跳节点,有利于实现对路由路径的搜索。
可选的,本发明可以在三层路由的物理网络架构中提高对路由路径的搜索能力。本发明在从所述目标路由掩码集中确定目标路由掩码时,可以通过一次并发查询的方式来进行查找确定,提高确定速率。本发明通过使用布谷鸟过滤器,可以实现频繁的路由增删的操作。
可选的,本发明可以在节点路由条目表中,使用map数据结构来存储各条路由条目,使得路由搜索与Linux内核路由查找算法复杂度一致。本发明在节点路由条目表、第一数据表和第二数据表足够复杂时,路由路径搜索能力可以优于linux内核。
还需要说明的是,现有技术可以通过登录对应源节点IP地址的网关设备进行traceroute(一种通过递增ttl的方式来获取所有的节点路径的工具)来探测点对点的整体路径的走向。但是,现有技术在面对大型网络的多重ECMP以及Virtual IP地址(有多个节点具有同样IP地址)作为目的地IP址的情况下,查询速度慢,可能无法覆盖所有路径,且大量的同时查询也会对网络设备造成影响。另,现有技术在单个节点上仅可以实现对下一跳节点的搜索,而无法对下一跳节点之后的节点进行搜索,对路由路径搜索能力有限,无法适应大量路由的计算。当源节点与目的地节点间具有多层路由节点时,现有技术无法在单个节点上实现对路由路径的搜索。
可以理解的是,本发明可以在面对大型网络的多重ECMP以及Virtual IP地址,可以通过执行图1所示方法,实现对源节点与目的地节点间的全部路由节点进行搜索。且,本发明在单台网络设备上即可以通过执行图1所示方法(此时目标电子设备为一个电子设备),实现对源节点与目的地节点间的全部路由节点进行搜索,具有对大量路由进行计算的能力,可以有效提高对路由路径的搜索能力。
当然,本发明也可以通过利用多台网络设备,来执行图1所示方法,在进行并行路由计算的情况下实现对路由路径的搜索(此时目标电子设备包括多个电子设备)。可以理解的是,相比于仅利用单台网络设备的方式,利用多台网络设备的方式可以具有更丰富的网络资源,可以具有更强的路由计算能力,可以进一步的提高路由路径搜索能力。
还需要说明的是,本发明在对单个节点进行路由查询的过程中,可以分别在上述节点路由条目表、第一数据表和第二数据表中进行查找,其中,在第一数据表中只是一次获取,时间复杂度是O(1),在第二数据表中是一次并发查询,时间复杂度是O(1),在布谷鸟过滤器中进行过滤(也是hash)的时间复杂度也是O(1),在节点路由条目表中也是一次获取,时间复杂度也是O(1),因此总的时间复杂度计算是O(1)。
其中,本发明可以通过使用redis cluster集群,将上述节点路由条目表、第一数据表和第二数据表中存储的数据分布式的存储在外部存储系统上,提高全局路由查询效率和高可用性,实现水平扩展能力。
其中,本发明在上述节点路由条目表、第一数据表和第二数据表中保存数据所使用的数据结构,使得后续在面向ipv6进行路由演进的过程中,路由搜索的时间也不会有明显的变化。
本实施例提出的路径搜索方法,可以获得节点地址信息,其中,所述节点地址信息包括目标路由节点的第一IP地址和目的地节点的第二IP地址,所述目标路由节点为由源节点至所述目的地节点的一条待搜索路由路径上的一个路由节点,在第一数据表中,查找与所述第一IP地址对应的目标路由掩码集,所述第一数据表中对应保存有节点IP地址和路由掩码集,利用布谷鸟过滤器,从所述目标路由掩码集中确定与所述节点地址信息相匹配的目标路由掩码,基于所述第二IP地址和所述目标路由掩码确定相应的目标路由前缀,基于所述第一IP地址、目标路由前缀和所述目标路由掩码,在节点路由条目表中确定出所述目标路由节点的下一跳节点的节点标识,所述节点路由条目表中保存有多条节点路由条目,各所述节点路由条目中均对应保存有:节点IP地址、路由前缀、路由掩码和下一跳节点的节点标识。本发明可以查找出目标路由节点的下一跳节点,有利于实现对路由路径的搜索。
基于图1所示步骤,如图4所示,本实施例提出第三种路径搜索方法,该方法在步骤S105之后,还可以包括以下步骤:
S301、将已确定的所述目标路由节点的下一跳节点确定为新的目标路由节点,返回执行所述获得节点地址信息的步骤,直至确定由所述源节点至所述目的地的所有路由路径上的全部路由节点;
其中,本发明可以在确定出目标路由节点的下一跳节点后,将确定出的下一跳节点作为新的目标路由节点,再执行图1所示方法,继续确定路由路径上的路由节点。比如,本发明在确定出目标路由节点A的下一跳节点C后,可以将节点C作为新的目标路由节点,再执行图1所示方法,确定节点C的下一跳节点。依次类推,本发明可以实现对由源节点至目的地节点间的所有路由节点的搜索。
S302、依据所述全部路由节点间的上下跳关系,确定由所述源节点至所述目的地的所有路由路径。
具体的,本发明可以在确定出由源节点至目的地节点间的全部路由节点后,根据路由节点间的上下跳关系,分别确定源节点至目的地的各条路由路径。比如,当源节点S1的下一跳节点为路由节点A1,路由节点A1的下一跳节点为路由节点A2,路由节点A2的下一跳节点为路由节点A3,路由节点A3的下一跳节点为目的地节点S2,则本发明可以确定由节点S1、A1、A2、A3和S2构成的一条路由路径S1-A1-A2-A3-S2。
可选的,本发明可以在确定上述所有路由节点期间,同时确定相应的路由路径。比如,本发明可以在确定出上述路由节点A1、A2和A3时,即可以确定出相应的路由路径S1-A1-A2-A3-S2,而无需等待由源节点至目的地节点间的全部路由节点后之后,再确定路由路径S1-A1-A2-A3-S2。
需要说明的是,本发明可以通过执行图4所示方法,确定由源节点至目的地节点间的全部路由节点,实现对由源节点至目的地节点间的全部路由路径的覆盖搜索,提高路由路径搜索能力。
与图1所示步骤相对应,如图5所示,本实施例提出第一种路径搜索装置,该装置可以应用于目标电子设备,该装置可以包括:第一获得单元101、第一查找单元102、第一确定单元103、第二确定单元104和第三确定单元105;其中:
第一获得单元101,被配置为执行:获得节点地址信息,其中,节点地址信息包括目标路由节点的第一IP地址和目的地节点的第二IP地址,目标路由节点为由源节点至目的地节点的路由路径上的一个路由节点;
其中,目标电子设备可以为一个电子设备,也可以包括多个电子设备。需要说明的是,电子设备可以为台式电脑、手机或平板电脑等网络设备。
其中,目标路由节点可以为在由源节点至目的地节点的路由路径上的一个非源节点且非目的地节点的路由节点。
其中,第一IP地址可以为目标路由节点的IP地址,第二IP地址可以为目的地节点的第二IP地址。
需要说明的是,本发明可以基于网络路由架构的规范,来确定源节点在一条待搜索路由路径上的下一跳节点。
具体的,本发明可以先行将源节点在待搜索路由路径上的下一跳节点作为目标路由节点,确定目标路由节点的下一跳节点,之后再将已确定出的目标路由节点的下一跳节点作为新的目标路由节点,再确定目标路由节点的下一跳节点……依次循环直至确定该条待搜索路径上的全部路由节点,完成对该条待搜索路径的搜索。
可以理解的是,本发明可以将任一重ECMP中的任一路由节点作为上述目标路由节点,确定由源节点至目的地节点的所有可能存在的路由路径,实现对所有路由路径的覆盖搜索,避免对路由路径的搜索错漏。
第一查找单元102,被配置为执行:在第一数据表中,查找与第一IP地址对应的目标路由掩码集,第一数据表中对应保存有节点IP地址和路由掩码集;
其中,目标路由掩码集可以是在目标路由节点中保存的所有路由条目中的路由掩码的集合。
其中,路由条目可以记录目标节点将数据包路由至下一跳节点的路由信息,该路由信息可以包括目标节点IP地址、路由前缀、路由掩码和下一跳节点的节点标识。
需要说明的是,本发明可以通过从各节点的北向接口中获得各节点的所有路由条目,基于各节点的所有路由条目来创建上述第一数据表。上述装置还可以包括:第二获得单元和第一创建单元;
第二获得单元,被配置为执行:分别从各节点的北向接口上获得各节点的路由条目,各节点的路由条目中均对应保存有:节点IP地址、路由前缀、路由掩码和下一跳节点的节点标识;
第一创建单元,被配置为执行:基于已获得的各节点的路由条目,创建节点路由条目表。
可选的,上述装置还可以包括:掩码确定单元、去重处理单元、组合单元和第二创建单元;
掩码确定单元,被配置为执行:从节点路由条目表中,分别确定各节点IP地址对应的路由掩码;
去重处理单元,被配置为执行:分别在各节点IP地址对应的路由掩码中进行去重处理,以分别确定各节点IP地址对应的至少一个去重处理后掩码;
组合单元,被配置为执行:分别将各节点IP地址对应的所有去重处理后掩码组合为一个路由掩码集,以确定各节点IP地址对应的路由掩码集;
第二创建单元,被配置为执行:基于已确定的各节点IP地址对应的路由掩码集,创建第一数据表。
其中,节点IP地址在节点路由条目表中对应的所有路由条目中的路由掩码,即为节点IP地址对应的路由掩码。
具体的,本发明在确定各节点IP地址对应的全部路由掩码后,可以分别进行去重处理,整理出各节点的IP地址对应的路由掩码集。
具体的,本发明可以在确定各节点的IP地址对应的路由掩码集后,可以基于各节点的IP地址对应的路由掩码集创建第一数据表。
具体的,本发明可以在确定目标路由节点的第一IP地址时,即可以根据第一IP地址在第一数据表中确定出相应的路由掩码集,即上述目标路由掩码集。
第一确定单元103,被配置为执行:利用布谷鸟过滤器,从目标路由掩码集中确定与节点地址信息相匹配的目标路由掩码;
需要说明的是,本发明可以通过应用布谷鸟过滤器,从目标路由掩码集中确定与由源节点至目的地节点的路由路径相匹配的目标路由掩码。
可选的,如图6所示,在本实施例提出的第二种路径搜索装置中,第一确定单元103,包括:第六确定单元201和第七确定单元202;
第六确定单元201,被配置为执行:利用布谷鸟过滤器,从目标路由掩码集中确定出与节点地址信息相匹配的至少一个路由掩码;
具体的,本发明可以先行通过应用布谷鸟过滤器,从目标路由掩码集中确定与由源节点至目的地节点的路由路径相匹配的全部路由掩码,之后从确定出的全部路由掩码中确定目标路由掩码。
可选的,本发明在创建出上述节点路由条目表后,可以先行基于节点路由条目表创建布谷鸟过滤器和第二数据表,之后可以基于第二数据表和布谷鸟过滤器来确定与节点地址信息相匹配的全部路由掩码。
可选的,上述装置还可以包括:条目组确定单元、第三创建单元、保存单元、第三触发单元和数据表确定单元;
条目组确定单元,被配置为执行:将节点IP地址和路由掩码均相同的所有路由条目,确定为一个目标路由条目组;
第三创建单元,被配置为执行:针对目标路由条目组,创建相应的布谷鸟过滤器;
保存单元,被配置为执行:将目标路由条目组中各条路由条目的路由前缀,均保存至已创建好的与目标路由条目组对应的布谷鸟过滤器中;
第三触发单元,被配置为执行:触发条目组确定单元,直至获得所有的目标路由条目组和相应的已保存好路由前缀的布谷鸟过滤器;
数据表确定单元,被配置为执行:将所有相对应的节点IP地址、路由掩码和已保存好路由前缀的布谷鸟过滤器的过滤器标识,确定为第二数据表。
其中,一个路由条目组可以由节点路由条目表中节点IP地址和路由掩码均一致的所有路由条目构成。
其中,本发明可以分别基于各路由条目组,创建出相应的布谷鸟过滤器。
具体的,本发明可以将路由条目组中各条路由条目的路由前缀均保存至相应的布谷鸟过滤器中。
可以理解的是,本发明可以基于所有相对应的路由条目组和已保存路由前缀的布谷鸟过滤器,来创建对应保存有节点IP地址、路由掩码和已保存好路由前缀的布谷鸟过滤器的过滤器标识的第二数据表。
需要说明的是,布谷鸟过滤器的过滤器标识可以由数字、汉字和字母等字符中的一种或几种构成,本发明对此不做限定。
具体的,本发明可以利用第二数据表和已保存路由前缀的布谷鸟过滤器,来从目标掩码集中确定出与节点地址信息相匹配的所有路由掩码。可选的,第六确定单元201,包括:第八确定单元、第九确定单元、第二查找单元、第十确定单元和第二触发单元;
第八确定单元,被配置为执行:将目标路由掩码集中的一个路由掩码确定为当前处理掩码;
第九确定单元,被配置为执行:基于第一IP地址和当前处理掩码,从第二数据表中确定出目标布谷鸟过滤器的过滤器标识,第二数据表中对应保存有路由节点IP地址、路由掩码和布谷鸟过滤器的过滤器标识,目标布谷鸟过滤器中保存有从目标路由节点的北向接口中获得的与当前处理掩码对应的至少一条路由前缀;
第二查找单元,被配置为执行:指令目标布谷鸟过滤器,以使得目标布谷鸟过滤器查找自身保存的全部路由前缀中是否存在有对象路由前缀,如果是,则触发第十确定单元;
第十确定单元,被配置为执行:将当前处理掩码确定为与节点地址信息相匹配的一个路由掩码,路由前缀为当前掩码,对象路由前缀为基于当前处理掩码和第二IP地址所获得的路由前缀;
第二触发单元,被配置为执行:触发第八确定单元,直至确定出与节点地址信息相匹配的全部路由掩码。
其中,本发明可以基于当前处理掩码和第二IP地址确定相应的对象路由前缀。
需要说明的是,对于目标路由掩码集中的任一路由掩码,本发明均可以将其确定为当前处理掩码,之后从第二数据表中确定与第一IP地址和该当前处理掩码相对应的过滤器标识,获得该过滤器标识对应的布谷鸟过滤器,在该布谷鸟过滤器保存的全部路由前缀中查找是否存在有对象路由前缀,如果存在,则可以将当前处理掩码确定为与节点地址信息相匹配的一个路由掩码,否则可以将当前处理掩码确定为与节点地址信息不匹配的路由掩码。
第七确定单元202,被配置为执行:按照路由掩码最长匹配原则,在与节点地址信息相匹配的各路由掩码中,将最长路由掩码确定为目标路由掩码。
具体的,本发明可以将与节点地址信息相匹配的全部路由掩码中的最长路由掩码,确定为目标路由掩码。
第二确定单元104,被配置为执行:基于第二IP地址和目标路由掩码确定相应的目标路由前缀;
具体的,目标路由前缀即可以为基于第二IP地址和目标路由掩码所确定的对象路由前缀。
第三确定单元105,被配置为执行:基于第一IP地址、目标路由前缀和目标路由掩码,在节点路由条目表中确定出目标路由节点的下一跳节点的节点标识,节点路由条目表中保存有多条节点路由条目,各节点路由条目中均对应保存有:节点IP地址、路由前缀、路由掩码和下一跳节点的节点标识。
具体的,本发明可以在确定目标路由前缀之后,基于第一IP地址、目标路由前缀和目标路由掩码,在已创建出的节点路由条目表中查找目标路由节点的下一跳节点的节点标识,确定目标路由节点的下一跳节点。
可以理解的是,本发明查找出的目标路由节点的下一跳节点可以包括一个或多个路由节点。
需要说明的是,本发明通过图5所示装置,可以查找出目标路由节点的下一跳节点,有利于实现对路由路径的搜索。
本发明在单台网络设备上即可以通过执行图5所示装置(此时目标电子设备为一个电子设备),实现对源节点与目的地节点间的全部路由节点进行搜索,具有对大量路由进行计算的能力,可以有效提高对路由路径的搜索能力。
当然,本发明也可以通过利用多台网络设备,来执行图5所示装置,在进行并行路由计算的情况下实现对路由路径的搜索(此时目标电子设备包括多个电子设备)。可以理解的是,相比于仅利用单台网络设备的方式,利用多台网络设备的方式可以具有更丰富的网络资源,可以具有更强的路由计算能力,可以进一步的提高路由路径搜索能力。
本实施例提出的路径搜索装置,可以查找出目标路由节点的下一跳节点,有利于实现对路由路径的搜索。
基于图5,如图7所示,本实施例提出第三种路径搜索装置。该装置还包括:第四确定单元301、第一触发单元302和第五确定单元303,其中:
第四确定单元301,被配置为执行:在节点路由条目表中确定目标路由节点的下一跳节点的节点标识之后,将已确定的目标路由节点的下一跳节点确定为新的目标路由节点;
第一触发单元302,被配置为执行:触发第一获得单元101,直至确定由源节点至目的地的所有路由路径上的全部路由节点;
其中,本发明可以在确定出目标路由节点的下一跳节点后,将确定出的下一跳节点作为新的目标路由节点,继续确定路由路径上的路由节点。
第五确定单元303,被配置为执行:依据全部路由节点间的上下跳关系,确定由源节点至目的地的所有路由路径。
具体的,本发明可以在确定出由源节点至目的地节点间的全部路由节点后,根据路由节点间的上下跳关系,分别确定源节点至目的地的各条路由路径。
可选的,本发明可以在确定上述所有路由节点期间,同时确定相应的路由路径。
需要说明的是,本发明可以确定由源节点至目的地节点间的全部路由节点,实现对由源节点至目的地节点间的全部路由路径的覆盖搜索,提高路由路径搜索能力。
本实施例提出的第三种路径搜索装置,可以确定由源节点至目的地节点间的全部路由节点,实现对由源节点至目的地节点间的全部路由路径的覆盖搜索,提高路由路径搜索能力。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种路径搜索方法,其特征在于,应用于目标电子设备,所述方法包括:
获得节点地址信息,其中,所述节点地址信息包括目标路由节点的第一IP地址和目的地节点的第二IP地址,所述目标路由节点为由源节点至所述目的地节点的路由路径上的一个路由节点,所述源节点至所述目的地节点包括多重ECMP,每一重所述ECMP包括一个或多个路由节点;
在第一数据表中,查找与所述第一IP地址对应的目标路由掩码集,所述第一数据表中对应保存有节点IP地址和路由掩码集;
利用布谷鸟过滤器,从所述目标路由掩码集中确定与所述节点地址信息相匹配的目标路由掩码;
基于所述第二IP地址和所述目标路由掩码确定相应的目标路由前缀;
基于所述第一IP地址、目标路由前缀和所述目标路由掩码,在节点路由条目表中确定出所述目标路由节点的下一跳节点的节点标识,所述节点路由条目表中保存有多条节点路由条目,各所述节点路由条目中均对应保存有:节点IP地址、路由前缀、路由掩码和下一跳节点的节点标识。
2.根据权利要求1所述的方法,其特征在于,在所述在节点路由条目表中确定所述目标路由节点的下一跳节点的节点标识之后,所述方法还包括:
将已确定的所述目标路由节点的下一跳节点确定为新的目标路由节点,返回执行所述获得节点地址信息的步骤,直至确定由所述源节点至所述目的地的所有路由路径上的全部路由节点;
依据所述全部路由节点间的上下跳关系,确定由所述源节点至所述目的地的所有路由路径。
3.根据权利要求1所述的方法,其特征在于,所述利用布谷鸟过滤器,从所述目标路由掩码集中确定与所述节点地址信息相匹配的目标路由掩码,包括:
利用布谷鸟过滤器,从所述目标路由掩码集中确定出与所述节点地址信息相匹配的至少一个路由掩码;
按照路由掩码最长匹配原则,在与所述节点地址信息相匹配的各路由掩码中,将最长路由掩码确定为所述目标路由掩码。
4.根据权利要求3所述的方法,其特征在于,所述利用布谷鸟过滤器,从所述目标路由掩码集中确定出与所述节点地址信息相匹配的至少一个路由掩码,包括:
将所述目标路由掩码集中的一个路由掩码确定为当前处理掩码;
基于所述第一IP地址和当前处理掩码,从第二数据表中确定出目标布谷鸟过滤器的过滤器标识,所述第二数据表中对应保存有路由节点IP地址、路由掩码和布谷鸟过滤器的过滤器标识,所述目标布谷鸟过滤器中保存有从目标路由节点的北向接口中获得的与当前处理掩码对应的至少一条路由前缀;
指令所述目标布谷鸟过滤器,以使得所述目标布谷鸟过滤器查找自身保存的全部路由前缀中是否存在有对象路由前缀,如果是,则将当前处理掩码确定为与所述节点地址信息相匹配的一个路由掩码,所述路由前缀为当前掩码,所述对象路由前缀为基于当前处理掩码和所述第二IP地址所获得的路由前缀;
返回执行所述将所述目标路由掩码集中的一个路由掩码确定为当前处理掩码的步骤,直至确定出与所述节点地址信息相匹配的全部路由掩码。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
分别从各节点的北向接口上获得各节点的路由条目,各节点的路由条目中均对应保存有:节点IP地址、路由前缀、路由掩码和下一跳节点的节点标识;
基于已获得的各节点的路由条目,创建所述节点路由条目表。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
从所述节点路由条目表中,分别确定各节点IP地址对应的路由掩码;
分别在各节点IP地址对应的路由掩码中进行去重处理,以分别确定各节点IP地址对应的至少一个去重处理后掩码;
分别将各节点IP地址对应的所有去重处理后掩码组合为一个路由掩码集,以确定各节点IP地址对应的路由掩码集;
基于已确定的各节点IP地址对应的路由掩码集,创建所述第一数据表。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
将节点IP地址和路由掩码均相同的所有路由条目,确定为一个目标路由条目组;
针对所述目标路由条目组,创建相应的布谷鸟过滤器;
将所述目标路由条目组中各条路由条目的路由前缀,均保存至已创建好的与所述目标路由条目组对应的布谷鸟过滤器中;
返回执行所述将节点IP地址和路由掩码均相同的路由条目,确定为目标路由条目组的步骤,直至获得所有的目标路由条目组和相应的已保存好路由前缀的布谷鸟过滤器;
将所有相对应的节点IP地址、路由掩码和已保存好路由前缀的布谷鸟过滤器的过滤器标识,确定为第二数据表。
8.一种路径搜索装置,其特征在于,应用于目标电子设备,所述装置包括:第一获得单元、第一查找单元、第一确定单元、第二确定单元和第三确定单元;其中:
所述第一获得单元,被配置为执行:获得节点地址信息,其中,所述节点地址信息包括目标路由节点的第一IP地址和目的地节点的第二IP地址,所述目标路由节点为由源节点至所述目的地节点的路由路径上的一个路由节点,所述源节点至所述目的地节点包括多重ECMP,每一重所述ECMP包括一个或多个路由节点;
所述第一查找单元,被配置为执行:在第一数据表中,查找与所述第一IP地址对应的目标路由掩码集,所述第一数据表中对应保存有节点IP地址和路由掩码集;
所述第一确定单元,被配置为执行:利用布谷鸟过滤器,从所述目标路由掩码集中确定与所述节点地址信息相匹配的目标路由掩码;
所述第二确定单元,被配置为执行:基于所述第二IP地址和所述目标路由掩码确定相应的目标路由前缀;
所述第三确定单元,被配置为执行:基于所述第一IP地址、目标路由前缀和所述目标路由掩码,在节点路由条目表中确定出所述目标路由节点的下一跳节点的节点标识,所述节点路由条目表中保存有多条节点路由条目,各所述节点路由条目中均对应保存有:节点IP地址、路由前缀、路由掩码和下一跳节点的节点标识。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:第四确定单元、第一触发单元和第五确定单元,其中:
所述第四确定单元,被配置为执行:将已确定的所述目标路由节点的下一跳节点确定为新的目标路由节点;
所述第一触发单元,被配置为执行:触发所述第一获得单元,直至确定由所述源节点至所述目的地的所有路由路径上的全部路由节点;
所述第五确定单元,被配置为执行:依据所述全部路由节点间的上下跳关系,确定由所述源节点至所述目的地的所有路由路径。
10.根据权利要求8所述的装置,其特征在于,所述第一确定单元,包括:第六确定单元和第七确定单元;
所述第六确定单元,被配置为执行:利用布谷鸟过滤器,从所述目标路由掩码集中确定出与所述节点地址信息相匹配的至少一个路由掩码;
所述第七确定单元,被配置为执行:按照路由掩码最长匹配原则,在与所述节点地址信息相匹配的各路由掩码中,将最长路由掩码确定为所述目标路由掩码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110981740.8A CN113872863B (zh) | 2021-08-25 | 2021-08-25 | 一种路径搜索方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110981740.8A CN113872863B (zh) | 2021-08-25 | 2021-08-25 | 一种路径搜索方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113872863A CN113872863A (zh) | 2021-12-31 |
CN113872863B true CN113872863B (zh) | 2023-04-18 |
Family
ID=78988347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110981740.8A Active CN113872863B (zh) | 2021-08-25 | 2021-08-25 | 一种路径搜索方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113872863B (zh) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101040489B (zh) * | 2004-10-22 | 2012-12-05 | 思科技术公司 | 用于统一输入/输出和降低延迟的网络设备体系结构 |
CN101005458B (zh) * | 2007-01-30 | 2012-08-08 | 华为技术有限公司 | 一种下发路由的方法、装置及系统 |
CN102271087B (zh) * | 2011-07-27 | 2017-09-29 | 中兴通讯股份有限公司 | 一种路由查找方法和装置 |
CN103139071B (zh) * | 2011-11-29 | 2016-07-13 | 华为技术有限公司 | 报文转发方法、装置和系统 |
US9762485B2 (en) * | 2015-08-24 | 2017-09-12 | 128 Technology, Inc. | Network packet flow controller with extended session management |
US11277338B2 (en) * | 2016-09-26 | 2022-03-15 | Juniper Networks, Inc. | Distributing service function chain data and service function instance data in a network |
CN106603414B (zh) * | 2016-11-17 | 2020-04-10 | 珠海高凌信息科技股份有限公司 | 路由表快速比对方法 |
CN108259346B (zh) * | 2017-01-25 | 2020-08-04 | 新华三技术有限公司 | 一种等价路由表项建立方法和装置 |
CN109861915A (zh) * | 2017-11-30 | 2019-06-07 | 中兴通讯股份有限公司 | 转发表操作的方法、装置、计算机设备及可读存储介质 |
CN112187636B (zh) * | 2020-09-22 | 2022-08-16 | 锐捷网络股份有限公司 | Ecmp路由的存储方法及装置 |
-
2021
- 2021-08-25 CN CN202110981740.8A patent/CN113872863B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113872863A (zh) | 2021-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107783815B (zh) | 一种确定虚拟机迁移的方法和装置 | |
CN104954270B (zh) | 在联网系统中使用的方法和装置以及计算机可读介质 | |
CN108462594B (zh) | 虚拟专有网络及规则表生成方法、装置及路由方法 | |
CN102857414A (zh) | 一种转发表写入、报文转发方法及装置 | |
CN103259725B (zh) | 报文发送方法和网络设备 | |
US20060083247A1 (en) | Prefix lookup using address-directed hash tables | |
EP2997702B1 (en) | Compressing singly linked lists sharing common nodes for multi-destination group expansion | |
CN107547242B (zh) | Vm配置信息的获取方法及装置 | |
EP3280104B1 (en) | Ip routing lookup | |
CN103441932A (zh) | 一种主机路由表项生成方法及设备 | |
CN104038425A (zh) | 转发以太网报文的方法和装置 | |
CN104125128A (zh) | Linux软桥支持VLAN的方法 | |
CN104811380A (zh) | 一种发送引流路由信息的方法及清洗设备 | |
CN103634423A (zh) | 一种基于三层接口的mpls-tp配置方法及装置 | |
CN107547407A (zh) | 报文传输方法、装置和实现装置 | |
CN106789859B (zh) | 报文匹配方法及装置 | |
CN108199947B (zh) | 指定转发者df选举方法及装置 | |
CN104486224A (zh) | 路由学习方法和设备 | |
US9021098B1 (en) | Allocation of interface identifiers within network device having multiple forwarding components | |
EP3018866A1 (en) | Signaling aliasing capability in data centers | |
CN106453091B (zh) | 路由器转发平面的等价路由管理方法和装置 | |
CN113872863B (zh) | 一种路径搜索方法及装置 | |
CN105959226A (zh) | 建立转发表项的方法及装置 | |
CN109768909B (zh) | 报文转发方法和装置 | |
CN103226496B (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 |