CN111107181A - Nat规则匹配方法、装置、电子设备及存储介质 - Google Patents
Nat规则匹配方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111107181A CN111107181A CN201911403722.0A CN201911403722A CN111107181A CN 111107181 A CN111107181 A CN 111107181A CN 201911403722 A CN201911403722 A CN 201911403722A CN 111107181 A CN111107181 A CN 111107181A
- Authority
- CN
- China
- Prior art keywords
- prefix
- matching
- rule
- regular
- node
- 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
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2557—Translation policies or rules
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种NAT规则匹配方法、装置、电子设备及存储介质,涉及计算机网络技术领域。所述方法包括:基于最长前缀匹配规则,确定规则前缀树中与报文的地址匹配的匹配节点,所述规则前缀树为以规则前缀表项中的前缀值作为叶子节点,以二进制形式按照由高位到低位的顺序构造的Patricia前缀树;将所述匹配节点下挂载的规则前缀表项和所述匹配节点的祖先节点下挂载的规则前缀表项作为匹配表项;基于所述匹配表项对应的NAT规则的匹配参数在所述匹配表项中确定目标表项,返回所述目标表项对应的NAT规则。该方法通过规则前缀树进行NAT规则匹配,提高了NAT规则匹配的效率。
Description
技术领域
本申请涉及计算机网络技术领域,具体而言,涉及一种NAT规则匹配方法、装置、电子设备及存储介质。
背景技术
随着网络技术的发展,当前网络攻击越来越多,网络安全设备大量被开发出来并应用到实际的环境中。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信时,可使用NAT(NetworkAddress Translation,网络地址转换方法)规则,其作为常用的规则被大量的部署在网络中,NAT规则主要用来解决IPv4地址不足的问题,并提供一种隐藏私有网络IP地址的功能。所以在网络通信和安全网关上部署的数量比较大,随之而来的就是匹配效率问题。
现有的NAT规则匹配方式可以完成逐条匹配,但效率很差。在通信设备和安全网关设备中配置大量NAT规则的时候,设备性能下降明显,当NAT规则达到一定规模后,NAT规则匹配将成为网络设备的性能瓶颈。
发明内容
有鉴于此,本申请实施例的目的在于提供一种NAT规则匹配方法、装置、电子设备及存储介质,以改善现有技术中存在的NAT规则匹配效率较差的问题。
本申请实施例提供了一种NAT规则匹配方法,所述方法包括:基于最长前缀匹配规则,确定规则前缀树中与报文的地址匹配的匹配节点,所述规则前缀树为以规则前缀表项中的前缀值作为叶子节点,以二进制形式按照由高位到低位的顺序构造的Patricia前缀树;将所述匹配节点下挂载的规则前缀表项和所述匹配节点的祖先节点下挂载的规则前缀表项作为匹配表项;基于所述匹配表项对应的NAT规则的匹配参数在所述匹配表项中确定目标表项,返回所述目标表项对应的NAT规则。
在上述实现方式中,将NAT规则匹配与规则前缀树中的节点匹配相结合,可以有效的减少需要匹配的NAT规则数,降低NAT规则匹配对设备运算资源的消耗,提高了规则匹配效率,有效的解决设备中配置大量NAT规则的时候,设备性能下降问题。
可选地,所述规则前缀树包括源地址规则前缀树和目的地址规则前缀树,所述基于最长前缀匹配规则,确定规则前缀树中与报文的地址匹配的匹配节点,包括:基于最长前缀匹配规则,确定所述源地址规则前缀树中与报文的源地址匹配的匹配节点;基于最长前缀匹配规则,确定所述目的地址规则前缀树中与报文的目的地址匹配的匹配节点。
在上述实现方式中,在以二进制形式按照由高位到低位的顺序构造的Patricia前缀树中以最长前缀匹配规则进行报文的源地址与源地址规则前缀树的匹配,以及报文的目的地址与目的地址规则前缀树的匹配,能够基于前缀迅速确定报文匹配的树节点,从而有利于快速、准确地匹配NAT规则。
可选地,所述基于所述匹配表项对应的NAT规则的匹配参数在所述匹配表项中确定目标表项,包括:在所述匹配表项中存在与所述报文的所有匹配参数均匹配的目标匹配表项时,确定所述报文精确命中所述目标匹配表项,将所述目标匹配表项作为所述目标表项,返回所述目标表项对应的NAT规则,其中,所述目标匹配表项对应的NAT规则的匹配参数与所述报文相匹配;在所述匹配表项中不存在与所述报文的所有匹配参数均匹配的目标匹配表项时,返回空。
在上述实现方式中,在精确命中目标匹配表项时,所有优先级低于它的匹配表项,都无需再进行NAT规则匹配,提高了匹配效率。
可选地,在所述基于最长前缀匹配规则,确定规则前缀树中与报文的地址匹配的匹配节点之前,所述方法还包括:将NAT规则转换为规则前缀表项,每个规则前缀表项中包括源地址公共前缀、目的地址公共前缀和对应的NAT规则;基于所有规则前缀表项的源地址公共前缀和目的地址公共前缀,分别构建所述源地址规则前缀树和所述目的地址规则前缀树;将每个规则前缀表项挂载在所述源地址规则前缀树或所述目的地址规则前缀树每个规则前缀表项对应的目标节点下,其中,每个规则前缀表项只能选择一个规则前缀树进行挂载。
在上述实现方式中,将NAT规则转换为规则前缀表项后基于其进行源地址规则前缀树和目的地址规则前缀树的构建,从而通过多个规则前缀树避免出现单个NAT规则前缀树时相同前缀的规则过多的问题,提高了NAT规则匹配准确性。
可选地,所述将每个规则前缀表项挂载在所述源地址规则前缀树或所述目的地址规则前缀树对应的目标节点下,包括:确定第一规则前缀表项的源地址公共前缀在所述源地址规则前缀树中对应的第一叶子节点,以及所述第一规则前缀表项的目的地址公共前缀在所述目的地址规则前缀树中对应的第二叶子节点;将所述第一叶子节点和所述第二叶子节点中已挂载规则前缀表项最少的叶子节点作为所述第一规则前缀表项对应的第一目标节点,所述第一规则前缀表项为所有规则前缀表项中的任意一个;将所述第一规则前缀表项挂载在所述第一目标节点下。
在上述实现方式中,在源地址规则前缀树和目的地址规则前缀树中选择已挂载规则前缀表项最少的一个进行新规则前缀表项的挂载,能够实现不同规则前缀树中规则前缀表项挂载数量的平衡性,从而提高规则前缀树的节点匹配的效率。
可选地,所述将所述第一规则前缀表项挂载在所述第一目标节点下,包括:在所述第一目标节点下已挂载其他规则前缀表项时,基于所述第一规则前缀表项和所述其他规则前缀表项的预设优先级将所述第一规则前缀表项加入所述其他规则前缀表项中。
在上述实现方式中,在进行规则前缀表项的挂载时基于优先级进行排列,能够在报文精确命中某一规则前缀表项时,所有优先级低于它的匹配表项,都无需再进行NAT规则匹配,提高了匹配效率。
可选地,所述基于所有规则前缀表项的源地址公共前缀和目的地址公共前缀,分别构建所述源地址规则前缀树和所述目的地址规则前缀树,包括:以所有规则前缀表项中的每个规则前缀表项的源地址公共前缀作为叶子节点,生成所述源地址规则前缀树;以所有规则前缀表项中的每个规则前缀表项的目的地址公共前缀作为叶子节点,生成所述目的地址规则前缀树。
在上述实现方式中,以规则前缀表项中的源地址公共前缀和目的地址公共前缀作为叶子节点生成规则前缀树,能够保证每个规则前缀表项都能有对应的节点进行挂载。
本申请实施例还提供了一种NAT规则匹配装置,所述装置包括:节点匹配模块,用于基于最长前缀匹配规则,确定规则前缀树中与报文的地址匹配的匹配节点,所述规则前缀树为以规则前缀表项中的前缀值作为叶子节点,以二进制形式按照由高位到低位的顺序构造的Patricia前缀树;表项匹配模块,用于将所述匹配节点下挂载的规则前缀表项和所述匹配节点的祖先节点下挂载的规则前缀表项作为匹配表项;规则匹配模块,用于基于所述匹配表项对应的NAT规则的匹配参数在所述匹配表项中确定目标表项,返回所述目标表项对应的NAT规则。
在上述实现方式中,将NAT规则匹配与规则前缀树中的节点匹配相结合,可以有效的降低需要匹配的NAT规则数,降低NAT规则匹配对设备运算资源的消耗,提高了规则匹配效率,有效的解决设备中配置大量NAT规则的时候,设备性能下降问题。
可选地,所述规则前缀树包括源地址规则前缀树和目的地址规则前缀树,所述节点匹配模块具体用于:基于最长前缀匹配规则,确定所述源地址规则前缀树中与报文的源地址匹配的匹配节点;基于最长前缀匹配规则,确定所述目的地址规则前缀树中与报文的目的地址匹配的匹配节点。
在上述实现方式中,在以二进制形式按照由高位到低位的顺序构造的Patricia前缀树中以最长前缀匹配规则进行报文的源地址与源地址规则前缀树的匹配,以及报文的目的地址与目的地址规则前缀树的匹配,能够基于前缀迅速确定报文匹配的树节点,从而有利于快速、准确地匹配NAT规则。
可选地,所述规则匹配模块具体用于:在所述匹配表项中存在与所述报文的所有匹配参数均匹配的目标匹配表项时,确定所述报文精确命中所述目标匹配表项,将所述目标匹配表项作为所述目标表项,返回所述目标表项对应的NAT规则,其中,所述目标匹配表项对应的NAT规则的匹配参数与所述报文相匹配;在所述匹配表项中不存在与所述报文的所有匹配参数均匹配的目标匹配表项时,返回空。
在上述实现方式中,在精确命中目标匹配表项时,所有优先级低于它的匹配表项,都无需再进行NAT规则匹配,提高了匹配效率。
可选地,所述NAT规则匹配装置还包括:前缀树构建模块,用于将NAT规则转换为规则前缀表项,每个规则前缀表项中包括源地址公共前缀、目的地址公共前缀和对应的NAT规则;基于所有规则前缀表项的源地址公共前缀和目的地址公共前缀,分别构建所述源地址规则前缀树和所述目的地址规则前缀树;将每个规则前缀表项挂载在所述源地址规则前缀树或所述目的地址规则前缀树每个规则前缀表项对应的目标节点下,其中,每个规则前缀表项只能选择一个规则前缀树进行挂载。
在上述实现方式中,将NAT规则转换为规则前缀表项后基于其进行源地址规则前缀树和目的地址规则前缀树的构建,从而通过多个规则前缀树避免出现单个NAT规则前缀树时相同前缀的规则过多的问题,提高了NAT规则匹配准确性。
可选地,所述前缀树构建模块具体用于:确定第一规则前缀表项的源地址公共前缀在所述源地址规则前缀树中对应的第一叶子节点,以及所述第一规则前缀表项的目的地址公共前缀在所述目的地址规则前缀树中对应的第二叶子节点;将所述第一叶子节点和所述第二叶子节点中已挂载规则前缀表项最少的叶子节点作为所述第一规则前缀表项对应的第一目标节点,所述第一规则前缀表项为所有规则前缀表项中的任意一个;将所述第一规则前缀表项挂载在所述第一目标节点下。
在上述实现方式中,在源地址规则前缀树和目的地址规则前缀树中选择已挂载规则前缀表项最少的一个进行新规则前缀表项的挂载,能够实现不同规则前缀树中规则前缀表项挂载数量的平衡性,从而提高规则前缀树的节点匹配的效率。
可选地,所述前缀树构建模块具体用于:在所述第一目标节点下已挂载其他规则前缀表项时,基于所述第一规则前缀表项和所述其他规则前缀表项的预设优先级将所述第一规则前缀表项加入所述其他规则前缀表项中。
在上述实现方式中,在进行规则前缀表项的挂载时基于优先级进行排列,能够在报文精确命中某一规则前缀表项时,所有优先级低于它的匹配表项,都无需再进行NAT规则匹配,提高了匹配效率。
可选地,所述前缀树构建模块具体用于:以所有规则前缀表项中的每个规则前缀表项的源地址公共前缀作为叶子节点,生成所述源地址规则前缀树;以所有规则前缀表项中的每个规则前缀表项的目的地址公共前缀作为叶子节点,生成所述目的地址规则前缀树。
在上述实现方式中,以规则前缀表项中的源地址公共前缀和目的地址公共前缀作为叶子节点生成规则前缀树,能够保证每个规则前缀表项都能有对应的节点进行挂载。
本申请实施例还提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行上述任一实现方式中的步骤。
本申请实施例还提供了一种可读取存储介质,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行上述任一实现方式中的步骤。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种规则前缀树构建步骤的流程示意图;
图2为本申请实施例提供的一种源地址规则前缀树的结构示意图;
图3为本申请实施例提供的一种目的地址规则前缀树的结构示意图;
图4为本申请实施例提供的一种挂载规则前缀表项的源地址规则前缀树的结构示意图;
图5为本申请实施例提供的一种挂载规则前缀表项的目的地址规则前缀树的结构示意图;
图6为本申请实施例提供的一种NAT规则匹配方法的流程示意图;
图7为本申请实施例提供的一种NAT规则匹配装置的模块示意图。
图标:30-NAT规则匹配装置;31-节点匹配模块;32-表项匹配模块;33-规则匹配模块。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。
经本申请人研究发现,NAT规则匹配效率低下的原因是当存在大规模的NAT规则时,需要匹配的NAT规则数过大,导致效率低下。
具体地,NAT的作用就是报文在内网与外网间互通时,对报文中的源地址、目的地址(例如源IP地址、目的IP地址)进行转换,而NAT规则匹配是将报文与NAT规则参数进行匹配,确定是否需要对报文中的地址进行转换。
为了解决上述问题,本申请实施例提供了一种NAT规则匹配方法。而在采用NAT规则匹配方法中的匹配方式进行NAT规则匹配之前,NAT规则匹配方法在进行NAT匹配前需要先构建规则前缀树,因此NAT规则匹配方法也包括规则前缀树的构建步骤。因此请参考图1,图1为本申请实施例提供的一种规则前缀树构建步骤的流程示意图。该规则前缀树构建步骤可以具体包括:
步骤S12:将NAT规则转换为规则前缀表项,每个规则前缀表项中包括源地址公共前缀、目的地址公共前缀和对应的NAT规则。
规则前缀表项包括源地址公共前缀、目的地址公共前缀和对应NAT规则。其中,源地址公共前缀指的是NAT规则中转换前的源地址的公共前缀地址,目的地址公共前缀指的是NAT规则中的转换前目的地址的公共前缀地址。例如NAT规则A的转换前的源地址为“192.168.20.20”、转换前的目的地址为“192.168.1.36”,则NAT规则转换为规则前缀表项A_P后的源地址公共前缀为“192.168.20.20”、目的地址公共前缀为“192.168.1.36”。
应当理解的是,在报文的转换前的源地址或目的地址没有任何限制时,将其转换为公共前缀“0.0.0.0”。
NAT规则可以包括端口匹配关系、报文接收接口匹配关系等,属于匹配参数。
步骤S14:基于所有规则前缀表项的源地址公共前缀和目的地址公共前缀,分别构建源地址规则前缀树和目的地址规则前缀树。
作为一种实施方式,规则前缀树为以规则前缀表项中的前缀值作为叶子节点,以二进制形式按照由高位到低位的顺序构造的Patricia前缀树。
具体地,步骤S14可以包括如下子步骤:
步骤S142:以所有规则前缀表项中的每个规则前缀表项的源地址公共前缀作为叶子节点,生成源地址规则前缀树。
步骤S144:以所有规则前缀表项中的每个规则前缀表项的目的地址公共前缀作为叶子节点,生成目的地址规则前缀树。
以具体示例进行说明,该具体示例中存在规则前缀表项A_P、B_P、C_P、D_P、E_P、F_P,A_P的源地址公共前缀为“192.168.20.20”、目的地址公共前缀为“192.168.1.36”,B_P的源地址公共前缀为“192.168.20.20”、目的地址公共前缀为“192.168.1.40”,C_P的源地址公共前缀为“192.168.0.0”、目的地址公共前缀为“0.0.0.0”,D_P的源地址公共前缀为“192.168.20.18”、目的地址公共前缀为“192.168.1.128”,E_P的源地址公共前缀为“192.168.20.18”、目的地址公共前缀为“192.168.1.40”,F_P的源地址公共前缀为“0.0.0.0”、目的地址公共前缀为“0.0.0.0”,则请参考图2和图3,图2为本申请实施例提供的一种源地址规则前缀树的结构示意图,图3为本申请实施例提供的一种目的地址规则前缀树的结构示意图,图2和图3中规则前缀树中每个节点的“/”后的数字为公共前缀长度,公共前缀长度是公共前缀地址以二进制形式从高位到低位有效比特位的数量,具体地,公共前缀长度表示子节点的相同的公共前缀的长度。
应当理解的是,本实施例中基于源地址公共前缀和目的地址公共前缀分别建立了不同的规则前缀树,可以解决单个NAT规则前缀树时相同前缀的规则过多的问题。
步骤S16:将每个规则前缀表项挂载在源地址规则前缀树或目的地址规则前缀树每个规则前缀表项对应的目标节点下。
其中,每个规则前缀表项只能选择一个规则前缀树进行挂载,以实现规则前缀表项的均衡挂载与匹配。
应当理解的是,在具有源地址规则前缀树和目的地址规则前缀树时,可以通过均衡挂载来平衡每个规则前缀树的匹配任务量,避免任务量的不均衡分配,则步骤S16可以通过如下子步骤实现均衡挂载:
步骤S162:确定第一规则前缀表项的源地址公共前缀在源地址规则前缀树中对应的第一叶子节点,以及第一规则前缀表项的目的地址公共前缀在目的地址规则前缀树中对应的第二叶子节点。
步骤S164:将第一叶子节点和第二叶子节点中已挂载规则前缀表项最少的叶子节点作为第一规则前缀表项对应的第一目标节点,第一规则前缀表项为所有规则前缀表项中的任意一个。
步骤S166:将第一规则前缀表项挂载在第一目标节点下。
继续以上述具体示例进行说明,基于A_P的源地址公共前缀为“192.168.20.20”先在源地址规则前缀树中进行匹配,其对应的节点为“192.168.20.20/30”且该节点下已挂载规则前缀表项为0,则将A_P挂载在节点“192.168.20.20/30”下。基于B_P的源地址公共前缀为“192.168.20.20”先在源地址规则前缀树中进行匹配,其对应的节点为“192.168.20.20/30”且该节点下已挂载规则前缀表项为1,然后基于B_P的目的地址公共前缀为“192.168.1.40”在目的地址规则前缀树中进行匹配,其对应的节点为“192.168.1.40/29”且该节点下已挂载规则前缀表项为0,节点“192.168.1.40/29”已挂载规则前缀表项数量更少,则将B_P挂载在节点“192.168.1.40/29”下。
可选地,在某规则前缀表项的源地址公共前缀和目的地址公共前缀均不固定时,例如其标识为“any”时,可以将其挂载至源地址规则前缀树的节点下。
作为一种可选的实施方式,为了在报文精确命中某个节点挂载的规则前缀表项时不需要再对优先级低于命中前缀表项的其他匹配前缀表项进行匹配,提高NAT规则的整体匹配效率,本实施例还基于优先级进行规则前缀表项的挂载,其具体步骤可以包括:在第一目标节点下已挂载其他规则前缀表项时,基于第一规则前缀表项和其他规则前缀表项的预设优先级将第一规则前缀表项加入其他规则前缀表项中。
以前面出现的具体示例中的规则前缀表项A_P、B_P、C_P、D_P、E_P、F_P为例,请参考图4和图5,图4为本申请实施例提供的一种挂载规则前缀表项的源地址规则前缀树的结构示意图,图5为本申请实施例提供的一种挂载规则前缀表项的目的地址规则前缀树的结构示意图。图4和图5中规则前缀树中每个节点的“/”后的数字为公共前缀长度。
应当理解的是,本实施例中先进行源地址规则前缀树的匹配,在其他实施例中也可以先进行目的地址规则前缀树的匹配,先后顺序不是固定的。
在完成源地址规则前缀树和目的地址规则前缀树的构建后,在接收到报文需要进行NAT规则匹配时,则基于报文的源地址、目的地址或其他匹配参数在地址规则前缀树和目的地址规则前缀树中进行NAT规则匹配。请参考图6,图6为本申请实施例提供的一种NAT规则匹配方法的流程示意图。该NAT规则匹配方法的具体步骤可以如下:
步骤S22:基于最长前缀匹配规则,确定规则前缀树中与报文的地址匹配的匹配节点。
其中,最长前缀匹配规则即选择源地址规则前缀树中源地址前缀包含报文的源地址,且公共前缀值长度最大的源地址前缀。
步骤S24:将匹配节点下挂载的规则前缀表项和匹配节点的祖先节点下挂载的规则前缀表项作为匹配表项。
通过对祖先节点下的规则前缀列表的匹配,保证NAT匹配的完整性和适用性。
步骤S26:基于匹配表项对应的NAT规则的匹配参数在匹配表项中确定目标表项,返回目标表项对应的NAT规则。
在匹配表项中存在与报文的所有匹配参数均匹配的目标匹配表项时,确定报文精确命中目标匹配表项,将目标匹配表项作为目标表项,返回目标表项对应的NAT规则,其中,目标匹配表项对应的NAT规则的匹配参数与报文相匹配。
应当理解的是,在报文与对应的匹配表项的NAT规则的匹配参数都不匹配时,即无法精确命中,返回空。
以图4、图5中的源地址规则前缀树和目的地址规则前缀树为例,在接收到源地址为192.168.20.20(前缀长度30),目的地址为192.168.1.40(前缀长度29)的报文时,先匹配源地址前缀树中的最长前缀节点:182.168.20.20/30节点,然后分别遍历匹配182.168.20.20/30节点、192.168.20.16/29节点、192.168.0.0/13节点、0.0.0.0/0节点下的前缀表项对应的NAT规则。然后匹配目的地址前缀树中的最长前缀节点192.168.1.40/29节点,然后分别遍历匹配192.168.1.40/29节点、192.168.1.32/28节点、192.168.1.0/24节点、0.0.0.0/0节点下的前缀表项对应的NAT规则。因此,该报文需要匹配的NAT规则有A、C、F、B。在没有优先级区分时,需要进行NAT规则A、C、F、B的NAT匹配;在A设置的优先级最高且基于入接口、端口等匹配参数确定报文精确命中A时,仅对NAT规则A进行NAT匹配。
继续以图4、图5中的源地址规则前缀树和目的地址规则前缀树为例,接收到源地址为192.168.64.20(前缀长度为30),目的地址为192.168.1.128(前缀长度为25)的报文时,先匹配源地址前缀树中的最长前缀节点:182.168.0.0/13节点,然后分别遍历匹配182.168.0.0/13节点、0.0.0.0/0节点下的前缀表项对应的NAT规则。再匹配目的地址前缀树中的最长前缀节点192.168.1.128/25节点,然后分别遍历匹配192.168.1.128/25、192.168.1.0/24节点、0.0.0.0/0节点下的前缀表项对应的NAT规则。因此,该报文需要匹配的NAT规则有C、F。在没有优先级区分时,需要进行NAT规则C、F的NAT匹配;在C设置的优先级最高且基于入接口、端口等匹配参数确定报文精确命中C时,仅对NAT规则C进行NAT匹配。
应当理解的是,在其他实施例中,除了源地址规则前缀树和目的地址规则前缀树,还可以构建服务规则前缀树,在源地址规则前缀树和目的地址规则前缀树的NAT匹配之外,还基于服务规则前缀树进行服务的NAT匹配。其中,其中服务公共前缀是由四层协议与目的端口计算得来。
本实施例为了配合上述NAT规则匹配方法,还提供了一种NAT规则匹配装置30。
请参考图7,图7为本申请实施例提供的一种NAT规则匹配装置的模块示意图。
NAT规则匹配装置30包括:
节点匹配模块31,用于基于最长前缀匹配规则,确定规则前缀树中与报文的地址匹配的匹配节点,规则前缀树为以规则前缀表项中的前缀值作为叶子节点,以二进制形式按照由高位到低位的顺序构造的Patricia前缀树;
表项匹配模块32,用于将匹配节点下挂载的规则前缀表项和匹配节点的祖先节点下挂载的规则前缀表项作为匹配表项;
规则匹配模块33,用于基于匹配表项对应的NAT规则的匹配参数在匹配表项中确定目标表项,返回目标表项对应的NAT规则。
可选地,规则前缀树包括源地址规则前缀树和目的地址规则前缀树,节点匹配模块31具体用于:基于最长前缀匹配规则,确定源地址规则前缀树中与报文的源地址匹配的匹配节点;基于最长前缀匹配规则,确定目的地址规则前缀树中与报文的目的地址匹配的匹配节点。
可选地,规则匹配模块33具体用于:在匹配表项中存在与报文的所有匹配参数均匹配的目标匹配表项时,确定报文精确命中目标匹配表项,将目标匹配表项作为目标表项,返回目标表项对应的NAT规则,其中,所述目标匹配表项对应的NAT规则的匹配参数与所述报文相匹配;在匹配表项中不存在与报文的所有匹配参数均匹配的目标匹配表项时,返回空。
可选地,NAT规则匹配装置30还包括:前缀树构建模块,用于将NAT规则转换为规则前缀表项,每个规则前缀表项中包括源地址公共前缀、目的地址公共前缀和对应的NAT规则;基于所有规则前缀表项的源地址公共前缀和目的地址公共前缀,分别构建源地址规则前缀树和目的地址规则前缀树;将每个规则前缀表项挂载在源地址规则前缀树或目的地址规则前缀树每个规则前缀表项对应的目标节点下,其中,每个规则前缀表项只能选择一个规则前缀树进行挂载。
可选地,前缀树构建模块具体用于:确定第一规则前缀表项的源地址公共前缀在源地址规则前缀树中对应的第一叶子节点,以及第一规则前缀表项的目的地址公共前缀在目的地址规则前缀树中对应的第二叶子节点;将第一叶子节点和第二叶子节点中已挂载规则前缀表项最少的叶子节点作为第一规则前缀表项对应的第一目标节点,第一规则前缀表项为所有规则前缀表项中的任意一个;将第一规则前缀表项挂载在第一目标节点下。
可选地,前缀树构建模块具体用于:在第一目标节点下已挂载其他规则前缀表项时,基于第一规则前缀表项和其他规则前缀表项的预设优先级将第一规则前缀表项加入其他规则前缀表项中。
可选地,前缀树构建模块具体用于:以所有规则前缀表项中的每个规则前缀表项的源地址公共前缀作为叶子节点,生成源地址规则前缀树;以所有规则前缀表项中的每个规则前缀表项的目的地址公共前缀作为叶子节点,生成目的地址规则前缀树。
本申请实施例还提供了一种电子设备,该电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器读取并运行所述程序指令时,执行本实施例提供的NAT规则匹配方法中任一项所述方法中的步骤。
应当理解是,该电子设备可以是个人电脑(personal computer,PC)、平板电脑、智能手机、个人数字助理(personal digital assistant,PDA)等具有逻辑计算功能的电子设备。
本申请实施例还提供了一种可读取存储介质,所述可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行NAT规则匹配方法中的步骤。
综上所述,本申请实施例提供了一种NAT规则匹配方法、装置、电子设备及存储介质,所述方法包括:基于最长前缀匹配规则,确定规则前缀树中与报文的地址匹配的匹配节点,所述规则前缀树为以规则前缀表项中的前缀值作为叶子节点,以二进制形式按照由高位到低位的顺序构造的Patricia前缀树;将所述匹配节点下挂载的规则前缀表项和所述匹配节点的祖先节点下挂载的规则前缀表项作为匹配表项;基于匹配参数在所述匹配表项中确定目标表项,返回所述目标表项对应的NAT规则。
在上述实现方式中,将NAT规则匹配与规则前缀树中的节点匹配相结合,可以有效的降低需要匹配的NAT规则数,降低NAT规则匹配对设备运算资源的消耗,提高了规则匹配效率,有效的解决设备中配置大量NAT规则的时候,设备性能下降问题。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的框图显示了根据本申请的多个实施例的设备的可能实现的体系架构、功能和操作。在这点上,框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图中的每个方框、以及框图的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。因此本实施例还提供了一种可读取存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行区块数据存储方法中任一项所述方法中的步骤。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RanDom Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种NAT规则匹配方法,其特征在于,所述方法包括:
基于最长前缀匹配规则,确定规则前缀树中与报文的地址匹配的匹配节点,所述规则前缀树为以规则前缀表项中的前缀值作为叶子节点,以二进制形式按照由高位到低位的顺序构造的Patricia前缀树;
将所述匹配节点下挂载的规则前缀表项和所述匹配节点的祖先节点下挂载的规则前缀表项作为匹配表项;
基于所述匹配表项对应的NAT规则的匹配参数在所述匹配表项中确定目标表项,返回所述目标表项对应的NAT规则。
2.根据权利要求1所述的方法,其特征在于,所述规则前缀树包括源地址规则前缀树和目的地址规则前缀树,所述基于最长前缀匹配规则,确定规则前缀树中与报文的地址匹配的匹配节点,包括:
基于最长前缀匹配规则,确定所述源地址规则前缀树中与报文的源地址匹配的匹配节点;
基于最长前缀匹配规则,确定所述目的地址规则前缀树中与报文的目的地址匹配的匹配节点。
3.根据权利要求1所述的方法,其特征在于,所述基于所述匹配表项对应的NAT规则的匹配参数在所述匹配表项中确定目标表项,包括:
在所述匹配表项中存在与所述报文的所有匹配参数均匹配的目标匹配表项时,确定所述报文精确命中所述目标匹配表项,将所述目标匹配表项作为所述目标表项,返回所述目标表项对应的NAT规则,其中,所述目标匹配表项对应的NAT规则的匹配参数与所述报文相匹配;
在所述匹配表项中不存在与所述报文的所有匹配参数均匹配的目标匹配表项时,返回空。
4.根据权利要求2所述的方法,其特征在于,在所述基于最长前缀匹配规则,确定规则前缀树中与报文的地址匹配的匹配节点之前,所述方法还包括:
将NAT规则转换为规则前缀表项,每个规则前缀表项中包括源地址公共前缀、目的地址公共前缀和对应的NAT规则;
基于所有规则前缀表项的源地址公共前缀和目的地址公共前缀,分别构建所述源地址规则前缀树和所述目的地址规则前缀树;
将每个规则前缀表项挂载在所述源地址规则前缀树或所述目的地址规则前缀树每个规则前缀表项对应的目标节点下,其中,每个规则前缀表项只能选择一个规则前缀树进行挂载。
5.根据权利要求4所述的方法,其特征在于,所述将每个规则前缀表项挂载在所述源地址规则前缀树或所述目的地址规则前缀树对应的目标节点下,包括:
确定第一规则前缀表项的源地址公共前缀在所述源地址规则前缀树中对应的第一叶子节点,以及所述第一规则前缀表项的目的地址公共前缀在所述目的地址规则前缀树中对应的第二叶子节点;
将所述第一叶子节点和所述第二叶子节点中已挂载规则前缀表项最少的叶子节点作为所述第一规则前缀表项对应的第一目标节点,所述第一规则前缀表项为所有规则前缀表项中的任意一个;
将所述第一规则前缀表项挂载在所述第一目标节点下。
6.根据权利要求5所述的方法,其特征在于,所述将所述第一规则前缀表项挂载在所述第一目标节点下,包括:
在所述第一目标节点下已挂载其他规则前缀表项时,基于所述第一规则前缀表项和所述其他规则前缀表项的预设优先级将所述第一规则前缀表项加入所述其他规则前缀表项中。
7.根据权利要求4所述的方法,其特征在于,所述基于所有规则前缀表项的源地址公共前缀和目的地址公共前缀,分别构建所述源地址规则前缀树和所述目的地址规则前缀树,包括:
以所有规则前缀表项中的每个规则前缀表项的源地址公共前缀作为叶子节点,生成所述源地址规则前缀树;
以所有规则前缀表项中的每个规则前缀表项的目的地址公共前缀作为叶子节点,生成所述目的地址规则前缀树。
8.一种NAT规则匹配装置,其特征在于,所述装置包括:
节点匹配模块,用于基于最长前缀匹配规则,确定规则前缀树中与报文的地址匹配的匹配节点,所述规则前缀树为以规则前缀表项中的前缀值作为叶子节点,以二进制形式按照由高位到低位的顺序构造的Patricia前缀树;
表项匹配模块,用于将所述匹配节点下挂载的规则前缀表项和所述匹配节点的祖先节点下挂载的规则前缀表项作为匹配表项;
规则匹配模块,用于所述匹配表项对应的NAT规则的匹配参数在所述匹配表项中确定目标表项,返回所述目标表项对应的NAT规则。
9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器中存储有程序指令,所述处理器运行所述程序指令时,执行权利要求1-7中任一项所述方法中的步骤。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器运行时,执行权利要求1-7任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911403722.0A CN111107181B (zh) | 2019-12-30 | 2019-12-30 | Nat规则匹配方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911403722.0A CN111107181B (zh) | 2019-12-30 | 2019-12-30 | Nat规则匹配方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111107181A true CN111107181A (zh) | 2020-05-05 |
CN111107181B CN111107181B (zh) | 2022-07-12 |
Family
ID=70424825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911403722.0A Active CN111107181B (zh) | 2019-12-30 | 2019-12-30 | Nat规则匹配方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111107181B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112055097A (zh) * | 2020-08-13 | 2020-12-08 | 北京天融信网络安全技术有限公司 | 一种nat规则匹配方法、装置、电子设备及存储介质 |
CN114465757A (zh) * | 2021-12-20 | 2022-05-10 | 中盈优创资讯科技有限公司 | 一种基于Trie树实现DDOS用户匹配的方法及装置 |
CN114745327A (zh) * | 2022-06-10 | 2022-07-12 | 鹏城实验室 | 业务数据转发方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102281196A (zh) * | 2011-08-11 | 2011-12-14 | 中兴通讯股份有限公司 | 决策树生成方法及设备、基于决策树报文分类方法及设备 |
US20160028766A1 (en) * | 2014-07-23 | 2016-01-28 | Petabi, Inc. | Method for compressing matching automata through common prefixes in regular expressions |
CN105939269A (zh) * | 2015-12-18 | 2016-09-14 | 杭州迪普科技有限公司 | 基于网络地址转换规则的报文转换方法及装置 |
CN109617927A (zh) * | 2019-01-30 | 2019-04-12 | 新华三信息安全技术有限公司 | 一种匹配安全策略的方法及装置 |
CN109905413A (zh) * | 2019-04-30 | 2019-06-18 | 新华三信息安全技术有限公司 | 一种ip地址的匹配方法及装置 |
CN110120942A (zh) * | 2019-04-17 | 2019-08-13 | 新华三信息安全技术有限公司 | 安全策略规则匹配方法及装置、防火墙设备及介质 |
CN110290117A (zh) * | 2019-06-06 | 2019-09-27 | 新华三信息安全技术有限公司 | 一种匹配ip地址的方法及装置 |
-
2019
- 2019-12-30 CN CN201911403722.0A patent/CN111107181B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102281196A (zh) * | 2011-08-11 | 2011-12-14 | 中兴通讯股份有限公司 | 决策树生成方法及设备、基于决策树报文分类方法及设备 |
US20160028766A1 (en) * | 2014-07-23 | 2016-01-28 | Petabi, Inc. | Method for compressing matching automata through common prefixes in regular expressions |
CN105939269A (zh) * | 2015-12-18 | 2016-09-14 | 杭州迪普科技有限公司 | 基于网络地址转换规则的报文转换方法及装置 |
CN109617927A (zh) * | 2019-01-30 | 2019-04-12 | 新华三信息安全技术有限公司 | 一种匹配安全策略的方法及装置 |
CN110120942A (zh) * | 2019-04-17 | 2019-08-13 | 新华三信息安全技术有限公司 | 安全策略规则匹配方法及装置、防火墙设备及介质 |
CN109905413A (zh) * | 2019-04-30 | 2019-06-18 | 新华三信息安全技术有限公司 | 一种ip地址的匹配方法及装置 |
CN110290117A (zh) * | 2019-06-06 | 2019-09-27 | 新华三信息安全技术有限公司 | 一种匹配ip地址的方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112055097A (zh) * | 2020-08-13 | 2020-12-08 | 北京天融信网络安全技术有限公司 | 一种nat规则匹配方法、装置、电子设备及存储介质 |
CN114465757A (zh) * | 2021-12-20 | 2022-05-10 | 中盈优创资讯科技有限公司 | 一种基于Trie树实现DDOS用户匹配的方法及装置 |
CN114465757B (zh) * | 2021-12-20 | 2023-06-23 | 中盈优创资讯科技有限公司 | 一种基于Trie树实现DDOS用户匹配的方法及装置 |
CN114745327A (zh) * | 2022-06-10 | 2022-07-12 | 鹏城实验室 | 业务数据转发方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111107181B (zh) | 2022-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111107181B (zh) | Nat规则匹配方法、装置、电子设备及存储介质 | |
CN110120942B (zh) | 安全策略规则匹配方法及装置、防火墙设备及介质 | |
Thakur et al. | Cybersecurity fundamentals: a real-world perspective | |
Zhang et al. | The number of subtrees of trees with given degree sequence | |
WO2019160128A1 (ja) | ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法及び当該ネットワークを構成するためのノード | |
JP2023507927A (ja) | 分散型台帳に関連付けられたトランザクションの宛先アドレス指定 | |
CN111224941B (zh) | 一种威胁类型识别方法及装置 | |
US10681007B2 (en) | String search and matching for gate functionality | |
JP6467540B1 (ja) | ブロックチェーン・ネットワークにおいてトランザクションを検証するための方法及び当該ネットワークを構成するためのノード | |
US11936669B2 (en) | Detection of abnormal entities based on syntactic grouping of strings preliminary class | |
US8095677B1 (en) | Configuration rule generation with compressed address sets | |
CN114006868B (zh) | 流量筛选方法及装置 | |
US10897483B2 (en) | Intrusion detection system for automated determination of IP addresses | |
CN105491094B (zh) | 处理http请求的方法及装置 | |
JP6978612B2 (ja) | ネットワークアドレス変換 | |
Aldwairi et al. | n‐Grams exclusion and inclusion filter for intrusion detection in Internet of Energy big data systems | |
CN112187743B (zh) | 一种基于ip地址最长前缀的网络策略匹配方法及系统 | |
CN112968870A (zh) | 一种基于频繁项集的网络团伙发现方法 | |
CN107736003B (zh) | 用于保护域名安全的方法和设备 | |
US8069304B2 (en) | Determining the presence of a pre-specified string in a message | |
US20160301658A1 (en) | Method, apparatus, and computer-readable medium for efficient subnet identification | |
CN115955435A (zh) | 一种组播表处理方法、装置及电子设备 | |
Kőrösi et al. | On the memory requirement of hop-by-hop routing: Tight bounds and optimal address spaces | |
CN112910888A (zh) | 非法域名注册团伙挖掘方法及装置 | |
CN112055097B (zh) | 一种nat规则匹配方法、装置、电子设备及存储介质 |
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 |