防止未知组播攻击cpu的方法和设备的制作方法

文档序号:7741548阅读:340来源:国知局
专利名称:防止未知组播攻击cpu的方法和设备的制作方法
技术领域
本发明涉及通信领域,尤其涉及一种防止未知组播攻击CPU的方法和设备。
背景技术
在现有的交换机设备中,组播转发流程要求未知组播在到达设备的时候,在广播 的同时,需要拷贝一份上CPU,数据平面(CPU)根据这份拷贝得到的未知组播向转发平面 (转发硬件)下发相应的组播表项,对应的组播报文才能够通过转发硬件实现相应的未知 组播转发。对于转发硬件为ASIC(A卯lication Specific Integrated Circuit,专用集成 电路)芯片的设备,通常ASIC芯片上配置有ACL (Access Control List,接入控制列表)的 过滤功能,通过该ACL过滤功能获取接收到的流量中的未知组播流量,将未知组播流量上 报CPU。由CPU下发转发表项后,ASIC芯片根据转发表项转发未知组播流量。其中,ASIC 获取未知组播流量的过程主要包括根据组播流量的标识信息查找组播转发表项,如果ASIC 中配置有与组播流量对应的组播转发表项,则该组播流量为已知组播流量,可以根据对应 的组播转发表项转发;如果ASIC中没有配置与组播流量的对应的组播转发表项,则ASIC获 知该组播流量为未知组播流量。例如,ASIC可以获取组播流量的源/目的IP地址信息,根 据源/目的IP地址查找是否配置了对应的组播转发表项,并根据查找结果判断组播流量是 否为未知组播流量。 但是在这个过程中,由于转发平面的组播数据流量有时会非常大,在组播转发表 项下发之前,会有大量未知组播报文被上送CPU,尤其是同一未知组播流量的大量报文在该 流量的转发表项由CPU下发之前,会重复上报CPU,使CPU接收大量无效报文,导致CPU负担 过重,常常造成CPU无法响应用户的输入命令等问题。

发明内容
本发明提供了一种防止未知组播攻击CPU的方法和设备,以有效实现CPU的防攻 击功能。 本发明提供一种防止未知组播攻击CPU的方法,应用于包括专用集成电路ASIC芯 片和CPU的设备,该方法包括以下步骤 所述ASIC芯片接收报文,根据CPU下发的转发表项对已知组播报文进行转发,并 识别接收到的报文中的未知组播报文,根据所述未知组播报文的流量标识查找是否存储有 该未知组播报文对应的统计流表项; 若没有存储该未知组播报文对应的统计流表项,所述ASIC芯片建立所述未知组
播报文对应的统计流表项,并将所述未知组播报文上报CPU ; 所述ASIC芯片接收CPU下发的所述未知组播报文对应的转发表项。 根据所述未知组播报文的流量标识查找是否存储有该未知组播报文对应的统计
流表项之后,还包括 若存储有该未知组播报文对应的统计流表项,所述ASIC芯片缓存所述未知组播报文。 所述ASIC芯片识别接收到的报文中的未知组播报文包括 所述ASIC芯片根据接收的组播报文的标识信息查找配置的组播转发表项,若查 找结果为没有对应的组播转发表项,则所述ASIC芯片判断该组播报文为未知组播报文。
所述ASIC芯片建立所述未知组播报文对应的统计流表项,并将所述未知组播报 文上报CPU包括 所述ASIC芯片根据配置的ipf ix功能为所述未知组播报文建立对应的统计流表 项,并将所述未知组播报文镜像到CPU。 所述ASIC芯片接收CPU下发的所述未知组播报文的转发表项之后,还包括
删除所述ASIC芯片存储的所述未知组播报文的统计流表项。
还包括 所述ASIC芯片周期性删除存储的统计流表项。 本发明提供一种防止未知组播攻击CPU的设备,包括专用集成电路ASIC芯片和 CPU,所述ASIC芯片包括获取单元、转发单元、识别单元、查找单元、以及上报单元,其中
所述获取单元,用于获取所述设备接收到的组播报文; 所述识别单元,与所述获取单元连接,用于识别接收到的报文中的未知组播报 文; 所述转发单元,与所述识别单元连接,用于根据CPU下发的转发表项对已知组播 报文进行转发; 所述查找单元,与所述识别单元连接,用于根据所述未知组播报文的流量标识查 找是否存储有该未知组播报文对应的统计流表项; 所述上报单元,与所述查找单元和识别单元连接,用于查找结果为没有存储所述
未知组播报文对应的统计流表项时,建立所述未知组播报文对应的统计流表项,将所述未
知组播报文上报CPU,接收CPU下发的所述未知组播报文对应的转发表项,向所述识别单元
提供所述转发表项。 所述ASIC芯片还包括 缓存单元,与所述查找单元连接,用于所述查找单元的查找结果为存储有所述未 知组播报文对应的统计流表项时,缓存所述未知组播报文。
所述识别单元还用于 根据接收的组播报文的标识信息查找配置的组播转发表项,若查找结果为没有对 应的组播转发表项,则判断该组播报文为未知组播报文。
所述上报单元还用于 根据配置的ipf ix功能为所述未知组播报文建立对应的统计流表项,并将所述未
知组播报文镜像到CPU。 所述ASIC芯片还包括 删除单元,与所述上报单元连接,用于接收CPU下发的所述未知组播报文对应的
转发表项之后,删除所述未知组播报文的统计流表项。 所述删除单元还用于 周期性删除所述ASIC芯片存储的统计流表项。
与现有技术相比,本发明至少具有以下优点 根据未知组播报文的流量标识查找是否存储有该报文对应的统计流表项,若没有 存储该报文对应的统计流表项,则将该未知组播报文上报CPU,否则不执行将未知组播报文 上报CPU的功能,从而减少属于同一未知组播流量的报文向CPU上报的次数,降低CPU对未 知组播流量的处理负担,提高CPU的工作效率。


