CN114553796B - 交换芯片基于cpu reason id实现CoPP的方法和装置 - Google Patents
交换芯片基于cpu reason id实现CoPP的方法和装置 Download PDFInfo
- Publication number
- CN114553796B CN114553796B CN202210175082.8A CN202210175082A CN114553796B CN 114553796 B CN114553796 B CN 114553796B CN 202210175082 A CN202210175082 A CN 202210175082A CN 114553796 B CN114553796 B CN 114553796B
- Authority
- CN
- China
- Prior art keywords
- message
- cpu
- copp
- module
- exceptionen
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
-
- 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/215—Flow control; Congestion control using token-bucket
-
- 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明提供一种交换芯片基于cpureasonid实现CoPP的方法和装置,该方法包括:在将报文上送CPU时赋予相应的cpureasonid,以用于上层协议栈区分具体的协议报文类型;为所有的cpureasonid映射一个exceptionIndex,并携带exceptionEn等于1的flag,exceptionEn用于标识报文在fwd模块是否需要复制上送CPU;在入口方向对携带exceptionEn等于1的flag的报文,根据其具体的exceptionIndex作为索引查找对应的CoppCtl表项获取限速Ptr;根据Ptr找到预设的Copp限速模块,Copp限速模块对接收到的报文进行处理,其中,所述Copp限速模块采用pps的单令牌桶模式,通过定时刷新令牌,来控制报文的转发和上送。
Description
技术领域
本发明涉及交换机技术领域,尤其涉及一种交换芯片基于cpu reason id实现CoPP的方法和装置。
背景技术
交换机的转发引擎具有处理性能高的优点,若通过转发引擎在转发面实现安全检测,识别出非法报文并合理的处理,对网络安全来说是最好的方案。然而转发引擎一般都是通过硬件实现,如ASIC芯片、NP芯片等,其灵活性不如纯软件,其只能够对具有固定特征、无需复杂计算和处理的非法报文进行检测,并且安全处理机制要求较为简单且流程相对固定。但转发面相对于控制面来说,其处理能力可以认为是无限的,转发面能够轻易的上送海量的报文,将控制面直接冲击过载。
为了防止转发面上送过多的报文给控制面,需要对上送管道进行限速,同时,为了不影响正常的业务运行,转发面与控制面间的管道控制机制只能保证CPU不会被攻击过载,并不感知上送的报文是否存在安全隐患。而Copp可实现上述目的,Copp(Control ofPlaneProtect,控制平面保护),用于对上送CPU的报文进行限速,可针对上送CPU的报文进行限制和约束,使单位时间内上送CPU报文的数量限制在一定范围之内,从而保护CPU的安全,保证CPU对业务的正常处理。
目前现有对CPU报文限速的方法,有通过入方向使用ACL匹配报文特征,进而将报文Copy一份至CPU,并设置一个限速上送。因为交换芯片中有很多硬件逻辑会进行协议报文的识别,并且芯片ACL的资源是十分宝贵的,所以使用这种方式即使芯片已经识别了协议报文却还是需要额外配置一条ACL才能进行限速处理。这种方式就导致了不必要的ACL的条目浪费。还有的方法是使用cpu队列的流量整形,因为cpu队列有限,所以这种方式会导致多种协议报文混在一个队列中,无法做到精确的针对每一种协议报文进行限速。
发明内容
为了解决上述技术问题,本发明公开了一种交换芯片基于cpu reason id实现CoPP的方法和装置,提出了一种不需要使用ACL功能,基于芯片硬件逻辑识别的协议报文的cpu reason id进行上送控制面限速的方法。
为达到上述目的,本发明的技术方案提供了一种交换芯片基于cpu reason id实现CoPP的方法,其包括如下步骤:
在将报文上送CPU时赋予相应的cpu reason id,以用于上层协议栈区分具体的协议报文类型;
为所有的cpu reason id映射一个exceptionIndex,并携带exceptionEn等于1的flag,exceptionEn用于标识报文在转发模块是否需要复制上送CPU;
在入口方向对携带exceptionEn等于1的flag的报文,根据其具体的exceptionIndex作为索引查找对应的CoppCtl表项获取限速Ptr;
根据Ptr找到预设的Copp限速模块,所述Copp限速模块对接收到的报文进行处理,其中,所述Copp限速模块采用pps的单令牌桶模式,通过定时刷新令牌,来控制报文的转发和上送。
在进一步的技术方案中,所述Copp限速模块对接收到的报文进行处理包括:当接收到报文时,查看对应的Copp表项的令牌桶是否为空,如果为空,则将该报文对应的exceptionEn置为0,并将该报文按照正常数据报文进行处理传至后续的模块;如果令牌桶中有令牌,则减去一个令牌,并将报文传至后续处理模块,后续转发模块根据exceptionEn的flag将报文上送CPU进行处理。
在进一步的技术方案中,令牌桶中的令牌按照用户配置的限速速率由芯片按照一定频率定时刷新至令牌桶中。
在进一步的技术方案中,上送CPU的报文包括用户自定义的协议报文以及通用协议报文。
在进一步的技术方案中,用户自定义的协议报文在L2PDU、L3PDU、ACL、FLOWMATCH模块中实现。
本发明还提供了一种交换芯片基于cpu reason id实现CoPP的装置,其包括如下模块:
cpu reason id赋予模块,用于在将报文上送CPU时赋予相应的cpu reason id,以用于上层协议栈区分具体的协议报文类型;
exceptionIndex映射模块,用于为所有的cpu reason id映射一个exceptionIndex,并携带exceptionEn等于1的flag,exceptionEn用于标识报文在转发模块是否需要复制上送CPU;
限速Ptr获取模块,用于在入口方向对携带exceptionEn等于1的flag的报文,根据其具体的exceptionIndex作为索引查找对应的CoppCtl表项获取限速Ptr;
报文处理模块,用于根据Ptr找到预设的Copp限速模块,所述Copp限速模块对接收到的报文进行处理,其中,所述Copp限速模块采用pps的单令牌桶模式,通过定时刷新令牌,来控制报文的转发和上送。
在进一步的技术方案中,所述Copp限速模块对接收到的报文进行处理包括:当接收到报文时,查看对应的Copp表项的令牌桶是否为空,如果为空,则将该报文对应的exceptionEn置为0,并将该报文按照正常数据报文进行处理传至后续的模块;如果令牌桶中有令牌,则减去一个令牌,并将报文传至后续处理模块,后续转发模块根据exceptionEn的flag将报文上送CPU进行处理。
在进一步的技术方案中,令牌桶中的令牌按照用户配置的限速速率由芯片按照一定频率定时刷新至令牌桶中。
在进一步的技术方案中,上送CPU的报文包括用户自定义的协议报文以及通用协议报文。
在进一步的技术方案中,用户自定义的协议报文在L2PDU、L3PDU、ACL、FLOWMATCH模块中实现。
附图说明
图1是本发明交换芯片对上送CPU报文的处理流程的示意图;
图2是本发明交换芯片Copp限速模块的处理流程的示意图。
具体实施方式
下面结合具体实施例对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。
本发明为一种交换芯片基于cpu reason id实现CoPP的方法及装置,提出一种不需要使用ACL功能,基于芯片硬件逻辑识别的协议报文的cpu reason id进行上送控制面限速的方法。
交换芯片的上送CPU的报文可以大概分为两类,一类是用户自定义的一些协议报文在L2PDU、L3PDU、ACL、FLOWMATCH等模块实现,还有一类是芯片写死的一些通用的已知协议报文。对于这两类的报文在上送CPU时都会赋予一个cpu reason id用于上层协议栈区分具体的协议报文类型。本专利实现时会给所有的cpu reason id映射一个exceptionIndex,并携带exceptionEn等于1的flag,报文在入口方向对携带exceptionEn等于1的flag的报文,根据其具体的exceptionIndex作为索引查找对应的CoppCtl表项获取限速Ptr。根据Ptr找到预设的Copp限速模块,Copp限速模块采用pps的单令牌桶模式,通过定时刷新令牌,有报文通过则减少令牌,如果令牌为0时有报文通过则将对应的exceptionEn置至为0,这样在芯片的转发fwd模块就不会对报文进行复制上送CPU。exceptionEn是用于标识该报文在fwd模块是否需要复制上送CPU。
如图1所示,在交换芯片中L2PDU、L3PDU、ACL、FLOWMATCH这些模块以及通用协议报文识别可以赋予满足条件的报文exceptionIndex,并且置对应的exceptionEn为1,图1中的这些流程看似是并行的,实际在芯片中是串行的,优先级以第一个满足匹配为最高优先级。将对应的exceptionIndex用来索引CoppCtl,获取该cpu reason id对应的Copp Ptr,根据获取的Ptr,将报文代入Copp处理模块,并根据Copp模块的处理结果,对于pass的报文则进行上报送至CPU进行处理。
图2中示出了Copp模块具体如何处理接受到报文的情况。该模块采用单桶pps(packet per second)模式,当收到报文首先查看对应的Copp表项的令牌桶是否为空,如果为空则清除该报文的exceptionEn,并将报文按照正常数据报文进行处理传至后续的模块。如果令牌桶中有令牌,则减去一个令牌,这里因为是pps模式,所以只需减去一个令牌。然后将报文传至后续处理模块,后续转发模块根据exceptionEn的flag将报文上送CPU进行处理。令牌桶中的令牌按照用户配置的限速速率由芯片按照一定频率定时刷新至令牌桶中。
在本发明的第一实施方式中,提供了一种交换芯片基于cpu reason id实现CoPP的方法,其包括如下步骤:
在将报文上送CPU时赋予相应的cpu reason id,以用于上层协议栈区分具体的协议报文类型;
为所有的cpu reason id映射一个exceptionIndex,并携带exceptionEn等于1的flag,exceptionEn用于标识报文在fwd模块是否需要复制上送CPU;
在入口方向对携带exceptionEn等于1的flag的报文,根据其具体的exceptionIndex作为索引查找对应的CoppCtl表项获取限速Ptr;
根据Ptr找到预设的Copp限速模块,所述Copp限速模块对接收到的报文进行处理,其中,所述Copp限速模块采用pps的单令牌桶模式,通过定时刷新令牌,来控制报文的转发和上送。
在进一步的技术方案中,所述Copp限速模块对接收到的报文进行处理包括:当接收到报文时,查看对应的Copp表项的令牌桶是否为空,如果为空,则将该报文对应的exceptionEn置为0,并将该报文按照正常数据报文进行处理传至后续的模块;如果令牌桶中有令牌,则减去一个令牌,并将报文传至后续处理模块,后续转发模块根据exceptionEn的flag将报文上送CPU进行处理。
在进一步的技术方案中,令牌桶中的令牌按照用户配置的限速速率由芯片按照一定频率定时刷新至令牌桶中。
在进一步的技术方案中,上送CPU的报文包括用户自定义的协议报文以及通用协议报文。
在进一步的技术方案中,用户自定义的协议报文在L2PDU、L3PDU、ACL、FLOWMATCH模块中实现。
在本发明的第二实施方式中,还提供了一种交换芯片基于cpu reason id实现CoPP的装置,其包括如下模块:
cpu reason id赋予模块,用于在将报文上送CPU时赋予相应的cpu reason id,以用于上层协议栈区分具体的协议报文类型;
exceptionIndex映射模块,用于为所有的cpu reason id映射一个exceptionIndex,并携带exceptionEn等于1的flag,exceptionEn用于标识报文在fwd模块是否需要复制上送CPU;
限速Ptr获取模块,用于在入口方向对携带exceptionEn等于1的flag的报文,根据其具体的exceptionIndex作为索引查找对应的CoppCtl表项获取限速Ptr;
报文处理模块,用于根据Ptr找到预设的Copp限速模块,所述Copp限速模块对接收到的报文进行处理,其中,所述Copp限速模块采用pps的单令牌桶模式,通过定时刷新令牌,来控制报文的转发和上送。
在进一步的技术方案中,所述Copp限速模块对接收到的报文进行处理包括:当接收到报文时,查看对应的Copp表项的令牌桶是否为空,如果为空,则将该报文对应的exceptionEn置为0,并将该报文按照正常数据报文进行处理传至后续的模块;如果令牌桶中有令牌,则减去一个令牌,并将报文传至后续处理模块,后续转发模块根据exceptionEn的flag将报文上送CPU进行处理。
在进一步的技术方案中,令牌桶中的令牌按照用户配置的限速速率由芯片按照一定频率定时刷新至令牌桶中。
在进一步的技术方案中,上送CPU的报文包括用户自定义的协议报文以及通用协议报文。
在进一步的技术方案中,用户自定义的协议报文在L2PDU、L3PDU、ACL、FLOWMATCH模块中实现。
本发明针对上送CPU的各种协议报文做到不依赖ACL模块进行限速,从而释放出来ACL条目数供用户进行其他业务的配置。
以上所述的仅是本发明的优选实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (10)
1.一种交换芯片基于cpu reason id实现CoPP的方法,其特征在于,包括如下步骤:
在将报文上送CPU时赋予相应的cpu reason id,以用于上层协议栈区分具体的协议报文类型;
为所有的cpu reason id映射一个exceptionIndex,并携带exceptionEn等于1的flag,exceptionEn用于标识报文在转发模块是否需要复制上送CPU;
在入口方向对携带exceptionEn等于1的flag的报文,根据其具体的exceptionIndex作为索引查找对应的CoppCtl表项获取限速Ptr;
根据Ptr找到预设的Copp限速模块,所述Copp限速模块对接收到的报文进行处理,其中,所述Copp限速模块采用pps的单令牌桶模式,通过定时刷新令牌,来控制报文的转发和上送。
2.根据权利要求1所述的方法,其特征在于,所述Copp限速模块对接收到的报文进行处理包括:
当接收到报文时,查看对应的Copp表项的令牌桶是否为空,如果为空,则将该报文对应的exceptionEn置为0,并将该报文按照正常数据报文进行处理传至后续的模块;如果令牌桶中有令牌,则减去一个令牌,并将报文传至后续处理模块,后续转发模块根据exceptionEn的flag将报文上送CPU进行处理。
3.根据权利要求2所述的方法,其特征在于,令牌桶中的令牌按照用户配置的限速速率由芯片按照一定频率定时刷新至令牌桶中。
4.根据权利要求1-3中任一项所述的方法,其特征在于,上送CPU的报文包括用户自定义的协议报文以及通用协议报文。
5.根据权利要求4所述的方法,其特征在于,用户自定义的协议报文在L2PDU、L3PDU、ACL、FLOWMATCH模块中实现。
6.一种交换芯片基于cpu reason id实现CoPP的装置,其特征在于,包括如下模块:
cpu reason id赋予模块,用于在将报文上送CPU时赋予相应的cpu reason id,以用于上层协议栈区分具体的协议报文类型;
exceptionIndex映射模块,用于为所有的cpu reason id映射一个exceptionIndex,并携带exceptionEn等于1的flag,exceptionEn用于标识报文在转发模块是否需要复制上送CPU;
限速Ptr获取模块,用于在入口方向对携带exceptionEn等于1的flag的报文,根据其具体的exceptionIndex作为索引查找对应的CoppCtl表项获取限速Ptr;
报文处理模块,用于根据Ptr找到预设的Copp限速模块,所述Copp限速模块对接收到的报文进行处理,其中,所述Copp限速模块采用pps的单令牌桶模式,通过定时刷新令牌,来控制报文的转发和上送。
7.根据权利要求6所述的装置,其特征在于,所述Copp限速模块对接收到的报文进行处理包括:
当接收到报文时,查看对应的Copp表项的令牌桶是否为空,如果为空,则将该报文对应的exceptionEn置为0,并将该报文按照正常数据报文进行处理传至后续的模块;如果令牌桶中有令牌,则减去一个令牌,并将报文传至后续处理模块,后续转发模块根据exceptionEn的flag将报文上送CPU进行处理。
8.根据权利要求7所述的装置,其特征在于,令牌桶中的令牌按照用户配置的限速速率由芯片按照一定频率定时刷新至令牌桶中。
9.根据权利要求6-8中任一项所述的装置,其特征在于,上送CPU的报文包括用户自定义的协议报文以及通用协议报文。
10.根据权利要求9所述的装置,其特征在于,用户自定义的协议报文在L2PDU、L3PDU、ACL、FLOWMATCH模块中实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210175082.8A CN114553796B (zh) | 2022-02-24 | 2022-02-24 | 交换芯片基于cpu reason id实现CoPP的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210175082.8A CN114553796B (zh) | 2022-02-24 | 2022-02-24 | 交换芯片基于cpu reason id实现CoPP的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114553796A CN114553796A (zh) | 2022-05-27 |
CN114553796B true CN114553796B (zh) | 2023-10-20 |
Family
ID=81679836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210175082.8A Active CN114553796B (zh) | 2022-02-24 | 2022-02-24 | 交换芯片基于cpu reason id实现CoPP的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114553796B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110855685A (zh) * | 2019-11-18 | 2020-02-28 | 苏州盛科科技有限公司 | 一种多Slice交换芯片实现CoPP的方法及装置 |
CN111294291A (zh) * | 2020-01-16 | 2020-06-16 | 新华三信息安全技术有限公司 | 一种协议报文的处理方法和装置 |
CN113169928A (zh) * | 2018-11-26 | 2021-07-23 | 阿尔库斯有限公司 | 包括分解式网络元件的逻辑路由器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9253140B2 (en) * | 2012-11-20 | 2016-02-02 | Cisco Technology, Inc. | System and method for optimizing within subnet communication in a network environment |
-
2022
- 2022-02-24 CN CN202210175082.8A patent/CN114553796B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113169928A (zh) * | 2018-11-26 | 2021-07-23 | 阿尔库斯有限公司 | 包括分解式网络元件的逻辑路由器 |
CN113169929A (zh) * | 2018-11-26 | 2021-07-23 | 阿尔库斯有限公司 | 包括分解式网络元件的逻辑路由器 |
CN110855685A (zh) * | 2019-11-18 | 2020-02-28 | 苏州盛科科技有限公司 | 一种多Slice交换芯片实现CoPP的方法及装置 |
CN111294291A (zh) * | 2020-01-16 | 2020-06-16 | 新华三信息安全技术有限公司 | 一种协议报文的处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114553796A (zh) | 2022-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101236822B1 (ko) | Arp록킹 기능을 이용한 arp스푸핑 공격 탐지 방법과 그 방법을 실행하기 위한 프로그램이 기록된 기록매체 | |
CN111294291B (zh) | 一种协议报文的处理方法和装置 | |
US11252196B2 (en) | Method for managing data traffic within a network | |
CN111061685B (zh) | 日志查询方法、装置、节点设备及存储介质 | |
CN110224998B (zh) | 一种微服务注册方法及装置 | |
CN113449346B (zh) | 微处理器、数据处理方法、电子设备和存储介质 | |
CN113098895A (zh) | 一种基于dpdk的网络流量隔离系统 | |
CN103812750A (zh) | 数据通信设备cpu收发报文保护系统及方法 | |
CN114553796B (zh) | 交换芯片基于cpu reason id实现CoPP的方法和装置 | |
CN113449347B (zh) | 微处理器、数据处理方法、电子设备和存储介质 | |
WO2012089061A1 (zh) | 一种识别并阻止设备发送垃圾短信的方法、设备和系统 | |
CN110855685B (zh) | 一种多Slice交换芯片实现CoPP的方法及装置 | |
CN113660216A (zh) | 口令攻击检测方法、装置、电子装置和存储介质 | |
CN112437035B (zh) | 分布式拒绝服务攻击防护方法及相关设备 | |
CN114301644B (zh) | 网络异常检测系统及方法 | |
CN108234646B (zh) | 一种分配云安全资源的方法及装置 | |
CN113572700A (zh) | 流量检测方法、系统、装置及计算机可读存储介质 | |
CN111016720A (zh) | 基于k最近邻算法攻击识别方法及充电装置 | |
CN114978954B (zh) | 网络隔离有效性验证方法、装置、设备及存储介质 | |
CN102810083B (zh) | 一种门铃消息分发方法、快速输入输出控制器和处理器 | |
CN111651326B (zh) | 一种基于区块链的分布式数据管理系统及方法 | |
CN115987680A (zh) | 报文处理方法及装置、设备、介质 | |
CN111277567B (zh) | 入侵防御处理方法及装置 | |
CN116910704A (zh) | 一种数据平台的许可校验方法、装置、设备及介质 | |
CN116133005A (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 |