CN106302177A - 一种路由过滤规则的组织方法和装置 - Google Patents
一种路由过滤规则的组织方法和装置 Download PDFInfo
- Publication number
- CN106302177A CN106302177A CN201610708079.2A CN201610708079A CN106302177A CN 106302177 A CN106302177 A CN 106302177A CN 201610708079 A CN201610708079 A CN 201610708079A CN 106302177 A CN106302177 A CN 106302177A
- Authority
- CN
- China
- Prior art keywords
- filtering rule
- network segment
- node
- route filtering
- binary tree
- 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
Links
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/60—Router architectures
-
- 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
-
- 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/20—Traffic policing
Abstract
本申请提供一种路由过滤规则的组织方法和装置,应用于路由器。所述方法包括:通过依次读取数据库中存储的预配置的过滤规则;基于读取到的过滤规则对应的网段在预设的二叉树上查找对应的网段与该过滤规则匹配的节点;其中,所述二叉树上的每一个节点分别对应一个网段;将读取到的过滤规则增量添加至添加节点。在路由器上配置大量的路由过滤规则且配置频繁更改的情况下,采用本申请提供的技术方案,可以大大提高匹配效率。
Description
技术领域
本申请涉及网络通信技术领域,特别涉及实现路由过滤规则的组织方法和装置。
背景技术
路由过滤是网络中的一种功能,路由器将接收到的路由信息进行学习和过滤,来更好地调整网络拓扑结构。
路由过滤技术中,一般包括两个环节,路由过滤规则的配置以及应用配置完的路由过滤规则对路由信息进行过滤。具体实施中,用户预先设定好各个匹配项的匹配条件以及匹配的优先级,然后在进行匹配时,按照设定好的匹配条件对待匹配网段进行顺次匹配。
路由过滤时,对待匹配网段进行顺次匹配时,当匹配条件频繁变化的情况下,匹配效率低下。
发明内容
有鉴于此,本申请提供一种路由过滤规则的组织方法和装置,当匹配项数量较大,且匹配条件频繁变化的情况下,提高匹配效率。
具体地,本申请是通过如下技术方案实现的:
一种路由过滤规则的组织方法,应用于路由器,包括:
依次读取数据库中存储的预配置的过滤规则;
基于读取到的过滤规则对应的网段在预设的二叉树上查找对应的网段与该过滤规则匹配的节点;其中,所述二叉树上的每一个节点分别对应一个网段;
将读取到的过滤规则增量添加至添加节点。
一种路由过滤规则的组织装置,应用于路由器,包括:
读取单元,用于依次读取数据库中存储的预配置的过滤规则;
查找单元,用于基于读取到的过滤规则对应的网段在预设的二叉树上查找对应的网段与该过滤规则匹配的节点;其中,所述二叉树上的每一个节点分别对应一个网段;
增添单元,用于将读取到的过滤规则增量添加至添加节点。
由以上本申请提供的技术方案可见,通过依次读取数据库中存储的预配置的过滤规则;基于读取到的过滤规则对应的网段在预设的二叉树上查找对应的网段与该过滤规则匹配的节点;其中,所述二叉树上的每一个节点分别对应一个网段;将读取到的过滤规则增量添加至添加节点。
由于待匹配网段与路由过滤规则进行匹配时,均按照网段的比特位逐位进行匹配,一个网段的比特位只有32位,因此最多只需要匹配33次就能匹配到符合网段条件的节点,从匹配成功的节点中,记录符合条件的路由过滤规则,最后在这些路由过滤规则中,将优先级最高的路由过滤规则作为最终匹配中的路由过滤规则,并执行该路由过滤规则对应的动作。
因此,在路由器上配置大量的路由过滤规则且配置频繁更改的情况下,采用本申请提供的技术方案,可以大大提高匹配效率。
附图说明
图1是本申请示出的一种路由过滤规则的组织方法流程图;
图2是本申请示出的一种二叉树示例图;
图3是本申请示出的另一种二叉树示例图;
图4是本申请示出的一种路由过滤规则的组织装置的硬件结构图;
图5是本申请示出的一种路由过滤规则的组织装置。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在相关技术中,在实现路由过滤时,通常是通过将待匹配网段与路由器数据库中的路由过滤规则进行顺次一一匹配,判断该待匹配网段是否满足数据库中的路由过滤规则的匹配条件;当匹配成功时,记录路由过滤规则并继续接着与剩下的路由过滤规则匹配,直到数据库中的路由过滤规则均被匹配完,最后从匹配成功的路由过滤规则中选择优先级最高的路由过滤规则作为匹配中的路由过滤规则,并执行相应的动作。
请参见表1所示,表1为相关技术中管理员在路由器的数据库中配置的若干路由过滤规则的格式表:
表1
其中,上述表1中,假设A是最高的优先级,所述优先级A>B>C,当然,优先级不止A,B,C三个级别,还有其他比A,B,C等级低一些的优先级,所述动作也不止表1中所列出的,还包括其他若干动作,另外,路由过滤规则中还包含其他一些内容,表1中只列出了规则名称,网段,动作和优先级。
在路由器中,以表1所示的路由过滤规则的格式,配置好若干路由过滤规则,并将该路由过滤规则储存于路由器本地的数据库中。路由器在接收到待匹配网段时,会将该待匹配网段与其本地数据库中的路由过滤规则进行顺次一一匹配,匹配过程包括:先判断待匹配网段是否包含于路由过滤规则所对应的网段,如果是,可以确定匹配成功,记录该路由过滤规则的优先级。如果否,表明匹配失败,继续按顺序与数据库中的路由过滤规则进行匹配。最后从匹配成功的路由过滤规则中选择优先级最高的路由过滤规则作为最后匹配中的路由过滤规则对,最后执行匹配中的路由过滤规则对应的动作,具体执行步骤如下:
(a)、假设待匹配网段为1.1.1.0/24,路由器获取到该待匹配网段后,先跟规则名称为Rule1的路由过滤规则进行匹配,由于待匹配网段不包含于Rule1对应的网段,因此不满足匹配条件,该待匹配网段会结束与Rule1的匹配过程,接着与规则名称为Rule2的路由过滤规则进行匹配,该待匹配网段包含于Rule2对应的网段,因此满足匹配条件,路由器就会记录下该路由过滤规则以及其优先级。
(b)、待匹配网段与Rule2匹配成功后,会结束与Rule2的匹配过程,接着与规则名称为Rule3的路由过滤规则进行匹配,该待匹配网段包含于Rule3所对应的网段,因此该待匹配网段与Rule3匹配成功,记录Rule3以及其优先级。该待匹配网段会结束与Rule3的匹配过程,接着与规则名称为Rule4的路由过滤规则进行匹配,该待匹配网段包含于Rule4所对应的网段,也满足匹配条件,因此也需要记录路由过滤规则Rule4以及其优先级,最后结束与Rule4的匹配过程。
(c)、待匹配网段与Rule4匹配完成后,继续与规则名称为Rule5的路由过滤规则进行匹配,该待匹配网段包含于Rule5所对应的网段,因此满足匹配条件,路由器会记录下该路由过滤规则以及其优先级,结束与Rule5的匹配过程,继续与规则名称为Rule6的路由过滤规则进行匹配,该待匹配网段包含于Rule6所对应的网段,因此也满足匹配条件,路由器同样会记录下该路由过滤规则以及其优先级,并结束与Rule6的匹配过程,待匹配网段继续接着与数据库中的路由过滤规则进行匹配,如果匹配成功,就记录路由过滤规则以及其优先级,直到待匹配网段与数据库中的所有路由过滤规则完成匹配,最后根据路由器记录的匹配成功的路由过滤规则以及其优先级,选择优先级高的那个路由过滤规则作为最终匹配中的路由过滤规则,执行最终匹配中的路由过滤规则对应的动作,根据表1所述的,待匹配网段为1.1.1.0/24时,Rule2、Rule3、Rule4、Rule5和Rule6都满足匹配条件,由于Rule3的优先级最高,因此选择Rule3作为最终匹配中的路由过滤规则,并执行对应的Action3。
由以上相关技术提供的技术方案可见,通过将待匹配网段与数据库中的路由过滤规则进行顺次一一匹配,记录匹配成功的路由过滤规则,并从中选择优先级高的路由过滤规则作为最终匹配中的路由过滤规则,最后执行该路由过滤规则对应的动作,并结束匹配过程。
一方面,数据库中的路由过滤规则或者待匹配网段都会出现数量庞大的情况,采用顺次一一匹配的方法,会导致匹配速度很慢。可见,相关技术提供的技术方案存在着匹配效率低下的问题。
为了解决相关技术中的问题,本申请提供了一种路由过滤规则的组织方法。通过依次读取数据库中存储的预配置的过滤规则;基于读取到的过滤规则对应的网段在预设的二叉树上查找对应的网段与该过滤规则匹配的节点;其中,所述二叉树上的每一个节点分别对应一个网段;将读取到的过滤规则增量添加至添加节点。
由于待匹配网段与路由过滤规则进行匹配时,均按照网段的比特位逐位进行匹配,一个网段的比特位只有32位,因此最多只需要匹配33次就能匹配到符合网段条件的节点,从而在路由器上配置大量的路由过滤规则且配置频繁更改的情况下,采用本申请提供的技术方案,可以大大提高匹配效率。
请参加图1,图1为本申请示出的一种路由过滤规则的组织方法流程图,应用于路由器上,具体执行以下步骤:
步骤101:依次读取数据库中存储的预配置的过滤规则;
步骤102:基于读取到的过滤规则对应的网段在预设的二叉树上查找对应的网段与该过滤规则匹配的节点;其中,所述二叉树上的每一个节点分别对应一个网段;
步骤103:将读取到的过滤规则增量添加至添加节点。
其中,上述二叉树是一种数据结构,二叉树上每个节点最多拥有两个子树,所述两个子树通常被称为“左子树”和“右子树”。二叉树通常用于二分查找,因此,二叉树上每个节点为其两个子树的中间值。在本例中,为了提升路由过滤规则的匹配效率,可以将数据库中存储的预配置的若干路由过滤规则组织成二叉树的数据结构。
请参加图2,图2为本申请示出的一种二叉树示例图。
二叉树的数据结构如图2所示,如果图中根节点为5,代表的范围为2~8,根节点的两个子节点可以分别为左子树3和右子树7,左子树代表的范围为2~5,右子树代表的范围为5~8。3所在的节点分别拥有左子树2和右子树4,该左子树代表的范围为2~3,右子树代表的范围为3~5。7所在的节点分别拥有左子树6和右子树8,该左子树代表的范围为5~7,右子树代表的范围为7~8。
当需要找寻2.5所在的节点时,先判断2.5是否在该子树所代表的范围内,从图2中可以看出,2.5在该子树所代表的范围内,然后从根节点开始查找,从图中可知,2.5在左子树3中,3所在的节点又包括子树2和子树4,在进一步查找,可以确定2.5在子树2中。
所述二叉树上每个节点代表的含义是根据数据类型来决定的,比如图2中表示的是数据大小范围,根据需要匹配的数据的值,与二叉树上每一个节点所代表的数据大小范围来进行匹配。如果将二叉树应用到网段中,那么二叉树的每一个节点所代表的就是网段范围的大小。
在示出的一种实施方式中,在将路由过滤规则插入二叉树前,首先可以初始化一棵空树,然后将路由器支持的目标网段进行子网划分,将子网划分得到的划分后的网段,分别插入空树,组织成二叉树;其中,当将路由过滤规则组织成二叉树后,所述二叉树上的每一个节点分别对应一个对所述目标网段进行子网划分得到的网段。此时,二叉树上的每一个节点对应的网段,都是针对该节点上游节点对应的网段进行精细划分得到的子网段。
以下以路由器支持的目标网段为1.0.0.0/8为例进行说明。
请参见图3和表2,图3为本申请示出的另一个二叉树示例图,表2为本申请示出的二叉树节点与上述目标网段范围的对应表。
节点名称 | 网段 |
A | 1.0.0.0/8 |
B | 1.0.0.0/9 |
C | 1.128.0.0/9 |
D | 1.0.0.0/10 |
E | 1.64.0.0/10 |
F | 1.128.0.0/10 |
G | 1.192.0.0/10 |
表2
其中,图3和表2只列出了部分内容,具体二叉树上每一个节点代表的范围是根据比特位来划分的。
由于二叉树根节点所包含的范围是最大的,因此根节点所代表的网段为1.0.0.0/8。在进一步划分子树时,可以对根节点对应的网段1.0.0.0/8进行子网划分,划分为两个子网;例如,网段1.0.0.0/8划分为两个子网后,可以得到1.0.0.0/9和1.128.0.0/9两个网段,此时1.0.0.0/9可以对应根节点A的左子树B,1.128.0.0/9可以对应根节点A的左子树C;从比特位的方面来描述,在进行子网划分时,比特位从左到右,当第二字节的第一位为0时,其余23位不管是0或者1,进入根节点A的左子树中,该节点所代表的网段为1.0.0.0/9,即图3中的节点B;当第二字节的第一位为1时,其余23位不管是0或者1,进入根节点A的右子树中,该节点所代表的网段为1.128.0.0/9,即图3中的节点C。
根据比特位对网段1.0.0.0/8进行划分之后,可以分别对划分后的子树进一步进行划分,即根据比特位对节点B和节点C进行划分。在对节点B进行划分时,如果第二字节中的比特位第二位为0,其余22位不管是0或者1,将进入节点B的左子树中,该节点所代表的网段为1.0.0.0/10,即图3中的节点D;如果第二字节中的比特位第二位为1,其余22位不管是0或者1,将进入节点B的右子树中,该节点所代表的网段为1.64.0.0/10,即图3中的节点E。
在对节点C进行划分时,如果第二字节中的比特位第二位为0,其余22位不管是0或者1,进入节点C的左子树中,该节点所代表的网段为1.128.0.0/10,即图3中的节点F;如果第二字节中的比特位第二位为1,其余22位不管是0或者1,进入节点C的右子树中,该节点所代表的网段为1.192.0.0/10,即图3中的节点G。所述A,B,C,D,E,F,G的32位比特位如下所示,其中x表示可以取0或者1中的任意一个。
A:00000001.xxxxxxxx.xxxxxxxx.xxxxxxxx
B:00000001.0xxxxxxx.xxxxxxxx.xxxxxxxx
C:00000001.1xxxxxxx.xxxxxxxx.xxxxxxxx
D:00000001.00xxxxxx.xxxxxxxx.xxxxxxxx
E:00000001.01xxxxxx.xxxxxxxx.xxxxxxxx
F:00000001.10xxxxxx.xxxxxxxx.xxxxxxxx
G:00000001.11xxxxxx.xxxxxxxx.xxxxxxxx
对节点D,E,F,G的划分,以及划分之后进一步的划分均按照节点A,B,C的划分,均根据比特位划分,直到剩余的比特位全部被划分完为止。由于比特位剩余越多,所代表的网段范围越大,因此二叉树上越是处于底层的节点,所代表的网段范围越小。
在本例中,当将路由器支持的目标网段组织成二叉树后,就可以将路由器数据库中预设的路由过滤规则添加到二叉树上。
在示出的一种实施方式中,沿所述二叉树的根节点开始,将读取到的路由过滤规则对应的网段与所述二叉树上每一个节点分别对应的网段依次进行匹配;当节点与路由过滤规则对应的网段相同时,将该节点作为该路由过滤规则的添加节点,并将该路由过滤规则添加到对应的添加节点。
从数据库中取出第一条路由过滤规则后,根据第一条路由过滤规则所对应网段,沿二叉树根节点开始,与二叉树的每一个节点进行匹配,当节点与路由过滤规则对应的网段相同时,将该节点作为该路由过滤规则的添加节点,并将第一条路由过滤规则添加到该节点,并在该节点记录该路由过滤规则的优先级。
第一条路由过滤规则添加至二叉树上之后,继续从数据库中读取第二条路由过滤规则。其中从数据库中读取路由过滤规则是随机读取的,因此第二条路由过滤规则对应的网段可能包含于第一条路由过滤规则对应的网段,且属于同类型路由过滤规则,即第二条路由过滤规则可能是无效的路由过滤规则,但依然会被添加到二叉树上。读取该路由过滤规则之后,将该路由过滤规则所对应的网段与二叉树上的每一个节点进行匹配,当节点与路由过滤规则对应的网段相同时,将该节点作为该路由过滤规则的添加节点,并在该节点记录该路由过滤规则的优先级。之后每读取到一条路由过滤规则均按照上述方法添加到二叉树上,直到路由过滤规则均被添加到二叉树上。
在示出的一种实施方式中,当需要删除路由过滤规则时,根据该路由过滤规则对应的网段,将该路由过滤规则从二叉树上增量删除。
其中,上述增量删除是指在二叉树上找到需要删除的路由过滤规则,但不改变二叉树上各节点中的其余路由过滤规则。
当管理员需要在二叉树上删除路由过滤规则时,先根据需要删除的路由过滤规则对应的网段,沿二叉树的根节点开始,先与根节点所对应的网段进行匹配,判断需要删除的路由过滤规则对应的网段是否与根节点所对应的网段相同,如果是,在根节点中找到相应的路由过滤规则,并从该节点中删除该路由过滤规则;如果否,则将沿二叉树向下,继续与二叉树上的每一个子节点进行匹配,如果该需要删除的路由过滤规则所对应的网段与某一个子节点所对应的网段相同,则将该路由过滤规则从该子节点中删除,否则继续沿二叉树上,与其余子节点进行匹配,直到在二叉树上找到对应网段相同的子节点。
在示出的一种实施方式中,获取待匹配网段,根据待匹配网段,沿所述二叉树根节点开始,与所述二叉树上每一个节点上的路由过滤规则依次进行匹配;记录所述待匹配网段在所述二叉树上命中的路由过滤规则,并查找命中的路由过滤规则中优先级最高的路由过滤规则;
当数据库中的路由过滤规则,以及需要添加或者删除的路由过滤规则均被添加至二叉树上后,就可以获取待匹配网段,并对该待匹配网段进行路由过滤。实现对待匹配网段的路由过滤,可以采用两种方法实现。
第一种方法是记录待匹配网段在二叉树上所有命中的路由过滤规则,最终选择该路由过滤规则中,优先级最高的路由过滤规则作为最终命中的路由过滤规则,并执行所述优先级最高的路由过滤规则所对应的动作。
第二种方法是待匹配网段沿二叉树的根节点开始,与二叉树上的每一个子节点进行匹配,第一次匹配成功时,将匹配中的路由过滤规则记录为当前匹配中的路由过滤规则,之后每一次匹配成功时,将匹配中的路由过滤规则与上一次匹配中的路由过滤规则进行优先级比较,将优先级高的路由过滤规则记录为当前匹配中的路由过滤规则,直到该待匹配网段与二叉树上的每一个节点进行完匹配,最后执行最终记录的路由过滤规则所对应的动作。
采用第一种方法对待匹配网段进行路由过滤时,具体执行以下步骤:
(a)、获取待匹配网段,将该待匹配网段沿二叉树的根节点开始,与二叉树上的根节点所对应的网段进行比较,如果待匹配网段包含于根节点对应的网段,记录该根节点中对应的路由过滤规则,并继续沿二叉树与子节点进行匹配。如果否,结束与根节点的匹配过程,继续沿二叉树与子节点进行匹配,一般待匹配网段都会包含于根节点对应的网段,而且根节点中的路由过滤规则的优先级一般不高。
(b)、待匹配网段与根节点对应的网段完成匹配后,将待匹配网段沿着二叉树上的子节点继续进行匹配,将待匹配网段与子节点所对应的网段进行比较,判断待匹配网段是否包含于子节点对应的网段,如果是,记录该子节点中对应的路由过滤规则,并继续沿着二叉树与其余每一个的子节点进行匹配,如果否,结束与该子节点的匹配过程,并继续沿着二叉树与其余每一个的子节点进行匹配,直到二叉树上每一个的子节点与待匹配网段均完成匹配。
(c)、从记录下的所有路由过滤规则中,选择优先级最高的路由过滤规则作为最终匹配中的路由过滤规则,并执行该路由过滤规则所对应的动作,对待匹配网段进行路由过滤。
采用第二种方法对待匹配网段进行路由过滤时,具体执行以下步骤:
(a)、获取待匹配网段,将该待匹配网段沿二叉树的根节点开始,与二叉树上的根节点所对应的网段进行比较,如果是,记录根节点中对应的路由过滤规则,并继续沿二叉树与子节点进行匹配。如果否,结束与根节点的匹配过程,并继续沿二叉树与子节点进行匹配,一般待匹配网段都会包含于根节点对应的网段,而且根节点中的路由过滤规则的优先级一般不高。
(b)、该待匹配网段与根节点完成匹配后,且假设待匹配网段命中根节点中对应的路由过滤规则时,沿着二叉树与每一个的子节点进行匹配。首先,将待匹配网段与子节点所对应的网段进行比较,如果待匹配网段包含于子节点所对应的网段,判断该子节点中对应的路由过滤规则的优先级,是否高于已记录的根节点中对应的路由过滤规则的优先级,如果是,将该子节点中对应的路由过滤规则记录当前匹配中的路由过滤规则,如果否,继续沿着二叉树与其余每一个的子节点进行匹配,之后每一次匹配成功时,将匹配中的路由过滤规则与上一次匹配中的路由过滤规则进行优先级比较,将优先级高的路由过滤规则记录为当前匹配中的路由过滤规则,直到二叉树上每一个的子节点与待匹配网段均完成匹配。
(c)、将最后记录下的路由过滤规则作为最终匹配中的路由过滤规则,并执行该路由过滤规则对应的动作,对待匹配网段进行路由过滤。
由以上本申请提供的技术方案可见,通过将数据库中的路由过滤规则组织成二叉树;其中,所述二叉树上的每一个节点对应一个网段;当需要新添加路由过滤规则时,根据该路由过滤规则对应的网段,将该路由过滤规则增量添加到二叉树上;当需要删除路由过滤规则时,根据该路由过滤规则对应的网段,将该路由过滤规则从二叉树上增量删除。
由于待匹配网段与路由过滤规则进行匹配时,均按照网段的比特位逐位进行匹配,一个网段的比特位只有32位,因此最多只需要匹配33次就能匹配到符合网段条件的节点,从匹配成功的节点中,记录符合条件的路由过滤规则,最后在这些路由过滤规则中,将优先级最高的路由过滤规则作为最终匹配中的路由过滤规则,并执行该路由过滤规则对应的动作。
因此,在路由器上配置大量的路由过滤规则且配置频繁更改的情况下,采用本申请提供的技术方案,可以大大提高匹配效率。
与前述一种路由过滤规则的组织方法的实施例相对应,本申请还提供了一种路由过滤规则的组织装置的实施例。
本申请一种路由过滤规则的组织装置的实施例可以应用在路由器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在路由器的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请一种路由过滤规则的组织装置所在路由器的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的路由器通常根据该路由过滤规则的组织装置的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图5,图5为本申请示出的一种路由过滤规则的组织装置,应用于路由器,所述装置包括:组织单元510,读取单元520,查找单元530,增添单元540,增删单元550,获取单元560,匹配单元570,记录单元580,执行单元590。
其中,组织单元510,用于将路由器支持的目标网段组织成二叉树;其中,所述二叉树上的每一个节点分别对应一个对所述目标网段进行子网划分得到的网段。
读取单元520,用于依次读取数据库中存储的预配置的过滤规则;
查找单元530,用于基于读取到的过滤规则对应的网段在预设的二叉树上查找对应的网段与该过滤规则匹配的节点;其中,所述二叉树上的每一个节点分别对应一个网段;
增添单元540,用于将读取到的过滤规则增量添加至添加节点。
增删单元550,用于当需要删除路由过滤规则时,根据该路由过滤规则对应的网段,将该路由过滤规则从二叉树上增量删除。
获取单元560,用于获取待匹配网段;
匹配单元570,用于根据待匹配网段,沿所述二叉树根节点开始,与所述二叉树上每一个节点上的路由过滤规则依次进行匹配;
记录单元580,用于记录所述待匹配网段在所述二叉树上命中的路由过滤规则,并查找命中的路由过滤规则中优先级最高的路由过滤规则;
执行单元590,用于执行所述优先级最高的路由过滤规则对应的动作,进行路由过滤。
在本实施例中,所述查找单元530,具体用于沿所述二叉树的根节点开始,将读取到的路由过滤规则对应的网段与所述二叉树上每一个节点分别对应的网段依次进行匹配;当节点与路由过滤规则对应的网段相同时,将该节点作为该路由过滤规则的添加节点。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种路由过滤规则的组织方法,应用于路由器,其特征在于,包括:
依次读取数据库中存储的预配置的过滤规则;
基于读取到的过滤规则对应的网段在预设的二叉树上查找对应的网段与该过滤规则匹配的节点;其中,所述二叉树上的每一个节点分别对应一个网段;
将读取到的过滤规则增量添加至添加节点。
2.根据权利要求1所述的方法,其特征在于,基于读取到的过滤规则对应的网段在预设的二叉树上查找对应的网段与该过滤规则匹配的节点之前,所述方法还包括:
将路由器支持的目标网段组织成二叉树;其中,所述二叉树上的每一个节点分别对应一个对所述目标网段进行子网划分得到的网段。
3.根据权利要求2所述的方法,其特征在于,所述基于读取到的路由过滤规则对应的网段,在预设的二叉树上查找网段与该路由过滤规则对应的节点,包括:
沿所述二叉树的根节点开始,将读取到的路由过滤规则对应的网段与所述二叉树上每一个节点分别对应的网段依次进行匹配;
当节点与路由过滤规则对应的网段相同时,将该节点作为该路由过滤规则的添加节点。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当需要删除路由过滤规则时,根据该路由过滤规则对应的网段,将该路由过滤规则从二叉树上增量删除。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取待匹配网段;
根据待匹配网段,沿所述二叉树根节点开始,与所述二叉树上每一个节点上的路由过滤规则依次进行匹配;
记录所述待匹配网段在所述二叉树上命中的路由过滤规则,并查找命中的路由过滤规则中优先级最高的路由过滤规则;
执行所述优先级最高的路由过滤规则对应的动作,进行路由过滤。
6.一种路由过滤规则的组织装置,应用于路由器,其特征在于,包括:
读取单元,用于依次读取数据库中存储的预配置的过滤规则;
查找单元,用于基于读取到的过滤规则对应的网段在预设的二叉树上查找对应的网段与该过滤规则匹配的节点;其中,所述二叉树上的每一个节点分别对应一个网段;
增添单元,用于将读取到的过滤规则增量添加至添加节点。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
组织单元,用于将路由器支持的目标网段组织成二叉树;其中,所述二叉树上的每一个节点分别对应一个对所述目标网段进行子网划分得到的网段。
8.根据权利要求7所述的装置,其特征在于,包括:
所述查找单元具体用于:
沿所述二叉树的根节点开始,将读取到的路由过滤规则对应的网段与所述二叉树上每一个节点分别对应的网段依次进行匹配;
当节点与路由过滤规则对应的网段相同时,将该节点作为该路由过滤规则的添加节点。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
增删单元,用于当需要删除路由过滤规则时,根据该路由过滤规则对应的网段,将该路由过滤规则从二叉树上增量删除。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
获取单元,用于获取待匹配网段;
匹配单元,用于根据待匹配网段,沿所述二叉树根节点开始,与所述二叉树上每一个节点上的路由过滤规则依次进行匹配;
记录单元,用于记录所述待匹配网段在所述二叉树上命中的路由过滤规则,并查找命中的路由过滤规则中优先级最高的路由过滤规则;
执行单元,用于执行所述优先级最高的路由过滤规则对应的动作,进行路由过滤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610708079.2A CN106302177A (zh) | 2016-08-23 | 2016-08-23 | 一种路由过滤规则的组织方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610708079.2A CN106302177A (zh) | 2016-08-23 | 2016-08-23 | 一种路由过滤规则的组织方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106302177A true CN106302177A (zh) | 2017-01-04 |
Family
ID=57614858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610708079.2A Pending CN106302177A (zh) | 2016-08-23 | 2016-08-23 | 一种路由过滤规则的组织方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106302177A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107707477A (zh) * | 2017-09-28 | 2018-02-16 | 杭州迪普科技股份有限公司 | 报文的处理方法及装置、计算机可读存储介质 |
CN108572921A (zh) * | 2017-05-15 | 2018-09-25 | 北京金山云网络技术有限公司 | 规则集更新方法、装置、规则匹配方法及装置 |
CN109951495A (zh) * | 2019-03-29 | 2019-06-28 | 新华三信息安全技术有限公司 | 网段查找方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101622850A (zh) * | 2007-03-01 | 2010-01-06 | 朗讯科技公司 | 用于过滤数据分组的方法和设备 |
CN102521334A (zh) * | 2011-12-07 | 2012-06-27 | 广东工业大学 | 一种基于分类特性和平衡二叉树的数据存储、查询方法 |
CN102739520A (zh) * | 2012-05-31 | 2012-10-17 | 华为技术有限公司 | 查找方法及装置 |
CN102811227A (zh) * | 2012-08-30 | 2012-12-05 | 重庆大学 | IPsec协议下标准方式ACL规则的一种管理机制 |
CN102904812A (zh) * | 2012-09-29 | 2013-01-30 | 华为技术有限公司 | 路由表项的存储方法、查找方法、装置及系统 |
CN104750834A (zh) * | 2015-04-03 | 2015-07-01 | 浪潮通信信息系统有限公司 | 一种规则的存储方法、匹配方法及装置 |
CN105516162A (zh) * | 2015-12-18 | 2016-04-20 | 中国电子信息产业集团有限公司第六研究所 | 一种基于规则描述语言的动态配置过滤规则的方法 |
-
2016
- 2016-08-23 CN CN201610708079.2A patent/CN106302177A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101622850A (zh) * | 2007-03-01 | 2010-01-06 | 朗讯科技公司 | 用于过滤数据分组的方法和设备 |
CN102521334A (zh) * | 2011-12-07 | 2012-06-27 | 广东工业大学 | 一种基于分类特性和平衡二叉树的数据存储、查询方法 |
CN102739520A (zh) * | 2012-05-31 | 2012-10-17 | 华为技术有限公司 | 查找方法及装置 |
CN102811227A (zh) * | 2012-08-30 | 2012-12-05 | 重庆大学 | IPsec协议下标准方式ACL规则的一种管理机制 |
CN102904812A (zh) * | 2012-09-29 | 2013-01-30 | 华为技术有限公司 | 路由表项的存储方法、查找方法、装置及系统 |
CN104750834A (zh) * | 2015-04-03 | 2015-07-01 | 浪潮通信信息系统有限公司 | 一种规则的存储方法、匹配方法及装置 |
CN105516162A (zh) * | 2015-12-18 | 2016-04-20 | 中国电子信息产业集团有限公司第六研究所 | 一种基于规则描述语言的动态配置过滤规则的方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108572921A (zh) * | 2017-05-15 | 2018-09-25 | 北京金山云网络技术有限公司 | 规则集更新方法、装置、规则匹配方法及装置 |
CN108572921B (zh) * | 2017-05-15 | 2021-03-12 | 北京金山云网络技术有限公司 | 规则集更新方法、装置、规则匹配方法及装置 |
CN107707477A (zh) * | 2017-09-28 | 2018-02-16 | 杭州迪普科技股份有限公司 | 报文的处理方法及装置、计算机可读存储介质 |
CN109951495A (zh) * | 2019-03-29 | 2019-06-28 | 新华三信息安全技术有限公司 | 网段查找方法及装置 |
CN109951495B (zh) * | 2019-03-29 | 2021-10-12 | 新华三信息安全技术有限公司 | 网段查找方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6594655B2 (en) | Wildcards in radix- search tree structures | |
US7076537B2 (en) | Designing interconnect fabrics | |
CN102945249B (zh) | 一种策略规则匹配查询树生成方法、匹配方法及装置 | |
WO2017071509A1 (zh) | 文件系统目录树修复方法和装置 | |
CN106302177A (zh) | 一种路由过滤规则的组织方法和装置 | |
EP1113372A2 (en) | Method and apparatus for generating a tree data structure supporting longest match lookup | |
US20080031156A1 (en) | Link inference in large networks based on incomplete data | |
US9836553B2 (en) | Automatically modifying a tree structure | |
CN106416152B (zh) | 一种查找装置、查找配置方法和查找方法 | |
US20040085961A1 (en) | Method for advertising reachable address information in a network | |
JP3881663B2 (ja) | フィールドレベルツリーを用いたパケット分類装置及び方法 | |
CN106100998A (zh) | 一种路由过滤规则的组织方法和装置 | |
CN106233296A (zh) | Url匹配装置、url匹配方法以及url匹配程序 | |
CN106230791A (zh) | 一种单业务多策略快速匹配的方法和装置 | |
CN109951393A (zh) | 网段查找方法及装置 | |
CN109951495A (zh) | 网段查找方法及装置 | |
CN105978814A (zh) | 网络设备及网络设备内查询数据的方法 | |
CN103532796B (zh) | 大型isp间互联口统计系统及方法 | |
CN111177578B (zh) | 一种用户周边最具影响力社区的搜索方法 | |
CN106933927A (zh) | 数据表的连接方法和装置 | |
CN106796588B (zh) | 索引表的更新方法和设备 | |
CN110505322A (zh) | 一种ip地址段查找方法及装置 | |
CN107835175A (zh) | 采用平衡二叉树算法的网络连接跟踪方法 | |
CN106034266B (zh) | 光路由的生成方法及装置 | |
CN106933934A (zh) | 数据表的连接方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Binjiang District and Hangzhou city in Zhejiang Province Road 310051 No. 68 in the 6 storey building Applicant after: Hangzhou Dipu Polytron Technologies Inc Address before: Binjiang District and Hangzhou city in Zhejiang Province Road 310051 No. 68 in the 6 storey building Applicant before: Hangzhou Dipu Technology Co., Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170104 |