图1是本发明提供的防止未知组播攻击CPU的方法的流程示意图; 图2是本发明应用场景提供的防止未知组播攻击CPU的方法的流程示意图; 图3是本发明提供的防止未知组播攻击CPU的设备的结构示意图。
具体实施例方式
本发明的核心思想是避免向CPU重复上报属于同一未知组播流量的报文,从而 使CPU不需要处理大量相同流量的报文,降低CPU的负担。 本发明提供一种防止未知组播攻击CPU的方法,应用于包括专用集成电路ASIC芯 片和CPU的设备,如图1所示,该方法包括以下步骤 步骤101,所述ASIC芯片接收报文,根据CPU下发的转发表项对已知组播报文进行 转发,并识别接收到的报文中的未知组播报文,根据所述未知组播报文的流量标识查找是 否存储有该未知组播报文对应的统计流表项; 步骤102,若没有存储该未知组播报文对应的统计流表项,所述ASIC芯片建立所
述未知组播报文对应的统计流表项,并将所述未知组播报文上报CPU ; 步骤103,所述ASIC芯片接收CPU下发的所述未知组播报文对应的转发表项。 下面结合具体应用场景详细介绍本发明提供的防止未知组播攻击CPU的方法,如
图2所示,包括以下步骤 步骤201,配置ASIC芯片的ACL过滤功能、ipf ix统计功能以及镜像功能。
具体的,本发明提供的设备中包括CPU与ASIC芯片,ASIC芯片配置ACL过滤功能, 通过ACL过滤功能获取未知组播报文。具体的,ASIC芯片根据组播报文的标识信息(例如 源IP地址或者目的IP地址)查找对应的组播转发表项,如果ASIC中配置有与组播报文对 应的组播转发表项,则该组播报文对应的流量为已知组播流量,可以根据对应的组播转发 表项转发;如果ASIC中没有配置与组播报文对应的组播转发表项,则ASIC获知该组播报文 为未知组播报文。 ASIC芯片还配置有ipf ix功能和镜像功能。ipf ix的定义参考rfc3917, ipf ix是 一种标准的网络流量统计方法。ipfix收集报文的共同特性如MAC(MediaAccess Control, 介质访问控制)地址、IP地址、端口号等信息,把这些特性相同的报文作为一条流,统计这 些流的报文数和字节数等信息,ipfix也可以根据需要忽略一些特性,而是用某种或某几种 特性来做统计,称为聚合。本发明应用场景中,ASIC芯片利用ipfix功能统计未知组播报 文,根据未知组播报文的流量标识信息(例如五元组信息或者七元组信息)对同一未知组 播流量的报文进行统计,建立未知组播报文对应的统计流表项。ASIC芯片还配置镜像功能, 将利用ipfix功能统计的报文镜像一份或者多份到目的端口 ,例如ASIC芯片将未知组播流量的报文镜像一份到CPU,缓存该未知组播流量的其他报文。 步骤202,获取未知组播报文,并查找存储的统计流表,如果在统计流表中找到对 应的表项,则执行步骤203 ;否则执行步骤204。 具体的,ASIC芯片获取组播报文后通过ACL过滤功能按照组播报文的标识信息
查找组播转发表项,获知该组播报文是否为未知组播流量报文,如果组播报文为未知组播
流量报文,进一步根据未知组播流量报文的流量标识信息,例如源IP地址或者其他标识信
息,查找存储的统计流表;如果统计流表中存储有与未知组播流量报文对应的统计流表项,
则说明已接收过该未知组播流量的报文,执行步骤203 ;否则,说明该未知组播流量的报文
为第一次接收,执行步骤204。 步骤203,缓存未知组播报文。 本发明中,配置ASIC芯片向CPU镜像一份未知组播流量报文,若统计流表中具有 与未知组播流量报文对应的统计流表项,则ASIC芯片缓存未知组播流量报文,并不将该未 知组播流量报文上报CPU。 ASIC芯片对未知组播流量报文的缓存可以设置一时间,超过该 时间后即丢弃缓存的未知组播流量报文,或者重新查找统计流表中的统计流表项进行匹 配。 步骤204,将该未知组播报文上报CPU,并在统计流表中建立对应的统计流表项。
具体的,若统计流表中没有对应的组播转发表项,则说明ASIC芯片第一次接收到 该未知组播流量的报文,ASIC芯片根据配置的ipfix功能在统计流表中建立该未知组播流 量的统计流表项,并根据预先配置的报文镜像规则镜像一份未知组播报文到CPU,即将该未 知组播流量报文上报到CPU,由CPU对该未知组播流量报文进行处理。 步骤205,CPU下发未知组播报文的转发表项,ASIC芯片根据转发表项转发组播流 具体的,CPU接收上报的未知组播流量报文后,对该流量报文进行处理,向ASIC芯 片下发该流量报文的转发表项,后续ASIC芯片接收到该未知组播流量的报文(此时为具有 对应转发表项的已知组播流量的报文)时,直接根据对应的组播转发表项转发该未知组播 流量的报文,不需要再将报文上报CPU。 可选的,ASIC芯片在获取未知组播流量报文对应的转发表项后,可以将统计流表 中存储的与该组播流量对应的统计流表项删除。具体的,该操作可以由CPU下发统计流表 项后通知ASIC芯片,由ASIC芯片根据CPU的删除命令删除对应的统计流表项。
本发明应用场景中,为了保证一些未知组播流量的报文在第一次上报CPU的时候 没有被正确处理,或者有些报文需要重复上报CPU的情况,将统计流表项设置成周期性老 化的方式,保证统计流表中的表项每过一段时间以后会被清除掉,没有处理到的未知组播 报文能够被再次上报到CPU。 通过采用本发明提供的方法,根据未知组播报文的流量标识查找是否存储有该 报文对应的统计流表项,若没有存储该报文对应的统计流表项,则将该未知组播报文上报 CPU,否则不执行将未知组播报文上报CPU的功能,从而减少属于同一未知组播流量的报文 向CPU上报的次数,降低CPU对未知组播流量的处理负担,提高CPU的工作效率。
本发明提供一种防止未知组播攻击CPU的设备,如图3所示,包括专用集成电路 ASIC芯片10和CPU20,所述ASIC芯片10包括获取单元11、识别单元12、转发单元13、查找单元14以及上报单元15,其中 所述获取单元ll,用于获取所述设备接收到的组播报文; 所述识别单元12,与所述获取单元连接,用于识别接收到的报文中的未知组播报 文; 所述转发单元13,与所述识别单元12连接,用于根据CPU下发的转发表项对已知 组播报文进行转发; 所述查找单元14,与所述识别单元12连接,用于根据所述未知组播报文的流量标 识查找是否存储有该未知组播报文对应的统计流表项; 所述上报单元15,与所述查找单元14和识别单元12连接,用于查找结果为没有存
储所述未知组播报文对应的统计流表项时,建立所述未知组播报文对应的统计流表项,将
所述未知组播报文上报CPU,接收CPU下发的所述未知组播报文对应的转发表项,向所述识
别单元提供所述转发表项。 所述ASIC芯片10还包括 缓存单元16,与所述查找单元14连接,用于所述查找单元的查找结果为存储有所 述未知组播报文对应的统计流表项时,缓存所述未知组播报文。
所述识别单元11还用于 根据接收的组播报文的标识信息查找配置的组播转发表项,若查找结果为没有对 应的组播转发表项,则判断该组播报文为未知组播报文。
所述上报单元15还用于 根据配置的ipf ix功能为所述未知组播报文建立对应的统计流表项,并将所述未
知组播报文镜像到CPU。
所述ASIC芯片还包括 删除单元17,与所述上报单元15连接,用于接收CPU下发的所述未知组播报文对 应的转发表项之后,删除所述未知组播报文的统计流表项。 所述删除单元16还用于周期性删除所述ASIC芯片存储的统计流表项。
通过采用本发明提供的设备,根据未知组播报文的流量标识查找是否存储有该流 量的统计流表项,若没有存储该流量的统计流表项,则将该未知组播报文上报CPU,否则不 执行将未知组播报文上报CPU的功能,从而减少属于同一未知组播流量的报文向CPU上报 的次数,降低CPU对未知组播流量的处理负担,提高CPU的工作效率。 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助 软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更 佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的 部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若 干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发 明各个实施例所述的方法。 本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流 程并不一定是实施本发明所必须的。 本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分 布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。 以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领 域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
一种防止未知组播攻击CPU的方法,应用于包括专用集成电路ASIC芯片和CPU的设备,其特征在于,该方法包括以下步骤所述ASIC芯片接收报文,根据CPU下发的转发表项对已知组播报文进行转发,并识别接收到的报文中的未知组播报文,根据所述未知组播报文的流量标识查找是否存储有该未知组播报文对应的统计流表项;若没有存储该未知组播报文对应的统计流表项,所述ASIC芯片建立所述未知组播报文对应的统计流表项,并将所述未知组播报文上报CPU;所述ASIC芯片接收CPU下发的所述未知组播报文对应的转发表项。
2. 如权利要求1所述的方法,其特征在于,根据所述未知组播报文的流量标识查找是否存储有该未知组播报文对应的统计流表项之后,还包括若存储有该未知组播报文对应的统计流表项,所述ASIC芯片缓存所述未知组播报文。
3. 如权利要求1或2所述的方法,其特征在于,所述ASIC芯片识别接收到的报文中的未知组播报文包括所述ASIC芯片根据接收的组播报文的标识信息查找配置的组播转发表项,若查找结果为没有对应的组播转发表项,则所述ASIC芯片判断该组播报文为未知组播报文。
4. 如权利要求1或2所述的方法,其特征在于,所述ASIC芯片建立所述未知组播报文对应的统计流表项,并将所述未知组播报文上报CPU包括所述ASIC芯片根据配置的ipf ix功能为所述未知组播报文建立对应的统计流表项,并将所述未知组播报文镜像到CPU。
5. 如权利要求1或2所述的方法,其特征在于,所述ASIC芯片接收CPU下发的所述未知组播报文的转发表项之后,还包括删除所述ASIC芯片存储的所述未知组播报文的统计流表项。
6. 如权利要求1或2所述的方法,其特征在于,还包括所述ASIC芯片周期性删除存储的统计流表项。
7. —种防止未知组播攻击CPU的设备,包括专用集成电路ASIC芯片和CPU,其特征在于,所述ASIC芯片包括获取单元、转发单元、识别单元、查找单元、以及上报单元,其中所述获取单元,用于获取所述设备接收到的组播报文;所述识别单元,与所述获取单元连接,用于识别接收到的报文中的未知组播报文;所述转发单元,与所述识别单元连接,用于根据CPU下发的转发表项对已知组播报文进行转发;所述查找单元,与所述识别单元连接,用于根据所述未知组播报文的流量标识查找是否存储有该未知组播报文对应的统计流表项;所述上报单元,与所述查找单元和识别单元连接,用于查找结果为没有存储所述未知组播报文对应的统计流表项时,建立所述未知组播报文对应的统计流表项,将所述未知组播报文上报CPU,接收CPU下发的所述未知组播报文对应的转发表项,向所述识别单元提供所述转发表项。
8. 如权利要求7所述的设备,其特征在于,所述ASIC芯片还包括缓存单元,与所述查找单元连接,用于所述查找单元的查找结果为存储有所述未知组播报文对应的统计流表项时,缓存所述未知组播报文。
9. 如权利要求7或8所述的设备,其特征在于,所述识别单元还用于 根据接收的组播报文的标识信息查找配置的组播转发表项,若查找结果为没有对应的组播转发表项,则判断该组播报文为未知组播报文。
10. 如权利要求7或8所述的设备,其特征在于,所述上报单元还用于根据配置的ipfix功能为所述未知组播报文建立对应的统计流表项,并将所述未知组 播报文镜像到CPU。
11. 如权利要求7或8所述的设备,其特征在于,所述ASIC芯片还包括 删除单元,与所述上报单元连接,用于接收CPU下发的所述未知组播报文对应的转发表项之后,删除所述未知组播报文的统计流表项。
12. 如权利要求11所述的设备,其特征在于,所述删除单元还用于 周期性删除所述ASIC芯片存储的统计流表项。
全文摘要
本发明公开了一种防止未知组播攻击CPU的方法和设备,该方法包括以下步骤ASIC芯片接收报文,根据CPU下发的转发表项对已知组播报文进行转发,并识别接收到的报文中的未知组播报文,根据所述未知组播报文的流量标识查找是否存储有该未知组播报文对应的统计流表项;若没有存储该未知组播报文对应的统计流表项,所述ASIC芯片建立所述未知组播报文对应的统计流表项,并将所述未知组播报文上报CPU;所述ASIC芯片接收CPU下发的所述未知组播报文对应的转发表项。本发明中,根据未知组播流量的流量标识查找是否存储有该流量的统计流表项,减少属于同一未知组播流量的报文向CPU上报的次数,提高CPU的工作效率。
文档编号H04L12/56GK101789905SQ20101010638
公开日2010年7月28日 申请日期2010年2月5日 优先权日2010年2月5日
发明者谢瑞涛 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1