CN113672629B - 一种分布式网络流量检索方法和装置 - Google Patents
一种分布式网络流量检索方法和装置 Download PDFInfo
- Publication number
- CN113672629B CN113672629B CN202111237138.XA CN202111237138A CN113672629B CN 113672629 B CN113672629 B CN 113672629B CN 202111237138 A CN202111237138 A CN 202111237138A CN 113672629 B CN113672629 B CN 113672629B
- Authority
- CN
- China
- Prior art keywords
- session
- retrieval
- index
- distributed
- metadata
- 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.)
- Active
Links
Images
Classifications
-
- 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/2237—Vectors, bitmaps or matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- 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/2282—Tablespace storage structures; Management thereof
-
- 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/24553—Query execution of query operations
-
- 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/24569—Query processing with adaptation to specific hardware, e.g. adapted for using GPUs or SSDs
-
- 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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2477—Temporal data queries
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于网络流量实时捕获、存储和检索技术领域,尤其涉及一种分布式网络流量检索方法和装置,该方法包括:数据采集;会话重组&元数据提取;会话落盘;分布式检索算法DSearch和数据存储。本发明提出了分布式索引建立算法DIndex以及分布式检索算法DSearch,能够支持分布式实时高速网络全流量存储、索引和检索业务,满足高带宽、多分支机构的用户使用需求。
Description
技术领域
本发明属于网络流量实时捕获、存储和检索技术领域,尤其涉及一种分布式网络流量检索方法和装置。
背景技术
近年来,随着互联网的飞速发展,网络带宽已经急剧增加,由于互联网的开发性给网络安全带来了更多挑战。与监控摄像头以及监控视频存储、查询和取证设备类似,网络流量的实时监控、存储分析和溯源取证已经成为一种确保网络安全的关键方法。通过这种方式,网络管理人员能够进行回顾性分析已发生的网络异常行为和应用程序通信的数据,这被广泛应用在金融交易、网络取证、网络安全等领域。
对于网络流量实时存储和溯源取证领域,传统的网络流量分析工具,如Tcpdump和 Wireshark,使用线性搜索算法来查找匹配的数据包,其过程需要扫描整个PCAP文件进行包匹配。因此,检索的复杂性与原始文件大小和包大小成线性关系,检索时间复杂度和磁盘I/O代价极高。为提高检索效率,给实时流量建立索引已经成为一种广泛使用的方案。而且,已经存在多种用于网络流量实时存储和检索的方法提出,例如TelegraphCQ、Hyperion、Time Machine、TIFAflow、科来的NSM、Arkime(moloch)和Index-Trie。这些方法或产品存储实时数据包或流并为之建立索引用于检索。执行检索操作时,通过检索索引文件以获取匹配的数据和地址偏移量。然后,通过地址偏移量获取数据包或者流的PCAP文件。然而,基于数据包头中的多个字段构建索引不仅会消耗大量的存储空间也减慢了检索的速度。此外,磁盘I/O很容易成为瓶颈。为了减少索引的存储消耗,同时尽可能提高检索效率,几种数据结构已应用于索引和检索网络流量。例如哈希表、B树、B+树、位图-字典树、小波矩阵和倒排索引等数据结构已经被研究人员提出。
在面对高速链路、大规模网络和复杂多样应用时,网络流量检索系统的主要挑战包括快速索引、高效存储、快速检索以及高带宽链路和多分支机构的需求。
为了解决以上挑战,相关专利也提出了一些方案试图缓解或部分解决以上问题。专利CN103714134B,一种网络流量数据索引方法及系统,其索引结构并没有提供对时间范围进行检索能力,也未提供对查询条件的预过滤筛选。此外,缺乏预过滤能力的面向数据包的查询索引将会导致大量的磁盘I/O;专利CN109614518A,一种网络流量数据存储、还原方法及系统,该专利提出一种抽象的查询逻辑,索引和数据映射是面向数据包的,而且作者并没有说明如何构建这套系统。此外,在该专利中,作者提出的数据流是指时间戳、源IP、目的IP、源端口、目的端口、方向以及数据包索引数组。而且,由于该专利提出的是面向数据包的查询索引,这将会导致大量的磁盘I/O和较低的检索效率。专利CN108989301A,一种多索引的网络流量数据索引方法、设备及存储介质,提出一种抽象的二级索引逻辑并提供相关字段,并没有说明如何建立这两级索引实现快速定位到会话的所有数据包索引信息。美国专利US9565076B2,分布式网络流量数据采集与存储,该专利主要是解决对网络流量的分布式元数据采集和网络性能监控问题,不对网络流量进行存储和溯源取证。申请号2021111262756专利,提出一种网络流量检索方法和装置,建立了面向会话的四级索引技术,并对索引进行了压缩,极大提高了存储和检索效率,降低了磁盘I/O。但存在以下问题,该申请不适用大流量或者多分支机构场景,这些场景需要多节点构成集群,而该申请提出的索引算法为单主机算法。此外,该申请的索引存储在SSD阵列上,以冷数据为主,按需导入内存,缺少冷热分离设计,导致用户检索变化时索引会引发较高I/O访问,查询时间有一定程度的损耗。最后,该申请在检索方面也存在一定的限制,例如缺少IP V6查询、掩码检索、范围检索、Payload检索等能力。
由于上述方法在网络流量的实时存储和检索方面存在着不同程度的缺点,从而使得这些方法不能够真正应用于高带宽链路和多分支机构的用户环境中。而客户迫切要求既能够对高带宽环境和多分支用户环境下的网络流量实时地存储,又能够对历史数据流量进行快速检索的分布式方案。
为此,本发明提出了一种分布式网络流量检索方法和装置。
发明内容
鉴于现有技术的不足,本发明的目的在于,提供一种分布式网络流量检索方法和装置。
本发明是这样实现的,提供一种分布式网络流量检索方法,包括如下步骤:
步骤1):数据采集,从交换机镜像口或分流器获取实时网络流量包送往主机的网络适配器,流量处理引擎从网络适配器实时捕获网络流量包;
步骤2):会话重组&元数据提取,流量处理引擎对收到的网络流量包按照会话定义进行会话重组,并提取包括五元组在内的相关会话元数据信息,并利用会话ID生成算法IDSession生成session_id;
步骤3):会话落盘,将会话写入预分配的、指定大小的SPCAP磁盘文件中,同时,提取每个网络流量包在SPCAP文件位置偏移量,生成会话位置向量Loc_session_id;
步骤4):分布式索引构建,利用分布式会话索引建立算法DIndex建立分布式索引,并提出多项压缩位图技术压缩索引,降低内存的使用率,同时,利用分布式内存数据库技术实现在局域网和广域网条件下能够对分布式网络流量进行索引;
步骤5):分布式检索算法DSearch,支持用户查询多类别查询请求,包括时间窗口、五元组、IP掩码、IP范围、MAC地址、BPF查询的逻辑组合查询,且对于IP检索支持IP V4和IPV6格式,利用分布式索引和查询汇聚模块完成检索过程,返回给用户满足条件的会话元数据及相应的会话PCAP文件;
步骤6):数据存储,会话重组和索引之后,对于索引文件需要存储到分布式数据库中,并利用内存和SSD实现冷热分离,对于元数据需要送到分布式KV数据库中,其中,SPCAP文件和KV数据库的数据文件需要存储到具备加密&压缩的文件系统中。
优选地,所述步骤2)中,会话ID生成算法IDSession的生成过程为:
201)利用64位,即一个Long字段存储会话ID;
202)根据5元组和随机种子Hash运算,生成20位Flow_Hash;
203)将Flow_Hash左移32位,取当前时间戳所在秒的低32位,并左移16位;
204)取当前时间戳所在的微秒的低32位;
205)对于64位ID中的高13位,对于后12位,高8位作为机器ID,支持256台分布式设备,低4位作为并发序列,支持16个并发;
206)对于64位ID中的第1位为符号位,默认为0,表示会话ID为正数Long型。
进一步优选,所述步骤2)中,对于会话ID生成算法IDSession:
对于指定的设备在同一时刻以及某一并发序列,生成的会话ID是全局唯一;
利用一个Long字段,即64位,可以存储此ID;
支持分布式集群,即不同的设备在同一时刻以及某一并发序列生成的ID是不同的;
会话ID满足趋势递增,满足KV数据库中的Key特性;
会话ID生成过程计算代价低。
进一步优选,所述步骤4)中,对于分布式会话索引建立算法DIndex,其算法描述如下:
401)获取会话元数据以及会话位置向量信息;
402)根据用户检索的时间粒度,分别建立粗粒度索引组和细粒度索引组,用户的时间范围查询将由这两类索引组构成,对于时间粗粒度索引组和时间细粒度索引组,其区别仅仅是建立索引的时间窗口不同,索引组构成是相同的;
403)索引组,由IP位图、Port位图、MAC位图和掩码位图组成;
404)提出利用低概率碰撞以及RBM算法对于位图进行压缩,进而提高检索效率且节约存储空间;
405)对于索引组存储,将索引组存储到分布式内存数据库中,该数据库具备冷热分离能力;
406)在分布式内存数据库中,对于索引组的命名按照提出的命名规范进行;
407)优化粗粒度索引组构建过程,即在粗粒度索引组构建过程中,为优化内存使用,使用合并细粒度索引组来构建粗粒度索引组;
408)对于会话元数据以及会话位置向量信息的存储,将这些数据以Key-Value的形式存储到分布式KV数据库中。
进一步优选,所述步骤4)中,分布式会话索引建立算法DIndex中,索引组是由IP位图、Port位图、MAC位图和掩码位图组成。
进一步优选,所述步骤4)中,对于分布式会话索引建立算法DIndex,具有极高的索引压缩效率和检索效率,可适用于内存检索,同时,支持时间窗口检索、IP检索、Port检索、MAC检索、IP掩码检索、IP范围检索以及这些检索的逻辑运算,对于IP检索支持IPV4和IPV6,支持用户自定义其他字段的检索能力。
进一步优选,所述步骤5)中,对于分布式检索算法DSearch,其过程如下:
501)获取用户的查询字符串,进行预处理,包括IP范围检索映射为IP逻辑查询、语法解析和完善、检索分解为索引检索和Payload检索;
502)对于索引检索,根据检索字符串获取粗粒度索引组和细粒度索引组列表;
503)通过分布式内存数据库对索引组进行查询,并返回会话ID列表;
504)利用会话ID列表,通过查询分布式KV数据库获得与会话ID对应的会话元数据以及会话位置向量信息;
505)数据过滤,对于时间范围索引和位图的Key压缩引入的误报,对从分布式KV数据库中返回的检索结果进行二次筛选,将精准的元数据和会话位置向量信息返回;
506)根据会话位置向量信息从HDD阵列的SPCAP文件中获取会话PCAP包,并提供下载链接;
507)支持用户对获取的PCAP包进行Payload查询,为提高性能,对标准的BPF语法进行优化;
508)将最终命中的元数据和会话PCAP包返回给用户。
进一步优选,所述步骤5)中,对于分布式检索算法DSearch,有如下特征:
误报过滤,在索引建立过程中,为了节约索引空间,在时间范围索引定义了粗粒度索引组和细粒度索引组的概念,极大地降低了索引数量,但也引入了低概率的误报,此外,为了压缩索引本身的存储空间,基于若干应用场景的通用假设,以允许发生极低的碰撞概率导致的误报,对位图的Key范围进行优化,为了确保返回给客户的查询结果是精确的,数据过滤对于引入误报的检索项进行二次筛选,将精准的元数据和会话位置向量信息返回;
简化后的BPF语法,为提高性能,对标准的BPF语法进行优化,简化后的BPF语法,仅支持两层嵌套结构,且不支持一些不常用的或代价大的查询语法;
对于索引数据采用分布式内存数据库进行存储,对于元数据和会话位置向量信息采用分布式KV数据库进行存储,对于会话PCAP由于分布式系统的带宽问题,仅支持本地存储,故BPF语法在本地进行关键字匹配,满足条件的会话ID将被送往汇聚模块;
检索算法提供给用户以下检索能力,时间窗口检索、IP检索、Port检索、MAC检索、IP掩码检索、IP范围检索、Payload检索以及这些检索的逻辑运算。此外,对于IP检索支持IPV4和IPV6,支持用户自定义其他字段的检索能力。
进一步优选,所述步骤6)中,对于数据存储,过程如下:
601)来自多个交换机镜像口的流量通过汇聚分流设备进行负载均衡,送往分布式网络流量检索设备集群;
602)会话重组&索引&存储组件获取网络流量,进行会话重组、提取元数据和会话位置向量信息、建立分布式索引、建立SPCAP文件操作;
603)分布式会话索引存储到分布式内存数据库中,并进行冷热分离,用户常访问的索引数据作为热数据放到内存,不常访问的索引数据作为冷数据放入SSD;
604)元数据和Loc存储到分布式KV数据库中;
605)PCAP数据以SPCAP文件形式进行存储,SPCAP具有指定的大小,每个SPCAP文件包括多条会话PCAP包;
606)在HDD上建立具有压缩和加密能力的文件系统,PCAP数据和KV数据库将存储到该文件系统上。
本发明还提供一种分布式网络流量检索装置,包括如下模块:
多路流量捕获模块:从交换机镜像口、分流器获得多路负载均衡的网络实时流量,送到一台或多台网络流量检索装置,由装置的网络适配器捕获实时的网络流量数据包;
会话重组&索引模块:包括会话重组子模块和索引子模块,其中,会话重组子模块将5元组相同的数据包按到达时间戳排序,并在内存缓冲区中进行存储,若会话超时、会话结束或缓冲区满情况发生,则判定会话完整,触发执行索引子模块,索引子模块包括元数据提取组件和索引构建组件,其中,元数据提取组件,对缓冲区中的完整会话进行分析,利用会话ID生成算法生成会话ID,同时提取会话的元数据信息,包括会话五元组、MAC地址、协议头等相关字段;索引构建组件,按照索引组命名规范分别建立粗粒度索引组和细粒度索引组,并建立索引组内的相应位图索引;
存储模块,包括索引存储子模块、压缩&加密文件系统子模块、元数据存储子模块和会话PCAP存储子模块,其中,索引存储子模块,将各个节点的索引组存储到分布式内存数据库中,压缩&加密文件系统子模块,判断HDD阵列上是否存在压缩&加密文件系统,若不存在则进行建立,并选择压缩算法,开启实时写入压缩,元数据存储子模块,利用会话ID作为Key,将元数据和Loc信息进行压缩后作为Value,将Key和Value送到分布式KV数据库中,KV数据库的数据文件存储到压缩&加密文件系统中,会话PCAP存储子模块,PCAP数据以SPCAP文件形式存储到压缩&加密文件系统中;
检索代理模块,包括单节点装置、基于LAN网络的分布式网络流量检索装置和基于WAN网络的分布式网络流量检索装置,检索代理对于检索请求进行路由,分别访问分布式网络中的各个节点,检索完成后,将检索结果路由到检索汇聚模块;
检索处理模块,包括预处理子模块、索引检索子模块、KV查询子模块、数据过滤子模块和BPF查询子模块,其中,预处理子模块,获取用户的查询字符串,进行预处理,包括IP范围检索映射为IP逻辑查询、语法解析和完善、检索分解为索引检索和Payload检索;索引检索子模块,对于索引检索,根据检索字符串获取粗粒度索引组和细粒度索引组列表,通过分布式内存数据库对索引组进行查询,并返回会话ID列表;KV查询子模块,利用会话ID列表,通过查询分布式KV数据库获得与会话ID对应的会话元数据以及会话位置向量信息;数据过滤子模块,对于时间范围索引和位图的Key压缩引入的误报,对从分布式KV数据库中返回的检索结果进行二次筛选,将精准的元数据和会话位置向量信息返回;BPF查询子模块,利用简化的BPF语法对获取的PCAP包进行Payload查询;最后,将最终命中的元数据和会话PCAP包返回给检索汇聚模块;
检索汇聚模块,获取各个节点命中的元数据和会话PCAP包,进行时间排序后返回给客户。
与现有技术相比,本发明的优点在于:
1、一种全流量、高扩展性的分布式存储和检索系统,能够兼顾高带宽链路和多分支机构的用户环境下,流量实时处理、分布式索引构建和分布式检索等优点;
2、对于流量和索引,采用面向会话的流量存储、索引和检索方法,优于传统面向数据包的处理方法,极大的提高存储、索引和检索效率,降低了对I/O的要求;
3、为满足分布式索引和检索的需求,提出了分布式会话ID生成算法,该算法充分考虑了单机和分布式场景下的会话ID全局唯一特性以及趋势递增特性;
4、对于索引的建立,采用三级索引定位用户关注的会话PCAP文件,包括位图索引、KV存储和SPCAP文件。其中,为了满足兼顾高带宽链路和多分支机构的用户需求,提出了分布式索引建立和分布式检索算法,满足用户在WAN和LAN网络的使用要求。此外,为了解决高效索引前提下的灵活时间窗口查询,特别是小时间窗口查询问题,提出了粗粒度时间索引组和细粒度时间索引组方法,通过这两种索引组的组合有效兼顾用户对高效索引和灵活的时间窗口查询需求;
5、在基于索引的检索过程中,为了进一步提高索引检索的性能,对于索引数据采用了冷热分离的分布式存储架构,通过压缩索引进而使得索引数据能够适应内存空间。此外,SSD也被作为系统异常情况下辅助索引存储安全;
6、对于存储的优化,在索引建立过程中,采用了高效的编码和压缩算法降低索引的存储开销,并降低了SSD存储到内存的加载开销,使得索引大小能够适应内存,极大的提高了检索效率。索引被存储到分布式内存数据库,元数据和会话位置向量信息被存储到分布式KV数据库中,而KV数据库文件和SPCAP文件被存储到构建在HDD阵列上的压缩&加密文件系统中,利用文件系统对实时写入的数据进行加密和压缩,降低存储开销并确保数据安全。最后,利用内存索引过滤了绝大部分无关检索访问,实现了高效地最慢硬件尽量少访问;
7、对于用户检索的支持,检索算法支持对五元组(源IP、目标IP、源端口、目标端口和协议)、MAC地址、掩码查询、范围查询和Payload查询的逻辑运算,即AND、XOR、OR和NOT的条件嵌套查询;此外,对于IP检索支持IPV4和IPV6,支持用户自定义查询字段。本申请提出的分布式检索算法能够利用索引过滤掉绝大部分无关请求,确保尽量少的访问慢存储,快速地定位用户需要的会话列表,包含多个会话元数据以及相对应的PCAP文件;
8、最后,本发明提出的网络流量检索装置支持商用服务器硬件,对比其他方案对专业硬件的需求,本申请极大地降低了用户的整体拥有成本。
附图说明
图1为本发明实施例提供的分布式网络流量检索方法的系统流程图;
图2为本发明实施例提供的分布式网络流量检索方法的会话ID组成部分示意图;
图3为本发明实施例提供的分布式网络流量检索方法的会话ID各个部分运算关系示意图;
图4为本发明实施例提供的分布式网络流量检索方法的检索过程示意图;
图5为本发明实施例提供的分布式网络流量检索方法的存储结构示意图;
图6为本发明实施例提供的分布式网络流量检索装置的处理流程图;
图7为本发明实施例提供的基于LAN网络的分布式网络流量检索系统示意图;
图8为本发明实施例提供的基于WAN网络的分布式网络流量检索系统示意图。
具体实施方式
为了实现背景技术中的目的,本发明提供一种分布式网络流量数据检索方法,其流程图如图1所示,包括下列步骤:
步骤1),数据采集,从交换机镜像口或分流器获取实时网络流量包送往主机的网络适配器,流量处理引擎从网络适配器实时捕获网络流量包;
步骤2),会话重组&元数据提取,流量处理引擎对收到的数据包按照会话定义进行会话重组,并提取包括五元组在内的相关会话元数据信息,并利用会话ID生成算法IDSession生成session_id;
步骤3)会话落盘,将会话写入预分配的、指定大小的SPCAP磁盘文件中,同时,提取每个数据包在SPCAP文件位置偏移量,生成会话位置向量Loc_session_id,示例如下:Loc(session_10)=[-1615392002463,1973083516,76,76,200,-82,-76,-172,76,76,-121,-76,-76]。会话session_10,存在一个文件ID为1615392002463的SPCAP文件中,带“-”的字段且大于指定数值表示文件ID,文件ID之后的第一个字段表示会话流量在SPCAP文件中的起始位置,起始位置与包大小绝对值相加即为下一个包的起始位置。其他字段表示包大小,正数和负数表示通信方向。对于会话存在多个SPCAP文件中情况;
步骤4),分布式索引构建,利用分布式会话索引建立算法DIndex建立分布式索引,并提出多项压缩位图技术压缩索引,降低内存的使用率。同时,利用分布式内存数据库技术实现在局域网(LAN网络)和广域网(WAN网络)条件下能够对分布式网络流量进行索引;
步骤5),分布式检索算法DSearch,支持用户查询多类别查询请求,包括时间窗口、五元组、IP掩码、IP范围、MAC地址、BPF查询的逻辑组合查询,且对于IP检索支持IP V4和IPV6格式,利用分布式索引和查询汇聚模块完成检索过程,返回给用户满足条件的会话元数据及相应的会话PCAP文件;
步骤6),数据存储,会话重组和索引之后,对于索引文件需要存储到分布式数据库中,并利用内存和SSD实现冷热分离。对于元数据需要送到分布式KV数据库中。其中,SPCAP文件和KV数据库的数据文件需要存储到具备加密&压缩的文件系统中。
对于会话ID生成算法IDSession,其生成过程在于,
201)利用64位,即一个Long字段存储会话ID;
202)根据5元组和随机种子Hash运算,生成20位Flow_Hash;
203)将Flow_Hash左移32位,取当前时间戳所在秒的低32位,并左移16位;
204)取当前时间戳所在的微秒的低32位;
205)对于64位ID中的高13位,对于后12位,高8位作为机器ID,支持256台分布式设备,低4位作为并发序列,支持16个并发;
206)对于64位ID中的第1位为符号位,默认为0,表示会话ID为正数Long型。
对于会话ID生成算法IDSession,其各个组成部分的示意图如图2所示,其运算关系的示意图如图3所示。
对于会话ID生成算法IDSession,具有如下特点:
对于指定的设备在同一时刻以及某一并发序列,生成的会话ID是全局唯一;
利用一个Long字段,即64位,可以存储此ID;
支持分布式集群,即不同的设备在同一时刻以及某一并发序列生成的ID是不同的;
会话ID满足趋势递增,满足KV数据库中的Key特性;
会话ID生成过程计算代价低。
对于会话ID生成算法IDSession,生成的每个会话ID都被用来标识一个主机上某个时间点的一个会话信息,包含了会话元数据、会话PCAP包在SPCAP文件中的位置向量信息等。
对于SPCAP文件,其格式满足PCAP文件国际标准,并具有以下特性:
SPCAP文件存储在具有压缩和加密能力的文件系统上,该文件系统构建在HDD阵列上。因此,SPCAP文件在落盘过程中,该文件系统对其进行了压缩和加密;
用户指定大小的PCAP文件,或指定时间窗口内生成的PCAP文件;
在SPCAP文件中,按照会话顺序组织的,SPCAP={session_1(packet_1,packet_2,packet_3,...,packet_n), session_2(packet_1,packet_2,packet_3,...,packet_m),...,session_x(packet_1,packet_2,packet_3,...,packet_p)}。其中,m、n、p和x是变量,会话定义为5元组相同的数据包,按照时序组成会话;
对于SPCAP文件,会话PCAP文件可能在单个SPCAP中,也可能在两个文件SPCAP文件中;
对于SPCAP文件,会话的顺序与时间无关,与会话落盘的顺序有关。
对于分布式会话索引建立算法DIndex,其算法描述如下:
401)获取会话元数据以及会话位置向量信息;
402)根据用户检索的时间粒度,分别建立粗粒度索引组和细粒度索引组,用户的时间范围查询将由这两类索引组构成,对于时间粗粒度索引组和时间细粒度索引组,其区别仅仅是建立索引的时间窗口不同,索引组构成是相同的;
403)索引组,由IP位图、Port位图、MAC位图和掩码位图组成。其中,IP位图包含源IP位图和目标IP位图,Port位图包含源端口位图和目标端口位图,MAC位图包含源MAC位图和目标MAC位图,掩码位图包含源IP掩码位图和目标IP掩码位图;
404)提出利用低概率碰撞以及RBM对于位图进行压缩,进而提高检索效率且节约存储空间。在位图索引建立过程中,由于指定时间窗口的会话ID位图是一个稀疏向量,利用RBM(RoaringBitmap)算法对会话ID位图进行压缩,压缩比最差也能达到10:1,最好情况能达到1000:1;
405)对于索引组存储,将索引组存储到分布式内存数据库中,该数据库具备冷热分离能力,即热数据缓存到内存中,冷数据存储到SSD中。理想情况下,内存足够大,能够容纳所有的索引组数据。而SSD仅用来作为数据持久化,应对系统重启等情况。
406)在分布式内存数据库中,对于索引组的命名定义如下:对于小时索引组,小时ID为0~23,Bitmap_ID为Bitmap_SrcIP、Bitmap_DstIP、Bitmap_SrcPort、Bitmap_DstPort、Bitmap_SrcMAC、Bitmap_DstMAC、Bitmap_SrcMASK、Bitmap_DstMASK,则小时索引组为Host_ID+HIndex_ID+Bitmap_ID;对于5分钟索引组,5分钟ID为1~288,则5分钟索引组为Host_ID+FIndex_ID+Bitmap_ID;
407)粗粒度索引组构建优化,例如,缓存1个小时索引字段,在实时流量较大的情况下,会占用大量的内存。在粗粒度索引组构建过程中,为优化内存使用,使用合并细粒度索引组来构建粗粒度索引组。例如粗粒度索引组设定为1小时,细粒度索引组设定为5分钟,利用位图合并算法合并12个细粒度索引组来构建粗粒度索引组。
408)对于会话元数据以及会话位置向量信息的存储,将这些数据以Key-Value的形式存储到分布式KV数据库中。其中,Key为会话ID,Value为会话元数据以及会话位置向量信息。在存储过程中,为提高存储效率,对于Value可进行适当的编码优化。
对于分布式会话索引建立算法DIndex,会话索引组中会话数据非常稀疏,大量的数据都为0,仅少量为1。未经压缩的位图显然非常浪费空间,若要存储整个Int32数据,则需要512MB的存储空间。使用压缩算法对位图进行压缩,且保留位图的逻辑运算能力(OR、AND、NOT、XOR),主流技术方向包括行程长度编码(BBC、WAH、EWAH、Concise等)和RBM编码,可根据不同的数据情况灵活选择;
对于分布式会话索引建立算法DIndex,为了实现索引组的分布式构建,从头建立分布式通信系统是非常复杂的工作,并不是本申请的工作范围。在实施例中,可以使用分布式内存数据库,例如Redis、Pika、Tendis等,存储不同的索引组,即利用分布式内存数据库提供分布式通信系统,结合位图索引完成分布式位图数据结构的构建。对于分布式内存数据库,该数据库具备冷热分离能力,即热数据缓存到内存中,冷数据存储到SSD中。理想情况下,内存足够大,能够容纳所有的索引组数据。而SSD仅用来作为数据持久化,应对系统重启等情况。
对于分布式会话索引建立算法DIndex,为使得内存能够容纳索引,从3个方面进行优化:
(1)索引压缩,利用RBM算法将索引压缩到原来的10:1~1000:1,使得现网万兆环境,平均索引大小小于10MB;
(2)分布式索引的建立使得多台节点内存共享,进一步优化了内存的负载均衡使用;
(3)索引的个数与全流量存储的HDD阵列容量是相关的,单节点PB级的存储已经是非常高的配置。SPCAP和KV数据库的存储超过单节点HDD阵列的存储范围,则使用数据覆盖方法进行滚动存储,而旧索引也将跟随被覆盖。
对于分布式会话索引建立算法DIndex,其索引组由IP位图、Port位图、MAC位图和掩码位图组成。
对于分布式会话索引建立算法DIndex中,IP位图,提供给用户IP地址检索能力。Key定义为指定大小的无符号整形,Value定义为描述会话ID的二进制位。IP位图支持IP V4和IP V6,IP V4为4个字节32位,IP V6为16个字节128位。为了提高位图Key的压缩效率,减少Key相对应也会减少Value,对于IP位图的Key可以选择16位无符号整形进行表示,即假设用户的资产或用户访问的服务器个数都满足在1~65536范围内,即假设B类地址中网络地址不同,但主机地址相同且处于同一个用户网络中的概率极低。若压缩Key的个数发生哈希碰撞,则会产生误报,该误报将会在数据过滤模块进行处理,确保返回给客户的查询结果是精确的;
分布式会话索引建立算法DIndex中,对于Port位图,提供给用户端口地址检索能力。Key定义为指定大小的无符号整形,Value定义为描述会话ID的二进制位。由于计算机端口范围0~65535,故对于Port位图的Key可以选择16位无符号整形进行表示,不会发生哈希碰撞。而选择8位无符号整形进行表示,端口范围0~255,远低于常用端口范围,会产生极高的哈希碰撞,对数据过滤模块压力过大;
分布式会话索引建立算法DIndex中,对于MAC位图,提供给用户MAC地址检索能力。Key定义为指定大小的无符号整形,Value定义为描述会话ID的二进制位。MAC地址为6个字节48位,其前3字节表示OUI(Organizationally Unique Identifier),是IEEE的注册管理机构给不同硬件供应商分配的代码,区分不同的硬件供应商。后3字节由硬件供应商自行分配。为提高MAC位图Key的压缩效率,减少Key相对应也会减少Value,对于MAC位图的Key可以选择16位无符号整形进行表示,即假设用户的资产或用户访问的服务器个数都满足在65536范围内,即不同硬件供应商分配的硬件编号的后两个字节相同的两个硬件在同一个用户网络中的概率极低。若压缩Key的个数发生哈希碰撞,则会产生误报,该误报将会在数据过滤模块进行处理,确保返回给客户的查询结果是精确的。
分布式会话索引建立算法DIndex中,对于掩码位图,提供给用户IP地址掩码检索能力。Key定义为指定大小的无符号整形,Value定义为描述会话ID的二进制位。为了满足24位IP地址掩码的检索能力,对于掩码位图的Key可以选择24位无符号整形进行表示。以C类地址为例,用户可以利用24位掩码查询快速获取C类地址的会话,即254台主机的会话信息。
对于会话索引建立算法DIndex,索引压缩效率和检索效率都极高,可适用于内存检索。同时,支持时间窗口检索、IP检索、Port检索、MAC检索、IP掩码检索、IP范围检索以及这些检索的逻辑运算(AND、OR、NOT和XOR)。此外,对于IP检索支持IPV4和IPV6,支持用户自定义查询字段。
对于分布式检索算法DSearch,其查询过程如图4所示,其算法描述如下:
501)获取用户的查询字符串,进行预处理,包括IP范围检索映射为IP逻辑查询(IP1 ANDIP2 AND…AND IPn)、语法解析和完善、检索分解为索引检索和Payload检索等;
502)对于索引检索,根据检索字符串获取粗粒度索引组和细粒度索引组列表;
503)通过分布式内存数据库对索引组进行查询,并返回会话ID列表;
504)利用会话ID列表,通过查询分布式KV数据库获得与会话ID对应的会话元数据以及会话位置向量信息;
505)数据过滤,对于时间范围索引和位图的Key压缩引入的误报,对从分布式KV数据库中返回的检索结果进行二次筛选,将精准的元数据和会话位置向量信息返回;
506)可根据会话位置向量从HDD阵列的SPCAP文件中获取会话PCAP包,并提供下载链接;
507)支持用户对获取的PCAP包进行Payload查询,为提高性能,对标准的BPF语法进行优化。
508)将最终命中的元数据和会话PCAP包返回给用户。
对于分布式检索算法DSearch中,误报过滤在索引建立过程中,为了节约索引空间,在时间范围索引定义了粗粒度索引组和细粒度索引组的概念,极大地降低了索引数量,但也引入了低概率的误报。此外,为了压缩索引本身的存储空间,基于若干应用场景的通用假设,以允许发生极低的碰撞概率导致的误报,对位图的Key范围进行优化。为了确保返回给客户的查询结果是精确的,数据过滤对于引入误报的检索项进行二次筛选,将精准的元数据和会话位置向量信息返回。
对于分布式检索算法DSearch中,简化BPF语法,为提高性能,对标准的BPF语法进行优化。简化后的BPF语法,仅支持两层嵌套结构,即(X and Y and (Z or W)),且不支持一些不常用的或代价大的查询语法,例如不支持gateway、frag、greater/less、decnet、bytes范围查询等。
对于分布式检索算法DSearch中,对于索引数据采用分布式内存数据库进行存储,对于元数据和会话位置向量信息采用分布式KV数据库进行存储。对于会话PCAP,由于分布式系统的带宽问题,仅支持本地存储,故BPF语法在本地进行关键字匹配,满足条件的会话ID将被送往汇聚模块。
对于分布式检索算法DSearch,检索算法提供给用户以下检索能力,时间窗口检索、IP检索、Port检索、MAC检索、IP掩码检索、IP范围检索、Payload检索以及这些检索的逻辑运算。此外,对于IP检索支持IPV4和IPV6,支持用户自定义其他字段的检索能力。
对于数据存储,如图5所示,过程如下:
501)来自多个交换机镜像口的流量通过汇聚分流设备进行负载均衡,送往分布式网络流量检索设备集群;
502)会话重组&索引&存储组件获取网络流量,进行会话重组、提取元数据和Loc、建立分布式索引、建立SPCAP文件等操作;
503)分布式会话索引存储到分布式内存数据库中,并进行冷热分离,用户常访问的索引数据作为热数据放到内存,不常访问的索引数据作为冷数据放入SSD;
504)元数据和Loc存储到分布式KV数据库中;
505)PCAP数据以SPCAP文件形式进行存储,SPCAP具有指定的大小,每个SPCAP文件包括多条会话PCAP包;
506)在HDD上建立具有压缩和加密能力的文件系统,PCAP数据和KV数据库将存储到该文件系统上。
对于数据存储,汇聚分流设备能够进行交换机流量汇聚,并利用同源同素算法将会话均匀分到各个对外网口上,且确保同一个会话完整的在一个网口上。
参考图6,本发明还提供一种分布式网络流量检索装置,包括下列模块:
多路流量捕获模块:从交换机镜像口、分流器等设备获得多路负载均衡的网络实时流量,送到一台或多台网络流量检索装置,由装置的网络适配器捕获实时的网络流量数据包;
会话重组&索引模块:包括会话重组子模块和索引子模块。其中,会话重组子模块将5元组相同的数据包按到达时间戳排序,并在内存缓冲区中进行存储。若会话超时、会话结束或缓冲区满情况发生,则判定会话完整,触发执行索引子模块。索引子模块包括元数据提取组件和索引构建组件。其中,元数据提取组件,对缓冲区中的完整会话进行分析,利用会话ID生成算法生成会话ID,同时提取会话的元数据信息,包括会话五元组、MAC地址、协议头等相关字段;索引构建组件,按照索引组命名规范分别建立粗粒度索引组和细粒度索引组,并建立索引组内的相应位图索引,包括Bitmap_SrcIP、Bitmap_DstIP、Bitmap_SrcPort、Bitmap_DstPort、Bitmap_SrcMAC、Bitmap_DstMAC、Bitmap_SrcMASK、Bitmap_DstMASK以及用户的自定义索引;
存储模块,包括索引存储子模块、压缩&加密文件系统子模块、元数据存储子模块和会话PCAP存储子模块。其中,索引存储子模块,将各个节点的索引组存储到分布式内存数据库中。压缩&加密文件系统子模块,判断HDD阵列上是否存在压缩&加密文件系统,若不存在则进行建立,并选择压缩算法,开启实时写入压缩。元数据存储子模块,利用会话ID作为Key,将元数据和Loc信息进行压缩后作为Value,将Key和Value送到分布式KV数据库中,KV数据库的数据文件存储到压缩&加密文件系统中。会话PCAP存储子模块,PCAP数据以SPCAP文件形式存储到压缩&加密文件系统中。其中,SPCAP具有指定的大小,每个SPCAP文件包括多条会话PCAP包;
检索代理模块,对于不同的实施例,包括单节点装置、基于LAN网络的分布式网络流量检索装置和基于WAN网络的分布式网络流量检索装置,检索代理对于检索请求进行路由,分别访问分布式网络中的各个节点。检索完成后,将检索结果路由到检索汇聚模块。
检索处理模块,包括预处理子模块、索引检索子模块、KV查询子模块、数据过滤子模块和BPF查询子模块。其中,预处理子模块,获取用户的查询字符串,进行预处理,包括IP范围检索映射为IP逻辑查询(IP1 AND IP2 AND…AND IPn)、语法解析和完善、检索分解为索引检索和Payload检索等。索引检索子模块,对于索引检索,根据检索字符串获取粗粒度索引组和细粒度索引组列表。通过分布式内存数据库对索引组进行查询,并返回会话ID列表。KV查询子模块,利用会话ID列表,通过查询分布式KV数据库获得与会话ID对应的会话元数据以及会话位置向量信息。数据过滤子模块,对于时间范围索引和位图的Key压缩引入的误报,对从分布式KV数据库中返回的检索结果进行二次筛选,将精准的元数据和会话位置向量信息返回。BPF查询子模块,利用简化的BPF语法对获取的PCAP包进行Payload查询。最后,将最终命中的元数据和会话PCAP包返回给检索汇聚模块;
检索汇聚模块,获取各个节点命中的元数据和会话PCAP包,进行时间排序后返回给客户。
对于基于LAN网络的分布式网络流量检索装置实施例,如图7所示,利用万兆交换机实现多个单机网络流量检索装置的LAN网络通信,多应用于用户网络带宽大于万兆环境,利用分流器对高速网络流量进行负载均衡,并接入多个单机实施例的网卡适配器,进而组成集群并利用Web交互组件统一进行管理和检索;
对于基于WAN网络的多节点分布式网络流量检索装置实施例,如图8所示,利用LAN网络和WAN网络实现多个单机网络流量检索装置的WAN网络通信,多应用于用户网络异地分支机构较多,每个分支机构接入一台或多台单机实施例,进而组成集群并利用Web交互组件统一进行管理和检索。
Claims (6)
1.一种分布式网络流量检索方法,其特征在于,包括如下步骤:
步骤1):数据采集,从交换机镜像口或分流器获取实时网络流量包送往主机的网络适配器,流量处理引擎从网络适配器实时捕获网络流量包;
步骤2):会话重组&元数据提取,流量处理引擎对收到的网络流量包按照会话定义进行会话重组,并提取包括五元组在内的相关会话元数据信息,并利用会话ID生成算法IDSession生成session_id;
会话ID生成算法IDSession的生成过程为:
201)利用64位,即一个Long字段存储会话ID;
202)根据5元组和随机种子Hash运算,生成20位Flow_Hash;
203)将Flow_Hash左移32位,取当前时间戳所在秒的低32位,并左移16位;
204)取当前时间戳所在的微秒的低32位;
205)对于64位ID中的高13位,对于后12位,高8位作为机器ID,支持256台分布式设备,低4位作为并发序列,支持16个并发;
206)对于64位ID中的第1位为符号位,默认为0,表示会话ID为正数Long型;
步骤3):会话落盘,将会话写入预分配的、指定大小的SPCAP磁盘文件中,同时,提取每个网络流量包在SPCAP文件位置偏移量,生成会话位置向量Loc_session_id;
步骤4):分布式索引构建,利用分布式会话索引建立算法DIndex建立分布式索引,并提出多项压缩位图技术压缩索引,降低内存的使用率,同时,利用分布式内存数据库技术实现在局域网和广域网条件下能够对分布式网络流量进行索引;
对于分布式会话索引建立算法DIndex,其算法描述如下:
401)获取会话元数据以及会话位置向量信息;
402)根据用户检索的时间粒度,分别建立粗粒度索引组和细粒度索引组,用户的时间范围查询将由这两类索引组构成,对于时间粗粒度索引组和时间细粒度索引组,其区别仅仅是建立索引的时间窗口不同,索引组构成是相同的;
403)索引组,由IP位图、Port位图、MAC位图和掩码位图组成;
404)提出利用低概率碰撞以及RBM算法对于位图进行压缩,进而提高检索效率且节约存储空间;
405)对于索引组存储,将索引组存储到分布式内存数据库中,该数据库具备冷热分离能力;
406)在分布式内存数据库中,对于索引组的命名按照提出的命名规范进行;
407)优化粗粒度索引组构建过程,即在粗粒度索引组构建过程中,为优化内存使用,使用合并细粒度索引组来构建粗粒度索引组;
408)对于会话元数据以及会话位置向量信息的存储,将这些数据以Key-Value的形式存储到分布式KV数据库中;
步骤5):分布式检索算法DSearch,支持用户查询多类别查询请求,包括时间窗口、五元组、IP掩码、IP范围、MAC地址、BPF查询的逻辑组合查询,且对于IP检索支持IP V4和IPV6格式,利用分布式索引和查询汇聚模块完成检索过程,返回给用户满足条件的会话元数据及相应的会话PCAP文件;
对于分布式检索算法DSearch,其过程如下:
501)获取用户的查询字符串,进行预处理,包括IP范围检索映射为IP逻辑查询、语法解析和完善、检索分解为索引检索和Payload检索;
502)对于索引检索,根据检索字符串获取粗粒度索引组和细粒度索引组列表;
503)通过分布式内存数据库对索引组进行查询,并返回会话ID列表;
504)利用会话ID列表,通过查询分布式KV数据库获得与会话ID对应的会话元数据以及会话位置向量信息;
505)数据过滤,对于时间范围索引和位图的Key压缩引入的误报,对从分布式KV数据库中返回的检索结果进行二次筛选,将精准的元数据和会话位置向量信息返回;
506)根据会话位置向量信息从HDD阵列的SPCAP文件中获取会话PCAP包,并提供下载链接;
507)支持用户对获取的PCAP包进行Payload查询,为提高性能,对标准的BPF语法进行优化;
508)将最终命中的元数据和会话PCAP包返回给用户;
步骤6):数据存储,会话重组和索引之后,对于索引文件需要存储到分布式数据库中,并利用内存和SSD实现冷热分离,对于元数据需要送到分布式KV数据库中,其中,SPCAP文件和KV数据库的数据文件需要存储到具备加密&压缩的文件系统中。
2.根据权利要求1所述的分布式网络流量检索方法,其特征在于,所述步骤2)中,对于会话ID生成算法IDSession:
对于指定的设备在同一时刻以及某一并发序列,生成的会话ID是全局唯一;
利用一个Long字段,即64位,可以存储此ID;
支持分布式集群,即不同的设备在同一时刻以及某一并发序列生成的ID是不同的;
会话ID满足趋势递增,满足KV数据库中的Key特性;
会话ID生成过程计算代价低。
3.根据权利要求1所述的分布式网络流量检索方法,其特征在于,所述步骤4)中,对于分布式会话索引建立算法DIndex,具有极高的索引压缩效率和检索效率,可适用于内存检索,同时,支持时间窗口检索、IP检索、Port检索、MAC检索、IP掩码检索、IP范围检索以及这些检索的逻辑运算,对于IP检索支持IPV4和IPV6,支持用户自定义其他字段的检索能力。
4.根据权利要求1所述的分布式网络流量检索方法,其特征在于,所述步骤5)中,对于分布式检索算法DSearch,有如下特征:
误报过滤,在索引建立过程中,为了节约索引空间,在时间范围索引定义了粗粒度索引组和细粒度索引组的概念,极大地降低了索引数量,但也引入了低概率的误报,此外,为了压缩索引本身的存储空间,基于若干应用场景的通用假设,以允许发生极低的碰撞概率导致的误报,对位图的Key范围进行优化,为了确保返回给客户的查询结果是精确的,数据过滤对于引入误报的检索项进行二次筛选,将精准的元数据和会话位置向量信息返回;
简化后的BPF语法,为提高性能,对标准的BPF语法进行优化,简化后的BPF语法,仅支持两层嵌套结构,且不支持一些不常用的或代价大的查询语法;
对于索引数据采用分布式内存数据库进行存储,对于元数据和会话位置向量信息采用分布式KV数据库进行存储,对于会话PCAP由于分布式系统的带宽问题,仅支持本地存储,故BPF语法在本地进行关键字匹配,满足条件的会话ID将被送往汇聚模块;
检索算法提供给用户以下检索能力,时间窗口检索、IP检索、Port检索、MAC检索、IP掩码检索、IP范围检索、Payload检索以及这些检索的逻辑运算; 此外,对于IP检索支持IPV4和IPV6,支持用户自定义其他字段的检索能力。
5.根据权利要求1所述的分布式网络流量检索方法,其特征在于,所述步骤6)中,对于数据存储,过程如下:
601)来自多个交换机镜像口的流量通过汇聚分流设备进行负载均衡,送往分布式网络流量检索设备集群;
602)会话重组&索引&存储组件获取网络流量,进行会话重组、提取元数据和会话位置向量信息、建立分布式索引、建立SPCAP文件操作;
603)分布式会话索引存储到分布式内存数据库中,并进行冷热分离,用户常访问的索引数据作为热数据放到内存,不常访问的索引数据作为冷数据放入SSD;
604)元数据和Loc存储到分布式KV数据库中;
605)PCAP数据以SPCAP文件形式进行存储,SPCAP具有指定的大小,每个SPCAP文件包括多条会话PCAP包;
606)在HDD上建立具有压缩和加密能力的文件系统,PCAP数据和KV数据库将存储到该文件系统上。
6.一种使用权利要求1所述的分布式网络流量检索方法进行分布式网络流量检索的装置,其特征在于,包括如下模块:
多路流量捕获模块:从交换机镜像口、分流器获得多路负载均衡的网络实时流量,送到一台或多台网络流量检索装置,由装置的网络适配器捕获实时的网络流量数据包;
会话重组&索引模块:包括会话重组子模块和索引子模块,其中,会话重组子模块将5元组相同的数据包按到达时间戳排序,并在内存缓冲区中进行存储,若会话超时、会话结束或缓冲区满情况发生,则判定会话完整,触发执行索引子模块,索引子模块包括元数据提取组件和索引构建组件,其中,元数据提取组件,对缓冲区中的完整会话进行分析,利用会话ID生成算法生成会话ID,同时提取会话的元数据信息,包括会话五元组、MAC地址、协议头相关字段;索引构建组件,按照索引组命名规范分别建立粗粒度索引组和细粒度索引组,并建立索引组内的相应位图索引;
存储模块,包括索引存储子模块、压缩&加密文件系统子模块、元数据存储子模块和会话PCAP存储子模块,其中,索引存储子模块,将各个节点的索引组存储到分布式内存数据库中,压缩&加密文件系统子模块,判断HDD阵列上是否存在压缩&加密文件系统,若不存在则进行建立,并选择压缩算法,开启实时写入压缩,元数据存储子模块,利用会话ID作为Key,将元数据和Loc信息进行压缩后作为Value,将Key和Value送到分布式KV数据库中,KV数据库的数据文件存储到压缩&加密文件系统中,会话PCAP存储子模块,PCAP数据以SPCAP文件形式存储到压缩&加密文件系统中;
检索代理模块,包括单节点装置、基于LAN网络的分布式网络流量检索装置和基于WAN网络的分布式网络流量检索装置,检索代理对于检索请求进行路由,分别访问分布式网络中的各个节点,检索完成后,将检索结果路由到检索汇聚模块;
检索处理模块,包括预处理子模块、索引检索子模块、KV查询子模块、数据过滤子模块和BPF查询子模块,其中,预处理子模块,获取用户的查询字符串,进行预处理,包括IP范围检索映射为IP逻辑查询、语法解析和完善、检索分解为索引检索和Payload检索;索引检索子模块,对于索引检索,根据检索字符串获取粗粒度索引组和细粒度索引组列表,通过分布式内存数据库对索引组进行查询,并返回会话ID列表;KV查询子模块,利用会话ID列表,通过查询分布式KV数据库获得与会话ID对应的会话元数据以及会话位置向量信息;数据过滤子模块,对于时间范围索引和位图的Key压缩引入的误报,对从分布式KV数据库中返回的检索结果进行二次筛选,将精准的元数据和会话位置向量信息返回;BPF查询子模块,利用简化的BPF语法对获取的PCAP包进行Payload查询;最后,将最终命中的元数据和会话PCAP包返回给检索汇聚模块;
检索汇聚模块,获取各个节点命中的元数据和会话PCAP包,进行时间排序后返回给客户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111237138.XA CN113672629B (zh) | 2021-10-25 | 2021-10-25 | 一种分布式网络流量检索方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111237138.XA CN113672629B (zh) | 2021-10-25 | 2021-10-25 | 一种分布式网络流量检索方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113672629A CN113672629A (zh) | 2021-11-19 |
CN113672629B true CN113672629B (zh) | 2021-12-28 |
Family
ID=78550960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111237138.XA Active CN113672629B (zh) | 2021-10-25 | 2021-10-25 | 一种分布式网络流量检索方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113672629B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115002179A (zh) * | 2022-05-06 | 2022-09-02 | 北京中睿天下信息技术有限公司 | 一种网络全流量会话流数据存储与还原的方法 |
CN115604207B (zh) * | 2022-12-12 | 2023-03-10 | 成都数默科技有限公司 | 一种面向会话的网络流量存储及索引方法 |
CN117851696B (zh) * | 2024-03-06 | 2024-05-03 | 北京新宇航星科技有限公司 | 一种数据包的检索方法、设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011060377A1 (en) * | 2009-11-15 | 2011-05-19 | Solera Networks, Inc. | Method and apparatus for real time identification and recording of artifacts |
CN105681397A (zh) * | 2015-12-30 | 2016-06-15 | 曙光信息产业(北京)有限公司 | 一种网络流量数据存储方法及系统、查询方法及装置 |
CN106470118A (zh) * | 2015-08-21 | 2017-03-01 | 睿石网云(北京)科技有限公司 | 一种应用系统性能异常检测方法和系统 |
CN109067711A (zh) * | 2018-07-16 | 2018-12-21 | 中国科学院声学研究所 | 一种网络数据包的快速回溯分析方法 |
CN110704714A (zh) * | 2019-09-27 | 2020-01-17 | 杭州九略智能科技有限公司 | pcap文件的快速数据索引方法及装置 |
CN110825940A (zh) * | 2019-09-24 | 2020-02-21 | 武汉智美互联科技有限公司 | 网络数据包存储和查询方法 |
CN112905852A (zh) * | 2021-03-04 | 2021-06-04 | 睿石网云(杭州)科技有限公司 | 一种基于会话索引的应用性能报文存储装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10264071B2 (en) * | 2014-03-31 | 2019-04-16 | Amazon Technologies, Inc. | Session management in distributed storage systems |
-
2021
- 2021-10-25 CN CN202111237138.XA patent/CN113672629B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011060377A1 (en) * | 2009-11-15 | 2011-05-19 | Solera Networks, Inc. | Method and apparatus for real time identification and recording of artifacts |
CN106470118A (zh) * | 2015-08-21 | 2017-03-01 | 睿石网云(北京)科技有限公司 | 一种应用系统性能异常检测方法和系统 |
CN105681397A (zh) * | 2015-12-30 | 2016-06-15 | 曙光信息产业(北京)有限公司 | 一种网络流量数据存储方法及系统、查询方法及装置 |
CN109067711A (zh) * | 2018-07-16 | 2018-12-21 | 中国科学院声学研究所 | 一种网络数据包的快速回溯分析方法 |
CN110825940A (zh) * | 2019-09-24 | 2020-02-21 | 武汉智美互联科技有限公司 | 网络数据包存储和查询方法 |
CN110704714A (zh) * | 2019-09-27 | 2020-01-17 | 杭州九略智能科技有限公司 | pcap文件的快速数据索引方法及装置 |
CN112905852A (zh) * | 2021-03-04 | 2021-06-04 | 睿石网云(杭州)科技有限公司 | 一种基于会话索引的应用性能报文存储装置 |
Non-Patent Citations (1)
Title |
---|
面向大规模网络流量数据的实时汇聚查询关键技术研究;郭庆 等;《小型微型计算机系统》;20200630;第41卷(第6期);1314-1320 * |
Also Published As
Publication number | Publication date |
---|---|
CN113672629A (zh) | 2021-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113672629B (zh) | 一种分布式网络流量检索方法和装置 | |
US11757740B2 (en) | Aggregation of select network traffic statistics | |
CN113590910B (zh) | 一种网络流量检索方法和装置 | |
US6775737B1 (en) | Method and apparatus for allocating and using range identifiers as input values to content-addressable memories | |
US7536476B1 (en) | Method for performing tree based ACL lookups | |
US8335780B2 (en) | Scalable high speed relational processor for databases and networks | |
CN103714134B (zh) | 一种网络流量数据索引方法及系统 | |
CN113162818A (zh) | 一种分布式流量采集分析的实现方法及系统 | |
CN110619066B (zh) | 一种基于目录树的信息获取方法和装置 | |
CN111629081A (zh) | 互联网协议ip地址数据处理方法、装置及电子设备 | |
US6970971B1 (en) | Method and apparatus for mapping prefixes and values of a hierarchical space to other representations | |
CN104009984A (zh) | 基于倒排列表的网流索引检索与压缩的方法 | |
Li et al. | A survey of sketches in traffic measurement: Design, optimization, application and implementation | |
Nickless et al. | Combining Cisco {NetFlow} Exports with Relational Database Technology for Usage Statistics, Intrusion Detection, and Network Forensics | |
CN113037551B (zh) | 一种基于流量切片的涉敏业务快速识别定位方法 | |
Elsen et al. | goProbe: a scalable distributed network monitoring solution | |
Vijay et al. | Implementation of memory-efficient linear pipelined IPv6 lookup and its significance in smart cities | |
CN110399438B (zh) | 一种gis点位信息查询方法及装置 | |
Chen et al. | ANTI: An Adaptive Network Traffic Indexing Algorithm for High-Speed Networks | |
JP6980412B2 (ja) | 局所性保持ハッシュを使用する効率的な区間探索のためのシステム及び方法 | |
CN114077620A (zh) | 一种面向结构化流式数据的缓存方法及系统 | |
CN116389322B (zh) | 流量数据处理方法、装置、计算机设备和存储介质 | |
Dai et al. | An advanced TCAM-sram architecture for ranges towards minimizing packet classifiers | |
Lin et al. | Improved IP lookup technology for trie-based data structures | |
CN110474938B (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 |