CN110290117A - 一种匹配ip地址的方法及装置 - Google Patents

一种匹配ip地址的方法及装置 Download PDF

Info

Publication number
CN110290117A
CN110290117A CN201910493681.2A CN201910493681A CN110290117A CN 110290117 A CN110290117 A CN 110290117A CN 201910493681 A CN201910493681 A CN 201910493681A CN 110290117 A CN110290117 A CN 110290117A
Authority
CN
China
Prior art keywords
network segment
address
prefix
node
known 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.)
Granted
Application number
CN201910493681.2A
Other languages
English (en)
Other versions
CN110290117B (zh
Inventor
李文慧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Security Technologies Co Ltd
Original Assignee
New H3C Security Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by New H3C Security Technologies Co Ltd filed Critical New H3C Security Technologies Co Ltd
Priority to CN201910493681.2A priority Critical patent/CN110290117B/zh
Publication of CN110290117A publication Critical patent/CN110290117A/zh
Application granted granted Critical
Publication of CN110290117B publication Critical patent/CN110290117B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/30Types of network names
    • H04L2101/35Types of network names containing special prefixes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供了一种匹配IP地址的方法及装置,涉及网络安全技术领域,该方法应用于网络设备,该方法包括:获取待匹配的目标IP地址以及目标IP地址对应每一第二网段分类的目标基础前缀;在第一前缀树中,以最长匹配原则,查找是否存在与目标IP地址匹配的第一子节点,获得第一匹配结果;在各第二前缀树的红黑树节点中,查找是否存在与目标IP地址匹配的第二子节点,若存在,则在以第二子节点为根节点的第二BinTree中,查找是否存在与目标IP地址匹配的第三子节点,获得第二匹配结果;依据第一匹配结果和第二匹配结果,确定目标IP地址的最终匹配结果。采用本申请可以提高匹配IP地址的效率。

Description

一种匹配IP地址的方法及装置
技术领域
本申请涉及网络安全技术领域,特别是涉及一种匹配IP地址的方法及装置。
背景技术
目前,网络设备中通常存储有安全策略,安全策略包括多条规则(rule)。规则中通常包含IP地址匹配项,以便对IP地址进行匹配检测。其中,IP地址匹配项可以被配置为IP地址,也可以被配置为IP地址范围(以下称为已知地址网段)。在实际应用中,当IP地址匹配项被配置为已知地址网段时,通常以IP前缀的形式来表示该已知地址网段对应的IP地址范围,IP前缀包括IP地址和前缀长度。例如,rule1的已知地址网段为FFFF/16,rule2的已知地址网段为FE/8。其中,“/”之前的字符为16进制表示的IP地址,“/”之后的数字为前缀长度(即以二进制表示的IP地址中,IP前缀包含的位数,可记为N)。前缀长度表示IP地址中的网络位数,也表示子网掩码的长度,即前缀长度表示IP地址范围中的前N位与IP地址中的前N位相同。
在对报文中的IP地址进行匹配时,网络设备会将该IP地址分别与每个规则中的IP地址匹配项配置的IP地址和/或已知地址网段进行匹配,以便确定出与该IP地址相匹配的规则,进而根据确定出的规则中的处理动作,对该报文进行处理。
基于上述方案,网络设备需要将报文中的IP地址与各规则逐一进行匹配,才能得到该IP地址的匹配结果,而安全策略包含的规则的数目通常较多,因此,匹配IP地址的效率较低。
发明内容
本申请实施例的目的在于提供一种匹配IP地址的方法及装置,以提高匹配IP地址的效率。具体技术方案如下:
第一方面,提供了一种匹配IP地址的方法,所述方法应用于网络设备,所述网络设备中存储有与至少一个已知地址网段的网段分类对应的前缀树;其中,
针对所述网段分类中的第一网段分类,所述第一网段分类对应的第一前缀树为依据网段分类为所述第一网段分类的第一已知地址网段生成的第一BinTree,所述第一BinTree的每一路径表示所述第一已知地址网段的比特序列;
针对所述网段分类中的每一第二网段分类,所述第二网段分类对应的地址网段包括基础前缀和除基础前缀之外的第一前缀,所述第二网段分类对应的第二前缀树包括依据所述第二网段分类对应的基础前缀生成的红黑树节点和以所述红黑树节点为根节点的第二BinTree,且所述第二BinTree依据网段分类为所述第二网段分类的第二已知地址网段的第一前缀生成,所述第二BinTree的每一路径表示所述第一前缀的比特序列;
所述方法包括:
获取待匹配的目标IP地址以及所述目标IP地址对应每一第二网段分类的目标基础前缀;
在所述第一前缀树中,以最长匹配原则,查找是否存在与所述目标IP地址匹配的第一子节点,获得第一匹配结果;
在各所述第二前缀树的红黑树节点中,通过比较所述目标IP地址的目标基础前缀与所述第二前缀树对应的第二网段分类的基础前缀,查找是否存在与所述目标IP地址匹配的第二子节点,若存在,则在以所述第二子节点为根节点的第二BinTree中,查找是否存在与所述目标IP地址匹配的第三子节点,获得第二匹配结果;
依据所述第一匹配结果和所述第二匹配结果,确定所述目标IP地址的最终匹配结果。
可选的,所述网络设备中还存储有与至少一个已知IP地址对应的第三前缀树,所述第三前缀树为依据所述至少一个已知IP地址生成的红黑树,所述红黑树的每一子节点表示一个IP地址;
所述方法还包括:
在所述第三前缀树中,查找是否存在与所述目标IP地址匹配的第四子节点,获得第三匹配结果;
所述依据所述第一匹配结果和所述第二匹配结果,确定所述目标IP地址的最终匹配结果,包括:
获取所述第一匹配结果、所述第二匹配结果和所述第三匹配结果的并集,得到所述目标IP地址的最终匹配结果。
可选的,所述方法还包括:
获取安全策略中各规则配置的已知地址网段;
依据预设的各网段分类对应的地址网段的前缀长度范围、以及获取到的各已知地址网段的前缀长度,确定所述各已知地址网段所属的网段分类;
在所述各已知地址网段中,确定网段分类为所述第一网段分类的第一已知地址网段,依据所述第一已知地址网段的比特序列生成第一BinTree,作为所述第一网段分类对应的第一前缀树;
针对每一第二网段分类,在所述各已知地址网段中,确定网段分类为所述第二网段分类的第二已知地址网段,依据所述第二已知地址网段中所述第二网段分类对应的基础前缀表示的地址网段,生成红黑树节点,并以所述红黑树节点为根节点,依据所述第二已知地址网段的第一前缀表示的比特序列生成第二BinTree,得到所述第二网段分类对应的第二前缀树。
可选的,所述以所述红黑树节点为根节点,依据所述第二已知地址网段的第一前缀表示的比特序列生成第二BinTree,得到所述第二网段分类对应的第二前缀树,包括:
针对所述第二网段分类中的每个第二已知地址网段,在所述红黑树节点中,查找与所述第二已知地址网段所属第二网段分类对应的基础前缀表示的地址网段匹配的第五子节点;
以所述第五子节点为根节点,依据所述第二已知地址网段的第一前缀表示的比特序列,生成第二BinTree。
可选的,所述依据所述第二已知地址网段中所述第二网段分类对应的基础前缀表示的地址网段,生成红黑树节点,并以所述红黑树节点为根节点,依据所述第二已知地址网段的第一前缀表示的比特序列生成第二BinTree,得到所述第二网段分类对应的第二前缀树,包括:
从所述第二已知地址网段中获取第五已知地址网段,依据所述第五已知地址网段中所述第二网段分类对应的基础前缀表示的地址网段,生成第一红黑树节点,并以所述红黑树节点为根节点,依据所述第五已知地址网段的第一前缀表示的比特序列生成第五已知地址网段的第二BinTree,得到所述第二网段分类对应的第二前缀树,并关联所述第五已知地址网段的第二BinTree的叶子节点和配置所述第五已知地址网段的规则;其中,所述第五已知地址网段的第二BinTree的第三路径表示所述第五已知地址网段的第一前缀表示的比特序列;
针对所述第二已知地址网段中除所述第五已知地址网段外的每一第六已知地址网段,在当前已生成的红黑树节点中,查找是否存在与所述第六已知地址网段中所述第二网段分类对应的基础前缀表示的地址网段匹配的第二红黑树节点;如果存在所述第二红黑树节点,则依据所述第六已知地址网段的第一前缀表示的比特序列更新以所述第二红黑树节点为根节点的第二BinTree,以及,
若表示所述第六已知地址网段的第一前缀表示的比特序列的第四路径位于所述第三路径上,则将所述第四路径的最后一个节点以及所述第三路径上位于第四路径之后的所有节点均和配置所述第六已知地址网段的规则关联;
若表示所述第六已知地址网段的第一前缀表示的比特序列的第四路径包含所述第三路径,则将所述第四路径的最后一个节点与所述配置所述第六已知地址网段的规则关联,并将所述第四路径上位于第三路径之后的所有节点均和配置所述第五已知地址网段的规则关联;
若表示所述第六已知地址网段的第一前缀表示的比特序列的第四路径不位于所述第三路径上且不包含所述第三路径,则将所述第四路径的最后一个节点和配置所述第六已知地址网段的规则关联。
可选的,如果不存在所述第二红黑树节点,则依据所述第六已知地址网段中所述第二网段分类对应的基础前缀表示的地址网段,生成所述第二红黑树节点,并以所述第二红黑树节点为根节点,依据所述第六已知地址网段的第一前缀表示的比特序列生成第六已知地址网段的第二BinTree,关联所述第六已知地址网段的第二BinTree的叶子节点和配置所述第六已知地址网段的规则。
第二方面,提供了一种匹配IP地址的装置,所述装置应用于网络设备,所述网络设备中存储有与至少一个已知地址网段的网段分类对应的前缀树;其中,
针对所述网段分类中的第一网段分类,所述第一网段分类对应的第一前缀树为依据网段分类为所述第一网段分类的第一已知地址网段生成的第一BinTree,所述第一BinTree的每一路径表示所述第一已知地址网段的比特序列;
针对所述网段分类中的每一第二网段分类,所述第二网段分类对应的地址网段包括基础前缀和除基础前缀之外的第一前缀,所述第二网段分类对应的第二前缀树包括依据所述第二网段分类对应的基础前缀生成的红黑树节点和以所述红黑树节点为根节点的第二BinTree,且所述第二BinTree依据网段分类为所述第二网段分类的第二已知地址网段的第一前缀生成,所述第二BinTree的每一路径表示所述第一前缀的比特序列;
所述装置包括:
第一获取模块,用于获取待匹配的目标IP地址以及所述目标IP地址对应每一第二网段分类的目标基础前缀;
第一查找模块,用于在所述第一前缀树中,以最长匹配原则,查找是否存在与所述目标IP地址匹配的第一子节点,获得第一匹配结果;
第二查找模块,用于在各所述第二前缀树的红黑树节点中,通过比较所述目标IP地址的目标基础前缀与所述第二前缀树对应的第二网段分类的基础前缀,查找是否存在与所述目标IP地址匹配的第二子节点,若存在,则在以所述第二子节点为根节点的第二BinTree中,查找是否存在与所述目标IP地址匹配的第三子节点,获得第二匹配结果;
第一确定模块,用于依据所述第一匹配结果和所述第二匹配结果,确定所述目标IP地址的最终匹配结果。
可选的,所述网络设备中还存储有与至少一个已知IP地址对应的第三前缀树,所述第三前缀树为依据所述至少一个已知IP地址生成的红黑树,所述红黑树的每一子节点表示一个IP地址;
所述装置还包括:
第三查找模块,用于在所述第三前缀树中,查找是否存在与所述目标IP地址匹配的第四子节点,获得第三匹配结果;
所述第一确定模块,具体用于:
获取所述第一匹配结果、所述第二匹配结果和所述第三匹配结果的并集,得到所述目标IP地址的最终匹配结果。
可选的,所述装置还包括:
第二获取模块,用于获取安全策略中各规则配置的已知地址网段;
第二确定模块,用于依据预设的各网段分类对应的地址网段的前缀长度范围、以及获取到的各已知地址网段的前缀长度,确定所述各已知地址网段所属的网段分类;
第一生成模块,用于在所述各已知地址网段中,确定网段分类为所述第一网段分类的第一已知地址网段,依据所述第一已知地址网段的比特序列生成第一BinTree,作为所述第一网段分类对应的第一前缀树;
第二生成模块,用于针对每一第二网段分类,在所述各已知地址网段中,确定网段分类为所述第二网段分类的第二已知地址网段,依据所述第二已知地址网段中所述第二网段分类对应的基础前缀表示的地址网段,生成红黑树节点,并以所述红黑树节点为根节点,依据所述第二已知地址网段的第一前缀表示的比特序列生成第二BinTree,得到所述第二网段分类对应的第二前缀树。
可选的,所述第二生成模块,具体用于:
针对所述第二网段分类中的每个第二已知地址网段,在所述红黑树节点中,查找与所述第二已知地址网段所属第二网段分类对应的基础前缀表示的地址网段匹配的第五子节点;
以所述第五子节点为根节点,依据所述第二已知地址网段的第一前缀表示的比特序列,生成第二BinTree。
可选的,所述第二生成模块,具体用于:
从所述第二已知地址网段中获取第五已知地址网段,依据所述第五已知地址网段中所述第二网段分类对应的基础前缀表示的地址网段,生成第一红黑树节点,并以所述红黑树节点为根节点,依据所述第五已知地址网段的第一前缀表示的比特序列生成第五已知地址网段的第二BinTree,得到所述第二网段分类对应的第二前缀树,并关联所述第五已知地址网段的第二BinTree的叶子节点和配置所述第五已知地址网段的规则;其中,所述第五已知地址网段的第二BinTree的第三路径表示所述第五已知地址网段的第一前缀表示的比特序列;
针对所述第二已知地址网段中除所述第五已知地址网段外的每一第六已知地址网段,在当前已生成的红黑树节点中,查找是否存在与所述第六已知地址网段中所述第二网段分类对应的基础前缀表示的地址网段匹配的第二红黑树节点;如果存在所述第二红黑树节点,则依据所述第六已知地址网段的第一前缀表示的比特序列更新以所述第二红黑树节点为根节点的第二BinTree,以及,
若表示所述第六已知地址网段的第一前缀表示的比特序列的第四路径位于所述第三路径上,则将所述第四路径的最后一个节点以及所述第三路径上位于第四路径之后的所有节点均和配置所述第六已知地址网段的规则关联;
若表示所述第六已知地址网段的第一前缀表示的比特序列的第四路径包含所述第三路径,则将所述第四路径的最后一个节点与所述配置所述第六已知地址网段的规则关联,并将所述第四路径上位于第三路径之后的所有节点均和配置所述第五已知地址网段的规则关联;
若表示所述第六已知地址网段的第一前缀表示的比特序列的第四路径不位于所述第三路径上且不包含所述第三路径,则将所述第四路径的最后一个节点和配置所述第六已知地址网段的规则关联。
可选的,所述第二生成模块具体用于:如果不存在所述第二红黑树节点,则依据所述第六已知地址网段中所述第二网段分类对应的基础前缀表示的地址网段,生成所述第二红黑树节点,并以所述第二红黑树节点为根节点,依据所述第六已知地址网段的第一前缀表示的比特序列生成第六已知地址网段的第二BinTree,关联所述第六已知地址网段的第二BinTree的叶子节点和配置所述第六已知地址网段的规则。
第三方面,提供了一种网络设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面任一所述的方法步骤。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一所述的方法步骤。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。
本申请实施例提供了一种匹配IP地址的方法及装置,可以应用于网络设备,网络设备中存储有与至少一个已知地址网段的网段分类对应的前缀树;其中,针对网段分类中的第一网段分类,第一网段分类对应的第一前缀树为依据网段分类为第一网段分类的第一已知地址网段生成的第一二叉树BinTree,第一BinTree的每一路径表示第一已知地址网段的比特序列。针对网段分类中的每一第二网段分类,第二网段分类对应的地址网段包括基础前缀和除基础前缀之外的第一前缀,第二网段分类对应的第二前缀树包括依据第二网段分类对应的基础前缀生成的红黑树节点和以红黑树节点为根节点的第二BinTree,且第二BinTree依据网段分类为第二网段分类的第二已知地址网段的第一前缀生成,第二BinTree的每一路径表示第一前缀的比特序列。
网络设备可以获取待匹配的目标IP地址以及目标IP地址对应每一第二网段分类的目标基础前缀,然后在第一前缀树中,以最长匹配原则,查找是否存在与目标IP地址匹配的第一子节点,获得第一匹配结果。网络设备还可以在各第二前缀树的红黑树节点中,查找是否存在与目标IP地址匹配的第二子节点,若存在,则在以第二子节点为根节点的第二BinTree中,查找是否存在与目标IP地址匹配的第三子节点,获得第二匹配结果,进而依据第一匹配结果和第二匹配结果,确定目标IP地址的最终匹配结果。与现有技术中相比,本方案中,网络设备通过构建的不同前缀树对IP地址分别进行匹配,并依据不同前缀树对应的匹配结果,从而得到最终的匹配结果,网络设备无需像现有技术那样将IP地址与各规则逐一进行匹配,提高了匹配IP地址的效率。并且,本方案中,针对不同的网段分类分别构建不同的前缀树,对于前缀较长的地址网段进行匹配时,可以先通过红黑树进行匹配,再通过BinTree进行匹配,由于红黑树的匹配效率较高,从而可以进一步提高匹配IP地址的效率。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种前缀树的生成方法的流程图;
图2a为本申请实施例提供的一种BinTree的示意图;
图2b为本申请实施例提供的另一种BinTree的示意图;
图2c为本申请实施例提供的另一种BinTree的示意图;
图2d为本申请实施例提供的另一种BinTree的示意图;
图2e为本申请实施例提供的另一种BinTree的示意图;
图3a为本申请实施例提供的一种红黑树的示意图;
图3b为本申请实施例提供的另一种红黑树的示意图;
图3c为本申请实施例提供的另一种红黑树的示意图;
图3d为本申请实施例提供的另一种红黑树的示意图;
图3e为本申请实施例提供的另一种红黑树的示意图;
图4为本申请实施例提供的一种匹配IP地址的方法的流程图;
图5为本申请实施例提供的一种匹配IP地址装置的结构示意图;
图6为本申请实施例提供的一种匹配IP地址装置的结构示意图;
图7为本申请实施例提供的一种匹配IP地址装置的结构示意图;
图8为本申请实施例提供的一种网络设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供的一种匹配互联网协议(英文:Internet Protocol Address,简称:IP)地址的方法,该方法可以应用于网络设备。其中,网络设备可以为防火墙、入侵防御系统(英文:Intrusion Prevention System,简称:IPS)设备等设备。目前,当网络设备接收到报文时,可以基于预先配置的安全策略对该报文进行过滤。安全策略可以包括至少一个规则(即rule),每个规则可以包括至少一个匹配项,匹配项可以包括IP地址匹配项,该IP地址匹配项可以被配置为已知地址网段和/或IP地址。例如,匹配项可以包括源IP地址匹配项、目的IP地址匹配项、源端口匹配项、目的端口匹配项和协议类型匹配项等,其中,源IP地址匹配项和目的IP地址匹配项均可被配置为地址网段。
在实际应用中,通常以IP前缀的形式来表示该已知地址网段对应的IP地址范围,IP前缀包括IP地址和前缀长度。例如,rule1的已知地址网段为FFFF/16,rule2的已知地址网段为FE/8。其中,“/”之前的字符为16进制表示的IP地址,“/”之后的数字为前缀长度(即以二进制表示的IP地址中,IP前缀包含的位数,可记为N)。前缀长度表示IP地址中的网络位数,也表示子网掩码的长度,即前缀长度表示IP地址范围中的前N位与IP地址中的前N位相同。
本申请实施例提供了一种匹配IP地址的方法,该方法可以应用于网络设备,网络设备中可以存储有与至少一个已知地址网段的网段分类对应的前缀树;其中,针对网段分类中的第一网段分类,第一网段分类对应的第一前缀树为依据网段分类为第一网段分类的第一已知地址网段生成的第一二叉树BinTree,第一BinTree的每一路径表示第一已知地址网段的比特序列。针对网段分类中的每一第二网段分类,第二网段分类对应的地址网段包括基础前缀和除基础前缀之外的第一前缀,第二网段分类对应的第二前缀树包括依据第二网段分类对应的基础前缀生成的红黑树节点和以红黑树节点为根节点的第二BinTree,且第二BinTree依据网段分类为第二网段分类的第二已知地址网段的第一前缀生成,第二BinTree的每一路径表示第一前缀的比特序列。
网络设备可以获取待匹配的目标IP地址以及目标IP地址对应每一第二网段分类的目标基础前缀,然后在第一前缀树中,以最长匹配原则,查找是否存在与目标IP地址匹配的第一子节点,获得第一匹配结果。网络设备还可以在各第二前缀树的红黑树节点中,查找是否存在与目标IP地址匹配的第二子节点,若存在,则在以第二子节点为根节点的第二BinTree中,查找是否存在与目标IP地址匹配的第三子节点,获得第二匹配结果,进而依据第一匹配结果和第二匹配结果,确定目标IP地址的最终匹配结果。
为了便于说明,本申请实施例首先对前缀树的生成方法进行说明,如图1所示,具体步骤如下。
步骤101,获取安全策略中各规则配置的已知地址网段。
本申请实施例中,网络设备可以获取安全策略包含的各规则,进而获取各规则中各匹配项配置的已知地址网段。其中,已知地址网段可以为用于匹配源IP地址的已知地址网段和/或用于匹配目的IP地址的已知地址网段。
例如:可以从各规则中的源IP匹配项和目的IP匹配项中获取配置的源IP地址范围和目的IP地址范围,其中,源IP地址范围即为用于匹配源IP地址的已知地址网段,目的IP地址范围即为用于匹配目的IP地址的已知地址网段。
步骤102,依据预设的各网段分类对应的地址网段的前缀长度范围、以及获取到的各已知地址网段的前缀长度,确定各已知地址网段所属的网段分类。
本申请实施例中,已知地址网段为IP地址范围,该已知地址网段可以以二进制数进行表示。以IPV6地址为例,本实施例提供的已知地址网段的示例如表一所示。
表一
0-31位 32-63位 64-95位 96-127位
网段A 110000…00 000000…00 000000…00 000000…00
网段B 110000…00 101000…00 000000…00 000000…00
网段C 110000…00 1010…0111 000010…00 000000…00
网段D 110000…00 1010…0111 000011…01 101100…00
其中,省略号“…”省略的部分为0。
上述网段A~网段D也可以以表二的形式进行表示。
表二
网段A 1100*
网段B 110000…00.1010*
网段C 110000…00.1010…0111.00001*
网段D 110000…00.1010…0111.000011…01.1011*
表二中,网段A的IP前缀为1100,前缀长度为4;网段B的IP前缀为110000…00.1010,前缀长度为36;网段C的IP前缀为110000…00.1010…0111.00001,前缀长度为69;网段D的IP前缀为110000…00.1010…0111.000011…01.1011,前缀长度为100。*表示不关心的位,即*之后的位可以为1或者0。
技术人员可以预先设置多个网段分类、以及每个网段分类对应的前缀长度范围。例如,对于IPV6地址,技术人员可以设置4个网段分类,其中,每个网段分类对应的前缀长度范围可以如表三所示。
表三
网段分类 前缀长度范围
A 0-31
B 32-63
C 64-95
D 96-127
网络设备可以根据预设的各网段分类对应的前缀长度范围、以及获取到的各已知地址网段的前缀长度,确定各已知地址网段所属的网段分类。例如,表二中,网段A的前缀长度为4,对应的网段分类为A;网段B的前缀长度为36,对应的网段分类为B;网段C的前缀长度为69,对应的网段分类为C;网段D的前缀长度为100,对应的网段分类为D。
步骤103,在各已知地址网段中,确定网段分类为第一网段分类的第一已知地址网段,依据第一已知地址网段的比特序列生成第一BinTree,作为第一网段分类对应的第一前缀树。
本申请实施例中,第一网段分类可以是前缀长度范围的上限值最小的网段分类。例如,参照表三,第一网段分类为网段分类A。网络设备确定各已知地址网段所属的网段分类后,可以在各已知地址网段中,确定网段分类为第一网段分类的第一已知地址网段,然后依据第一已知地址网段的比特序列生成第一BinTree,作为第一网段分类对应的第一前缀树。
可选的,本申请实施例提供了一种BinTree的构建过程,具体包括如下步骤。
步骤一、从第一已知地址网段中获取第三已知地址网段,依据第三已知地址网段的比特序列生成第一BinTree,并关联第一BinTree的叶子节点和配置第三已知地址网段的规则。
其中,第一BinTree的第一路径表示第三已知地址网段的比特序列。
本申请实施例中,网络设备可以从第一网段分类的第一地址网段中,获取第三已知地址网段。然后,网络设备在当前的BinTree中,按照最长匹配原则,查找是否存在表示第三已知地址网段的比特序列的子节点。
如果不存在,则确定第三已知地址网段对应的失配位,该失配位为通过比较比特序列确定出的第一个不匹配的比特位的网络位号。例如,FE/8与FFFF/15的失配位为第8位。网络设备可以根据确定出的失配位,在与第三已知地址网段匹配的最长网段对应的子节点处,添加孩子节点。其中,如果失配位为0,则在该子节点处添加左孩子节点,如果失配位为1,则在该子节点处添加右孩子节点,直到添加完第三已知地址网段包含的所有比特序列为止。
网络设备中可以存储各已知地址网段与位图(即bitmap)的对应关系。其中,位图中至少包括该已知地址网段命中的规则(即包含该已知地址网段的规则)的标识,该对应关系可以如表四所示。
表四
网段1 位图1
网段2 位图2
网段3 位图3
网段N 位图N
由于位图中包含已知地址网段命中的规则的标识,因此,通常采用关联位图和子节点的方式,来建立规则和子节点的关联关系。后续,当确定某IP地址与某子节点所表示的已知地址网段相匹配时,可以根据与该子节点关联的位图,确定该IP地址命中的规则。基于此,本申请实施例中,网络设备添加完第三已知地址网段的比特序列对应的子节点之后,可以获取第三已知地址网段对应的位图,关联第三已知地址网段对应的路径的最后一个子节点(即第一BinTree的叶子节点)和第三已知地址网段对应的位图。
步骤二、针对第一已知地址网段中除第三已知地址网段外的每一第四已知地址网段,依据第四已知地址网段的比特序列更新第一BinTree。
其中,依据第四已知地址网段的比特序列更新第一BinTree的过程与步骤一的过程类似,此处不再赘述。
步骤三、若表示第四已知地址网段的比特序列的第二路径位于第一路径上,则将第二路径的最后一个节点以及第一路径上位于第二路径之后的节点和配置第四已知地址网段的规则关联。
应当理解的是,第一路径上位于第二路径之后的节点在与配置第四已知地址网段的规则关联之前,有可能关联了其他规则,因此通过步骤三的提供的方式,可以使BinTree中具有位图的子节点能够继承其父节点的位图。
步骤四、若表示第四已知地址网段的比特序列的第二路径包含第一路径,则将第二路径的最后一个节点与配置第四已知地址网段的规则关联,并将该最后一个节点和配置第三已知地址网段的规则关联。
在这里,第二路径包含第一路径包括两种情况:一种情况是第一路径位于第二路径上,另一种情况是第一路径与第二路径完全重叠。
步骤五、若表示第四已知地址网段的比特序列的第二路径不位于第一路径上且不包含第一路径,则将第二路径的最后一个节点和配置第四已知地址网段的规则关联。
以网段分类A为例,本申请实施例提供了一种生成BinTree的示例。如表五所示,网段分类A包括如下已知地址网段。
表五
规则名称 已知地址网段(2进制)
rule1 1011*(以下称网段1)
rule2 10111*(以下称网段2)
rule3 101*(以下称网段3)
rule4 00111*(以下称网段4)
rule5 100*(以下称网段5)
根据网段1构建的BinTree如图2a所示,其中,图2a中的叶子节点处添加位图1(可表示为BM1),其中BM1中包含rule1的标识。
网段2的比特序列的路径包含网段1的比特序列的路径,网段2与图2a中的叶子节点的失配位为1,此时构建该叶子节点的右孩子节点,并在该右孩子节点节点处添加位图:BM1和BM2,得到的BinTree如图2b所示。
网段3与图2b中的BinTree进行匹配后,由于该BinTree当前的路径中,包含表示网段3的比特序列的路径,因此无需增加子节点,仅在图2b中表示网段3的比特序列的路径的最后一个子节点处添加位图BM3,得到的BinTree如图2c所示。
基于类似的处理过程,添加网段4后的BinTree如图2d所示,添加网段5后的BinTree如图2e所示。
步骤104,针对每一第二网段分类,在各已知地址网段中,确定网段分类为第二网段分类的第二已知地址网段,依据第二已知网段中第二网段分类对应的基础前缀表示的地址网段,生成红黑树节点,并以红黑树节点为根节点,依据第二已知地址网段的第一前缀表示的比特序列生成第二BinTree,得到第二网段分类对应的第二前缀树。
本申请实施例中,针对每个网段分类,可以将小于该网段分类对应的前缀长度范围的下限值的前缀,作为基础前缀。例如,参照表三,网段分类A对应的前缀长度范围为0-31,则不存在基础前缀;网段分类B对应的前缀长度范围为32-63,则基础前缀为0-31;网段分类C对应的前缀长度范围为64-95,则基础前缀为0-63;网段分类D对应的前缀长度范围为96-127,则基础前缀为0-95,如表六所示。
表六
网段分类 前缀长度范围 基础前缀
A 0-31 不存在
B 32-63 0-31
C 64-95 0-63
D 96-127 0-95
为了便于描述,可以将前缀长度范围包含的前缀称为第一前缀。
由上可以看出,网段分类可以分为两类:不存在基础前缀的第一网段分类和存在基础前缀的第二网段分类。即第一网段分类的地址网段只有第一前缀;第二网段分类的地址网段由基础前缀和第一前缀构成,第二网段分类与基础前缀、第一前缀有对应关系,对应关系如上述表六所示。
针对每一第二网段分类,网络设备可以确定属于该第二网段分类的第二已知地址网段,并且,针对确定出的每个第二已知地址网段,可以从该第二已知网段中提取第二网段分类对应的基础前缀表示的地址网段、以及第一前缀表示的比特序列。例如:
网段A为1100*,对应的网段分类为A(即第一网段分类),前缀长度范围对应的前缀为1100…00(0-31位),不存在基础前缀;
网段B为110000…00.1010*,对应的网段分类为B(即第二网段分类),基础前缀表示的地址网段为110000…00(0-31位),第一前缀对应的比特序列为1010…00(32-63位);
网段C为110000…00.1010…0111.00001*,对应的网段分类为C(即第二网段分类),基础前缀表示的地址网段为110000…00.1010…0111(0-63位),第一前缀对应的比特序列为00001…00(64-95位);
网段D为110000…00.1010…0111.000011…01.1011*,对应的网段分类为D(即第二网段分类),基础前缀表示的地址网段为110000…00.1010…0111.000011…01(0-95),第一前缀对应的比特序列为1011…00(96-127位)。
针对每一第二网段分类,网络设备从属于该第二网段分类的第二已知地址网段中,提取该第二网段分类对应的基础前缀表示的地址网段、以及第一前缀表示的比特序列后,可以依据提取出的地址网段,生成红黑树节点,然后,以红黑树节点为根节点,依据提取出的比特序列生成第二BinTree,得到该第二网段分类对应的第二前缀树。其中,现有技术中任一生成红黑树的算法均可应用于本申请实施例中,本申请实施例不做限定。红黑树节点生成过程后续会进行举例说明。
可选的,对于每个第二网段分类,网络设备生成该第二网段分类对应的前缀树的处理过程具体可以如下:针对第二网段分类中的每个第二已知地址网段,在红黑树节点中,查找与第二已知地址网段所属第二网段分类对应的基础前缀表示的地址网段匹配的第五子节点;以第五子节点为根节点,依据第二已知地址网段的第一前缀表示的比特序列,生成第二BinTree。
本申请实施例中,对于每个第二网段分类,网络设备可以在各已知地址网段中,确定网段分类为第二网段分类的第二已知地址网段,依据第二已知网段中第二网段分类对应的基础前缀表示的地址网段,生成红黑树节点。其中,每个红黑树节点唯一表示一个地址网段,因此,针对该第二网段分类中的每个已知地址网段,网络设备可以在该第二网段分类对应的红黑树节点中,查找与第二已知地址网段所属第二网段分类对应的基础前缀表示的地址网段匹配的第五子节点,然后以该第五子节点为根节点,依据第二已知地址网段的第一前缀表示的比特序列,生成第二BinTree。其中,BinTree的生成方法可以参照上述说明,此处不再赘述。
本申请实施例还提供了一种生成第二网段分类的前缀树的具体过程,包括以下步骤。
步骤一、从第二已知地址网段中获取第五已知地址网段,依据第五已知地址网段中第二网段分类对应的基础前缀表示的地址网段,生成第一红黑树节点,并以红黑树节点为根节点,依据第五已知地址网段的第一前缀表示的比特序列生成第五已知地址网段的第二BinTree,得到第二网段分类对应的第二前缀树,并关联第五已知地址网段的第二BinTree的叶子节点和配置第五已知地址网段的规则。
其中,第五已知地址网段的第二BinTree的第三路径表示第五已知地址网段的第一前缀表示的比特序列。
步骤二、针对第二已知地址网段中除第五已知地址网段外的每一第六已知地址网段,在当前已生成的红黑树节点中,查找是否存在与第六已知地址网段中第二网段分类对应的基础前缀表示的地址网段匹配的第二红黑树节点。
若存在,执行步骤四。若不存在,执行下述步骤三。
步骤三、如果不存在第二红黑树节点,则依据第六已知地址网段中第二网段分类对应的基础前缀表示的地址网段,生成第二红黑树节点,并以第二红黑树节点为根节点,依据第六已知地址网段的第一前缀表示的比特序列生成第六已知地址网段的第二BinTree,关联第六已知地址网段的第二BinTree的叶子节点和配置第六已知地址网段的规则。
步骤四、如果存在第二红黑树节点,则依据第六已知地址网段的第一前缀表示的比特序列更新以第二红黑树节点为根节点的第二BinTree,以及,若表示第六已知地址网段的第一前缀表示的比特序列的第四路径位于第三路径上,则将第四路径的最后一个节点以及第三路径上位于第四路径之后的所有节点均和配置第六已知地址网段的规则关联。
步骤五、若表示第六已知地址网段的第一前缀表示的比特序列的第四路径包含第三路径,则将第四路径的最后一个节点与配置第六已知地址网段的规则关联,并将第四路径上位于第三路径之后的所有节点均和配置第五已知地址网段的规则关联。
步骤六、若表示第六已知地址网段的第一前缀表示的比特序列的第四路径不位于第三路径上且不包含第三路径,则将第四路径的最后一个节点和配置第六已知地址网段的规则关联。
由上可以看出,第二BinTree的生成过程与前述第一BinTree的生成过程相似,第二BinTree的生成过程参阅前述第一BinTree的生成过程即可。
可选的,安全策略的规则中的IP匹配项还可以被配置为已知IP地址,网络设备可以依据各已知IP地址生成红黑树,其中,红黑树中的每一子节点表示一个IP地址,并且,每个红黑树节点可以关联该红黑树节点存储的IP地址的规则。
本申请实施例提供了一种红黑树的示例。其中,各规则中的已知IP地址如表七所示。
表七
规则名称 已知地址网段(16进制)
rule1 20::5
rule2 40::5
rule3 50::1
基于表七,本申请实施例提供了一种生成红黑树的方法,其中,红黑树需要满足以下性质:性质一、节点是红色或者是黑色;性质二、根节点是黑色;性质三、每个叶子节点(或空节点)是黑色;性质四、每个红色节点的两个子节点都是黑色(即不存在两个连续的红色节点);性质五、从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。
一个示例中,生成红黑树的过程具体包括以下步骤。
首先,网络设备生成存储20::5的红黑树节点,并将该红黑树节点作为根节点,与rule1关联,着色成黑色,如图3a所示。
然后,插入存储40::5的红黑树节点,具体的规则为:如果该IP地址大于根节点中的IP地址,则生成根节点的右孩子节点,如果该IP地址小于根节点中的IP地址,则生成根节点的左孩子节点。由于40::5大于20::5,因此,生成根节点的右孩子节点,与rule2关联,并着色为红色,如图3b所示(在图3b中以白色表示)。
同理,生成该子节点的左孩子节点,用于存储IP地址50::1,与rule3关联,如图3c所示。由于图3c所示的红黑树不满足性质五的要求,因此,需要对该红黑树进行修正,即将存储IP地址40::5的子节点进行右旋,得到如图3d所示的红黑树。
然后,重新进行着色,即将根节点着色为黑色,根节点的孩子节点着色为红色,并补充空节点(为了满足性质三),最终得到如图3e所示的红黑树。
前述基于地址网段生成红黑树节点及红黑树的过程也可以参阅上述方法得到,在此不再赘述。
由前文可知,本申请实施例基于IP地址匹配项的不同配置生成了三种前缀树,其中,分别是:基于具体的IP地址生成的红黑树、基于第一网段分类生成的第一前缀树(即第一BinTree)、基于第二网段分类生成的第二前缀树(即红黑树和第二BinTree结合的树)。具体的,针对每一种第二网段分类,可以分别生成该第二网段分类对应的第二前缀树,即网段分类B生成第二前缀树B、网段分类C生成第二前缀树C、网段分类D生成第二前缀树D。
基于前述生成的各种前缀树,本申请实施例提供了一种匹配IP地址的方法,如图4所示,具体包括以下步骤。
步骤401,获取待匹配的目标IP地址以及目标IP地址对应每一第二网段分类的目标基础前缀。
本申请实施例中,当网络设备接收到报文后,可以对报文进行解析,获取该报文中携带的IP地址。针对每个第二网段分类,网络设备可以根据该第二网段分类对应的基础前缀,从目标IP地址中提取该基础前缀表示的地址网段。例如,IP地址为110000…00.1010…0111.000011…01.1011…01,基础前缀为0-31,则基础前缀表示的地址网段为110000…00。
步骤402,在第一前缀树中,以最长匹配原则,查找是否存在与目标IP地址匹配的第一子节点,获得第一匹配结果。
本申请实施例中,网络设备可以在第一前缀树(即第一BinTree)中,以最长匹配原则,查找是否存在与目标IP地址匹配的第一子节点,如果存在,则确定第一子节点与根节点之间的各子节点所关联的规则,将确定出的规则作为第一匹配结果。如果不存在,则确定第一匹配结果为未命中第一前缀树中各子节点关联的规则,即第一匹配结果为空。
步骤403,在各第二前缀树的红黑树节点中,通过比较目标IP地址的目标基础前缀与第二前缀树对应的第二网段分类的基础前缀,查找是否存在与目标IP地址匹配的第二子节点,若存在,则在以第二子节点为根节点的第二BinTree中,查找是否存在与目标IP地址匹配的第三子节点,获得第二匹配结果。
本申请实施例中,网络设备可以在各第二前缀树的红黑树节点中,查找是否存在与目标IP地址匹配的第二子节点。若存在,则在以第二子节点为根节点的第二BinTree中,查找是否存在与目标IP地址匹配的第三子节点。
一个示例中,可以通过比较目标IP地址的目标基础前缀与第二前缀树对应的第二网段分类的基础前缀,查找是否存在与目标IP地址匹配的第二子节点。具体的,假设第二前缀树对应的第二网段分类的基础前缀称为第一基础前缀,确定目标IP地址中比特位号与该第一基础前缀比特位号相同的的目标基础前缀,通过比较第一基础前缀、目标基础前缀的比特序列是否相同,来确定是否存在与目标IP地址匹配的第二子节点。
例如:假设第二网段分类(即前述网段分类B)的第一基础前缀的比特位号为0-31,该第一基础前缀的第一比特序列为全1,目标IP地址为全F,目标IP地址的比特位号为0-31的的目标基础前缀的第二比特序列为全1。通过比较,可知,第一比特序列与第二比特序列完全相同,可以认为第二前缀树中存在与目标IP地址匹配的第二子节点。
如果存在,则确定第三子节点与根节点之间的各子节点所关联的规则,将确定出的规则作为第二匹配结果。若不存在,则确定第二前缀树中不存在目标IP地址命中的规则,即第二匹配结果为空。
步骤404,依据第一匹配结果和第二匹配结果,确定目标IP地址的最终匹配结果。
本申请实施例中,网络设备可以确定第一匹配结果和第二匹配结果的并集,得到目标IP地址的最终匹配结果。
可选的,对于各规则中还包括已知IP地址的情况,相应的,网络设备中还可以存储有与已知IP地址对应的第三前缀树,网络设备可以在第三前缀树中,查找是否存在与目标IP地址匹配的第四子节点,获得第三匹配结果,进而获取第一匹配结果、第二匹配结果和第三匹配结果的并集,得到目标IP地址的最终匹配结果。
本申请实施例中,网络设备将目标IP地址与第三前缀树包含的各红黑树节点中存储的已知IP地址进行对比,以查找是否存在存储目标IP地址的第四子节点。如果存在,则将第四子节点关联的规则作为第三匹配结果,如果不存在,则确定第三匹配结果为空。网络设备确定出第三匹配结果后,可以获取第一匹配结果、第二匹配结果和第三匹配结果的并集,得到目标IP地址的最终匹配结果。
本申请实施例中,网络设备中存储有与至少一个已知地址网段的网段分类对应的前缀树;其中,针对网段分类中的第一网段分类,第一网段分类对应的第一前缀树为依据网段分类为第一网段分类的第一已知地址网段生成的第一二叉树BinTree,第一BinTree的每一路径表示第一已知地址网段的比特序列。针对网段分类中的每一第二网段分类,第二网段分类对应的地址网段包括基础前缀和除基础前缀之外的第一前缀,第二网段分类对应的第二前缀树包括依据第二网段分类对应的基础前缀生成的红黑树节点和以红黑树节点为根节点的第二BinTree,且第二BinTree依据网段分类为第二网段分类的第二已知地址网段的第一前缀生成,第二BinTree的每一路径表示第一前缀的比特序列。
网络设备可以获取待匹配的目标IP地址以及目标IP地址对应每一第二网段分类的目标基础前缀,然后在第一前缀树中,以最长匹配原则,查找是否存在与目标IP地址匹配的第一子节点,获得第一匹配结果。网络设备还可以在各第二前缀树的红黑树节点中,查找是否存在与目标IP地址匹配的第二子节点,若存在,则在以第二子节点为根节点的第二BinTree中,查找是否存在与目标IP地址匹配的第三子节点,获得第二匹配结果,进而依据第一匹配结果和第二匹配结果,确定目标IP地址的最终匹配结果。与现有技术中,网络设备将IP地址与各规则逐一进行匹配,以得到IP地址的匹配结果的方案相比,本方案中,网络设备通过构建的前缀树对IP地址进行匹配,而进行一次前缀树匹配,即可得到多个规则的匹配结果,网络设备无需将IP地址与各规则逐一进行匹配,提高了匹配IP地址的效率。并且,本方案中,针对不同的网段分类分别构建不同的前缀树,对于前缀较长的地址网段进行匹配时,可以先通过红黑树进行匹配,再通过BinTree进行匹配,由于红黑树的匹配效率较高,从而可以进一步提高匹配IP地址的效率。
基于相同的技术构思,本申请实施例还提供了一种匹配IP地址的装置,该装置应用于网络设备,网络设备中存储有与至少一个已知地址网段的网段分类对应的前缀树;其中,针对网段分类中的第一网段分类,第一网段分类对应的第一前缀树为依据网段分类为第一网段分类的第一已知地址网段生成的第一BinTree,第一BinTree的每一路径表示第一已知地址网段的比特序列;针对网段分类中的每一第二网段分类,第二网段分类对应的地址网段包括基础前缀和除基础前缀之外的第一前缀,第二网段分类对应的第二前缀树包括依据第二网段分类对应的基础前缀生成的红黑树节点和以红黑树节点为根节点的第二BinTree,且第二BinTree依据网段分类为第二网段分类的第二已知地址网段的第一前缀生成,第二BinTree的每一路径表示第一前缀的比特序列;
如图5所示,该装置包括:
第一获取模块510,用于获取待匹配的目标IP地址以及目标IP地址对应每一第二网段分类的目标基础前缀;
第一查找模块520,用于在第一前缀树中,以最长匹配原则,查找是否存在与目标IP地址匹配的第一子节点,获得第一匹配结果;
第二查找模块530,用于在各所述第二前缀树的红黑树节点中,通过比较所述目标IP地址的目标基础前缀与所述第二前缀树对应的第二网段分类的基础前缀,查找是否存在与所述目标IP地址匹配的第二子节点,若存在,则在以所述第二子节点为根节点的第二BinTree中,查找是否存在与所述目标IP地址匹配的第三子节点,获得第二匹配结果;
第一确定模块540,用于依据第一匹配结果和第二匹配结果,确定目标IP地址的最终匹配结果。
可选的,网络设备中还存储有与至少一个已知IP地址对应的第三前缀树,第三前缀树为依据至少一个已知IP地址生成的红黑树,红黑树的每一子节点表示一个IP地址;
如图6所示,该装置还包括:
第三查找模块550,用于在第三前缀树中,查找是否存在与目标IP地址匹配的第四子节点,获得第三匹配结果;
第一确定模块540,具体用于:
获取第一匹配结果、第二匹配结果和第三匹配结果的并集,得到目标IP地址的最终匹配结果。
可选的,如图7所示,该装置还包括:
第二获取模块560,用于获取安全策略中各规则配置的已知地址网段;
第二确定模块570,用于依据预设的各网段分类对应的地址网段的前缀长度范围、以及获取到的各已知地址网段的前缀长度,确定各已知地址网段所属的网段分类;
第一生成模块580,用于在各已知地址网段中,确定网段分类为第一网段分类的第一已知地址网段,依据第一已知地址网段的比特序列生成第一BinTree,作为第一网段分类对应的第一前缀树;
第二生成模块590,用于针对每一第二网段分类,在各已知地址网段中,确定网段分类为第二网段分类的第二已知地址网段,依据第二已知地址网段中第二网段分类对应的基础前缀表示的地址网段,生成红黑树节点,并以红黑树节点为根节点,依据第二已知地址网段的第一前缀表示的比特序列生成第二BinTree,得到第二网段分类对应的第二前缀树。
可选的,第二生成模块590,具体用于:
针对第二网段分类中的每个第二已知地址网段,在红黑树节点中,查找与第二已知地址网段对应第二网段分类的基础前缀表示的地址网段匹配的第五子节点;
以第五子节点为根节点,依据第二已知地址网段的第一前缀表示的比特序列,生成第二BinTree。
可选的,第二生成模块590,具体用于:
从第二已知地址网段中获取第五已知地址网段,依据第五已知地址网段中第二网段分类对应的基础前缀表示的地址网段,生成第一红黑树节点,并以红黑树节点为根节点,依据第五已知地址网段的第一前缀表示的比特序列生成第五已知地址网段的第二BinTree,得到第二网段分类对应的第二前缀树,并关联第五已知地址网段的第二BinTree的叶子节点和配置第五已知地址网段的规则;其中,第五已知地址网段的第二BinTree的第三路径表示第五已知地址网段的第一前缀表示的比特序列;
针对第二已知地址网段中除第五已知地址网段外的每一第六已知地址网段,在当前已生成的红黑树节点中,查找是否存在与第六已知地址网段中第二网段分类对应的基础前缀表示的地址网段匹配的第二红黑树节点;
如果不存在第二红黑树节点,则依据第六已知地址网段中第二网段分类对应的基础前缀表示的地址网段,生成第二红黑树节点,并以第二红黑树节点为根节点,依据第六已知地址网段的第一前缀表示的比特序列生成第六已知地址网段的第二BinTree,关联第六已知地址网段的第二BinTree的叶子节点和配置第六已知地址网段的规则;
如果存在第二红黑树节点,则依据第六已知地址网段的第一前缀表示的比特序列更新以第二红黑树节点为根节点的第二BinTree,以及,
若表示第六已知地址网段的第一前缀表示的比特序列的第四路径位于第三路径上,则将第四路径的最后一个节点以及第三路径上位于第四路径之后的所有节点均和配置第六已知地址网段的规则关联;
若表示第六已知地址网段的第一前缀表示的比特序列的第四路径包含第三路径,则将第四路径的最后一个节点与配置第六已知地址网段的规则关联,并将第四路径上位于第三路径之后的所有节点均和配置第五已知地址网段的规则关联;
若表示第六已知地址网段的第一前缀表示的比特序列的第四路径不位于第三路径上且不包含第三路径,则将第四路径的最后一个节点和配置第六已知地址网段的规则关联。
本申请实施例中,网络设备中存储有与至少一个已知地址网段的网段分类对应的前缀树;其中,针对网段分类中的第一网段分类,第一网段分类对应的第一前缀树为依据网段分类为第一网段分类的第一已知地址网段生成的第一二叉树BinTree,第一BinTree的每一路径表示第一已知地址网段的比特序列。针对网段分类中的每一第二网段分类,第二网段分类对应的地址网段包括基础前缀和除基础前缀之外的第一前缀,第二网段分类对应的第二前缀树包括依据第二网段分类对应的基础前缀生成的红黑树节点和以红黑树节点为根节点的第二BinTree,且第二BinTree依据网段分类为第二网段分类的第二已知地址网段的第一前缀生成,第二BinTree的每一路径表示第一前缀的比特序列。
网络设备可以获取待匹配的目标IP地址以及目标IP地址对应每一第二网段分类的目标基础前缀,然后在第一前缀树中,以最长匹配原则,查找是否存在与目标IP地址匹配的第一子节点,获得第一匹配结果。网络设备还可以在各第二前缀树的红黑树节点中,查找是否存在与目标IP地址匹配的第二子节点,若存在,则在以第二子节点为根节点的第二BinTree中,查找是否存在与目标IP地址匹配的第三子节点,获得第二匹配结果,进而依据第一匹配结果和第二匹配结果,确定目标IP地址的最终匹配结果。与现有技术中,网络设备将IP地址与各规则逐一进行匹配,以得到IP地址的匹配结果的方案相比,本方案中,网络设备通过构建的前缀树对IP地址进行匹配,而进行一次前缀树匹配,即可得到多个规则的匹配结果,网络设备无需将IP地址与各规则逐一进行匹配,提高了匹配IP地址的效率。并且,本方案中,针对不同的网段分类分别构建不同的前缀树,对于前缀较长的地址网段进行匹配时,可以先通过红黑树进行匹配,再通过BinTree进行匹配,由于红黑树的匹配效率较高,从而可以进一步提高匹配IP地址的效率。
本申请实施例还提供了一种网络设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,
存储器803,用于存放计算机程序;
处理器801,用于执行存储器803上所存放的程序时,实现如下步骤:
获取待匹配的目标IP地址以及所述目标IP地址对应每一第二网段分类的目标基础前缀;
在所述第一前缀树中,以最长匹配原则,查找是否存在与所述目标IP地址匹配的第一子节点,获得第一匹配结果;
在各所述第二前缀树的红黑树节点中,通过比较所述目标IP地址的目标基础前缀与所述第二前缀树对应的第二网段分类的基础前缀,查找是否存在与所述目标IP地址匹配的第二子节点,若存在,则在以所述第二子节点为根节点的第二BinTree中,查找是否存在与所述目标IP地址匹配的第三子节点,获得第二匹配结果;
依据所述第一匹配结果和所述第二匹配结果,确定所述目标IP地址的最终匹配结果。
可选的,所述网络设备中还存储有与至少一个已知IP地址对应的第三前缀树,所述第三前缀树为依据所述至少一个已知IP地址生成的红黑树,所述红黑树的每一子节点表示一个IP地址;
所述方法还包括:
在所述第三前缀树中,查找是否存在与所述目标IP地址匹配的第四子节点,获得第三匹配结果;
所述依据所述第一匹配结果和所述第二匹配结果,确定所述目标IP地址的最终匹配结果,包括:
获取所述第一匹配结果、所述第二匹配结果和所述第三匹配结果的并集,得到所述目标IP地址的最终匹配结果。
可选的,所述方法还包括:
获取安全策略中各规则配置的已知地址网段;
依据预设的各网段分类对应的地址网段的前缀长度范围、以及获取到的各已知地址网段的前缀长度,确定所述各已知地址网段所属的网段分类;
在所述各已知地址网段中,确定网段分类为所述第一网段分类的第一已知地址网段,依据所述第一已知地址网段的比特序列生成第一BinTree,作为所述第一网段分类对应的第一前缀树;
针对每一第二网段分类,在所述各已知地址网段中,确定网段分类为所述第二网段分类的第二已知地址网段,依据所述第二已知地址网段中所述第二网段分类对应的基础前缀表示的地址网段,生成红黑树节点,并以所述红黑树节点为根节点,依据所述第二已知地址网段的第一前缀表示的比特序列生成第二BinTree,得到所述第二网段分类对应的第二前缀树。
可选的,所述以所述红黑树节点为根节点,依据所述第二已知地址网段的第一前缀表示的比特序列生成第二BinTree,得到所述第二网段分类对应的第二前缀树,包括:
针对所述第二网段分类中的每个第二已知地址网段,在所述红黑树节点中,查找与所述第二已知地址网段对应第二网段分类的基础前缀表示的地址网段匹配的第五子节点;
以所述第五子节点为根节点,依据所述第二已知地址网段的第一前缀表示的比特序列,生成第二BinTree。
可选的,所述依据所述第二已知地址网段中所述第二网段分类对应的基础前缀表示的地址网段,生成红黑树节点,并以所述红黑树节点为根节点,依据所述第二已知地址网段的第一前缀表示的比特序列生成第二BinTree,得到所述第二网段分类对应的第二前缀树,包括:
从所述第二已知地址网段中获取第五已知地址网段,依据所述第五已知地址网段中所述第二网段分类对应的基础前缀表示的地址网段,生成第一红黑树节点,并以所述红黑树节点为根节点,依据所述第五已知地址网段的第一前缀表示的比特序列生成第五已知地址网段的第二BinTree,得到所述第二网段分类对应的第二前缀树,并关联所述第五已知地址网段的第二BinTree的叶子节点和配置所述第五已知地址网段的规则;其中,所述第五已知地址网段的第二BinTree的第三路径表示所述第五已知地址网段的第一前缀表示的比特序列;
针对所述第二已知地址网段中除所述第五已知地址网段外的每一第六已知地址网段,在当前已生成的红黑树节点中,查找是否存在与所述第六已知地址网段中所述第二网段分类对应的基础前缀表示的地址网段匹配的第二红黑树节点;
如果不存在所述第二红黑树节点,则依据所述第六已知地址网段中所述第二网段分类对应的基础前缀表示的地址网段,生成所述第二红黑树节点,并以所述第二红黑树节点为根节点,依据所述第六已知地址网段的第一前缀表示的比特序列生成第六已知地址网段的第二BinTree,关联所述第六已知地址网段的第二BinTree的叶子节点和配置所述第六已知地址网段的规则;
如果存在所述第二红黑树节点,则依据所述第六已知地址网段的第一前缀表示的比特序列更新以所述第二红黑树节点为根节点的第二BinTree,以及,
若表示所述第六已知地址网段的第一前缀表示的比特序列的第四路径位于所述第三路径上,则将所述第四路径的最后一个节点以及所述第三路径上位于第四路径之后的所有节点均和配置所述第六已知地址网段的规则关联;
若表示所述第六已知地址网段的第一前缀表示的比特序列的第四路径包含所述第三路径,则将所述第四路径的最后一个节点与所述配置所述第六已知地址网段的规则关联,并将所述第四路径上位于第三路径之后的所有节点均和配置所述第五已知地址网段的规则关联;
若表示所述第六已知地址网段的第一前缀表示的比特序列的第四路径不位于所述第三路径上且不包含所述第三路径,则将所述第四路径的最后一个节点和配置所述第六已知地址网段的规则关联。
上述网络设备提到的通信总线可以是外设部件互连标准(英文:PeripheralComponent Interconnect,简称:PCI)总线或扩展工业标准结构(英文:Extended IndustryStandard Architecture,简称:EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述网络设备与其他设备之间的通信。
存储器可以包括随机存取存储器(英文:Random Access Memory,简称:RAM),也可以包括非易失性存储器(英文:Non-Volatile Memory,简称:NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(英文:Central ProcessingUnit,简称:CPU)、网络处理器(英文:Network Processor,简称:NP)等;还可以是数字信号处理器(英文:Digital Signal Processing,简称:DSP)、专用集成电路(英文:ApplicationSpecific Integrated Circuit,简称:ASIC)、现场可编程门阵列(英文:Field-Programmable Gate Array,简称:FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
基于相同的技术构思,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述匹配IP地址的方法步骤。
基于相同的技术构思,本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述匹配IP地址的方法步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

Claims (12)

1.一种匹配互联网协议IP地址的方法,其特征在于,所述方法应用于网络设备,所述网络设备中存储有与至少一个已知地址网段的网段分类对应的前缀树;其中,
针对所述网段分类中的第一网段分类,所述第一网段分类对应的第一前缀树为依据网段分类为所述第一网段分类的第一已知地址网段生成的第一二叉树BinTree,所述第一BinTree的每一路径表示所述第一已知地址网段的比特序列;
针对所述网段分类中的每一第二网段分类,所述第二网段分类对应的地址网段包括基础前缀和除基础前缀之外的第一前缀,所述第二网段分类对应的第二前缀树包括依据所述第二网段分类对应的基础前缀生成的红黑树节点和以所述红黑树节点为根节点的第二BinTree,且所述第二BinTree依据网段分类为所述第二网段分类的第二已知地址网段的第一前缀生成,所述第二BinTree的每一路径表示所述第一前缀的比特序列;
所述方法包括:
获取待匹配的目标IP地址以及所述目标IP地址对应每一第二网段分类的目标基础前缀;
在所述第一前缀树中,以最长匹配原则,查找是否存在与所述目标IP地址匹配的第一子节点,获得第一匹配结果;
在各所述第二前缀树的红黑树节点中,通过比较所述目标IP地址的目标基础前缀与所述第二前缀树对应的第二网段分类的基础前缀,查找是否存在与所述目标IP地址匹配的第二子节点,若存在,则在以所述第二子节点为根节点的第二BinTree中,查找是否存在与所述目标IP地址匹配的第三子节点,获得第二匹配结果;
依据所述第一匹配结果和所述第二匹配结果,确定所述目标IP地址的最终匹配结果。
2.根据权利要求1所述的方法,其特征在于,所述网络设备中还存储有与至少一个已知IP地址对应的第三前缀树,所述第三前缀树为依据所述至少一个已知IP地址生成的红黑树,所述红黑树的每一子节点表示一个IP地址;
所述方法还包括:
在所述第三前缀树中,查找是否存在与所述目标IP地址匹配的第四子节点,获得第三匹配结果;
所述依据所述第一匹配结果和所述第二匹配结果,确定所述目标IP地址的最终匹配结果,包括:
获取所述第一匹配结果、所述第二匹配结果和所述第三匹配结果的并集,得到所述目标IP地址的最终匹配结果。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取安全策略中各规则配置的已知地址网段;
依据预设的各网段分类对应的地址网段的前缀长度范围、以及获取到的各已知地址网段的前缀长度,确定所述各已知地址网段所属的网段分类;
在所述各已知地址网段中,确定网段分类为所述第一网段分类的第一已知地址网段,依据所述第一已知地址网段的比特序列生成第一BinTree,作为所述第一网段分类对应的第一前缀树;
针对每一第二网段分类,在所述各已知地址网段中,确定网段分类为所述第二网段分类的第二已知地址网段,依据所述第二已知地址网段中所述第二网段分类对应的基础前缀表示的地址网段,生成红黑树节点,并以所述红黑树节点为根节点,依据所述第二已知地址网段的第一前缀表示的比特序列生成第二BinTree,得到所述第二网段分类对应的第二前缀树。
4.根据权利要求3所述的方法,其特征在于,所述以所述红黑树节点为根节点,依据所述第二已知地址网段的第一前缀表示的比特序列生成第二BinTree,得到所述第二网段分类对应的第二前缀树,包括:
针对所述第二网段分类中的每个第二已知地址网段,在所述红黑树节点中,查找与所述第二已知地址网段所属第二网段分类对应的基础前缀表示的地址网段匹配的第五子节点;
以所述第五子节点为根节点,依据所述第二已知地址网段的第一前缀表示的比特序列,生成第二BinTree。
5.根据权利要求3所述的方法,其特征在于,所述依据所述第二已知地址网段中所述第二网段分类对应的基础前缀表示的地址网段,生成红黑树节点,并以所述红黑树节点为根节点,依据所述第二已知地址网段的第一前缀表示的比特序列生成第二BinTree,得到所述第二网段分类对应的第二前缀树,包括:
从所述第二已知地址网段中获取第五已知地址网段,依据所述第五已知地址网段中所述第二网段分类对应的基础前缀表示的地址网段,生成第一红黑树节点,并以所述红黑树节点为根节点,依据所述第五已知地址网段的第一前缀表示的比特序列生成第五已知地址网段的第二BinTree,得到所述第二网段分类对应的第二前缀树,并关联所述第五已知地址网段的第二BinTree的叶子节点和配置所述第五已知地址网段的规则;其中,所述第五已知地址网段的第二BinTree的第三路径表示所述第五已知地址网段的第一前缀表示的比特序列;
针对所述第二已知地址网段中除所述第五已知地址网段外的每一第六已知地址网段,在当前已生成的红黑树节点中,查找是否存在与所述第六已知地址网段中所述第二网段分类对应的基础前缀表示的地址网段匹配的第二红黑树节点;
如果存在所述第二红黑树节点,则依据所述第六已知地址网段的第一前缀表示的比特序列更新以所述第二红黑树节点为根节点的第二BinTree,以及,
若表示所述第六已知地址网段的第一前缀表示的比特序列的第四路径位于所述第三路径上,则将所述第四路径的最后一个节点以及所述第三路径上位于第四路径之后的所有节点均和配置所述第六已知地址网段的规则关联;
若表示所述第六已知地址网段的第一前缀表示的比特序列的第四路径包含所述第三路径,则将所述第四路径的最后一个节点与所述配置所述第六已知地址网段的规则关联,并将所述第四路径上位于第三路径之后的所有节点均和配置所述第五已知地址网段的规则关联;
若表示所述第六已知地址网段的第一前缀表示的比特序列的第四路径不位于所述第三路径上且不包含所述第三路径,则将所述第四路径的最后一个节点和配置所述第六已知地址网段的规则关联。
6.一种匹配IP地址的装置,其特征在于,所述装置应用于网络设备,所述网络设备中存储有与至少一个已知地址网段的网段分类对应的前缀树;其中,
针对所述网段分类中的第一网段分类,所述第一网段分类对应的第一前缀树为依据网段分类为所述第一网段分类的第一已知地址网段生成的第一二叉树BinTree,所述第一BinTree的每一路径表示所述第一已知地址网段的比特序列;
针对所述网段分类中的每一第二网段分类,所述第二网段分类对应的地址网段包括基础前缀和除基础前缀之外的第一前缀,所述第二网段分类对应的第二前缀树包括依据所述第二网段分类对应的基础前缀生成的红黑树节点和以所述红黑树节点为根节点的第二BinTree,且所述第二BinTree依据网段分类为所述第二网段分类的第二已知地址网段的第一前缀生成,所述第二BinTree的每一路径表示所述第一前缀的比特序列;
所述装置包括:
第一获取模块,用于获取待匹配的目标互联网协议IP地址以及所述目标IP地址对应每一第二网段分类的目标基础前缀;
第一查找模块,用于在所述第一前缀树中,以最长匹配原则,查找是否存在与所述目标IP地址匹配的第一子节点,获得第一匹配结果;
第二查找模块,用于在各所述第二前缀树的红黑树节点中,通过比较所述目标IP地址的目标基础前缀与所述第二前缀树对应的第二网段分类的基础前缀,查找是否存在与所述目标IP地址匹配的第二子节点,若存在,则在以所述第二子节点为根节点的第二BinTree中,查找是否存在与所述目标IP地址匹配的第三子节点,获得第二匹配结果;
第一确定模块,用于依据所述第一匹配结果和所述第二匹配结果,确定所述目标IP地址的最终匹配结果。
7.根据权利要求6所述的装置,其特征在于,所述网络设备中还存储有与至少一个已知IP地址对应的第三前缀树,所述第三前缀树为依据所述至少一个已知IP地址生成的红黑树,所述红黑树的每一子节点表示一个IP地址;
所述装置还包括:
第三查找模块,用于在所述第三前缀树中,查找是否存在与所述目标IP地址匹配的第四子节点,获得第三匹配结果;
所述第一确定模块,具体用于:
获取所述第一匹配结果、所述第二匹配结果和所述第三匹配结果的并集,得到所述目标IP地址的最终匹配结果。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取安全策略中各规则配置的已知地址网段;
第二确定模块,用于依据预设的各网段分类对应的地址网段的前缀长度范围、以及获取到的各已知地址网段的前缀长度,确定所述各已知地址网段所属的网段分类;
第一生成模块,用于在所述各已知地址网段中,确定网段分类为所述第一网段分类的第一已知地址网段,依据所述第一已知地址网段的比特序列生成第一BinTree,作为所述第一网段分类对应的第一前缀树;
第二生成模块,用于针对每一第二网段分类,在所述各已知地址网段中,确定网段分类为所述第二网段分类的第二已知地址网段,依据所述第二已知地址网段中所述第二网段分类对应的基础前缀表示的地址网段,生成红黑树节点,并以所述红黑树节点为根节点,依据所述第二已知地址网段的第一前缀表示的比特序列生成第二BinTree,得到所述第二网段分类对应的第二前缀树。
9.根据权利要求8所述的装置,其特征在于,所述第二生成模块,具体用于:
针对所述第二网段分类中的每个第二已知地址网段,在所述红黑树节点中,查找与所述第二已知地址网段所属第二网段分类对应的基础前缀表示的地址网段匹配的第五子节点;
以所述第五子节点为根节点,依据所述第二已知地址网段的第一前缀表示的比特序列,生成第二BinTree。
10.根据权利要求8所述的装置,其特征在于,所述第二生成模块,具体用于:
从所述第二已知地址网段中获取第五已知地址网段,依据所述第五已知地址网段中所述第二网段分类对应的基础前缀表示的地址网段,生成第一红黑树节点,并以所述红黑树节点为根节点,依据所述第五已知地址网段的第一前缀表示的比特序列生成第五已知地址网段的第二BinTree,得到所述第二网段分类对应的第二前缀树,并关联所述第五已知地址网段的第二BinTree的叶子节点和配置所述第五已知地址网段的规则;其中,所述第五已知地址网段的第二BinTree的第三路径表示所述第五已知地址网段的第一前缀表示的比特序列;
针对所述第二已知地址网段中除所述第五已知地址网段外的每一第六已知地址网段,在当前已生成的红黑树节点中,查找是否存在与所述第六已知地址网段中所述第二网段分类对应的基础前缀表示的地址网段匹配的第二红黑树节点;
如果存在所述第二红黑树节点,则依据所述第六已知地址网段的第一前缀表示的比特序列更新以所述第二红黑树节点为根节点的第二BinTree,以及,
若表示所述第六已知地址网段的第一前缀表示的比特序列的第四路径位于所述第三路径上,则将所述第四路径的最后一个节点以及所述第三路径上位于第四路径之后的所有节点均和配置所述第六已知地址网段的规则关联;
若表示所述第六已知地址网段的第一前缀表示的比特序列的第四路径包含所述第三路径,则将所述第四路径的最后一个节点与所述配置所述第六已知地址网段的规则关联,并将所述第四路径上位于第三路径之后的所有节点均和配置所述第五已知地址网段的规则关联;
若表示所述第六已知地址网段的第一前缀表示的比特序列的第四路径不位于所述第三路径上且不包含所述第三路径,则将所述第四路径的最后一个节点和配置所述第六已知地址网段的规则关联。
11.一种网络设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。
CN201910493681.2A 2019-06-06 2019-06-06 一种匹配ip地址的方法及装置 Active CN110290117B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910493681.2A CN110290117B (zh) 2019-06-06 2019-06-06 一种匹配ip地址的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910493681.2A CN110290117B (zh) 2019-06-06 2019-06-06 一种匹配ip地址的方法及装置

Publications (2)

Publication Number Publication Date
CN110290117A true CN110290117A (zh) 2019-09-27
CN110290117B CN110290117B (zh) 2021-11-05

Family

ID=68003591

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910493681.2A Active CN110290117B (zh) 2019-06-06 2019-06-06 一种匹配ip地址的方法及装置

Country Status (1)

Country Link
CN (1) CN110290117B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111107181A (zh) * 2019-12-30 2020-05-05 北京天融信网络安全技术有限公司 Nat规则匹配方法、装置、电子设备及存储介质
CN111193746A (zh) * 2019-12-31 2020-05-22 奇安信科技集团股份有限公司 安全策略的匹配方法、装置、电子设备和介质
CN111490939A (zh) * 2020-03-30 2020-08-04 苏州瑞立思科技有限公司 一种支持高级策略配置高性能的windows网卡驱动方法
CN112131223A (zh) * 2020-09-24 2020-12-25 曙光网络科技有限公司 流量分类统计方法、装置、计算机设备和存储介质
CN112600954A (zh) * 2021-03-04 2021-04-02 城云科技(中国)有限公司 IPv4地址匹配方法、电子装置、存储介质
CN112737830A (zh) * 2020-12-25 2021-04-30 杭州迪普科技股份有限公司 一种对机构上报的检测目标信息进行校准的方法及装置
CN113127693A (zh) * 2019-12-31 2021-07-16 北京金山云网络技术有限公司 一种流量数据包统计方法、装置、设备及存储介质
CN113132261A (zh) * 2019-12-31 2021-07-16 北京金山云网络技术有限公司 一种流量数据包分类方法、装置及电子设备
CN113286013A (zh) * 2021-05-19 2021-08-20 苏州瑞立思科技有限公司 一种子网匹配方法和装置
CN113609125A (zh) * 2021-06-24 2021-11-05 北京华云安信息技术有限公司 Ip地址匹配方法、装置、设备和计算机可读存储介质
CN113824814A (zh) * 2021-09-23 2021-12-21 新华三信息安全技术有限公司 一种转发表的地址匹配方法、装置、网络设备及介质
CN114301680A (zh) * 2021-12-29 2022-04-08 山石网科通信技术股份有限公司 一种安全策略的匹配方法及装置、存储介质
CN115242716A (zh) * 2022-06-15 2022-10-25 中国电子科技集团公司第三十研究所 一种基于bgp前缀树的ip地址路由可达性识别方法
CN115567444A (zh) * 2022-09-23 2023-01-03 北京香哈网络股份有限公司 一种控制器路由地址查找调用方法及系统
CN117978780A (zh) * 2024-04-01 2024-05-03 北京微步在线科技有限公司 一种ip地址存储方法、装置、设备、介质及程序产品

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1852238A (zh) * 2005-10-13 2006-10-25 华为技术有限公司 一种快速索引方法
US20110022624A1 (en) * 2003-05-01 2011-01-27 Robert Wing Pong Luk Data structure and system for ip address lookup and ip address lookup system
CN102739520A (zh) * 2012-05-31 2012-10-17 华为技术有限公司 查找方法及装置
CN105635343A (zh) * 2016-02-02 2016-06-01 中国互联网络信息中心 应用于dns查询的ip地址列表存储和查询方法
CN107347035A (zh) * 2016-05-06 2017-11-14 华为技术有限公司 路由查找方法、装置、分配节点、查找节点及入口节点
CN107707477A (zh) * 2017-09-28 2018-02-16 杭州迪普科技股份有限公司 报文的处理方法及装置、计算机可读存储介质
CN109617927A (zh) * 2019-01-30 2019-04-12 新华三信息安全技术有限公司 一种匹配安全策略的方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110022624A1 (en) * 2003-05-01 2011-01-27 Robert Wing Pong Luk Data structure and system for ip address lookup and ip address lookup system
CN1852238A (zh) * 2005-10-13 2006-10-25 华为技术有限公司 一种快速索引方法
CN102739520A (zh) * 2012-05-31 2012-10-17 华为技术有限公司 查找方法及装置
CN105635343A (zh) * 2016-02-02 2016-06-01 中国互联网络信息中心 应用于dns查询的ip地址列表存储和查询方法
CN107347035A (zh) * 2016-05-06 2017-11-14 华为技术有限公司 路由查找方法、装置、分配节点、查找节点及入口节点
CN107707477A (zh) * 2017-09-28 2018-02-16 杭州迪普科技股份有限公司 报文的处理方法及装置、计算机可读存储介质
CN109617927A (zh) * 2019-01-30 2019-04-12 新华三信息安全技术有限公司 一种匹配安全策略的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
郜国良等: "一种基于Trie的快速IP路由查找算法", 《微电子学与计算机》 *

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111107181A (zh) * 2019-12-30 2020-05-05 北京天融信网络安全技术有限公司 Nat规则匹配方法、装置、电子设备及存储介质
CN111107181B (zh) * 2019-12-30 2022-07-12 北京天融信网络安全技术有限公司 Nat规则匹配方法、装置、电子设备及存储介质
CN113132261A (zh) * 2019-12-31 2021-07-16 北京金山云网络技术有限公司 一种流量数据包分类方法、装置及电子设备
CN113127693B (zh) * 2019-12-31 2023-11-07 北京金山云网络技术有限公司 一种流量数据包统计方法、装置、设备及存储介质
CN111193746B (zh) * 2019-12-31 2022-12-06 奇安信科技集团股份有限公司 安全策略的匹配方法、装置、电子设备和介质
CN111193746A (zh) * 2019-12-31 2020-05-22 奇安信科技集团股份有限公司 安全策略的匹配方法、装置、电子设备和介质
CN113127693A (zh) * 2019-12-31 2021-07-16 北京金山云网络技术有限公司 一种流量数据包统计方法、装置、设备及存储介质
CN111490939A (zh) * 2020-03-30 2020-08-04 苏州瑞立思科技有限公司 一种支持高级策略配置高性能的windows网卡驱动方法
CN112131223B (zh) * 2020-09-24 2024-02-02 曙光网络科技有限公司 流量分类统计方法、装置、计算机设备和存储介质
CN112131223A (zh) * 2020-09-24 2020-12-25 曙光网络科技有限公司 流量分类统计方法、装置、计算机设备和存储介质
CN112737830B (zh) * 2020-12-25 2022-07-29 杭州迪普科技股份有限公司 一种对机构上报的检测目标信息进行校准的方法及装置
CN112737830A (zh) * 2020-12-25 2021-04-30 杭州迪普科技股份有限公司 一种对机构上报的检测目标信息进行校准的方法及装置
CN112600954B (zh) * 2021-03-04 2021-06-25 城云科技(中国)有限公司 IPv4地址匹配方法、电子装置、存储介质
CN112600954A (zh) * 2021-03-04 2021-04-02 城云科技(中国)有限公司 IPv4地址匹配方法、电子装置、存储介质
CN113286013A (zh) * 2021-05-19 2021-08-20 苏州瑞立思科技有限公司 一种子网匹配方法和装置
CN113286013B (zh) * 2021-05-19 2023-11-07 苏州瑞立思科技有限公司 一种子网匹配方法和装置
CN113609125A (zh) * 2021-06-24 2021-11-05 北京华云安信息技术有限公司 Ip地址匹配方法、装置、设备和计算机可读存储介质
CN113609125B (zh) * 2021-06-24 2023-10-27 北京华云安信息技术有限公司 Ip地址匹配方法、装置、设备和计算机可读存储介质
CN113824814A (zh) * 2021-09-23 2021-12-21 新华三信息安全技术有限公司 一种转发表的地址匹配方法、装置、网络设备及介质
CN114301680A (zh) * 2021-12-29 2022-04-08 山石网科通信技术股份有限公司 一种安全策略的匹配方法及装置、存储介质
CN114301680B (zh) * 2021-12-29 2024-05-07 山石网科通信技术股份有限公司 一种安全策略的匹配方法及装置、存储介质
CN115242716B (zh) * 2022-06-15 2023-05-09 中国电子科技集团公司第三十研究所 一种基于bgp前缀树的ip地址路由可达性识别方法
CN115242716A (zh) * 2022-06-15 2022-10-25 中国电子科技集团公司第三十研究所 一种基于bgp前缀树的ip地址路由可达性识别方法
CN115567444A (zh) * 2022-09-23 2023-01-03 北京香哈网络股份有限公司 一种控制器路由地址查找调用方法及系统
CN115567444B (zh) * 2022-09-23 2024-02-27 北京香哈网络股份有限公司 一种控制器路由地址查找调用方法及系统
CN117978780A (zh) * 2024-04-01 2024-05-03 北京微步在线科技有限公司 一种ip地址存储方法、装置、设备、介质及程序产品
CN117978780B (zh) * 2024-04-01 2024-06-25 北京微步在线科技有限公司 一种ip地址存储方法、装置、设备、介质及程序产品

Also Published As

Publication number Publication date
CN110290117B (zh) 2021-11-05

Similar Documents

Publication Publication Date Title
CN110290117A (zh) 一种匹配ip地址的方法及装置
CN109617927B (zh) 一种匹配安全策略的方法及装置
US8914320B2 (en) Graph generation method for graph-based search
US20160105397A1 (en) Firewall Packet Filtering
CN109905413A (zh) 一种ip地址的匹配方法及装置
CN110120942A (zh) 安全策略规则匹配方法及装置、防火墙设备及介质
CN105431828B (zh) 用于检测受损计算系统的系统与方法
CN108632235B (zh) 一种网包分类决策树建立方法及装置
US20050083937A1 (en) IP address lookup method using pipeline binary tree, hardware architecture, and recording medium
CN110309368A (zh) 数据地址的确定方法、装置、存储介质和电子装置
CN109845223A (zh) 使用预分类来实施网络安全策略
CN109714356A (zh) 一种异常域名的识别方法、装置及电子设备
CN109728955A (zh) 基于改进k-shell的网络节点排序方法
Woodruff Additive spanners in nearly quadratic time
CN111046938B (zh) 基于字符串多模式匹配的网络流量分类识别方法和设备
CN112804206A (zh) 基于查找树的报文匹配方法、装置和电子设备
CN114143035B (zh) 知识图谱推荐系统的对抗攻击方法、系统、设备及介质
CN106940711A (zh) 一种url检测方法及检测装置
CN105491094A (zh) 处理http请求的方法及装置
CN101409624A (zh) 规则匹配装置和方法
Gontara et al. Fault localization algorithm in computer networks based on the boolean particle swarm optimization
CN108337176B (zh) 一种报文处理方法和装置
US20230318931A1 (en) Decision optimization mechanism for device classification
CN111193746B (zh) 安全策略的匹配方法、装置、电子设备和介质
CN110474929A (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