CN107395645A - 用于防火墙的系统和方法以及存储有对应程序的介质 - Google Patents
用于防火墙的系统和方法以及存储有对应程序的介质 Download PDFInfo
- Publication number
- CN107395645A CN107395645A CN201710791124.XA CN201710791124A CN107395645A CN 107395645 A CN107395645 A CN 107395645A CN 201710791124 A CN201710791124 A CN 201710791124A CN 107395645 A CN107395645 A CN 107395645A
- Authority
- CN
- China
- Prior art keywords
- information
- hash
- uuid
- mappings
- hash table
- 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
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/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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/45—Network directories; Name-to-address mapping
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及用于防火墙的系统和方法以及存储有对应程序的介质。该系统包括:采集模块,其采集IP信息和ID并根据采集到的IP信息更新共享内存中的IP‑ID映射,IP信息与ID相关联,与该IP‑ID映射的IP信息对应的哈希索引被指示在共享内存的哈希表中,IP信息通过哈希算法得到哈希索引;处理模块,其使用基于IP信息的哈希索引在共享内存的ID缓存池中查找所述IP信息的IP‑ID映射并由IP‑ID映射获得与IP信息对应的ID并使用该ID进行后续防火墙的处理;和共享内存,其包括ID缓存池以及哈希表。利用该系统,不但可以在主机标识符动态变化的情况下准确地基于用户ID执行对应的防火墙策略,而且还能更快速地执行对IP‑ID映射的处理。本发明还提供对应的方法及存储有对应程序的介质。
Description
技术领域
本发明涉及网络安全中的防火墙,特别涉及用于防火墙的系统和方法以及存储有对应程序的介质。
背景技术
现代数据中心正在经历一场变革,其主要驱动力源于云计算和移动技术的快速开展。运营商和广大企业客户的数据中心正在遭遇流量的快速增长,需要高性能、可扩展、高效的数据中心基础设施。为了应对数据流量的增长,应用网络技术已经显著提升,通过强劲的应用交付能力提高数据中心架构的性能和安全性。
在过去五年中,应用网络系统厂商采用的通用CPU架构已从单核、32位CPU系统向多核、64位CPU迁移。然而,大多数的网络应用软件体系结构还没有被优化,不能从根本上充分利用这些新的CPU和系统设计。因此,一些厂商一直未能经济高效地扩展系统性能,以满足现代数据中心的迫切需求。从根本上说,要扩展应用网络系统性能,架构层次需要重新设计。对于该体系结构的再设计,比如,A10就采用了高级核心操作系统平台来实现,从而优化数据中心的应用性能和安全性。
出于安全的考虑,企业通常部署网络防火墙来控制来自互联网的流量和内部用户对互联网或企业服务器的访问。标准网络防火墙使用基于静态互联网协议(IP)地址、IP协议和服务端口的5元组在4层上运行。然而,由于企业用户通常使用动态主机配置协议(DHCP)来获取其IP地址,用户设备的IP地址会动态地更改。因此,对于这种类型的动态IP,标准网络防火墙控制访问的能力是有限的,而且也不是很精确。
因为利用IP-to-ID技术可以根据IP地址查找到用户标识符(ID),所以不少企业引入了基于ID的防火墙策略,这可以提高防火墙的功能,使企业管理员能够根据用户ID设置、执行防火墙策略。
然而,现有的IP-to-ID技术根本无法满足防火墙在网络安全中对于快速查询IP-to-ID信息的要求。
发明内容
本发明的示例性实施例的目的在于克服现有技术中的上述的和/或其他的问题,特别是能够实现基于快速散列的快速IP-to-ID信息查询,从而在防火墙中更好地应用IP-to-ID信息来实现基于用户ID的安全策略和数据流控制。因此,本发明的示例性实施例提供了一种用于防火墙的系统和方法以及存储有对应程序的介质。
根据一个示例性实施例,提供了一种用于防火墙的系统,其包括采集模块、处理模块和共享内存。所述采集模块配置为:采集互联网协议IP信息和用户标识符ID,所述IP信息与所述ID相关联;和根据所述采集到的IP信息更新共享内存中的IP-ID映射,与该IP-ID映射的IP信息对应的哈希索引被指示在所述共享内存的哈希表中,所述IP信息通过哈希算法得到所述哈希索引。所述处理模块配置为:使用基于IP信息的哈希索引在所述共享内存的ID缓存池中查找所述IP信息的IP-ID映射;和由所述IP-ID映射获得与所述IP信息对应的ID并使用该ID进行后续防火墙的处理。所述共享内存包括ID缓存池以及哈希表。
根据另一示例性实施例,提供了一种用于防火墙的方法,包括采集步骤和处理步骤。所述采集步骤包括:采集互联网协议IP信息和用户标识符ID,所述IP信息与所述ID相关联;和根据所述采集到的IP信息更新共享内存中的IP-ID映射,与该IP-ID映射的IP信息对应的哈希索引被指示在所述共享内存的哈希表中,所述IP信息通过哈希算法得到所述哈希索引。所述处理步骤包括:使用基于IP信息的哈希索引在所述共享内存的ID缓存池中查找所述IP信息的IP-ID映射;和由所述IP-ID映射获得与所述IP信息对应的ID并使用该ID进行后续防火墙的处理。
在上述的示例性实施例的系统和方法中,特别配置有采集模块或步骤用来收集IP-to-ID信息,还配置有业务处理模块或步骤使用这些IP-to-ID信息进行流量控制,所述IP-to-ID信息将保存在共享内存中,便于所述采集模块和所述业务处理模块访问或进行对应的采集步骤和处理步骤过程中进行访问。当所述采集模块和业务处理模块访问共享内存时,可以利用IP信息对应的哈希索引非常快速地在与哈希表相关联的链表(即,ID缓存池中的一个或多个元素)中找到相应的IP-ID映射,以做进一步的处理,诸如更新IP-ID映射和提取IP-ID映射中的ID。这样,与现有防火墙系统中所使用的IP-to-ID技术相比,不但可以在用户所使用设备的主机标识符动态变化的情况下准确地基于用户ID执行对应的防火墙策略,而且还可以更加快速地执行对IP-ID映射的处理。
较佳地,在上述示例性实施例的系统和方法中,所述后续防火墙的处理包括在防火墙中使用基于所述ID的策略处理报文。
较佳地,在上述示例性实施例的系统和方法中,进一步包括获得与所述ID相关联的唯一用户标识符UUID。
较佳地,在上述示例性实施例的系统和方法中,所述根据所述采集到的IP信息更新共享内存中的IP-ID映射包括:基于所述IP信息查询所述共享内存的哈希表;如果在所述哈希表中存在与所述IP信息相关联的IP-ID映射,则将所述UUID更新到所述IP-ID映射中;以及如果在所述哈希表中不存在与所述IP信息相关联的IP-ID映射,则将所述IP信息和与该IP信息对应的UUID同时添加至所述ID缓存池中,以使与该IP信息相关联的IP-ID映射链接至所述哈希表。
较佳地,在上述示例性实施例的系统和方法中,所述ID缓存池是数组,它的每个元素对应于一条IP-ID映射。
较佳地,在上述示例性实施例的系统和方法中,所述ID缓存池中的元素根据所述IP信息通过所述哈希索引链接到哈希表的不同哈希桶。
较佳地,在上述示例性实施例的系统和方法中,将所述IP信息和与该IP信息对应的UUID同时添加至所述ID缓存池中包括:在所述ID缓存池的数组中找到空闲元素;清除所述空闲元素的空闲标记并且将所述IP信息和所述UUID保存在所述空闲元素中;基于所述IP信息找到相应的哈希桶;以及将所述元素链接到所述相应的哈希桶。
较佳地,在上述示例性实施例的系统和方法中,由所述IP-ID映射获得与所述IP信息对应的ID包括获取与所述IP信息相关联的UUID,其中获取与所述IP信息相关联的UUID包括:基于所述IP信息找到相应的哈希桶;以及在与所述相应的哈希桶链接的所有元素中基于所述IP信息查找所述UUID。
较佳地,在上述示例性实施例的系统和方法中,获得与所述ID相关联的UUID包括:在采集模块ID池中查找所述ID;如果所述ID存在于所述采集模块ID池中,则获取与所述ID相关联的UUID;以及如果所述ID不存在于所述采集模块ID池中,则分配一UUID给所述ID,将所述ID和所述UUID储存在所述采集模块ID池中并且同步储存在处理模块ID池中。
较佳地,在上述示例性实施例的系统和方法中,由所述IP-ID映射获得与所述IP信息对应的ID包括:获取与所述IP信息相关联的UUID。
较佳地,在上述示例性实施例的系统和方法中,进一步包括:当所述IP信息和所述ID解除关联性时删除所述哈希表中的与所述ID对应的IP-ID映射。
较佳地,在上述示例性实施例的系统和方法中,所述互联网协议信息为第四版互联网协议地址或第六版互联网协议地址。
根据又一示例性实施例,还提供了一种计算机存储介质,其存储了可被计算机执行的程序,该程序运行时能够实现上述示例性实施例的系统和方法。
通过下面的详细描述、附图以及权利要求,其他特征和方面会变得清楚。
附图说明
通过结合附图对于本发明的示例性实施例进行描述,可以更好地理解本发明,在附图中:
图1示出了与根据本发明示例性实施例的系统和方法一起使用的网络环境;
图2是根据本发明示例性实施例的应用于图1所示网络环境中防火墙的方法的流程图;
图3是根据本发明示例性实施例的用于防火墙的方法中获得用户ID的UUID的流程图;
图4是根据本发明示例性实施例的用于防火墙的方法中更新或添加IP-ID映射的流程图;
图5示出了根据本发明示例性实施例的由IP-to-ID采集模块、业务处理模块以及共享内存组成的系统架构以及各部件之间的数据流;
图6是描绘图5所示系统架构中的各模块及其集成的子模块的示意图;
图7示出了共享内存中用于IP-to-ID快速查询的数组哈希。
具体实施方式
以下将描述本发明的具体实施方式,需要指出的是,在这些实施方式的具体描述过程中,为了进行简明扼要的描述,本说明书不可能对实际的实施方式的所有特征均作详尽的描述。应当可以理解的是,在任意一种实施方式的实际实施过程中,正如在任意一个工程项目或者设计项目的过程中,为了实现开发者的具体目标,为了满足系统相关的或者商业相关的限制,常常会做出各种各样的具体决策,而这也会从一种实施方式到另一种实施方式之间发生改变。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本发明公开的内容相关的本领域的普通技术人员而言,在本公开揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本公开的内容不充分。
除非另作定义,权利要求书和说明书中使用的技术术语或者科学术语应当为本发明所属技术领域内具有一般技能的人士所理解的通常意义。本发明专利申请说明书以及权利要求书中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“一个”或者“一”等类似词语并不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现在“包括”或者“包含”前面的元件或者物件涵盖出现在“包括”或者“包含”后面列举的元件或者物件及其等同元件,并不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,也不限于是直接的还是间接的连接。
图1示出了与根据本发明示例性实施例的系统和方法一起使用的网络环境100,其包括用户110、主机120、网络防火墙130和网络140。用户110使用主机120来访问网络140。通过网络防火墙130来实现主机130和网络140之间数据流量的传递。通过网络防火墙130来控制来自网络140的流量以及用户110对网络140以及网络140中包含的服务器160(诸如,公共服务器和企业服务器)的访问。
主机120是具有网络访问能力的计算装置。在一个实施例中,主机120可以是工作站、台式个人计算机、或膝上型个人计算机。在另一个实施例中,主机120也可以是个人数字助理(PDA)、智能电话或蜂窝式电话。
在一个实施例中,网络140可以是互联网协议(IP)网络。在另一个实施例中,网络140也可以是企业数据网或区域企业数据网。在其它实施例中,网络140还可以是网络服务提供商网络,或者包括诸如以太网之类的有线网络,以及诸如WiFi之类的无线网络。本文所称互联网协议(IP)信息可以比如为第四版互联网协议地址或第六版互联网协议地址。
网络防火墙130将主机120连接到网络140。网络防火墙130接收来自主机130的数据流量,并将该数据流量传输到网络140中的服务器160。同样,网络防火墙130接收来自网络140中的服务器160的数据流量,并将该数据流量传输到主机120。通过网络防火墙130来控制网络140与主机120之间的流量的传输以及主机120对网络140中的服务器160的访问。
在网络环境100中,主机120具有主机标识符。主机120使用主机标识符通过网络防火墙130连接至网络140。在一个实施例中,主机标识符可包括IP地址。在另一个实施例中,主机标识符还可包括介质访问控制(MAC)地址。
用户110使用主机120来访问网络140中的服务器160。在访问会话期间,用户110使用用户标识符(ID)。在一个实施例中,在建立访问会话之前,网络140中的服务器160提示用户110登录。在用户登录过程期间,用户110向服务器160提供用户ID。在另一实施例中,服务器160为用户110选择用户ID用于访问会话。通过网络防火墙130来传递访问会话中的数据流量,并且通过防火墙130根据与用户ID相关联的防火墙规则来确定是否允许建立访问会话以及控制访问会话期间的数据流量。
根据本发明的示例性实施例,提供了一种用于防火墙的方法。
参考图2,图2是根据本发明的示例性实施例的应用于图1中防火墙130的方法200的流程图。方法200可以包含以下步骤210至240。
如图2所示,在步骤210中,采集IP信息和对应的用户ID。
在本发明的一个实施例中,步骤210可以进一步包括获得用户ID的唯一用户标识符(UUID)以与采集到的IP信息相关联。获得用户ID的UUID可通过子步骤211至215来实现,如图3所示。
在子步骤211中,在采集模块ID池中查找用户ID。
在子步骤212中,判断该用户ID是否存在于该采集模块ID池中,并且根据判断结果确定是否执行子步骤213至215。具体地,如果该用户ID存在于该采集模块ID池中,则执行子步骤213,即从该采集模块ID池中获取与该用户ID对应的UUID。如果该用户ID不存在于该采集模块ID池中,则执行子步骤214至215。
在子步骤214中,为采集到的用户ID分配一UUID并且将该用户ID和对应的UUID储存在采集模块ID池中。在子步骤215中,将储存在采集模块ID池中的用户ID和对应的UUID同步储存在业务处理模块ID池中。这样,采集模块和业务处理模块在各自的本地ID池中就有相同的ID-UUID对应信息了。
返回参考图2,在步骤220中,根据采集到的IP信息更新共享内存中的IP-ID映射,与该IP-ID映射的IP信息对应的哈希索引被指示在所述共享内存的哈希表中,所述IP信息通过哈希算法得到所述哈希索引。具体地,在共享内存的ID缓存池中储存采集到的IP信息和对应的UUID(即,IP-ID映射),并且将该IP-ID映射通过该IP信息链接至共享内存的哈希表。
在本发明的一个实施例中,参考图4,步骤220可以进一步包括如下子步骤221至223。在子步骤221中,基于采集到的IP信息查询共享内存中的哈希表,以查找是否存在与新IP-ID映射的IP信息相关的IP-ID映射。如果旧的IP-ID映射存在,则执行子步骤222,将获得的UUID更新到旧的映射中,即,替换原UUID。如果共享内存中的哈希表中不存在与采集到的IP信息相关联的IP-ID映射,则执行子步骤223,将IP信息和对应的UUID同时添加至ID缓存池中,即,添加新的IP-ID映射,并且将新的IP-ID映射通过其IP信息链接至哈希表。
返回参考图2,接下来在步骤230中,使用基于IP信息的哈希索引在所述共享内存的ID缓存池中查找所述IP信息的IP-ID映射。具体地,当有网络报文到达,并且防火墙具有匹配用户ID的规则时,使用网络报文的源IP信息在共享内存中查找该IP信息对应的IP-ID映射。之后,在步骤240中,由找到的IP-ID映射获得与该源IP信息对应的ID并使用该ID进行后续防火墙的处理。所述后续防火墙的处理包括(但不限于),例如,在防火墙中使用基于所述ID的策略处理报文。
在本发明的一个实施例中,上述步骤230可以进一步包括:获取与所述IP信息相关联的UUID。具体地,首先,基于网络报文的IP信息查询共享内存中的哈希表,从而尝试查找与该IP信息相关的IP-ID映射;如果能够找到与该IP信息相关的IP-ID映射,则从ID缓存池中获取与该IP信息相关联的UUID;最后,根据获取的UUID在业务处理模块ID池中获取与该UUID对应的ID。
在本发明的一个实施例中,方法200还可以包括删除IP-ID映射的步骤,比如,当所述IP信息和所述ID解除关联性时删除所述哈希表中的与所述ID对应的IP-ID映射。具体例如,当用户释放IP地址时,查询共享内存中的哈希表以及ID缓存池,以确定是否存在与该IP地址相关联的IP-ID映射。如果与该IP地址相关联的IP-ID映射存在,则将它从ID缓存池中清除,并解除该IP-ID映射与哈希表的关联性。如果没有相应的IP-ID映射,就什么也不用做了。
以上描述了根据本发明示例性实施例的用于防火墙的方法。采用了该方法,可以在用户所使用设备的主机标识符动态变化的情况下保持用户设备的主机标识符与用户标识符(ID)相对应,并且在需要执行防火墙策略的情况下根据用户设备的主机标识符查找到对应的ID,从而基于ID执行针对不同用户设置的不同防火墙规则。进一步地,本发明的方法在IP-ID映射的查询过程中使用了快速哈希查找方法,提高了防火墙的性能和效率。
与上述方法类似,本发明还提供了相应的系统。
图5示出了根据本发明示例性实施例的由IP-to-ID采集模块、业务处理模块以及共享内存组成的系统架构以及各部件之间的数据流。该系统架构与上述本发明的方法完全对应。
图6是描绘图5所示系统架构中的各模块及其集成的子模块的示意图。
如图6所示,系统600可以包括IP-to-ID采集模块610、业务处理模块620以及共享内存630。所述IP-to-ID采集模块610可以包括:采集子模块612,配置为采集IP信息以及与之关联的用户ID;以及更新子模块614,配置为根据采集到的IP信息更新共享内存630中的IP-ID映射。所述业务处理模块620可以包括:查找子模块622,配置为使用基于IP信息的哈希索引在共享内存630的ID缓存池632中查找采集到的IP信息的IP-ID映射;以及后续处理子模块624,配置为由找到的IP-ID映射获得与采集到的IP信息对应的ID并使用该ID进行后续防火墙的处理。所述共享内存630可以包括ID缓存池632以及哈希表634。
在本发明的一个实施例中,所述采集子模块612可以进一步包括:UUID获取二级子模块6122,用于获取用户ID的UUID以与采集到的IP信息相关联。所述UUID获取二级子模块6122可以进一步包括:ID查找三级子模块6122a,用于在IP-to-ID采集模块610的本地ID池616中查找用户ID;ID存在判断三级子模块6122b,用于判断IP-to-ID采集模块610的本地ID池616中是否存在采集到的用户ID,并且当IP-to-ID采集模块610的本地ID池616中存在采集到的用户ID时,返回与该用户ID对应的UUID;UUID生成三级子模块6122c,用于当无法在IP-to-ID采集模块610的本地ID池616中找到采集到的用户ID时,为此用户ID分配一UUID并且将该用户ID和分配的UUID一起保存在IP-to-ID采集模块610的本地ID池616中;以及同步三级子模块6122d,用于将不存在于IP-to-ID采集模块610的本地ID池616中的用户ID和分配给它的UUID一起同步给业务处理模块620以使得业务处理模块620将该用户ID和对应的UUID一起保存在业务处理模块620的本地ID池626中。
在本发明的另一个实施例中,所述更新子模块614可以进一步包括:哈希表查询二级子模块6142,用于基于采集到的IP信息查询共享内存中的哈希表;UUID更新二级子模块6144,用于当所述哈希表查询二级子模块6142在所述哈希表中找到与采集到的IP信息相关联的IP-ID映射时,将与该IP信息相关联的UUID更新到旧的IP-ID映射中;以及IP-ID映射添加二级子模块6146,用于当所述哈希表查询二级子模块6142在所述哈希表634中未找到与采集到的IP信息相关联的IP-ID映射时,将该IP信息和与之关联的UUID同时添加至ID缓存池632中,即,添加新的IP-ID映射,并且将新的IP-ID映射通过其IP信息链接至哈希表634。
在本发明的另一个实施例中,所述查找子模块622可以进一步包括:哈希表查询二级子模块6222,用于使用网络报文中的IP信息查询共享内存630中的哈希表634,从而尝试查找该IP信息的IP-ID映射;以及ID获取二级子模块6224,用于当哈希表查询二级子模块6222能够找到与网络报文中的IP信息相关联的IP-ID映射时,从ID缓存池632中获取与该IP信息相关联的UUID,并且根据获取的UUID在业务处理模块620的本地ID池626中获取与该UUID对应的ID。
在本发明的另一个实施例中,所述系统600中的IP-to-ID采集模块610还负责删除共享内存630中的IP-ID映射,比如,当所述IP信息和所述ID解除关联性时删除所述哈希表634中的与所述ID对应的IP-ID映射。
以上结合附图5和附图6描述了根据本发明示例性实施例的用于防火墙的系统。采用了该系统,可以在用户使用的设备的主机标识符动态变化的情况下保持用户设备的主机标识符与ID相对应,并且在需要执行防火墙策略的情况下根据用户设备的主机标识符查找到对应的ID,从而基于ID执行针对不同用户设置的不同防火墙规则。进一步地,本发明的系统在IP-ID映射的查询过程中使用了快速哈希查找方法,提高了防火墙的性能和效率。
对于上述IP-to-ID采集模块中的本地ID池,使用以ID为键值的哈希表来实现ID的快速查询。对于上述业务处理模块中的本地ID池,使用以UUID为键值的哈希表来实现UUID的快速查询。
以下参照图7进一步解释基于数组哈希的IP-to-ID快速查询。
图7示出了共享内存中用于IP-to-ID快速查询的数组哈希。ID缓存池(ID Cachepool)是一个数组,它的每个元素对应于一条IP-to-ID映射。IP哈希表(IP Hash)是以IP为键值的标准哈希表。将ID缓存池的元素根据IP链接到哈希表的不同哈希桶。
ID缓存池数据结构
在上面的数据结构中,s32是32位的有符号整数,u32是32位的无符号整数。“next”和“prev”是为了将该IP-to-ID映射元素链接到IP哈希表的哈希桶链表中。
在图7中,ID缓存池索引为0的元素的prev=-3,这表示它是IP哈希表的哈希桶3的链表中的第一个节点。索引为0的元素的next=2,这表示在IP哈希表的哈希桶3的链表中索引为2的ID缓存池元素排在元素0的后面。
IP哈希表数据结构
如图7所示,哈希表的哈希桶1的prev和next都是-1,这表示哈希桶1的链表中没有链接任何ID缓存池的IP-to-ID映射元素。IP哈希表的哈希桶3的next=0,这表示索引为0的ID缓存池的IP-to-ID映射元素是哈希桶3的链表中的第一个节点。prev=5表示索引为5的IP-to-ID映射元素是哈希桶3的链表中的最后一个节点,并且ID缓存池的IP-to-ID映射元素5的next=-3,指向IP哈希表的哈希桶3。
IP哈希表的哈希算法
哈希函数的输入可以是IP信息,输出是哈希表的哈希桶索引。哈希函数(HashFunction)是一种从任何一种数据中创建小的数字“指纹”的方法。哈希函数把消息或数据压缩成摘要,使得数据量变小,创建出一个叫做哈希值(hash values或hashes)的指纹。哈希表是哈希函数的一个主要应用,利用哈希表,可以通过哈希值快速的找到原始记录。Jenkins哈希函数是Bob Jenkins设计的一系列哈希函数,是目前最好的Hash算法之一,可以产生很好的分布。
在IP-to-ID映射查询中,IPv4地址或IPv6地址可以是哈希函数的输入,Jenkins哈希函数通过对IP地址进行计算得到哈希表的索引,通过索引找到相应的哈希桶,再对哈希桶链表中的元素逐个查询,直到找到我们需要的元素。
在本发明的一个实施例中,可以使用的Jenkins哈希函数的代码为:
在本发明的另一个实施例中,还可以使用其他常用的哈希函数替代Jenkins哈希函数,例如:MurmurHash,CityHash,SpookyHash哈希函数。
以下详细描述IP-to-ID映射添加流程和IP-to-ID映射查询流程。
IP-to-ID映射添加流程
1.在ID缓存池数组中找到一个空闲的元素。
对于ID缓存池数组,我们用一个变量保存下一个空闲元素的索引,当需要获得一个空闲元素时,我们就从这个变量保存的索引开始往后查找,这样我们可以快速的找到一个空闲元素。
2.将这个新元素的“空闲(free)”标志清除掉,并将IP-to-ID映射的IP和UUID保存到这个元素中。
3.根据IP计算哈希索引并找到相应的哈希桶。
4.将新的IP-to-ID映射链接到哈希桶的链表中。
具体地,需要对新元素、哈希桶、链表中原第一个元素的next和prev做如下修改:
新元素的next=哈希桶的next
新元素的prev=哈希桶索引
链表中原第一个元素的prev=新元素的索引
哈希桶的next=新元素的索引
IP-to-ID映射查询流程
1.根据IP计算哈希索引并找到相应的哈希桶。
2.遍历哈希桶的链表,找到需要的IP-to-ID映射,取得UUID。
从哈希桶的next指向的ID缓存池元素开始,对哈希桶链表中的ID缓存池元素逐个查询,直到找到需要的元素。在查询一个ID Cache Pool元素时,如果这个元素中的IP与用于查询的IP相同,这个元素就是需要的IP-to-ID映射,从而可以将存储于其中的UUID取得并返回。
上述描述的应用于防火墙的方法和系统可在硬件、软件、固件或其任何组合中实现。如果在软件中实现为计算机程序产品,则各功能可以作为一条或更多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或能被用来携带或存储指令或数据结构形式的合意程序代码且能被计算机访问的任何其它介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、DSL、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据,而碟(disc)用激光以光学方式再现数据。上述的组合也应被包括在计算机可读介质的范围内。
尽管以上参照实施例对本发明的用于防火墙的系统和方法进行了详细描述,但本领域技术人员将能理解,在不偏离本发明的范围和主旨的情况下,可以对它进行形式和细节的种种显而易见的修改。因此,以上描述的实施例是说明性的而不是限制性的,在不脱离本发明的精神和范围的情况下,所有的变化和修改都在本发明的保护范围之内。
Claims (25)
1.一种用于防火墙的系统,包括:
采集模块,所述采集模块配置为:
采集互联网协议IP信息和用户标识符ID,所述IP信息与所述ID相关联;和
根据所述采集到的IP信息更新共享内存中的IP-ID映射,与该IP-ID映射的IP信息对应的哈希索引被指示在所述共享内存的哈希表中,所述IP信息通过哈希算法得到所述哈希索引;
处理模块,所述处理模块配置为:
使用基于IP信息的哈希索引在所述共享内存的ID缓存池中查找所述IP信息的IP-ID映射;和
由所述IP-ID映射获得与所述IP信息对应的ID并使用该ID进行后续防火墙的处理;以及
共享内存,包括ID缓存池以及哈希表。
2.如权利要求1所述的系统,其特征在于,所述后续防火墙的处理包括:在防火墙中使用基于所述ID的策略处理报文。
3.如权利要求1所述的系统,其特征在于,所述采集模块还被配置为:获得与所述ID相关联的唯一用户标识符UUID。
4.如权利要求3所述的系统,其特征在于,所述根据所述采集到的IP信息更新共享内存中的IP-ID映射包括:
查询动作,用于基于所述IP信息查询所述共享内存的哈希表;
UUID更新动作,用于如果在所述哈希表中存在与所述IP信息相关联的IP-ID映射,则将所述UUID更新到所述IP-ID映射中;以及
添加动作,用于如果在所述哈希表中不存在与所述IP信息相关联的IP-ID映射,则将所述IP信息和与该IP信息对应的UUID同时添加至所述ID缓存池中,以使与该IP信息相关联的IP-ID映射链接至所述哈希表。
5.如权利要求4所述的系统,其特征在于,所述ID缓存池是数组,它的每个元素对应于一条IP-ID映射。
6.如权利要求5所述的系统,其特征在于,所述ID缓存池中的元素根据所述IP信息通过所述哈希索引链接到哈希表的不同哈希桶。
7.如权利要求6所述的系统,其特征在于,所述添加动作包括:
在所述ID缓存池的数组中找到空闲元素;
清除所述空闲元素的空闲标记并且将所述IP信息和所述UUID保存在所述空闲元素中;
基于所述IP信息找到相应的哈希桶;以及
将所述元素链接到所述相应的哈希桶。
8.如权利要求6所述的系统,其特征在于,由所述IP-ID映射获得与所述IP信息对应的ID包括获取与所述IP信息相关联的UUID,其中获取与所述IP信息相关联的UUID包括:
基于所述IP信息找到相应的哈希桶;
在与所述相应的哈希桶链接的所有元素中基于所述IP信息查找所述UUID。
9.如权利要求3所述的系统,其特征在于,获得与所述ID相关联的UUID包括:
在采集模块ID池中查找所述ID;
如果所述ID存在于所述采集模块ID池中,则获取与所述ID相关联的UUID;以及
如果所述ID不存在于所述采集模块ID池中,则分配一UUID给所述ID,所述采集模块将所述ID和所述UUID储存在所述采集模块ID池中并且同步给所述处理模块,所述处理模块将所述ID和所述UUID储存在处理模块ID池中。
10.如权利要求1所述的系统,其特征在于,由所述IP-ID映射获得与所述IP信息对应的ID包括:获取与所述IP信息相关联的UUID。
11.如权利要求1所述的系统,其特征在于,所述采集模块进一步配置为当所述IP信息和所述ID解除关联性时删除所述哈希表中的与所述ID对应的IP-ID映射。
12.如权利要求1至11中任一项所述的系统,其特征在于,所述互联网协议信息为第四版互联网协议地址或第六版互联网协议地址。
13.一种用于防火墙的方法,包括:
采集步骤,包括:
采集互联网协议IP信息和用户标识符ID,所述IP信息与所述ID相关联;和
根据所述采集到的IP信息更新共享内存中的IP-ID映射,与该IP-ID映射的IP信息对应的哈希索引被指示在所述共享内存的哈希表中,所述IP信息通过哈希算法得到所述哈希索引;
处理步骤,包括:
使用基于IP信息的哈希索引在所述共享内存的ID缓存池中查找所述IP信息的IP-ID映射;和
由所述IP-ID映射获得与所述IP信息对应的ID并使用该ID进行后续防火墙的处理。
14.如权利要求13所述的方法,其特征在于,所述后续防火墙的处理包括:在防火墙中使用基于所述ID的策略处理报文。
15.如权利要求13所述的方法,其特征在于,所述采集步骤还包括:获得与所述ID相关联的唯一用户标识符UUID。
16.如权利要求15所述的方法,其特征在于,所述根据所述采集到的IP信息更新共享内存中的IP-ID映射包括:
查询步骤,用于基于所述IP信息查询所述共享内存的哈希表;
UUID更新步骤,用于如果在所述哈希表中存在与所述IP信息相关联的IP-ID映射,则将所述UUID更新到所述IP-ID映射中;以及
添加步骤,用于如果在所述哈希表中不存在与所述IP信息相关联的IP-ID映射,则将所述IP信息和与该IP信息对应的UUID同时添加至所述ID缓存池中,以使与该IP信息相关联的IP-ID映射链接至所述哈希表。
17.如权利要求16所述的方法,其特征在于,所述ID缓存池是数组,它的每个元素对应于一条IP-ID映射。
18.如权利要求17所述的方法,其特征在于,所述ID缓存池中的元素根据所述IP信息通过所述哈希索引链接到哈希表的不同哈希桶。
19.如权利要求18所述的方法,其特征在于,所述添加步骤包括:
在所述ID缓存池的数组中找到空闲元素;
清除所述空闲元素的空闲标记并且将所述IP信息和所述UUID保存在所述空闲元素中;
基于所述IP信息找到相应的哈希桶;以及
将所述元素链接到所述相应的哈希桶。
20.如权利要求18所述的方法,其特征在于,由所述IP-ID映射获得与所述IP信息对应的ID包括获取与所述IP信息相关联的UUID,其中获取与所述IP信息相关联的UUID包括:
基于所述IP信息找到相应的哈希桶;
在与所述相应的哈希桶链接的所有元素中基于所述IP信息查找所述UUID。
21.如权利要求15所述的方法,其特征在于,获得与所述ID相关联的UUID包括:
在采集模块ID池中查找所述ID;
如果所述ID存在于所述采集模块ID池中,则获取与所述ID相关联的UUID;以及
如果所述ID不存在于所述采集模块ID池中,则分配一UUID给所述ID,将所述ID和所述UUID储存在所述采集模块ID池中并且同步存储在处理模块ID池中。
22.如权利要求13所述的方法,其特征在于,由所述IP-ID映射获得与所述IP信息对应的ID包括:获取与所述IP信息相关联的UUID。
23.如权利要求13所述的方法,其特征在于,所述采集步骤进一步包括:当所述IP信息和所述ID解除关联性时删除所述哈希表中的与所述ID对应的IP-ID映射。
24.如权利要求13至23中任一项所述的方法,其特征在于,所述互联网协议信息为第四版互联网协议地址或第六版互联网协议地址。
25.一种计算机存储介质,其存储了可被计算机执行的程序,该程序运行时能够实现如权利要求13-24所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710791124.XA CN107395645B (zh) | 2017-09-05 | 2017-09-05 | 用于防火墙的系统和方法以及存储有对应程序的介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710791124.XA CN107395645B (zh) | 2017-09-05 | 2017-09-05 | 用于防火墙的系统和方法以及存储有对应程序的介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107395645A true CN107395645A (zh) | 2017-11-24 |
CN107395645B CN107395645B (zh) | 2018-06-26 |
Family
ID=60351242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710791124.XA Active CN107395645B (zh) | 2017-09-05 | 2017-09-05 | 用于防火墙的系统和方法以及存储有对应程序的介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107395645B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108111422A (zh) * | 2017-12-29 | 2018-06-01 | 北京明朝万达科技股份有限公司 | 一种基于dpdk的数据高速多路转发方法及装置 |
CN111970368A (zh) * | 2020-08-24 | 2020-11-20 | 北京微步在线科技有限公司 | 一种基于ip信誉数据的信息处理方法、服务端及系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1403952A (zh) * | 2002-09-24 | 2003-03-19 | 武汉邮电科学研究院 | 一种以太网认证接入的方法 |
CN1697396A (zh) * | 2004-05-10 | 2005-11-16 | 华为技术有限公司 | 基于防火墙实现本地虚拟私网络的方法 |
US20090043884A1 (en) * | 2007-08-09 | 2009-02-12 | Beijing Ack Networks, Inc. | Recording Method and Recording System of Log |
US20090157641A1 (en) * | 2007-12-17 | 2009-06-18 | Frank-Uwe Andersen | Query routing in distributed database system |
CN102035669A (zh) * | 2009-09-29 | 2011-04-27 | 鸿富锦精密工业(深圳)有限公司 | 功能调用系统及方法 |
CN102438018A (zh) * | 2011-12-16 | 2012-05-02 | 北京邮电大学 | 基于自治域的P2P-VoIP 网络中继节点选择方法 |
CN103812861A (zh) * | 2014-01-20 | 2014-05-21 | 广东电网公司电力科学研究院 | Ipsec vpn设备及其隔离方法与系统 |
CN104618506A (zh) * | 2015-02-24 | 2015-05-13 | 庄奇东 | 一种众包的内容分发网络系统、方法与装置 |
CN105577628A (zh) * | 2014-11-11 | 2016-05-11 | 中兴通讯股份有限公司 | 实现虚拟防火墙的方法及装置 |
CN106940708A (zh) * | 2017-01-23 | 2017-07-11 | 北京思特奇信息技术股份有限公司 | 一种基于二分查找法实现ip范围定位的方法及系统 |
-
2017
- 2017-09-05 CN CN201710791124.XA patent/CN107395645B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1403952A (zh) * | 2002-09-24 | 2003-03-19 | 武汉邮电科学研究院 | 一种以太网认证接入的方法 |
CN1697396A (zh) * | 2004-05-10 | 2005-11-16 | 华为技术有限公司 | 基于防火墙实现本地虚拟私网络的方法 |
US20090043884A1 (en) * | 2007-08-09 | 2009-02-12 | Beijing Ack Networks, Inc. | Recording Method and Recording System of Log |
US20090157641A1 (en) * | 2007-12-17 | 2009-06-18 | Frank-Uwe Andersen | Query routing in distributed database system |
CN102035669A (zh) * | 2009-09-29 | 2011-04-27 | 鸿富锦精密工业(深圳)有限公司 | 功能调用系统及方法 |
CN102438018A (zh) * | 2011-12-16 | 2012-05-02 | 北京邮电大学 | 基于自治域的P2P-VoIP 网络中继节点选择方法 |
CN103812861A (zh) * | 2014-01-20 | 2014-05-21 | 广东电网公司电力科学研究院 | Ipsec vpn设备及其隔离方法与系统 |
CN105577628A (zh) * | 2014-11-11 | 2016-05-11 | 中兴通讯股份有限公司 | 实现虚拟防火墙的方法及装置 |
CN104618506A (zh) * | 2015-02-24 | 2015-05-13 | 庄奇东 | 一种众包的内容分发网络系统、方法与装置 |
CN106940708A (zh) * | 2017-01-23 | 2017-07-11 | 北京思特奇信息技术股份有限公司 | 一种基于二分查找法实现ip范围定位的方法及系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108111422A (zh) * | 2017-12-29 | 2018-06-01 | 北京明朝万达科技股份有限公司 | 一种基于dpdk的数据高速多路转发方法及装置 |
CN111970368A (zh) * | 2020-08-24 | 2020-11-20 | 北京微步在线科技有限公司 | 一种基于ip信誉数据的信息处理方法、服务端及系统 |
CN111970368B (zh) * | 2020-08-24 | 2021-11-23 | 北京微步在线科技有限公司 | 一种基于ip信誉数据的信息处理方法、服务端及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107395645B (zh) | 2018-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7895176B2 (en) | Entry group tags | |
US7562075B2 (en) | Change approvals for computing systems | |
RU2425449C2 (ru) | Отслеживание данных изменения состояния для того, чтобы содействовать безопасности вычислительной сети | |
US8423581B2 (en) | Proxy support for special subtree entries in a directory information tree using attribute rules | |
EP1589691B1 (en) | Method, system and apparatus for managing computer identity | |
CN102945249B (zh) | 一种策略规则匹配查询树生成方法、匹配方法及装置 | |
CN110166220B (zh) | 一种根据分区键的散列值进行切分的分片方法 | |
CN101442558B (zh) | 一种为p2sp网络提供索引服务的方法和系统 | |
CN109474936A (zh) | 应用于多个lora网关之间的物联网通讯方法及系统 | |
CN110177123B (zh) | 基于dns映射关联图的僵尸网络检测方法 | |
CN102664938A (zh) | 一种资源下载控制方法及装置 | |
CN114650281B (zh) | 基于复杂网络的文件下载方法、装置、设备及存储介质 | |
DE202023100535U1 (de) | Systeme für Multi-Blockchain- und Multi-Token-Interoperabilität durch gemeinsame Blockchain-Integration | |
CN111124759A (zh) | 一种混合云架构下数据同步的方法、设备及介质 | |
CN114979074B (zh) | 一种企业IPv6地址分级管理方法、系统及存储介质 | |
CN103546380A (zh) | 一种基于策略路由的报文转发方法和装置 | |
CN107395645B (zh) | 用于防火墙的系统和方法以及存储有对应程序的介质 | |
CN110417777B (zh) | 一种优化的微服务间通信的方法及装置 | |
US7689584B2 (en) | Hybrid groups | |
CN103731454B (zh) | 一种在点对点网络中对请求进行响应的方法及服务器系统 | |
CN108521362A (zh) | 一种基于p2p-vpn的网络架构及其访问方法 | |
CN109962834B (zh) | 信息处理方法、系统、终端和计算机存储介质 | |
CN110515975A (zh) | 风险检测系统、方法以及装置 | |
US11943211B2 (en) | Device monitoring in accessing network | |
JP5190921B2 (ja) | コミュニティ通信ネットワーク、通信制御方法、コミュニティ管理サーバ、コミュニティ管理方法、およびプログラム |
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 |