CN100527669C - 一种加速多域分类规则线性查找的系统和方法 - Google Patents
一种加速多域分类规则线性查找的系统和方法 Download PDFInfo
- Publication number
- CN100527669C CN100527669C CNB2006101097391A CN200610109739A CN100527669C CN 100527669 C CN100527669 C CN 100527669C CN B2006101097391 A CNB2006101097391 A CN B2006101097391A CN 200610109739 A CN200610109739 A CN 200610109739A CN 100527669 C CN100527669 C CN 100527669C
- Authority
- CN
- China
- Prior art keywords
- stream
- message
- domain
- rule
- coupling
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种加速多域分类规则线性查找的系统和方法,该方法包括:根据报文中提取的流匹配比较域中的元素,查找报文所在流的流匹配信息记录表,如果没有匹配的流匹配信息记录,从多域分类规则线性列表的首规则起依次对这些规则进行线性查找,遇到第一条报文匹配的规则或查找到表尾则结束查找以及产生报文匹配结果,并且在流匹配信息记录表中记录多域分类规则线性列表编号和流匹配结果所对应的流匹配规则标号;否则从该流匹配信息记录中的流匹配规则标号所对应的规则开始对多域分类规则线性列表进行查找,遇到第一条报文匹配的规则或查找到表尾则结束查找以及产生报文匹配结果;输出报文匹配结果。因此,本发明能缩短查找区间,加快查找速度。
Description
技术领域
本发明涉及网络访问控制技术领域,特别涉及一种加速多域分类规则线性查找的系统和方法。
背景技术
在网络安全体系中,最重要的安全要素为在网络通信通道的出入口上的访问控制的控制点。网络设备为了分类或过滤报文,需要配置一系列的匹配规则,以识别需要过滤的对象。在识别出特定的对象之后,才能根据预先设定的策略允许或禁止相应的报文通过。多域分类规则线性列表就是用来实现这些功能,而访问控制列表(Access Control List,简称ACL)则是多域分类规则线性列表中的一种。
访问控制列表是应用在路由器接口的匹配列表,这些匹配列表用来告诉路由器哪些数据包可以接收、哪些数据包需要拒绝。至于数据包是被接收还是被拒绝,可以由类似于源地址、目的地址、端口号、协议等特定指示条件来决定。通过灵活地增加访问控制列表,ACL可以当作一种网络控制的有力工具,用来过滤流入和流出路由器接口的数据包。
请参阅图1,图1为访问控制列表的示意图,访问控制列表通过一系列的匹配域对报文进行分类,这些域可以是报文的源IP地址、目的IP地址、源端口号、目的端口号、协议类型、IP优先级、TOS(type of service)协议、差分服务编码(Differentiated Services Code Point简称DSCP)、分片标志以及传输控制协议(Transmission Control Protocol简称TCP)报文类型等信息。
由访问控制列表定义的报文匹配规则,也可以被其它需要对报文进行区分的场合引用,例如网络服务质量中报文分类规则的定义。
在多域分类条件下,访问控制列表的线性查找过程非常耗时,报文需要与每个匹配规则比较所有分类域。在列表规则数量巨大时,这个遍历查找过程严重影响网络设备的性能。
目前也提出了一些加速查找访问控制列表速度的技术,例如防火墙预匹配技术:该技术的目的是加速防火墙查找访问控制列表的速度。防火墙记录每个报文与分类域全集所对应的参数,同时记录该报文匹配操作的上下文和匹配结果。
请参阅图2,图2为防火墙预匹配信息记录的示意图,访问控制列表分类域为源IP地址、目的IP地址、源端口号、目的端口号、协议类型、IP优先级、TOS、DSCP、分片标志、TCP报文类型等;匹配操作上下文为防火墙所在端口、流量方向、访问控制列表版本号、待匹配的访问列表编号等;匹配结果为匹配规则号、规则对应的动作。
在防火墙的预处理过程的初始状态中,防火墙根据报文分类域对访问控制列表进行线性查找,如果报文能够匹配指定的访问控制列表,则记录该报文与访问控制列表分类域全集对应的所有参数,同时记录匹配操作上下文和匹配结果,作为防火墙预匹配信息记录。后续到达的报文,首先查找所有防火墙预匹配记录,确认是否有和报文完全匹配的记录,这里的完全匹配是指报文符合防火墙预匹配记录的所有参数,如果有匹配的记录项则返回匹配结果,否则仍进行普通方式的访问控制列表查找,并根据查找结果新增一条防火墙预匹配记录。
上述的防火墙预匹配技术虽然能加速防火墙查找访问控制列表的速度,但也存在下述缺点:
1)只适用流数量较少的情况,否则防火墙预匹配记录的数目会随流的数量剧增,IP优先级或TCP状态等信息不同的报文都会创建各自的预匹配记录。同时,预匹配记录的匹配域数量很多,无论通过哪种查找方式组织这些预匹配记录,该预匹配过程都会很大额外工作量。
2)不是所有的模块都能考虑使用该方式进行访问控制列表的加速查找。例如网络服务质量(quality of service,简称QoS)分类中,可能在一个端口的单方向引用同一个ACL多次,必须严格的按照顺序进行线性查找,此类预匹配技术不能适用。
3)访问控制列表支持多域分类,但仅少部分访问控制列表的规则都使用了所有的分类域,预匹配方式对通常使用的仅有一、两个分类域的访问控制列表规则存在性能的浪费。
4)防火墙预匹配技术的立足点是加速防火墙模块对访问控制列表的查找,而不是基于访问控制列表本身进行加速。访问控制列表作为一个公共模块被多个模块引用,使用情况复杂。如果也采用以上方式缓存类似的预匹配记录,那需要缓存的匹配操作上下文的信息量将很大,这额外加重了预匹配查找的负担。
发明内容
针对现有技术的不足,本发明的目的在于提出一种加速多域分类规则线性查找的方法,该方法根据多域分类规则线性列表作为公共模块的特点,基于多域分类规则线性列表本身实现查找加速,该加速查找过程对外部模块不可见。即在网络流量查找多域分类规则线性列表的过程中,使用分类域的一个子集作为网络流量等价类划分原则,记录以该分类域子集线性查找该列表获得的首匹配规则位置,流量等价类后续的查找从该位置开始,以缩短查找区间,加快查找速度。
本发明的目的是这样实现的,本发明提供一种加速多域分类规则线性查找的方法,包括如下步骤:
步骤1:根据需要预先定义流匹配比较域,其中,所述流为网络中具有相同多元组的报文,所述的流匹配比较域由流的元素组成,且为多域分类规则线性列表的报文匹配比较域的子集;
步骤2:根据报文中提取的所述流匹配比较域中的元素,查找报文所在流的流匹配信息记录表,如果在该流匹配信息记录表中没有匹配的流匹配信息记录,则确定该流对于所述多域分类规则线性列表为首包,执行步骤3;否则执行步骤4;
步骤3:从所述多域分类规则线性列表的首规则起依次对这些规则进行线性查找,遇到第一条报文匹配的规则或查找到表尾则结束查找以及产生报文匹配结果,并且在流匹配信息记录表中记录包括多域分类规则线性列表编号和流匹配结果所对应的流匹配规则标号的流匹配信息记录,执行步骤5;
步骤4:根据匹配的流匹配信息记录,从该匹配的流匹配信息记录的流匹配规则标号所对应的规则开始对所述多域分类规则线性列表进行查找,遇到第一条报文匹配的规则或查找到表尾则结束查找以及产生报文匹配结果;
步骤5:输出报文匹配结果。
优选地,流匹配信息记录还包括记录刷新标志。
优选地,所述的多域分类规则的分类域类型为网络层分类域、网络流量数据及操作相关的上下文数据。
优选地,所述的流匹配比较域为报文五元组,所述报文五元组中的元素为IP报文的源IP地址、目的IP地址、源端口号、目的端口号、协议类型。
优选地,所述的多域分类规则线性列表为访问控制列表。
本发明还提供一种加速多域分类规则线性查找的方法,包括如下步骤:
步骤11:根据需要预先定义流匹配比较域,其中,所述流为网络中具有相同多元组的报文,所述的流匹配比较域由流的元素组成,且为多域分类规则线性列表的报文匹配比较域的子集;
步骤12:根据报文中提取的所述流匹配比较域中的元素,查找报文所在流的流匹配信息记录表,如果在该流匹配信息记录表中没有匹配的流匹配信息记录,则确定该流对于所述多域分类规则线性列表为首包,执行步骤13;否则执行步骤14;
步骤13:从所述多域分类规则线性列表的首规则起依次对这些规则进行线性查找,遇到第一条报文匹配的规则或查找到表尾则结束查找以及产生报文匹配结果,并且在流匹配信息记录表中记录流匹配结果;执行步骤16;
步骤14:根据匹配的流匹配信息记录,确定是否进行除所述流匹配比较域之外的所述多域分类规则线性列表的报文匹配比较域子集的查找,如果是,执行步骤15;否则,结束查找以及产生报文匹配结果,执行步骤16;
步骤15:从所述匹配的流匹配信息记录中的流匹配规则标号对应的规则开始对所述多域分类规则线性列表进行查找,遇到第一条报文匹配的规则或查找到表尾则结束查找以及产生报文匹配结果;
步骤16:输出报文匹配结果。
优选地,流匹配信息记录分两种情况填写,如果流匹配,填写的流匹配信息记录为多域分类规则线性列表编号和流匹配规则标号;如果流不匹配,填写的流匹配信息记录为多域分类规则线性列表编号和流不匹配标志。
优选地,所述的步骤14中确定是否进行除所述流匹配比较域之外的所述多域分类规则线性列表的报文匹配比较域子集的查找的步骤具体为根据所述匹配的流匹配信息记录,判断所述的匹配的流匹配信息记录中是否有流不匹配标志,如果有,则不进行除所述流匹配比较域之外的所述多域分类规则线性列表的报文匹配比较域子集的查找;否则,进行除所述流匹配比较域之外的所述多域分类规则线性列表的报文匹配比较域子集的查找。
本发明还提供一种加速多域分类规则线性查找的装置,适于网络设备中多域分类规则线性列表的查找,该装置包括:定义流匹配比较域模块,用以根据需要预先定义流匹配比较域,其中,所述流为网络中具有相同多元组的报文,所述的流匹配比较域由流的元素组成,且为多域分类规则线性列表的报文匹配比较域的子集;判断首报文模块,其用于根据报文中提取的流匹配比较域中的元素,查找报文所在流的流匹配信息记录表,并且根据流匹配信息记录确定该流对于该多域分类规则线性列表是否为首包;产生流匹配信息记录模块,用以将报文中的流匹配比较域中的元素与多域分类规则线性列表中的每条规则所包含域的元素进行匹配比较,并在流匹配信息记录表中记录包括多域分类规则线性列表编号和流匹配结果所对应的流匹配规则标号的流匹配信息记录;产生报文匹配结果模块,用以从多域分类规则线性列表的首规则或流匹配规则标号所对应的规则开始进行报文与多域分类规则线性列表的匹配查找,产生报文匹配结果;以及匹配结果输出模块,用以输出报文匹配结果。
本发明还提供一种加速多域分类规则线性查找的装置,适于网络设备中多域分类规则线性列表的查找,该装置包括:定义流匹配比较域模块,用以根据需要预先定义流匹配比较域,其中,所述流为网络中具有相同多元组的报文,所述的流匹配比较域由流的元素组成,且为多域分类规则线性列表的报文匹配比较域的子集;判断首报文模块,其用于根据报文中提取的流匹配比较域中的元素,查找报文所在流的流匹配信息记录表,并且根据流匹配信息记录确定该流对于该多域分类规则线性列表是否为首包;产生流匹配信息记录模块,用以将报文中的流匹配比较域中的元素与多域分类规则线性列表中的每条规则所包含域的元素进行匹配比较,并在流匹配信息记录表中记录流匹配结果;查找信息记录结果模块,用以根据所述的判断首报文模块查找到的流匹配信息记录,确定是否进行除流匹配比较域之外的多域分类规则线性列表的报文匹配比较域子集的查找;产生报文匹配结果模块,用以从多域分类规则线性列表的首规则或流匹配规则标号所对应的规则开始进行报文与多域分类规则线性列表的匹配查找,产生报文匹配结果;以及匹配结果输出模块,用以输出报文匹配结果。
优选地,流匹配信息记录分两种情况填写,如果流匹配,填写的流匹配信息记录为多域分类规则线性列表编号和流匹配规则标号;如果流不匹配,填写的流匹配信息记录为多域分类规则线性列表编号和流不匹配标志。
从以上技术方案可以看出,本发明用多元组标定一条流,通过记录流在多域分类规则线性列表中有可能匹配的规则位置,缩短该流后续报文在多域分类规则线性列表进行线性查找的区间,实现多域分类规则线性列表查找的加速。因此通过减少多域分类规则列表线性查找的范围,达到查找加速的目的。
附图说明
图1为访问控制列表的示意图;
图2为防火墙预匹配信息记录的示意图;
图3为本发明第一实施例的加速多域分类规则线性查找装置的结构示意图;
图4为本发明第一实施例的加速多域分类规则线性查找方法的流程图;
图5为本发明第二实施例的加速多域分类规则线性查找装置的结构示意图;
图6为本发明第二实施例的加速多域分类规则线性查找方法的流程图。
实施方式
请参阅图3,图3为本发明实施例的加速多域分类规则线性查找方法的流程示意图。图3中的多域分类规则线性列表为访问控制列表(Access ControlList简称ACL),访问控制列表的查找目的是线性查找所有规则,以确认报文能否和列表中的规则匹配。访问控制列表通常的查找从首规则依次查找访问控制列表的所有规则,遇到完全匹配的规则就结束查找。
假设在本实施例的报文匹配的过程中,用报文五元组(例如为IP报文的源IP地址、目的IP地址、源端口号、目的端口号、协议类型)形成一条流(网络中具有相同五元组的报文),并且使用报文五元组与访问控制列表规则进行比较(即进行流匹配),如果能够匹配,则认为该规则能够与报文所在的流匹配(此时,若访问控制列表的规则有超出五元组的域,这些域会被忽略),否则为流不匹配。
由于流匹配的比较域是报文匹配比较域的一个子集(原因是流匹配的比较域是“报文匹配比较域”和“五元组”的交集),因此,除报文五元组之外,报文其他域也能与访问控制列表规则的相应域匹配才能称为报文匹配。
如果一个规则与报文匹配,该规则肯定能与报文所在流匹配;如果一个访问控制列表所有规则与报文都不匹配,则所有规则与报文所在流可能匹配也可能不匹配;如果一个访问控制列表所有规则与报文所在流都不匹配,则所有规则与报文肯定不匹配。
为了实现流后续报文查找访问控制列表的加速,报文针对每条流要产生流匹配信息记录。
实施例1
请参阅图3,图3为本发明实施例的一种加速多域分类规则线性查找装置的结构示意图;如图所示,该装置包括:定义流匹配比较域模块,用以根据需要预先定义流匹配比较域,其中,所述流为网络中具有相同多元组的报文,所述的流匹配比较域由流的元素组成,且为访问控制列表的报文匹配比较域的子集;判断首报文模块,其用于根据报文中提取的流匹配比较域中的元素,查找报文所在流的流匹配信息记录表,并且根据流匹配信息记录确定该流对于该访问控制列表是否为首包;产生流匹配信息记录模块,用以将报文中的流匹配比较域中的元素与访问控制列表中的每条规则所包含域的元素进行匹配比较,并在流匹配信息记录表中记录包括访问控制列表编号和流匹配结果所对应的流匹配规则标号的流匹配信息记录;产生报文匹配结果模块,用以从多域分类规则线性列表的首规则或流匹配规则标号所对应的规则开始进行报文与访问控制列表的匹配查找,产生报文匹配结果;以及匹配结果输出模块,用以输出报文匹配结果。
本实施例的流匹配信息记录的记录格式为访问控制列表编号和流匹配结果所对应的流匹配规则标号,其流匹配信息记录的记录格式如下:
访问控制列表编号 | “流匹配”规则标号 | 访问控制列表变化标志 | 上次访问时间 |
请参阅图4,图4为本发明实施例的一种加速多域分类规则线性查找方法的流程示意图;使用如图3所示的加速多域分类规则线性查找装置,该方法,包括如下步骤:
步骤1:根据需要预先定义流匹配比较域,其中,所述流为网络中具有相同多元组的报文,所述的流匹配比较域由流的元素组成,所述的流匹配比较域为访问控制列表的报文匹配比较域的子集;
步骤2:根据报文中提取的流匹配比较域中的元素,查找报文所在流的流匹配信息记录表,如果在该流匹配信息记录表中没有匹配的流匹配信息记录,则确定该流对于该访问控制列表为首包,执行步骤3;否则执行步骤4;
步骤3:从访问控制列表的首规则起依次对这些规则进行线性查找,遇到第一条报文匹配的规则或查找到表尾则结束查找以及产生报文匹配结果,并且在流匹配信息记录表中记录访问控制列表编号和流匹配结果所对应的流匹配规则标号,执行步骤5;
步骤4:根据流匹配信息记录,从该流匹配信息记录的流匹配规则标号所对应的规则开始对访问控制列表进行查找,遇到第一条报文匹配的规则或查找到表尾则结束查找以及产生报文匹配结果;
步骤5:输出报文匹配结果。
在本实施例中,我们假设流F对访问控制列表A进行查找操作,流F后续报文匹配访问控制列表A的具体过程如下:
查找流F对应的流匹配信息记录表,如果能够找到访问控制列表A的记录信息,则根据找到的流匹配信息记录进行操作,即不论该条流匹配信息记录表示的是否匹配,均从该条流匹配信息记录的流匹配规则标号所对应的规则开始对访问控制列表进行查找。结果,如果记录信息为流不匹配,由于该条流匹配信息记录中的流匹配规则标号所对应的规则为访问控制列表A中的最后一条规则,因此,查找结束,直接返回报文不匹配;如果记录信息为流匹配,则从该记录中的流匹配规则标号所对应的规则开始对访问控制列表A进行线性查找。
实施例2
请参阅图5,图5为本发明实施例的一种多域分类规则线性查找加速装置的结构示意图。如图所示,该装置包括:定义流匹配比较域模块,用以根据需要预先定义流匹配比较域,其中,所述流为网络中具有相同多元组的报文,所述的流匹配比较域由流的元素组成,且为访问控制列表的报文匹配比较域的子集;判断首报文模块,其用于根据报文中提取的流匹配比较域中的元素,查找报文所在流的流匹配信息记录表,并且根据流匹配信息记录确定该流对于该访问控制列表是否为首包;产生流匹配信息记录模块,用以将报文中的流匹配比较域中的元素与访问控制列表中的每条规则所包含域的元素进行匹配比较,并在流匹配信息记录表中记录流匹配信息记录结果;查找信息记录结果模块,用以根据所述的判断首报文模块查找到的流匹配信息记录,确定是否进行除流匹配比较域之外的访问控制列表的报文匹配比较域子集的查找;产生报文匹配结果模块,用以从访问控制列表的首规则或流匹配规则标号所对应的规则开始进行报文与访问控制列表的匹配查找,产生报文匹配结果;以及匹配结果输出模块,用以输出报文匹配结果。
本实施例的流匹配信息记录的记录格式如下:
访问控制列表编号 | “流匹配”规则标号或“流不匹配”标志 | 访问控制列表变化标志 | 上次访问时间 |
从上述记录可以看出,如果流匹配,填写的流匹配信息记录为访问控制列表编号和流匹配规则标号;如果流不匹配,填写的流匹配信息记录为访问控制列表编号和流不匹配标志。流匹配信息记录还包括记录刷新标志,该记录刷新标志例如为访问控制列表变化标志和上次访问时间,也可选择其他方式刷新记录。填写流匹配信息记录后,将该条记录增加到流匹配信息记录表中。
请参阅图6,图6为本发明实施例的一种加速多域分类规则线性查找方法的流程示意图;使用如图5所示的加速多域分类规则线性查找装置,该方法,包括如下步骤:
步骤11:根据需要预先定义流匹配比较域,其中,所述流为网络中具有相同多元组的报文,所述的流匹配比较域由流的元素组成,且为访问控制列表的报文匹配比较域的子集;
步骤12:根据报文中提取的流匹配比较域中的元素,查找报文所在流的流匹配信息记录表,如果在该流匹配信息记录表中没有匹配的流匹配信息记录,则确定该流对于该访问控制列表为首包,执行步骤13;否则执行步骤14;
步骤13:从访问控制列表的首规则起依次对这些规则进行线性查找,遇到第一条报文匹配的规则或查找到表尾则结束查找以及产生报文匹配结果,并且在流匹配信息记录表中记录流匹配结果;执行步骤16;
步骤14:根据流匹配信息记录,确定是否进行除流匹配比较域之外的访问控制列表的报文匹配比较域子集的查找,如果是,执行步骤15;否则,结束查找以及产生报文匹配结果,执行步骤16;
步骤15:从该流匹配信息记录中的流匹配规则标号所对应的规则开始对访问控制列表进行查找,遇到第一条报文匹配的规则或查找到表尾则结束查找以及产生报文匹配结果;
步骤16:输出报文匹配结果。
因此,在本实施例中,所述的流匹配信息记录分两种情况填写,如果流匹配,填写的流匹配信息记录为访问控制列表编号和流匹配规则标号;如果流不匹配,填写的流匹配信息记录为访问控制列表编号和流不匹配标志。因此,所述的步骤14中确定是否进行除所述流匹配比较域之外的所述多域分类规则线性列表的报文匹配比较域子集的查找的步骤具体为根据所述匹配的流匹配信息记录,判断所述匹配的流匹配信息记录中是否有流不匹配标志,如果有,则查找到的记录为流不匹配,不进行除所述流匹配比较域之外的所述多域分类规则线性列表的报文匹配比较域子集的查找,结束查找以及产生报文匹配结果,执行步骤16;否则,查找到的结果为流匹配,进行除所述流匹配比较域之外的所述多域分类规则线性列表的报文匹配比较域子集的查找,执行步骤15。
在本实施例中,我们假设流F对访问控制列表A进行查找操作,流F后续报文匹配访问控制列表A的具体过程如下:
查找流F对应的流匹配信息记录表,如果能够找到访问控制列表A的记录信息,则根据找到的流匹配信息记录进行操作,即如果记录信息为流不匹配,则直接返回报文不匹配;如果记录信息为流匹配,则从该记录中的流匹配规则标号所对应的规则开始对访问控制列表A进行线性查找。
从以上两个实施例的查找结果,可以看出其组合情况如下:
报文匹配,且流匹配 | 返回流匹配的规则标号 |
报文匹配,但流不匹配 | 不可能发生 |
报文不匹配,但流匹配 | 返回流匹配的规则标号 |
报文不匹配,且不流匹配 | 返回“流不匹配”的规则标号或直接返同报文不匹配结果 |
需注意的是,以上描述的流F的首报文和后续报文是相对访问控制列表A而言,不一定是流F真正的首报文和后续报文,存在以下可能:两个报文为流F中不同的报文,是相同或不同模块发起的访问控制列表A查找操作;两个报文为流F中相同的报文,是不同模块先后发起的访问控制列表A查找操作。
访问控制列表修改引起流匹配信息记录表的刷新,为访问控制列表记录版本号,每修改一次则递增版本号。后续如果有报文查找该访问控制列表,发现流匹配信息记录中的访问控制列表版本号与当前访问控制列表版本号不一致,则删除流匹配信息记录表中的记录项。流匹配信息记录表老化刷新可以根据流的活动状态选择刷新,也可以定时批量刷新。
在流F查找访问控制列表A的流匹配信息记录已创建的情况下,与未采取加速的访问控制列表查找操作进行性能对比,可分为以下几种情况:
条件1:如果报文查找的结果为报文匹配,其匹配的规则分类域为五元组的子集;
条件2:如果报文查找的结果为报文匹配,其匹配的规则分类域不是五元组的子集;
条件3:如果报文查找的结果为报文不匹配,报文所在流也不匹配;
条件4:如果报文查找的结果为报文不匹配,报文所在流能匹配;
以上各条件下,本方案能够获得不同的加速性能:
基于条件1,报文根据流匹配信息记录,能够一次命中要查找的访问控制列表中“报文匹配”的规则;
基于条件2,报文根据流匹配信息记录,从流可匹配的第一条规则进行访问控制列表查找。考虑到第一条流匹配的规则在访问控制列表中为等概率随机分布,平均查找区间缩短为原平均查找区间的1/2。
基于条件3,报文根据流匹配信息记录,查到流不匹配访问控制列表A,则可直接确认报文不匹配;
基于条件4,与条件2类似,报文根据流匹配信息记录,从流可匹配的第一条规则进行访问控制列表查找。考虑到第一条流匹配的规则在访问控制列表中为等概率随机分布,平均查找区间缩短为总区间1/2。
综合以上分析,该加速查找方案在最坏情况下能够获得50%的平均加速性能;对于通常使用的五元组分类规则(或五元组子集),能够实现查找一次命中。
需要说明的是,本方案中分类域类型的选择不限于网络层分类域,任何网络流量数据及操作相关的上下文都可作为分类域;本方案中流的定义不限于五元组,可选择分类域的任意子集作为网络流量等价类的划分;本方案描述的访问规则列表是多域分类规则线性列表的一种应用形式,可以通过其他方式实现多域分类规则线性列表。
下面通过具体的实例来进一步说明解释本发明。
一、流匹配信息记录的产生
假设ACL列表3000中包含257条规则(3000为ACL列表的编号):
其中:SIP—源地址;DIP—目的地址;PID—协议号;SPORT—源端口;DPORT—目的端口;DSCP—区分服务编码点;
ACL列表3000的规则内容如下所示:
规则1: | SIP 1.1.1.1;DIP 2.1.1.1;PID 6;SPORT 21;DPORT 60;DSCP 20; |
规则2: | SIP 1.1.1.2;DIP 2.1.1.2;PID 6;SPORT 21;DPORT 60;DSCP 20; |
规则3: | SIP 1.1.1.3;DIP 2.1.1.3;PID 6;SPORT 21;DPORT 60;DSCP 20; |
规则4: | SIP 1.1.1.4;DIP 2.1.1.4;PID 6;SPORT 21;DPORT 60;DSCP 20; |
规则...: | ....../*SIP、DIP依次递增*/ |
规则100: | SIP 1.1.1.100;DIP 2.1.1.100;PID 6;SPORT 21;DPORT 60;DSCP 20; |
规则101: | SIP 1.1.1.101;DIP 2.1.1.101;PID 6;SPORT 21;DPORT 60;DSCP 20; |
规则...: | ....../*SIP、DIP依次递增,直到规则255*/ |
规则255: | SIP 1.1.1.255;DIP 2.1.1.255;PID 6;SPORT 21;DPORT 60;DSCP 20; |
规则256: | SIP 1.1.1.100;DIP 2.1.1.100;/*只使用SIP、DIP作为分类域*/ |
规则257: | SIP 1.1.1.100;/*只使用SIP作为分类域*/ |
假设流首报文内容如下:
SIP 1.1.1.100;DIP 2.1.1.100;PID 6;SPORT 21;DPORT 60;DSCP 18;
“流匹配信息记录”生成过程如下:
首先,报文查找规则1,由于规则1中包含分类域SIP、DIP、PID、SPORT、DPORT、DSCP,报文首先与规则进行流匹配,即先提取规则1中的SIP、DIP、PID、SPORT、DPORT这五个分类域进行匹配(这五个分类域属于五元组,作为流匹配比较域)。如果发现规则1中的SIP与报文的SIP不匹配,就不再进行其他域的比较,直接可认为该规则为“流不匹配”,同时也确认“报文不匹配”;然后,继续查找规则2,进行相同操作,发现规则2仍为“流不匹配”,“报文不匹配”;接下来,继续查找ACL后续其他规则,直到规则100,发现规则100的SIP、DIP、PID、SPORT、DPORT这五个分类域与报文的SIP、DIP、PID、SPORT、DPORT一致,可认为流匹配,根据流匹配结果生成“流匹配信息记录”。
流匹配信息记录如下:
访问控制列表编号3000 | “流匹配”规则标号100 | 其它环境变量信息 | 当前系统时间 |
表格中前两部分为流匹配信息记录中必须记录的内容,后两部分供ACL刷新和更改使用。
最后,该报文的DSCP域与规则100的DSCP域不匹配,因此认为报文和规则100为“报文不匹配”,报文继续查找后续其他规则,直到查找到规则256,发现报文的SIP、DIP和规则中的全部分类域(即SIP、DIP)匹配,认为报文匹配成功,向发起本次ACL查找的模块返回该查找结果。
通过上述过程可见,流首报文获取“流匹配信息记录”的过程是该报文进行“报文匹配”的一个子过程。
二、匹配加速
根据前面的描述,流首报文通过查找ACL列表生成了“流匹配信息记录”,流后续报文“匹配加速”的过程如下所述,分两种情况描述:
1)缩小匹配范围的情况:假设该流的一个后续报文内容如下:
SIP 1.1.1.100;DIP 2.1.1.100;PID 6;SPORT 21;DPORT 60;DSCP 15;
匹配过程:
①首先查找“流匹配信息记录”,该流的首匹配规则为100,报文从规则100开始比较操作;
②规则100的DSCP域与报文的DSCP域不匹配,报文继续查找后续规则,直到查找到规则256,发现报文的SIP、DIP和规则中的全部分类域(即SIP、DIP)匹配,认为报文匹配成功,为发起本次ACL查找的模块返回该查找结果;
通过以上过程可见,该匹配加速方法缩短了报文匹配查找范围,对流后续报文,只需要查找规则100到规则256的范围,省略了规则1到规则100的查找;
2)一次命中的情况:
假设规则100的分类域为五元组的子集,例如只包含SIP、DIP和PID,如下所示:
规则100: | SIP 1.1.1.100;DIP 2.1.1.100;PID 6; |
假设流后续报文内容:
SIP 1.1.1.100;DIP 2.1.1.100;PID 6;SPORT 21;DPORT 60;DSCP 15;
匹配过程:
①首先查找“流匹配信息记录”,该流的首匹配规则为100,报文从规则100开始比较操作;
②匹配规则100发现报文的SIP、DIP、PID域与规则完全匹配,认为报文匹配,查找成功;
可见,若流首报文“流匹配”规则(这里为规则100)分类域为五元组子集(这里为SIP、DIP、PID)条件下,该加速算法可实现一次命中。
以上所述,仅为本发明中的较佳实施例而已,并非用来限定本发明的实施范围;即凡依本发明申请专利范围所作的均等变化与修饰,皆为本发明专利范围所涵盖。
Claims (11)
1、一种加速多域分类规则线性查找的方法,包括如下步骤:
步骤1:根据需要预先定义流匹配比较域,其中,所述的流匹配比较域由流的元素组成,且为多域分类规则线性列表的报文匹配比较域的子集;
步骤2:根据报文中提取的所述流匹配比较域中的元素,查找报文所在流的流匹配信息记录表,如果在该流匹配信息记录表中没有匹配的流匹配信息记录,则确定该流对于所述多域分类规则线性列表为首包,执行步骤3;否则执行步骤4;
步骤3:从所述多域分类规则线性列表的首规则起依次对这些规则进行线性查找,遇到第一条报文匹配的规则或查找到表尾则结束查找以及产生报文匹配结果,并且在流匹配信息记录表中记录包括多域分类规则线性列表编号和流匹配结果所对应的流匹配规则标号的流匹配信息记录,执行步骤5;
步骤4:根据匹配的流匹配信息记录,从该匹配的流匹配信息记录的流匹配规则标号所对应的规则开始对所述多域分类规则线性列表进行查找,遇到第一条报文匹配的规则或查找到表尾则结束查找以及产生报文匹配结果;
步骤5:输出报文匹配结果。
2、根据权利要求1所述的加速多域分类规则线性查找的方法,其特征在于,流匹配信息记录还包括记录刷新标志。
3、根据权利要求1所述的加速多域分类规则线性查找的方法,其特征在于,所述的多域分类规则的分类域类型为网络层分类域、网络流量数据及操作相关的上下文数据。
4、根据权利要求1所述的加速多域分类规则线性查找的方法,其特征在于,所述的流匹配比较域为报文五元组,所述报文五元组中的元素为IP报文的源IP地址、目的IP地址、源端口号、目的端口号、协议类型。
5、根据权利要求1所述的加速多域分类规则线性查找的方法,其特征在于,所述的多域分类规则线性列表为访问控制列表。
6、一种加速多域分类规则线性查找的方法,包括如下步骤:
步骤11:根据需要预先定义流匹配比较域,其中,所述的流匹配比较域由流的元素组成,且为多域分类规则线性列表的报文匹配比较域的子集;
步骤12:根据报文中提取的所述流匹配比较域中的元素,查找报文所在流的流匹配信息记录表,如果在该流匹配信息记录表中没有匹配的流匹配信息记录,则确定该流对于所述多域分类规则线性列表为首包,执行步骤13;否则执行步骤14;
步骤13:从所述多域分类规则线性列表的首规则起依次对这些规则进行线性查找,遇到第一条报文匹配的规则或查找到表尾则结束查找以及产生报文匹配结果,并且在流匹配信息记录表中记录流匹配结果;执行步骤16;
步骤14:根据匹配的流匹配信息记录,确定是否进行除所述流匹配比较域之外的所述多域分类规则线性列表的报文匹配比较域子集的查找,如果是,执行步骤15;否则,结束查找以及产生报文匹配结果,执行步骤16;
步骤15:从所述匹配的流匹配信息记录中的流匹配规则标号所对应的规则开始对所述多域分类规则线性列表进行查找,遇到第一条报文匹配的规则或查找到表尾则结束查找以及产生报文匹配结果;
步骤16:输出报文匹配结果。
7、根据权利要求6所述的加速多域分类规则线性查找的方法,其特征在于,流匹配信息记录分两种情况填写,如果流匹配,填写的流匹配信息记录为多域分类规则线性列表编号和流匹配规则标号;如果流不匹配,填写的流匹配信息记录为多域分类规则线性列表编号和流不匹配标志。
8、根据权利要求7所述的加速多域分类规则线性查找的方法,其特征在于,所述的步骤14中确定是否进行除所述流匹配比较域之外的所述多域分类规则线性列表的报文匹配比较域子集的查找的步骤具体为根据所述匹配的流匹配信息记录,判断所述的匹配的流匹配信息记录中是否有流不匹配标志,如果有,则不进行除所述流匹配比较域之外的所述多域分类规则线性列表的报文匹配比较域子集的查找;否则,进行除所述流匹配比较域之外的所述多域分类规则线性列表的报文匹配比较域子集的查找。
9、一种加速多域分类规则线性查找的装置,适于网络设备中多域分类规则线性列表的查找,其特征在于,该装置包括:
定义流匹配比较域模块,用以根据需要预先定义流匹配比较域,其中,所述的流匹配比较域由流的元素组成,且为多域分类规则线性列表的报文匹配比较域的子集;
判断首报文模块,其用于根据报文中提取的流匹配比较域中的元素,查找报文所在流的流匹配信息记录表,并且根据流匹配信息记录确定该流对于该多域分类规则线性列表是否为首包;
产生流匹配信息记录模块,用以将报文中的流匹配比较域中的元素与多域分类规则线性列表中的每条规则所包含域的元素进行匹配比较,并在流匹配信息记录表中记录包括多域分类规则线性列表编号和流匹配结果所对应的流匹配规则标号的流匹配信息记录;
产生报文匹配结果模块,用以从多域分类规则线性列表的首规则或流匹配规则标号所对应的规则开始进行报文与多域分类规则线性列表的匹配查找,产生报文匹配结果;以及
匹配结果输出模块,用以输出报文匹配结果。
10、一种加速多域分类规则线性查找的装置,适于网络设备中多域分类规则线性列表的查找,其特征在于,该装置包括:
定义流匹配比较域模块,用以根据需要预先定义流匹配比较域,其中,所述流为网络中具有相同多元组的报文,所述的流匹配比较域由流的元素组成,且为多域分类规则线性列表的报文匹配比较域的子集;
判断首报文模块,其用于根据报文中提取的流匹配比较域中的元素,查找报文所在流的流匹配信息记录表,并且根据流匹配信息记录确定该流对于该多域分类规则线性列表是否为首包;
产生流匹配信息记录模块,用以将报文中的流匹配比较域中的元素与多域分类规则线性列表中的每条规则所包含域的元素进行匹配比较,并在流匹配信息记录表中记录流匹配结果;
查找信息记录结果模块,用以根据所述的判断首报文模块查找到的流匹配信息记录,确定是否进行除流匹配比较域之外的多域分类规则线性列表的报文匹配比较域子集的查找;
产生报文匹配结果模块,用以从多域分类规则线性列表的首规则或流匹配规则标号所对应的规则开始进行报文与多域分类规则线性列表的匹配查找,产生报文匹配结果;以及
匹配结果输出模块,用以输出报文匹配结果。
11、根据权利要求10所述的加速多域分类规则线性查找的装置,其特征在于,流匹配信息记录分两种情况填写,如果流匹配,填写的流匹配信息记录为多域分类规则线性列表编号和流匹配规则标号;如果流不匹配,填写的流匹配信息记录为多域分类规则线性列表编号和流不匹配标志。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101097391A CN100527669C (zh) | 2006-08-09 | 2006-08-09 | 一种加速多域分类规则线性查找的系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006101097391A CN100527669C (zh) | 2006-08-09 | 2006-08-09 | 一种加速多域分类规则线性查找的系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1909455A CN1909455A (zh) | 2007-02-07 |
CN100527669C true CN100527669C (zh) | 2009-08-12 |
Family
ID=37700451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101097391A Expired - Fee Related CN100527669C (zh) | 2006-08-09 | 2006-08-09 | 一种加速多域分类规则线性查找的系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100527669C (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109150584B (zh) * | 2018-07-04 | 2022-02-25 | 北京中创腾锐技术有限公司 | 一种基于simd指令的为网络分组分类提供加速支持的方法 |
CN112367262B (zh) * | 2020-08-20 | 2022-07-05 | 国家计算机网络与信息安全管理中心 | 一种五元组规则的匹配方法及装置 |
CN112383479B (zh) * | 2020-10-15 | 2022-03-22 | 国家计算机网络与信息安全管理中心 | 规则查询方法、装置、计算机设备和存储介质 |
-
2006
- 2006-08-09 CN CNB2006101097391A patent/CN100527669C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1909455A (zh) | 2007-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1957573B (zh) | 使用最具体的过滤器匹配和传输层共享进行两级分组分类的装置和方法 | |
CN100583812C (zh) | 使用最具体的过滤器匹配和传输层共享进行两级分组分类的方法和装置 | |
CN101697545B (zh) | 安全事件关联方法、装置及网络服务器 | |
CN108881194A (zh) | 企业内部用户异常行为检测方法和装置 | |
CN111461216B (zh) | 一种基于机器学习的案件风险识别方法 | |
CN103927307B (zh) | 一种识别网站用户的方法和装置 | |
CN107819646A (zh) | 一种分布式传输的网络流量分类系统和方法 | |
CN104348716A (zh) | 一种报文处理方法及设备 | |
CN101146027A (zh) | 基于访问控制列表分类的方法 | |
CN102404249B (zh) | 一种基于协同训练的垃圾邮件过滤方法和装置 | |
CN100527669C (zh) | 一种加速多域分类规则线性查找的系统和方法 | |
CN110324327A (zh) | 基于特定企业域名数据的用户及服务器ip地址标定装置及方法 | |
CN103873441A (zh) | 防火墙安全规则优化方法及装置 | |
CN108763573A (zh) | 一种基于机器学习的olap引擎路由方法及系统 | |
CN106650783A (zh) | 用于移动终端数据分类、生成、匹配的方法、装置及系统 | |
CN106470206A (zh) | 适用于异质网络架构的异常预测方法及系统 | |
CN103685222A (zh) | 基于确定性有穷状态自动机的数据匹配检测方法 | |
CN108270761A (zh) | 一种域名合法性检测方法及装置 | |
CN101465807B (zh) | 一种数据流控制方法和装置 | |
US20170149812A1 (en) | Suspicious network traffic identification method and apparatus | |
CN112039840A (zh) | 一种基于区块链共识机制的可信威胁情报识别方法及装置 | |
Shi et al. | Anomaly Detection for Network Flow Using Immune Network and Density Peak. | |
CN102253948A (zh) | 在多源信息系统中搜索信息的方法和装置 | |
CN102437959B (zh) | 基于双超时网络报文的组流方法 | |
CN103490944A (zh) | 一种基于bp神经网络的混合式p2p流量监测系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090812 Termination date: 20200809 |