CN112637073B - 一种可扩展规则空间的实现方法 - Google Patents
一种可扩展规则空间的实现方法 Download PDFInfo
- Publication number
- CN112637073B CN112637073B CN202011505669.8A CN202011505669A CN112637073B CN 112637073 B CN112637073 B CN 112637073B CN 202011505669 A CN202011505669 A CN 202011505669A CN 112637073 B CN112637073 B CN 112637073B
- Authority
- CN
- China
- Prior art keywords
- pipeline
- rule
- processing module
- output
- input port
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种可扩展规则空间的实现方法,包括步骤:S1、报文进入pipeline 1输入端口;S2、查询规则表1后,将查询规则1命中结果携带进报文,并输出至TM处理模块;S3、TM处理模块经过内部的决策,指定转发至任一输出端口,并携带信息添加1输出至pipeline 2输入端口~pipeline N输入端口中的任一输入端口,设定为pipeline X输入端口;S4、根据步骤S2、S3的环回功能,直到报文经过所有剩余的输入端口和输出端口。本发明基于pipeline的折叠技术,实现了每个pipeline的不同编程,扩展了规则空间和提高了资源的利用效率,摆脱了芯片固化的规则优先级的限制,可以根据实际需求动态的调整规则的输出优先级。
Description
技术领域
本发明涉及数据通讯和数据安全技术领域,尤其涉及的是一种可扩展规则空间的实现方法。
背景技术
三大运营商和国家相关安全部门需要通过对网络拓扑结构中的大量高速流量进行解析和过滤,完成流量汇聚、采集、分流、深度包检测(DPI)、深度流检测(DFI)、深度包提取(DPE)、协议与应用识别、协议还原、流控等处理。过滤处理的方法包括掩码规则,精确规则,正则表达式规则,字符串规则,以及掩码/精确和字符串组合出来的复合规则以及衍生规则等。
当前在数据通信和安全领域的前端,进行大容量流量采集过滤时,基本都是通过交换芯片进行流量的筛选,过滤和分流,而交换芯片的ACL规则是通过交换芯片内部的tcam及其他其它资源来实现的。交换芯片内部一般分为多个pipeline,每个pipeline都挂有单独的内部tcam及其它资源。目前的实现方案都是通过CPU给所有的pipeline统一进行配置,每个pipeline上所挂的tcam的配置都是相同的。
如图1和图2,为常规的交换芯片处理框架示意图以及流程图。流量从端口Ingress进来后,通过查询各自pipeline之下的tcam规则表,将规则表的命中信息标记在报文中,转发到TM模块之后,由TM模块进行输出决策,最后按照决策结果从engress进行输出。由于所有pipeline下的tcam配置的规则都是一样的,所以从归属于不同pipeline的端口进来的流量,都可以查询相同的规则集,输出相同的规则命中结果,整个芯片可以看做所有的pipeline共享tcam资源。
上述常规设计存在有两种缺陷:
1、由于所有pipeline下挂接的tcam配置的规则都是一样的,而芯片的内部tcam资源容量有限,导致掩码规则的数量很少,一般只有1000-2000条。
2、基于pipeline下tcam配置规则都是一样的,而Egress模块也不具备可编程性,导致规则的优先级是确定的,不能依据实际的需要而作出相应的改变。
因此,现有技术存在缺陷,需要改进。
发明内容
本发明所要解决的技术问题是:提供一种可扩展规则空间的实现方法,该方法采用基于P4语言的交换芯片实现了规则容量的扩展,以解决上述技术问题。
本发明的技术方案如下:一种可扩展规则空间的实现方法,包括Ingress处理模块、TM处理模块以及Egress处理模块,所述Ingress处理模块包括若干pipeline输入端口,依次设定为pipeline 1输入端口~pipeline N输入端口,所述Egress处理模块包括若干pipeline输出端口,依次设定为pipeline 1输出端口~pipeline N输出端口,输入端口和输出端口的数量一致,
其中,Ingress处理模块、TM处理模块以及Egress处理模块分别可编程;
根据上述各模块还包括如下步骤:
S1、报文进入pipeline 1输入端口;
S2、查询规则表1后,将查询规则1命中结果携带进报文,并输出至TM处理模块;
S3、TM处理模块经过内部的决策,指定转发至pipeline 1输出端口~pipeline N输出端口中的任一输出端口,设定为pipeline x输出端口,并携带信息添加1输出至pipeline 2输入端口~pipeline N输入端口中的任一输入端口,设定为pipeline X输入端口;
S4、查询规则表X后,将查询规则X命中结果携带进报文,并输出至TM处理模块;
S5、TM处理模块经过内部的决策,指定转发至pipeline 1输出端口~pipeline N输出端口中除pipeline x输出端口以外的任一输出端口,并携带信息添加2输出至pipeline 2输入端口~pipeline N输入端口中除pipeline X输入端口以外的任一输入端口,设定为pipeline X’输入端口;
S6、根据步骤S2、S3或者步骤S4、S5的环回功能,直到报文经过所有剩余的输入端口和输出端口,并以最后一个输出端口作为与外部对接的端口。
采用上述各个技术方案,所述的可扩展规则空间的实现方法中,查询规则中的规则为掩码规则。
采用上述各个技术方案,所述的可扩展规则空间的实现方法中,查询规则中的规则为精确规则。
采用上述各个技术方案,所述的可扩展规则空间的实现方法中,查询规则中的规则为字符串规则。
采用上述各个技术方案,所述的可扩展规则空间的实现方法中,N为偶数。
采用上述各个技术方案,本发明具有如下有益效果:
1、基于pipeline的折叠技术,实现了每个pipeline的不同编程,扩展了规则空间和提高了资源的利用效率;如果以M代表原方案规则的条数,N代表芯片的Pipeline的个数(N>=2,且N为偶数),则采用此方案后,规则的容量扩展为M*N,较原方案扩了N倍。
2、基于可编程的Egress模块的灵活性,摆脱了芯片固化的规则优先级的限制,可以根据实际需求动态的调整规则的输出优先级。
附图说明
图1为常规交换芯片处理框架示意图;
图2为常规交换芯片流程处理示意图;
图3为本发明的掩码规则的一种处理流程示意图;
图4为本发明的掩码规则的另一种处理流程示意图;
图5为本发明的精确规则处理流程示意图;
图6为本发明的字符串规则处理流程示意图。
具体实施方式
以下结合附图和具体实施例,对本发明进行详细说明。
本实施例提供了一种可扩展规则空间的实现方法,包括Ingress处理模块、TM处理模块以及Egress处理模块,所述Ingress处理模块包括若干pipeline输入端口,依次设定为pipeline 1输入端口~pipeline N输入端口,所述Egress处理模块包括若干pipeline输出端口,依次设定为pipeline 1输出端口~pipeline N输出端口,输入端口和输出端口的数量一致。如图1和图2所示,为常规的交换芯片处理框架及其流程图,由于Ingress处理模块和Egress处理模块不可编程,报文进入后类似于平行输出,导致整体容量较小。
如图3~6,为本发明创造处理流程,其中,Ingress处理模块、TM处理模块以及Egress处理模块分别可编程。因此,基于本发明创造中的可编程处理模块,设定如下处理步骤:
S1、报文进入pipeline 1输入端口。此处的第一个输入端口实际上不限于pipeline 1输入端口,可以是pipeline 1输入端口~pipeline N输入端口的任一端口,只是为了表述方便,将第一个输入端口设定为pipeline 1输入端口。
S2、查询规则表1后,将查询规则1命中结果携带进报文,并输出至TM处理模块。
S3、TM处理模块经过内部的决策,指定转发至pipeline 1输出端口~pipeline N输出端口中的任一输出端口,设定为pipeline x输出端口,并携带信息添加1输出至pipeline 2输入端口~pipeline N输入端口中的任一输入端口,设定为pipeline X输入端口。
S4、查询规则表X后,将查询规则X命中结果携带进报文,并输出至TM处理模块。
S5、TM处理模块经过内部的决策,指定转发至pipeline 1输出端口~pipeline N输出端口中除pipeline x输出端口以外的任一输出端口,并携带信息添加2输出至pipeline 2输入端口~pipeline N输入端口中除pipeline X输入端口以外的任一输入端口,设定为pipeline X’输入端口。
S6、根据步骤S2、S3或者步骤S4、S5的环回功能,直到报文经过所有剩余的输入端口和输出端口,并以最后一个输出端口作为与外部对接的端口。
上述步骤,查询规则中的规可以为掩码规则、精确规则、字符串规则以及掩码/精确和字符串组合出来的复合规则及其衍生规则。
如图3和图4,为交换芯片实现的掩码规则,图5,为交换芯片实现的精确规则,图6,为交换芯片实现的字符串规则,其他规则与图3~6类似。
下面以图3和图4为例,以N为4对步骤S1~S6进行详细说明。
首先对图3进行说明:
1、报文首先进入pipeline 1输入端口。
2、查询查询掩码规则表1。
3、将查询掩码规则1命中结果携带进报文,并输出给下一级的TM处理模块。
4、经由内部的TM处理模块决策。
5、转发到Pipeline 2输出端口,并携带信息添加1输出。转发为TM处理模块内部决策后指定,可以指定任一输出端口,此处为转发到Pipeline 2输出端口。
6、然后通过实现的环回功能,报文又回到Pipeline 2输入端口。
7、查询掩码规则表2。
8、将查询掩码规则2命中结果携带进报文,并输出给下一级的TM处理模块。
9、经由内部的TM处理模块决策。
10、转发到Pipeline 1输出端口,并携带信息添加2输出。转发为TM处理模块内部决策后指定,可以指定任一输出端口,此处为转发到Pipeline 1输出端口。
11、然后通过实现的环回功能,报文又回到Pipeline 3输入端口。
12、查询掩码规则表3。
13、将查询掩码规则3命中结果携带进报文,并输出给下一级的TM处理模块。
14、经由内部的TM处理模块决策。
15、转发到Pipeline 4输出端口,并携带信息添加3输出。转发为TM处理模块内部决策后指定,可以指定任一输出端口,此处为转发到Pipeline 4输出端口。
16、然后通过实现的环回功能,报文又回到Pipeline 4输入端口。
17、查询掩码规则表4。
18、将查询掩码规则4命中结果携带进报文,并输出给下一级的TM处理模块。
19、经由内部的TM处理模块决策。
20、转发到Pipeline 3输出端口,并携带信息添加4输出。转发为TM处理模块内部决策后指定,可以指定任一输出端口,此处为转发到Pipeline 3输出端口。
21、报文最终从Pipeline 3输出端口输出,完成整个报文流程的转发。
再对图4进行说明:
1、报文首先进入pipeline 1输入端口。
2、查询查询掩码规则表1。
3、将查询掩码规则1命中结果携带进报文,并输出给下一级的TM处理模块。
4、经由内部的TM处理模块决策。
5、转发到Pipeline 2输出端口,并携带信息添加1输出,转发为TM处理模块内部决策后指定,可以指定任一输出端口,此处为转发到Pipeline 2输出端口。
6、然后通过实现的环回功能,报文又回到Pipeline 2输入端口。
7、查询掩码规则表2。
8、将查询掩码规则2命中结果携带进报文,并输出给下一级的TM处理模块。
9、经由内部的TM处理模块决策。
10、转发到Pipeline 3输出端口,并携带信息添加2输出。转发为TM处理模块内部决策后指定,可以指定任一输出端口,此处为转发到Pipeline 3输出端口。
11、然后通过实现的环回功能,报文又回到Pipeline 3输入端口。
12、查询掩码规则表3。
13、将查询掩码规则3命中结果携带进报文,并输出给下一级的TM处理模块。
14、经由内部的TM处理模块决策。
15、转发到Pipeline 4输出端口,并携带信息添加3输出。转发为TM处理模块内部决策后指定,可以指定任一输出端口,此处为转发到Pipeline 4输出端口。
16、然后通过实现的环回功能,报文又回到Pipeline 4输入端口。
17、查询掩码规则表4。
18、将查询掩码规则4命中结果携带进报文,并输出给下一级的TM处理模块。
19、经由内部的TM处理模块决策。
20、转发到Pipeline 1输出端口,并携带信息添加4输出。转发为TM处理模块内部决策后指定,可以指定任一输出端口,此处为转发到Pipeline 1输出端口。
21、报文最终从Pipeline 1输出端口输出,完成整个报文流程的转发。
需要说明的是,在报文处理的过程中,每一次处理都会对报文头部进行修改。并且,从图3和图4的详细步骤说明中可以看出,报文必须要依次经过所有的输入端口和输出端口。图3为两两交叉的方式,最终从倒数第2个输出端口输出,图4则为平行方式逐次往下,最终从第1个输出端口输出。采用这两种方式是比较优化的方式,可以保证不会漏掉其中任何一项,也是处理流程中逻辑关系最简单的。当然,图3中的方式,则N只能是偶数,如果为奇数则不能保证是两两交叉的方式,即N为偶数是最佳的方案。
因此,相较于常规的方案,本发明具有如下有益效果:
1、基于pipeline的折叠技术,实现了每个pipeline的不同编程,扩展了规则空间和提高了资源的利用效率;如果以M代表原方案规则的条数,N代表芯片的Pipeline的个数(N>=2,且N为偶数),则采用此方案后,规则的容量扩展为M*N,较原方案扩了N倍。其中,M代表的是单个芯片内部资源的容量。
2、基于可编程的Egress模块的灵活性,摆脱了芯片固化的规则优先级的限制,可以根据实际需求动态的调整规则的输出优先级。
以上仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种可扩展规则空间的实现方法,包括Ingress处理模块、TM处理模块以及Egress处理模块,所述Ingress处理模块包括若干pipeline输入端口,依次设定为pipeline 1输入端口~pipeline N输入端口,所述Egress处理模块包括若干pipeline输出端口,依次设定为pipeline 1输出端口~pipeline N输出端口,输入端口和输出端口的数量一致,其特征在于,
Ingress处理模块、TM处理模块以及Egress处理模块分别可编程;
根据上述各模块还包括如下步骤:
S1、报文进入pipeline 1输入端口;
S2、查询规则表1后,将查询规则1命中结果携带进报文,并输出至TM处理模块;
S3、TM处理模块经过内部的决策,指定转发至pipeline 1输出端口~pipeline N输出端口中的任一输出端口,设定为pipeline x输出端口,并携带信息添加1输出至pipeline 2输入端口~pipeline N输入端口中的任一输入端口,设定为pipeline X输入端口;
S4、查询规则表X后,将查询规则X命中结果携带进报文,并输出至TM处理模块;
S5、TM处理模块经过内部的决策,指定转发至pipeline 1输出端口~pipeline N输出端口中除pipeline x输出端口以外的任一输出端口,并携带信息添加2输出至pipeline 2输入端口~pipeline N输入端口中除pipeline X输入端口以外的任一输入端口,设定为pipeline X’输入端口;
S6、根据步骤S2、S3或者步骤S4、S5的环回功能,直到报文经过所有剩余的输入端口和输出端口,并以最后一个输出端口作为与外部对接的端口。
2.根据权利要求1所述的可扩展规则空间的实现方法,其特征在于,查询规则中的规则为掩码规则。
3.根据权利要求1所述的可扩展规则空间的实现方法,其特征在于,查询规则中的规则为精确规则。
4.根据权利要求1所述的可扩展规则空间的实现方法,其特征在于,查询规则中的规则为字符串规则。
5.根据权利要求2~4任一所述的可扩展规则空间的实现方法,其特征在于,N为偶数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011505669.8A CN112637073B (zh) | 2020-12-18 | 2020-12-18 | 一种可扩展规则空间的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011505669.8A CN112637073B (zh) | 2020-12-18 | 2020-12-18 | 一种可扩展规则空间的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112637073A CN112637073A (zh) | 2021-04-09 |
CN112637073B true CN112637073B (zh) | 2022-02-25 |
Family
ID=75317210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011505669.8A Active CN112637073B (zh) | 2020-12-18 | 2020-12-18 | 一种可扩展规则空间的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112637073B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881064A (zh) * | 2018-06-26 | 2018-11-23 | 新华三技术有限公司 | 报文信息获取方法和发送方法 |
CN110011920A (zh) * | 2019-04-11 | 2019-07-12 | 盛科网络(苏州)有限公司 | 一种报文处理方法及装置 |
CN110647071A (zh) * | 2019-09-05 | 2020-01-03 | 华为技术有限公司 | 一种控制数据传输的方法、装置及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10778612B2 (en) * | 2016-05-26 | 2020-09-15 | Arista Networks, Inc. | Variable TCAM actions |
-
2020
- 2020-12-18 CN CN202011505669.8A patent/CN112637073B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881064A (zh) * | 2018-06-26 | 2018-11-23 | 新华三技术有限公司 | 报文信息获取方法和发送方法 |
CN110011920A (zh) * | 2019-04-11 | 2019-07-12 | 盛科网络(苏州)有限公司 | 一种报文处理方法及装置 |
CN110647071A (zh) * | 2019-09-05 | 2020-01-03 | 华为技术有限公司 | 一种控制数据传输的方法、装置及存储介质 |
Non-Patent Citations (2)
Title |
---|
A Proof of Concept implementation of a RINA interior router using P4-enabled software targets;Sergio Gimenez;《2020 23rd Conference on Innovation in Clouds, Internet and Networks and Workshops (ICIN)》;20200409;第57-62页 * |
基于可编程硬件的虚拟路由器数据平面设计与实现;刘中金等;《电子学报》;20130715(第07期);第1268-1272页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112637073A (zh) | 2021-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2810089B1 (en) | Systems and methods for packet filtering and switching | |
US7095744B2 (en) | Method and system for switching variable sized packets | |
US6683885B1 (en) | Network relaying apparatus and network relaying method | |
Agrawal et al. | Simulation of network on chip for 3D router architecture | |
EP2664108B1 (en) | Asymmetric ring topology for reduced latency in on-chip ring networks | |
CN113630347B (zh) | 一种数据传输方法、系统、存储介质及设备 | |
CN101242362A (zh) | 查找键值生成装置及方法 | |
US9548944B2 (en) | Systems, apparatus, and methods for non-blocking switch networks | |
CN103401774A (zh) | 一种基于堆叠系统的报文转发方法和设备 | |
US7684328B2 (en) | Data transfer network | |
Manel et al. | An efficient MPLS-based source routing scheme in software-defined wide area networks (SD-WAN) | |
CN103597789A (zh) | 具有端口解析模块的结构芯片 | |
CN112637073B (zh) | 一种可扩展规则空间的实现方法 | |
CN103179109B (zh) | 基于二级会话查询功能的过滤分流装置及其方法 | |
CN107911158B (zh) | 一种基于虚拟数据平面的服务系统以及提供服务的方法 | |
CN1719805A (zh) | 3D Torus交换网络中报文保序的多路径路由方法 | |
CN103780437B (zh) | 一种信息同步方法和装置 | |
US20110222541A1 (en) | Network System, Edge Node, and Relay Node | |
CN105830402B (zh) | 分组转发系统、控制装置及中继设备的控制方法和程序 | |
CN104363185B (zh) | 一种微型复合网络数据交换系统 | |
CN102308538A (zh) | 报文处理方法及装置 | |
CN114268596A (zh) | 基于交换芯片的堆叠系统破环保护的方法及应用 | |
US20140133483A1 (en) | Distributed Switch Architecture Using Permutation Switching | |
CN113285878A (zh) | 负载分担的方法、第一网络设备 | |
CN110430146A (zh) | 基于CrossBar交换的信元重组方法及交换结构 |
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 |