CN111163077A - 一种基于网络处理器实现多维连续掩码的系统和方法 - Google Patents
一种基于网络处理器实现多维连续掩码的系统和方法 Download PDFInfo
- Publication number
- CN111163077A CN111163077A CN201911364249.XA CN201911364249A CN111163077A CN 111163077 A CN111163077 A CN 111163077A CN 201911364249 A CN201911364249 A CN 201911364249A CN 111163077 A CN111163077 A CN 111163077A
- Authority
- CN
- China
- Prior art keywords
- matching
- longest prefix
- module
- rule
- message
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于网络处理器实现多维连续掩码的系统和方法,基于网络处理器,为每一个维度构建一张最长前缀匹配表,由决策动作判断是否创建二级哈希表,根据规则匹配结果,执行相应的策略。本发明可以不需要外挂芯片,利用网络处理器芯片提供的特性,实现大容量掩码规则的多维数据包分类。
Description
技术领域
本发明涉及报文分类技术领域,尤其是一种基于网络处理器实现多维连续掩码的系统和方法。
背景技术
报文分类(Packet Classification)指通过匹配规则库中的规则对数据报文进行归类处理,以辨识其所属的流。报文分类可以分为单维报文分类算法和多维报文分类算法,单维报文分类指根据数据包头的某个域进行匹配的过程,是多维数据报文分类的基础。多维报文分类针对两个或更多的字段进行分类,一般为源IP地址、目的IP地址、源端口、目的端口、协议等多个维度的匹配。
随着网络技术的快速发展,针对多个字段进行分类的应用越来越多,多维报文分类算法变得越发重要。理想的报文分类算法是具有较低的时间和空间开销,并具有较高的性能,以及良好的可扩展性。目前来说,基于TCAM的报文分类方法在多维掩码算法中性能最优。然后对于网络处理器而言,需要外挂TCAM芯片,且TCAM容量有限,不能满足大容量的规则需求。
发明内容
本发明所要解决的技术问题在于,提供一种基于网络处理器实现多维连续掩码的系统和方法,利用网络处理器芯片提供的特性,实现大容量掩码规则的多维数据包分类。
为解决上述技术问题,本发明提供一种基于网络处理器实现多维连续掩码的系统,包括:表项配置模块、报文解析模块、规则匹配模块和决策处理模块;表项配置模块创建和配置表项,基于网络处理器,构建最长前缀匹配表和二级哈希表,最长前缀匹配表是网络处理器提供的按位连续掩码表,支持最长前缀匹配;报文解析模块用以解析IP报文,以获取源IP、源端口、目的IP、目的端口、协议;规则匹配模块根据报文解析模块输出的关键字信息,查找维度1对应的最长前缀匹配表,然后是维度2对应的最长前缀匹配表,直到查找完所有维度的最长前缀匹配表,若无二级哈希表,最后一个维度的最长前缀匹配表的表结果字段为规则匹配处理策略,若有二级哈希表,则根据最后一个维度的最长前缀匹配表的表结果的索引字段查二级哈希表,得到规则匹配处理策略;决策处理模块根据规则匹配模块得到的处理策略,当匹配发生时对报文进行相应地处理。
优选的,报文解析模块解析更多的关键字信息,dns域名和http url。
相应的,一种基于网络处理器实现多维连续掩码的方法,包括如下步骤:
(1)基于网络处理器,根据要过滤的维度数量,为每一个维度构建一张最长前缀匹配表,如支持源IP和目的IP的前缀匹配,则是2维连续掩码,创建2张最长前缀匹配表;
(2)根据规则匹配处理策略的长度,确定是否需要构建二级哈希表,二级哈希表的键值为最长前缀匹配表结果中的全局分配的唯一索引,结果为规则匹配处理策略,KeySize为4B,ResultSize为8B,可根据规则匹配处理动作的长度,修改为16B;
(3)对到达的报文流量,提取关键字信息,在相应的规则库中进行多维匹配查找;
(4)根据规则匹配策略,对报文进行相应地处理。
本发明的有益效果为:可以不需要外挂芯片,利用网络处理器芯片提供的特性,实现大容量掩码规则的多维数据包分类。
附图说明
图1为本发明的系统结构示意图。
图2为本发明的不构建二级哈希表示意图。
图3为本发明的构建二级哈希表示意图。
具体实施方式
如图1所示,一种基于网络处理器实现多维连续掩码的系统,包括:表项配置模块、报文解析模块、规则匹配模块和决策处理模块;表项配置模块创建和配置表项。基于网络处理器,构建最长前缀匹配(连续掩码)表和二级哈希表。最长前缀匹配表是网络处理器提供的按位连续掩码表,支持最长前缀匹配;报文解析模块用以解析IP报文,以获取源IP、源端口、目的IP、目的端口、协议等;规则匹配模块根据报文解析模块输出的关键字信息,查找维度1对应的最长前缀匹配表,然后是维度2对应的最长前缀匹配表,直到查找完所有维度的最长前缀匹配表。若无二级哈希表,最后一个维度的最长前缀匹配表的表结果字段为规则匹配处理策略。若有二级哈希表,则根据最后一个维度的最长前缀匹配表的表结果的索引字段查二级哈希表,得到规则匹配处理策略;决策处理模块根据规则匹配模块得到的处理策略,当匹配发生时对报文进行相应地处理。
一种基于网络处理器实现多维连续掩码的方法,包括如下步骤:
步骤1、基于网络处理器,根据要过滤的维度数量,为每一个维度构建一张最长前缀匹配表。如支持源IP和目的IP的前缀匹配,则是2维连续掩码,创建2张最长前缀匹配表。
步骤2、根据规则匹配处理策略的长度,确定是否需要构建二级哈希表。二级哈希表的键值为最长前缀匹配表结果中的全局分配的唯一索引,结果为规则匹配处理策略。KeySize为4B,ResultSize为8B(可根据规则匹配处理动作的长度,修改为16B)。
步骤3、对到达的报文流量,提取关键字信息(如:五元组信息),在相应的规则库中进行多维匹配查找。
步骤4、根据规则匹配策略,对报文进行相应地处理。
本实施例提供一种二维(源/目的IP)连续掩码的系统和方法。维度1用于SIP前缀匹配,维度2用于DIP前缀匹配。
源/目的IP两个域为前缀匹配,规则的形式一般为(匹配地址/前缀长度),如规则Rule1,SIP:192.168.1.0/24,DIP:10.45.133.0/16,ACTION:DENY。源IP字段192.168.1.0/24,表示报文的源IP地址只要前24位与192.168.1.0匹配即可,目的IP字段10.45.133.0/16,表示报文的目的IP地址只要前16位与10.45.133.0匹配即可。
根据需要构建一张或多张最长前缀匹配表。每一张表项的键值为其中一个维度,RESULT为全局分配的唯一索引或决策动作,根据决策动作判断是否需要构建二级哈希表,有图2和图3两种情况。
如图2所示,维度1用于SIP前缀匹配:Key:SIP,Result:Ctrl+INDEX1;KeySize:4B,ResultSize:4B;SIP为192.168.1.0,只要报文的源IP地址前24位与之匹配即可得到Result:Ctrl+INDEX1,INDEX1是SIP前缀匹配表结果全局分配的唯一索引。
维度2用于DIP匹配:Key:INDEX1+DIP,Result:Ctrl+决策动作eySize:7B,ResultSize:4B;Key由维度1查到的全局索引和DIP 10.45.133.0组成,匹配即可查到Result:Ctrl+决策处理,最后根据决策动作对报文进行相应处理。
如图3所示,维度1:Key:SIP,Result:Ctrl+INDEX1;KeySize:4B,ResultSize:4B;维度2:Key:INDEX1+DIP,Result:Ctrl+INDEX2;KeySize:7B,ResultSize:4B;二级哈希表:Key:INDEX2,Result:Ctrl+决策动作;KeySize:4B,ResultSize:8B。
图3中维度1和维度2的前缀匹配方式与图2相同,唯一不同的是由于决策动作不同新建了二级哈希表,二级哈希表的Key就是维度2查到的全局索引,Result就是决策动作,然后根据决策动作对报文进行相应处理。
Claims (3)
1.一种基于网络处理器实现多维连续掩码的系统,其特征在于,包括:表项配置模块、报文解析模块、规则匹配模块和决策处理模块;表项配置模块创建和配置表项,基于网络处理器,构建最长前缀匹配表和二级哈希表,最长前缀匹配表是网络处理器提供的按位连续掩码表,支持最长前缀匹配;报文解析模块用以解析IP报文,以获取源IP、源端口、目的IP、目的端口、协议;规则匹配模块根据报文解析模块输出的关键字信息,查找维度1对应的最长前缀匹配表,然后是维度2对应的最长前缀匹配表,直到查找完所有维度的最长前缀匹配表,若无二级哈希表,最后一个维度的最长前缀匹配表的表结果字段为规则匹配处理策略,若有二级哈希表,则根据最后一个维度的最长前缀匹配表的表结果的索引字段查二级哈希表,得到规则匹配处理策略;决策处理模块根据规则匹配模块得到的处理策略,当匹配发生时对报文进行相应地处理。
2.如权利要求1所述的基于网络处理器实现多维连续掩码的系统,其特征在于,报文解析模块解析更多的关键字信息,dns域名和http url。
3.一种基于网络处理器实现多维连续掩码的方法,其特征在于,包括如下步骤:
(1)基于网络处理器,根据要过滤的维度数量,为每一个维度构建一张最长前缀匹配表,如支持源IP和目的IP的前缀匹配,则是2维连续掩码,创建2张最长前缀匹配表;
(2)根据规则匹配处理策略的长度,确定是否需要构建二级哈希表,二级哈希表的键值为最长前缀匹配表结果中的全局分配的唯一索引,结果为规则匹配处理策略,KeySize为4B,ResultSize为8B;
(3)对到达的报文流量,提取关键字信息,在相应的规则库中进行多维匹配查找;
(4)根据规则匹配策略,对报文进行相应地处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911364249.XA CN111163077A (zh) | 2019-12-26 | 2019-12-26 | 一种基于网络处理器实现多维连续掩码的系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911364249.XA CN111163077A (zh) | 2019-12-26 | 2019-12-26 | 一种基于网络处理器实现多维连续掩码的系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111163077A true CN111163077A (zh) | 2020-05-15 |
Family
ID=70556699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911364249.XA Pending CN111163077A (zh) | 2019-12-26 | 2019-12-26 | 一种基于网络处理器实现多维连续掩码的系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111163077A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114390117A (zh) * | 2021-12-01 | 2022-04-22 | 中电科思仪科技股份有限公司 | 一种基于fpga的高速连续数据流存储处理装置及方法 |
CN114448882A (zh) * | 2020-11-04 | 2022-05-06 | 国家计算机网络与信息安全管理中心 | 一种实现高性能大容量路由设备的设计方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040236720A1 (en) * | 2000-04-06 | 2004-11-25 | International Business Machines Corporation | Longest prefix match lookup using hash function |
CN1805435A (zh) * | 2005-01-13 | 2006-07-19 | 中兴通讯股份有限公司 | 一种IPv6多域分类处理方法 |
CN101340363A (zh) * | 2007-12-24 | 2009-01-07 | 中国科学技术大学 | 一种实现多元数据包分类的方法及设备 |
-
2019
- 2019-12-26 CN CN201911364249.XA patent/CN111163077A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040236720A1 (en) * | 2000-04-06 | 2004-11-25 | International Business Machines Corporation | Longest prefix match lookup using hash function |
CN1805435A (zh) * | 2005-01-13 | 2006-07-19 | 中兴通讯股份有限公司 | 一种IPv6多域分类处理方法 |
CN101340363A (zh) * | 2007-12-24 | 2009-01-07 | 中国科学技术大学 | 一种实现多元数据包分类的方法及设备 |
Non-Patent Citations (2)
Title |
---|
刘铎: "快速包分类算法的研究", 《万方学位论文》 * |
喻中超等: "一种适用于多维的快速IP分类算法", 《软件学报》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114448882A (zh) * | 2020-11-04 | 2022-05-06 | 国家计算机网络与信息安全管理中心 | 一种实现高性能大容量路由设备的设计方法 |
CN114390117A (zh) * | 2021-12-01 | 2022-04-22 | 中电科思仪科技股份有限公司 | 一种基于fpga的高速连续数据流存储处理装置及方法 |
CN114390117B (zh) * | 2021-12-01 | 2023-08-22 | 中电科思仪科技股份有限公司 | 一种基于fpga的高速连续数据流存储处理装置及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7536476B1 (en) | Method for performing tree based ACL lookups | |
Yu et al. | Efficient multimatch packet classification and lookup with TCAM | |
JP4452183B2 (ja) | プログラマブル状態マシンのデータ構造を作成して入力単語連鎖を構文解析する方法、プログラマブル状態マシンのデータ構造を使用して入力単語連鎖に対応する結果として得られた値を検索する方法、ワイヤスピードのディープ・パケット処理を行う方法、ディープ・パケット処理のための装置、チップ埋め込み装置、およびプログラミング・コード命令を含むコンピュータ・プログラム(ディープ・パケット処理のための方法および装置) | |
US20050021752A1 (en) | Reverse path forwarding protection of packets using automated population of access control lists based on a forwarding information base | |
US10462062B2 (en) | Memory efficient packet classification method | |
JP3881663B2 (ja) | フィールドレベルツリーを用いたパケット分類装置及び方法 | |
US20090190592A1 (en) | Two-stage computer network packet classification method and system | |
CN105591914B (zh) | 一种openflow流表的查表方法和装置 | |
CN1881950A (zh) | 使用频谱分析的分组分类加速 | |
KR101331018B1 (ko) | 패킷 분류 방법 및 그 장치 | |
CN101848248B (zh) | 一种规则查找方法和装置 | |
Yang et al. | Fast OpenFlow table lookup with fast update | |
CN111163077A (zh) | 一种基于网络处理器实现多维连续掩码的系统和方法 | |
US6970971B1 (en) | Method and apparatus for mapping prefixes and values of a hierarchical space to other representations | |
Perez et al. | Optimized packet classification for software-defined networking | |
US20060198379A1 (en) | Prefix optimizations for a network search engine | |
Lo et al. | Flow entry conflict detection scheme for software-defined network | |
Kekely et al. | Packet classification with limited memory resources | |
CN111950000A (zh) | 一种接入访问控制方法及设备 | |
CN109039911B (zh) | 一种基于hash查找方式共享ram的方法及系统 | |
Alimohammadi et al. | Common non-wildcard portion-based partitioning approach to SDN many-field packet classification | |
KR100662254B1 (ko) | 라우팅 시스템에서의 패킷 분류 장치 및 이를 위한 룰 구축 방법 | |
Chen et al. | CMT: an efficient algorithm for scalable packet classification | |
US10205658B1 (en) | Reducing size of policy databases using bidirectional rules | |
CN109729082B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200515 |