CN110708317A - 数据包匹配方法、装置、网络设备及存储介质 - Google Patents
数据包匹配方法、装置、网络设备及存储介质 Download PDFInfo
- Publication number
- CN110708317A CN110708317A CN201910957122.2A CN201910957122A CN110708317A CN 110708317 A CN110708317 A CN 110708317A CN 201910957122 A CN201910957122 A CN 201910957122A CN 110708317 A CN110708317 A CN 110708317A
- Authority
- CN
- China
- Prior art keywords
- data packet
- node
- rule
- application
- rules
- 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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0263—Rule management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/028—Capturing of monitoring data by filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/325—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种数据包匹配方法,包括:根据多个规则生成规则树;接收数据包并预测所述数据包的应用;查找所述规则树中与所述应用对应的目标节点;匹配所述数据包与所述目标节点中的规则;当所述数据包与所述目标节点中的规则匹配成功时,根据所述目标节点中的规则输出所述数据包的应用。本发明还提供了一种数据包匹配装置、网络设备及存储介质。本发明通过预测数据包的应用来定位规则树中的规则,并根据规则来确认数据包的真实应用,缩短了规则的匹配时间,提高了规则的匹配效率。
Description
技术领域
本发明涉及数据网络技术领域,尤其涉及一种数据包匹配方法、装置、网络设备及存储介质。
背景技术
随着移动互联时代的到来,网络数据流量出现了指数爆炸式的增长。由此产生了网络攻击防范、网络包的内容安全等问题。为了解决这类问题,深度包检测(Deep PacketInspection,DPI)技术应运而生。深度包检测技术是一种面向网络数据的高速检测方法,主要用于检测网络包的载荷字段内容。该技术在入侵防御系统(IPS)、入侵检测系统(IDS)中被广泛应用。
目前,深度包检测技术是在收到数据包的时候,将数据包与规则库中的规则进行逐个匹配。然而,一旦规则库特别大的时候,逐个匹配的性能就会非常低,从而降低了数据包的转发及处理的性能。
因此,有必要提供一种新的数据包匹配方案,以提高数据包的匹配性能。
发明内容
本发明的主要目的在于提供一种数据包匹配方法、装置、网络设备及存储介质,旨在解决数据包匹配性能较低的技术问题,从而提高数据包的转发及处理性能。
为实现上述目的,本发明的第一方面提供一种数据包匹配方法,所述方法包括:
根据多个规则生成规则树;
接收数据包并预测所述数据包的应用;
查找所述规则树中与所述应用对应的目标节点;
匹配所述数据包与所述目标节点中的规则;
当所述数据包与所述目标节点中的规则匹配成功时,根据所述目标节点中的规则输出所述数据包的应用。
根据本发明的一个可选实施例,所述方法还包括:
当所述数据包与所述目标节点中的规则匹配失败时,确定所述目标节点的叶子节点;
匹配所述数据包与所述叶子节点中的规则;
当所述数据包与所述叶子节点中的规则匹配成功时,根据所述叶子节点中的规则输出所述数据包的应用。
根据本发明的一个可选实施例,所述方法还包括:
当所述数据包与所述叶子节点中的规则匹配失败时,确定所述目标节点的父节点及所述父节点下的其他目标节点;
匹配所述数据包与所述其他目标节点中的规则;
当所述数据包与所述其他目标节点中的规则匹配成功时,根据所述其他目标节点中的规则输出所述数据包的应用。
根据本发明的一个可选实施例,所述方法还包括:
当所述数据包与所述其他目标节点中的规则匹配失败时,确定所述父节点的上级父节点及所述上级父节点下的其他父节点;
匹配所述数据包与所述其他父节点中的规则;
当所述数据包与所述其他父节点中的规则匹配成功时,根据所述其他父节点中的规则输出所述数据包的应用;
当所述数据包与所述其他父节点中的规则匹配失败时,继续遍历与所述上级父节点属于同一上上级父节点的其他上级父节点直至根节点。
根据本发明的一个可选实施例,所述根据多个规则生成规则树包括:
根据OSI七层网络模型基于所述多个规则生成规则树,所述规则树中的每一层节点对应所述OSI七层网络模型中一层协议,所述每一层中的每一个节点中存储有一个规则。
根据本发明的一个可选实施例,所述预测所述数据包的应用包括:
获取所述数据包的头部信息;
根据所述头部信息预测所述数据包的应用。
根据本发明的一个可选实施例,在所述输出所述数据包的应用后,所述方法还包括:
根据所述应用将所述数据包分配至对应的链路中。
为实现上述目的,本发明的第二方面提供一种数据包匹配装置,所述装置包括:
生成模块,用于根据多个规则生成规则树;
接收模块,用于接收数据包并预测所述数据包的应用;
查找模块,用于查找所述规则树中与所述应用对应的目标节点;
匹配模块,用于匹配所述数据包与所述目标节点中的规则;
输出模块,用于当所述数据包与所述目标节点中的规则匹配成功时,根据所述目标节点中的规则输出所述数据包的应用。
为实现上述目的,本发明的第三方面提供一种网络设备,所述网络设备包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的数据包匹配方法的下载程序,所述数据包匹配方法的下载程序被所述处理器执行时实现所述的数据包匹配方法。
为实现上述目的,本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据包匹配方法的下载程序,所述数据包匹配方法的下载程序可被一个或者多个处理器执行以实现所述的数据包匹配方法。
本发明实施例所述的数据包匹配方法、装置、网络设备及存储介质,在接收到数据包时首先预测所述数据包的应用;然后从生成的规则树中查找出与预测的应用对应的目标节点;并匹配所述数据包与所述目标节点中的规则以确定预测的应用的正确性;当所述数据包与所述目标节点中的规则匹配成功时,根据所述目标节点中的规则输出所述数据包的真实应用。即通过预测数据包的应用,来快速定位出规则进行匹配,并根据匹配到的规则输出数据包的应用,能够减少规则的匹配次数,缩短规则的匹配时间,提高匹配效率。
附图说明
图1为本发明第一实施例的数据包匹配方法的流程示意图;
图2为OSI网络模型的网络协议示意图;
图3为本发明第二实施例的数据包匹配装置的功能模块示意图;
图4为本发明第五实施例的网络设备的内部结构示意图。
本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术规则的数量。由此,限定有“第一”、“第二”的规则可以明示或者隐含地包括至少一个该规则。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
实施例一
参阅图1所示,为本发明第一实施例揭露的数据包匹配方法的流程图。
所述数据包匹配方法可以应用于网络设备中,所述网络设备可以包括:交换机、路由器、防火墙设备或者其他网络安全设备等。所述深度包检测规则库生成方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
S11,根据多个规则生成规则树。
网络设备中通常会预先存储有一个规则库,以便对接收到的数据包进行匹配检测,从而实现DPI功能。所述规则库可以为入侵防御系统(Intrusion Prevention System,IPS)规则库或统一资源定位符(Uniform Resource Locator,URL)分类规则库等。所述规则库不是一种数据库,而是针对不同应用数据包进行匹配的规则的集合,是一种条件的描述。所述规则库中包含有多个规则和基于所述多个规则构建的规则树,其中,所述规则为一个字符串。
在一个可选的实施例中,所述根据多个规则生成规则树包括:
根据OSI七层网络模型基于所述多个规则生成规则树,所述规则树中的每一层节点对应所述OSI七层网络模型中一层协议,所述每一层中的每一个节点中存储有一个规则。
所述开放性的通信系统互连(Open System Interconnection,OSI)参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,不仅包括一系列抽象的术语或概念,也包括具体的协议。OSI模型有7层结构,每层都可以有几个子层。OSI的7层从上到下分别是:7应用层、6表示层、5会话层、4传输层、3网络层、2数据链路层、1物理层;其中高层(即7、6、5、4层)定义了应用程序的功能,下面3层(即3、2、1层)主要面向通过网络的端到端的数据流。
根据规则库中的各规则包括的字符/字符串及OSI模型的每层网络协议,确定规则树中的各规则节点。其中,生成的规则树中有一个根节点,每层上的节点即是上一层节点的叶子节点,也是下一层节点的父节点,且规则树中的每一节点都对应一个规则,每个规则唯一确定一个数据包的应用。
参阅图2所示的示意图,图2仅示意性的给出了生成的规则树。包括ICMP节点、IP节点、IGMP节点、TCP节点、UDP节点、Telnet节点、HTTP节点、FTP节点、DNS节点、WEB应用节点、XX新闻节点、XX门户节点。ICMP节点中有ICMP规则,IP节点中有IP规则,IGMP节点中有IGMP规则,TCP节点中有TCP规则、UDP节点中有UDP规则、Telnet节点中有Telnet规则、HTTP节点中有HTTP规则、FTP节点中有FTP规则、DNS节点中有DNS规则、WEB应用节点中有WEB应用规则、XX新闻节点中有XX新闻规则、XX门户节点中有XX门户规则。HTTP节点既是TCP节点的叶子节点,同时也是WEB应用节点的父节点。WEB应用节点既是HTTP节点的叶子节点,同时也是XX新闻节点和XX门户节点的父节点。
S12,接收数据包并预测所述数据包的应用。
所述数据包(Packet)是整个TCP/IP通信协议里网络层的传输单位,也是最小的单位。
在一个应用场景中,终端可以向服务器发送数据包,网络设备则可以在接收到所述数据包时将所述数据包与规则进行匹配,并在匹配成功后放行所述数据包至所述服务器。
在一个可选的实施例中,所述预测所述数据包的应用包括:
获取所述数据包的头部信息;
根据所述头部信息预测所述数据包的应用。
所述网络设备接收到应用的数据包后,获取所述数据包的头部信息,根据所述头部信息,例如,源IP地址,目的IP地址,Host名称,IP协议类型(TCP/UDP/ICMP),源端口号及/或目的端口号范围来预测所述数据包的应用。示例性的,假设网络设备接收到的数据包的TCP端口号为80,则可以预测出这是一个HTTP的数据包,即所述数据包的应用为HTTP。
S13,查找所述规则树中与所述应用对应的目标节点。
在预测出所述数据包的应用后,可以先查找规则树中与所述应用对应的目标节点。例如,预测出所述数据包的应用为HTTP应用,则直接与规则树中的HTTP节点中的HTTP规则匹配,来验证或者确认预测的数据包的应用是否正确。
S14,匹配所述数据包与所述目标节点中的规则。
关于数据包与规则的匹配过程为现有技术,本发明在此不再进行详细阐述。
网络设备根据所述数据包与所述规则库中的规则的匹配结果进行安全控制。当所述数据包与所述规则库中的规则匹配成功时,放行所述数据包至服务器。当所述数据包与所述规则库中的规则匹配失败时,可以确定其他节点并与其他节点中的规则进行匹配。
S15,当所述数据包与所述目标节点中的规则匹配成功时,根据所述目标节点中的规则输出所述数据包的应用。
当所述数据包与所述目标节点中的规则匹配成功时,即可根据所述目标节点中的规则确定所述数据包的应用。
示例性的,当数据包与HTTP规则匹配成功时,即可确定所述数据包的应用为HTTP应用,表明预测的数据包的应用正确。当数据包与HTTP规则匹配失败时,即可确定所述数据包的应用不为HTTP应用,表明预测的数据包的应用错误。
在一个可选的实施例中,所述方法还包括:
当所述数据包与所述目标节点中的规则匹配失败时,确定所述目标节点的叶子节点;
匹配所述数据包与所述叶子节点中的规则;
当所述数据包与所述叶子节点中的规则匹配成功时,根据所述叶子节点中的规则输出所述数据包的应用。
示例性的,假设目标节点为HTTP节点,当数据包与HTTP节点中的HTTP规则匹配失败时,确定HTTP节点的叶子节点为WEB应用节点,网络设备匹配数据包与WEB应用节点中的WEB应用规则。当所述数据包与所述WEB应用节点中的WEB应用规则匹配成功时,根据所述WEB应用节点中的WEB应用规则输出所述数据包为WEB应用。
在一个可选的实施例中,所述方法还包括:
当所述数据包与所述叶子节点中的规则匹配失败时,确定所述目标节点的父节点及所述父节点下的其他目标节点;
匹配所述数据包与所述其他目标节点中的规则;
当所述数据包与所述其他目标节点中的规则匹配成功时,根据所述其他目标节点中的规则输出所述数据包的应用。
当所述数据包与所述叶子节点中的规则匹配失败时,例如,当所述数据包与所述WEB应用节点中的WEB应用规则匹配失败时,确定所述HTTP节点(目标节点)的父节点为TCP节点,TCP节点下的其他目标节点为Telnet节点和FTP节点。网络设备可以先将所述数据包与Telnet节点的Telnet规则进行匹配。当所述数据包与Telnet节点的Telnet规则匹配成功时,则根据所述Telnet节点的Telnet规则输出所述数据包为Telnet应用。否则,当所述数据包与Telnet节点的Telnet规则匹配失败时,网络设备再先将所述数据包与FTP节点的FTP规则进行匹配。当所述数据包与FTP节点的FTP规则匹配成功时,则根据所述FTP节点的FTP规则输出所述数据包为FTP应用。
进一步的,所述方法还包括:
当所述数据包与所述其他目标节点中的规则匹配失败时,确定所述父节点的上级父节点及所述上级父节点下的其他父节点;
匹配所述数据包与所述其他父节点中的规则;
当所述数据包与所述其他父节点中的规则匹配成功时,根据所述其他父节点中的规则输出所述数据包的应用;
当所述数据包与所述其他父节点中的规则匹配失败时,继续遍历与所述上级父节点属于同一上上级父节点的其他上级父节点直至根节点。
当网络设备在确定所述数据包与所述其他目标节点中的规则匹配失败时,例如所述数据包与Telnet节点的Telnet规则匹配失败,且数据包与FTP节点的FTP规则也匹配失败,则确定所述父节点的上级父节点,例如,确定TCP节点的上级父节点为IP节点。再确定上级父节点IP节点下的其他父节点为UDP节点。网络设备将所述数据包与所述UDP节点中的UDP规则进行匹配。当所述数据包与所述UDP节点中的UDP规则匹配成功时,根据所述UDP节点中的UDP规则输出所述数据包为UDP应用。当所述数据包与所述UDP节点中的UDP规则匹配失败时,继续遍历与所述IP节点的父节点下的其他叶子节点直至根节点。
更进一步的,在所述输出所述数据包的应用后,所述方法还包括:
根据所述应用将所述数据包分配至对应的链路中。
在该可选的实施例中,一条数据流中包含有多个数据包,而一条数据流对应一种应用。因此,当某条数据流被成功识别出来后,只需要判断出这条数据流属于哪个应用,那么这条数据流中后续的数据包就不需要再做DPI检测了。
目前互联网用户的服务器和出口带宽资源有限,链路稳定性和实时性不高,因此用户往往会租用几条电信或联通的更优质的链路用于高实时性和高稳定性的重要业务,租用普通的链路用于不重要业务,以提高工作效率和网络资源利用率。在这种场景下,需要使用引流功能根据应用及用户策略将流量引至合适的链路来达到目的。
本发明实施例所述的数据包匹配方法,在接收到数据包时首先预测所述数据包的应用;然后从生成的规则树中查找出与预测的应用对应的目标节点;并匹配所述数据包与所述目标节点中的规则以确定预测的应用的正确性;当所述数据包与所述目标节点中的规则匹配成功时,根据所述目标节点中的规则输出所述数据包的真实应用。即通过预测数据包的应用,来快速定位出规则进行匹配,并根据匹配到的规则输出数据包的应用,能够减少规则的匹配次数,缩短规则的匹配时间,提高匹配效率。而提高了数据包与规则的匹配效率,又能提高数据包的转发和处理效率。
实施例二
参阅图3所示,为本发明实施例二揭露的数据包匹配装置的功能模块示意图。
在一些实施例中,所述数据包匹配装置30运行于资源服务器中。所述数据包匹配装置30可以包括多个由程序代码段所组成的功能模块。所述数据包匹配装置30中的各个程序段的程序代码可以存储于网络设备的存储器中,并由所述至少一个处理器所执行,以执行(详见图1描述)数据包匹配方法中的全部或者部分步骤。
本实施例中,所述数据包匹配装置30根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:生成模块301、接收模块302、查找模块303、匹配模块304、输出模块305及分配模块306。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
生成模块301,用于根据多个规则生成规则树。
网络设备中通常会预先存储有一个规则库,以便对接收到的数据包进行匹配检测,从而实现DPI功能。所述规则库可以为入侵防御系统(Intrusion Prevention System,IPS)规则库或统一资源定位符(Uniform Resource Locator,URL)分类规则库等。所述规则库不是一种数据库,而是针对不同应用数据包进行匹配的规则的集合,是一种条件的描述。所述规则库中包含有多个规则和基于所述多个规则构建的规则树,其中,所述规则为一个字符串。
在一个可选的实施例中,所述生成模块301根据多个规则生成规则树包括:
根据OSI七层网络模型基于所述多个规则生成规则树,所述规则树中的每一层节点对应所述OSI七层网络模型中一层协议,所述每一层中的每一个节点中存储有一个规则。
所述开放性的通信系统互连(Open System Interconnection,OSI)参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,不仅包括一系列抽象的术语或概念,也包括具体的协议。OSI模型有7层结构,每层都可以有几个子层。OSI的7层从上到下分别是:7应用层、6表示层、5会话层、4传输层、3网络层、2数据链路层、1物理层;其中高层(即7、6、5、4层)定义了应用程序的功能,下面3层(即3、2、1层)主要面向通过网络的端到端的数据流。
根据规则库中的各规则包括的字符/字符串及OSI模型的每层网络协议,确定规则树中的各规则节点。其中,生成的规则树中有一个根节点,每层上的节点即是上一层节点的叶子节点,也是下一层节点的父节点,且规则树中的每一节点都对应一个规则,每个规则唯一确定一个数据包的应用。
参阅图2所示的示意图,图2仅示意性的给出了生成的规则树。包括ICMP节点、IP节点、IGMP节点、TCP节点、UDP节点、Telnet节点、HTTP节点、FTP节点、DNS节点、WEB应用节点、XX新闻节点、XX门户节点。ICMP节点中有ICMP规则,IP节点中有IP规则,IGMP节点中有IGMP规则,TCP节点中有TCP规则、UDP节点中有UDP规则、Telnet节点中有Telnet规则、HTTP节点中有HTTP规则、FTP节点中有FTP规则、DNS节点中有DNS规则、WEB应用节点中有WEB应用规则、XX新闻节点中有XX新闻规则、XX门户节点中有XX门户规则。HTTP节点既是TCP节点的叶子节点,同时也是WEB应用节点的父节点。WEB应用节点既是HTTP节点的叶子节点,同时也是XX新闻节点和XX门户节点的父节点。
接收模块302,用于接收数据包并预测所述数据包的应用。
所述数据包(Packet)是整个TCP/IP通信协议里网络层的传输单位,也是最小的单位。
在一个应用场景中,终端可以向服务器发送数据包,网络设备则可以在接收到所述数据包时将所述数据包与规则进行匹配,并在匹配成功后放行所述数据包至所述服务器。
在一个可选的实施例中,所述接收模块302预测所述数据包的应用包括:
获取所述数据包的头部信息;
根据所述头部信息预测所述数据包的应用。
所述网络设备接收到应用的数据包后,获取所述数据包的头部信息,根据所述头部信息,例如,源IP地址,目的IP地址,Host名称,IP协议类型(TCP/UDP/ICMP),源端口号及/或目的端口号范围来预测所述数据包的应用。示例性的,假设网络设备接收到的数据包的TCP端口号为80,则可以预测出这是一个HTTP的数据包,即所述数据包的应用为HTTP。
查找模块303,用于查找所述规则树中与所述应用对应的目标节点。
在预测出所述数据包的应用后,可以先查找规则树中与所述应用对应的目标节点。例如,预测出所述数据包的应用为HTTP应用,则直接与规则树中的HTTP节点中的HTTP规则匹配,来验证或者确认预测的数据包的应用是否正确。
匹配模块304,用于匹配所述数据包与所述目标节点中的规则。
关于数据包与规则的匹配过程为现有技术,本发明在此不再进行详细阐述。
网络设备根据所述数据包与所述规则库中的规则的匹配结果进行安全控制。当所述数据包与所述规则库中的规则匹配成功时,放行所述数据包至服务器。当所述数据包与所述规则库中的规则匹配失败时,可以确定其他节点并与其他节点中的规则进行匹配。
输出模块305,用于当所述数据包与所述目标节点中的规则匹配成功时,根据所述目标节点中的规则输出所述数据包的应用。
当所述数据包与所述目标节点中的规则匹配成功时,即可根据所述目标节点中的规则确定所述数据包的应用。
示例性的,当数据包与HTTP规则匹配成功时,即可确定所述数据包的应用为HTTP应用,表明预测的数据包的应用正确。当数据包与HTTP规则匹配失败时,即可确定所述数据包的应用不为HTTP应用,表明预测的数据包的应用错误。
在一个可选的实施例中,所述匹配模块304还用于:
当所述数据包与所述目标节点中的规则匹配失败时,确定所述目标节点的叶子节点;
匹配所述数据包与所述叶子节点中的规则。
在一个可选的实施例中,所述输出模块305,还用于:当所述数据包与所述叶子节点中的规则匹配成功时,根据所述叶子节点中的规则输出所述数据包的应用。
示例性的,假设目标节点为HTTP节点,当数据包与HTTP节点中的HTTP规则匹配失败时,确定HTTP节点的叶子节点为WEB应用节点,网络设备匹配数据包与WEB应用节点中的WEB应用规则。当所述数据包与所述WEB应用节点中的WEB应用规则匹配成功时,根据所述WEB应用节点中的WEB应用规则输出所述数据包为WEB应用。
在一个可选的实施例中,所述匹配模块304还用于:
当所述数据包与所述叶子节点中的规则匹配失败时,确定所述目标节点的父节点及所述父节点下的其他目标节点;
匹配所述数据包与所述其他目标节点中的规则。
在一个可选的实施例中,所述输出模块305,还用于:当所述数据包与所述其他目标节点中的规则匹配成功时,根据所述其他目标节点中的规则输出所述数据包的应用。
当所述数据包与所述叶子节点中的规则匹配失败时,例如,当所述数据包与所述WEB应用节点中的WEB应用规则匹配失败时,确定所述HTTP节点(目标节点)的父节点为TCP节点,TCP节点下的其他目标节点为Telnet节点和FTP节点。网络设备可以先将所述数据包与Telnet节点的Telnet规则进行匹配。当所述数据包与Telnet节点的Telnet规则匹配成功时,则根据所述Telnet节点的Telnet规则输出所述数据包为Telnet应用。否则,当所述数据包与Telnet节点的Telnet规则匹配失败时,网络设备再先将所述数据包与FTP节点的FTP规则进行匹配。当所述数据包与FTP节点的FTP规则匹配成功时,则根据所述FTP节点的FTP规则输出所述数据包为FTP应用。
在一个可选的实施例中,所述匹配模块304还用于:
当所述数据包与所述其他目标节点中的规则匹配失败时,确定所述父节点的上级父节点及所述上级父节点下的其他父节点;
匹配所述数据包与所述其他父节点中的规则。
在一个可选的实施例中,所述输出模块305,还用于:当所述数据包与所述其他父节点中的规则匹配成功时,根据所述其他父节点中的规则输出所述数据包的应用。
在一个可选的实施例中,所述匹配模块304还用于:当所述数据包与所述其他父节点中的规则匹配失败时,继续遍历与所述上级父节点属于同一上上级父节点的其他上级父节点直至根节点。
当网络设备在确定所述数据包与所述其他目标节点中的规则匹配失败时,例如所述数据包与Telnet节点的Telnet规则匹配失败,且数据包与FTP节点的FTP规则也匹配失败,则确定所述父节点的上级父节点,例如,确定TCP节点的上级父节点为IP节点。再确定上级父节点IP节点下的其他父节点为UDP节点。网络设备将所述数据包与所述UDP节点中的UDP规则进行匹配。当所述数据包与所述UDP节点中的UDP规则匹配成功时,根据所述UDP节点中的UDP规则输出所述数据包为UDP应用。当所述数据包与所述UDP节点中的UDP规则匹配失败时,继续遍历与所述IP节点的父节点下的其他叶子节点直至根节点。
更进一步的,在所述输出所述数据包的应用后,所述数据包匹配装置30还包括:
分配模块306,用于根据所述应用将所述数据包分配至对应的链路中。
在该可选的实施例中,一条数据流中包含有多个数据包,而一条数据流对应一种应用。因此,当某条数据流被成功识别出来后,只需要判断出这条数据流属于哪个应用,那么这条数据流中后续的数据包就不需要再做DPI检测了。
目前互联网用户的服务器和出口带宽资源有限,链路稳定性和实时性不高,因此用户往往会租用几条电信或联通的更优质的链路用于高实时性和高稳定性的重要业务,租用普通的链路用于不重要业务,以提高工作效率和网络资源利用率。在这种场景下,需要使用引流功能根据应用及用户策略将流量引至合适的链路来达到目的。
本发明实施例所述的数据包匹配装置,在接收到数据包时首先预测所述数据包的应用;然后从生成的规则树中查找出与预测的应用对应的目标节点;并匹配所述数据包与所述目标节点中的规则以确定预测的应用的正确性;当所述数据包与所述目标节点中的规则匹配成功时,根据所述目标节点中的规则输出所述数据包的真实应用。即通过预测数据包的应用,来快速定位出规则进行匹配,并根据匹配到的规则输出数据包的应用,能够减少规则的匹配次数,缩短规则的匹配时间,提高匹配效率。而提高了数据包与规则的匹配效率,又能提高数据包的转发和处理效率。
实施例三
图4为本发明实施例揭露的网络设备的内部结构示意图。
在本实施例中,网络设备4可以是交换机、路由器、防火墙设备或者其他网络安全设备。
所述网络设备4可以包括存储器41、处理器42和总线43。
其中,存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器41在一些实施例中可以是所述网络设备4的内部存储单元,例如所述网络设备4的硬盘。存储器41在另一些实施例中也可以是所述网络设备4的外部存储设备,例如所述网络设备4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器41还可以既包括所述网络设备4的内部存储单元也包括外部存储设备。存储器41不仅可以用于存储安装于所述网络设备4的应用应用程序及各类数据,例如数据包匹配装置30的代码等及各个模块,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器42在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器41中存储的程序代码或处理数据。
该总线43可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,所述网络设备4还可以包括网络接口,网络接口可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该网络设备4与其他网络设备之间建立通信连接。
可选地,该网络设备4还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(Organic Light-Emitting Diode,OLED)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在所述网络设备中处理的消息以及用于显示可视化的用户界面。
图4仅示出了具有组件41-43的所述网络设备4,本领域技术人员可以理解的是,图4示出的结构并不构成对所述网络设备4的限定,既可以是总线型结构,也可以是星形结构,所述网络设备4还可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
在上述实施例中,可以全部或部分地通过应用程序、硬件、固件或者其任意组合来实现。当使用应用程序实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如,同轴电缆、光纤、数字用户线)或无线(例如,红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD),或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些规则可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中的方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用应用程序功能单元的形式实现。
所述集成的单元如果以应用程序功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以应用程序产品的形式体现出来,该计算机应用程序产品存储在一个存储介质中,包括若干指令用以使得一台网络设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、硬盘、只读存储器(Read-OnlyMemory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、物品或者方法中还存在另外的相同要素。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据包匹配方法,其规则在于,所述方法包括:
根据多个规则生成规则树;
接收数据包并预测所述数据包的应用;
查找所述规则树中与所述应用对应的目标节点;
匹配所述数据包与所述目标节点中的规则;
当所述数据包与所述目标节点中的规则匹配成功时,根据所述目标节点中的规则输出所述数据包的应用。
2.如权利要求1所述的方法,其规则在于,所述方法还包括:
当所述数据包与所述目标节点中的规则匹配失败时,确定所述目标节点的叶子节点;
匹配所述数据包与所述叶子节点中的规则;
当所述数据包与所述叶子节点中的规则匹配成功时,根据所述叶子节点中的规则输出所述数据包的应用。
3.如权利要求2所述的方法,其规则在于,所述方法还包括:
当所述数据包与所述叶子节点中的规则匹配失败时,确定所述目标节点的父节点及所述父节点下的其他目标节点;
匹配所述数据包与所述其他目标节点中的规则;
当所述数据包与所述其他目标节点中的规则匹配成功时,根据所述其他目标节点中的规则输出所述数据包的应用。
4.如权利要求3所述的方法,其规则在于,所述方法还包括:
当所述数据包与所述其他目标节点中的规则匹配失败时,确定所述父节点的上级父节点及所述上级父节点下的其他父节点;
匹配所述数据包与所述其他父节点中的规则;
当所述数据包与所述其他父节点中的规则匹配成功时,根据所述其他父节点中的规则输出所述数据包的应用;
当所述数据包与所述其他父节点中的规则匹配失败时,继续遍历与所述上级父节点属于同一上上级父节点的其他上级父节点直至根节点。
5.如权利要求1至4中任意一项所述的方法,其规则在于,所述根据多个规则生成规则树包括:
根据OSI七层网络模型基于所述多个规则生成规则树,所述规则树中的每一层节点对应所述OSI七层网络模型中一层协议,所述每一层中的每一个节点中存储有一个规则。
6.如权利要求1至4中任意一项所述的方法,其规则在于,所述预测所述数据包的应用包括:
获取所述数据包的头部信息;
根据所述头部信息预测所述数据包的应用。
7.如权利要求1至4中任意一项所述的方法,其规则在于,在所述输出所述数据包的应用后,所述方法还包括:
根据所述应用将所述数据包分配至对应的链路中。
8.一种数据包匹配装置,其规则在于,所述装置包括:
生成模块,用于根据多个规则生成规则树;
接收模块,用于接收数据包并预测所述数据包的应用;
查找模块,用于查找所述规则树中与所述应用对应的目标节点;
匹配模块,用于匹配所述数据包与所述目标节点中的规则;
输出模块,用于当所述数据包与所述目标节点中的规则匹配成功时,根据所述目标节点中的规则输出所述数据包的应用。
9.一种网络设备,其规则在于,所述网络设备包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的数据包匹配方法的下载程序,所述数据包匹配方法的下载程序被所述处理器执行时实现如权利要求1至7中任意一项所述的数据包匹配方法。
10.一种计算机可读存储介质,其规则在于,所述计算机可读存储介质上存储有数据包匹配方法的下载程序,所述数据包匹配方法的下载程序可被一个或者多个处理器执行以实现如权利要求1至7中任意一项所述的数据包匹配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910957122.2A CN110708317B (zh) | 2019-10-10 | 2019-10-10 | 数据包匹配方法、装置、网络设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910957122.2A CN110708317B (zh) | 2019-10-10 | 2019-10-10 | 数据包匹配方法、装置、网络设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110708317A true CN110708317A (zh) | 2020-01-17 |
CN110708317B CN110708317B (zh) | 2022-09-20 |
Family
ID=69199205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910957122.2A Active CN110708317B (zh) | 2019-10-10 | 2019-10-10 | 数据包匹配方法、装置、网络设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110708317B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112309587A (zh) * | 2020-11-26 | 2021-02-02 | 微医云(杭州)控股有限公司 | 线上问诊方法、系统、服务器及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130128742A1 (en) * | 2009-01-05 | 2013-05-23 | Wuhan Research Institute Of Posts And Telecommunications | Internet Real-Time Deep Packet Inspection and Control Device and Method |
CN103973684A (zh) * | 2014-05-07 | 2014-08-06 | 北京神州绿盟信息安全科技股份有限公司 | 规则编译匹配方法及装置 |
CN109639694A (zh) * | 2018-12-20 | 2019-04-16 | 国云科技股份有限公司 | 一种基于规则树检索的防火墙数据包匹配算法 |
-
2019
- 2019-10-10 CN CN201910957122.2A patent/CN110708317B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130128742A1 (en) * | 2009-01-05 | 2013-05-23 | Wuhan Research Institute Of Posts And Telecommunications | Internet Real-Time Deep Packet Inspection and Control Device and Method |
CN103973684A (zh) * | 2014-05-07 | 2014-08-06 | 北京神州绿盟信息安全科技股份有限公司 | 规则编译匹配方法及装置 |
CN109639694A (zh) * | 2018-12-20 | 2019-04-16 | 国云科技股份有限公司 | 一种基于规则树检索的防火墙数据包匹配算法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112309587A (zh) * | 2020-11-26 | 2021-02-02 | 微医云(杭州)控股有限公司 | 线上问诊方法、系统、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110708317B (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110708215B (zh) | 深度包检测规则库生成方法、装置、网络设备及存储介质 | |
US20240031400A1 (en) | Identifying Malware Devices with Domain Name System (DNS) Queries | |
US10027626B2 (en) | Method for providing authoritative application-based routing and an improved application firewall | |
US9027137B2 (en) | Automatic generation of different attribute values for detecting a same type of web application layer attack | |
CN105099821B (zh) | 基于云的虚拟环境下流量监控的方法和装置 | |
US8738906B1 (en) | Traffic classification and control on a network node | |
JP4195480B2 (ja) | コンピュータ端末がネットワークに接続して通信することを管理・制御するための装置および方法。 | |
CN111866124B (zh) | 访问网页页面的方法、装置、服务器和机器可读存储介质 | |
US9338657B2 (en) | System and method for correlating security events with subscriber information in a mobile network environment | |
CN109951562B (zh) | Nat穿透方法和系统、电子设备和存储介质 | |
CN113037761B (zh) | 登录请求的验证方法及装置、存储介质、电子设备 | |
CN111277602B (zh) | 网络数据包的识别处理方法、装置、电子设备及存储介质 | |
US8122129B2 (en) | Hash-based resource matching | |
CN111224878B (zh) | 路由转发方法、装置、电子设备及存储介质 | |
CN110708317B (zh) | 数据包匹配方法、装置、网络设备及存储介质 | |
US20240214395A1 (en) | Management of bot detection in a content delivery network | |
CN104702505B (zh) | 一种报文传输方法和节点 | |
CN108833282A (zh) | 数据转发方法、系统、装置及sdn交换机 | |
CN112217770B (zh) | 一种安全检测方法、装置、计算机设备及存储介质 | |
EP3882779B1 (en) | Internet connection management system for information communication device, method therefor, and internet connection management program installed in information communication device | |
CN105743875A (zh) | 信息处理装置以及方法 | |
CN116260855B (zh) | 通信方法、装置、电子设备以及存储介质 | |
JP2016048890A (ja) | 通信制御装置、通信制御システム、通信制御方法、および通信制御プログラム | |
EP4081923B1 (en) | Human activity detection | |
CN104734897B (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 |