处理器的防护方法和设备的制作方法

文档序号:7985756阅读:271来源:国知局
处理器的防护方法和设备的制作方法
【专利摘要】本发明实施例提供了一种处理器的防护方法和设备。该方法包括:确定网络设备中转发单元向处理器发送ICMP报文的传输速率;根据所确定的传输速率,控制转发单元向处理器发送ICMP报文的传输速率的上限。本发明实施例通过对ICMP报文发送至处理器的传输速率进行监控,动态控制处理器的防护阈值,从而能够灵活地防护ICMP报文对处理器的冲击。
【专利说明】处理器的防护方法和设备
【技术领域】
[0001]本发明实施例涉及网络通信领域,并且更具体地,涉及处理器的防护方法和设备。【背景技术】
[0002]ICMP (Internet Control Message Protocol,因特网控制消息协议)是 TCP(Transmission Control Protocol,传输控制协议)/IP (Internet Protocol,因特网协议)协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
[0003]很多常用的工具基于ICMP消息。例如,Traceroute (路由追踪)命令是通过发送包含有特殊TTL (Time To Live,生存时间)的报文、然后接收ICMP超时消息和目标不可达消息来实现的。Ping (Packet Internet Groper,因特网报文探索器)是用ICMP的〃Echorequest"(回显请求)和"Echo reply"(回显应答)消息来实现的。
[0004]ICMP是一种无连接的协议,ICMP报文流量在网络上没有规律,可能某段时间出现大量ICMP报文,而其他时间则ICMP报文很少。ICMP报文常常被利用来攻击网络设备,例如进行DoS (Denial of Service,拒绝服务)攻击,因此ICMP协议对于网络安全具有极其重要的意义。
[0005]网络设备需要处理目的地址(destination address)是本机的ICMP报文,将其上送本机CPU (Central Processing Unit,中央处理单元)的软件协议栈。本机CPU的处理能力是有限的,当需要处理的ICMP报文远远超过协议栈处理能力时,会导致CPU的过载,甚至最终导致设备的瘫痪。
[0006]因此,需要针对ICMP报文的CPU防护机制。

【发明内容】

[0007]本发明实施例提供一种处理器的防护方法和设备,能够灵活地防护ICMP报文对处理器的冲击。
[0008]第一方面,提供了一种处理器的防护方法,包括:确定网络设备中转发单元向处理器发送ICMP报文的传输速率;根据所确定的传输速率,控制所述转发单元向处理器发送ICMP报文的传输速率的上限。
[0009]结合第一方面,在一种实现方式中,所述根据所确定的传输速率,控制所述转发单兀向处理器发送ICMP报文的传输速率的上限,包括:根据所确定的传输速率,将所述传输速率的上限设置为预定的多个限速值之一。
[0010]结合第一方面及其上述实现方式,在另一种实现方式中,该方法还包括:确定所述处理器的占用率。所述根据所确定的传输速率,将所述传输速率的上限设置为预定的多个限速值之一,包括:根据所确定的传输速率和所确定的处理器的占用率,将所述传输速率的上限设置为所述多个限速值之一。[0011]结合第一方面及其上述实现方式,在另一种实现方式中,所述根据所确定的传输速率和所确定的处理器的占用率,将所述传输速率的上限设置为所述多个限速值之一,包括:在所述处理器的占用率低于第一阈值且所述传输速率等于当前限速值时,或者在所述处理器的占用率低于第一阈值且所述传输速率与当前限速值的比值大于或等于Rl时,将所述传输速率的上限设置为所述多个限速值中比当前限速值高一级的限速值,其中Rl大于O且小于I。
[0012]结合第一方面及其上述实现方式,在另一种实现方式中,所述将所述传输速率的上限设置为预定的多个限速值之一,还包括:在所述处理器的占用率高于第二阈值时,将所述传输速率的上限设置为所述多个限速值中的最小限速值。
[0013]结合第一方面及其上述实现方式,在另一种实现方式中,所述根据所确定的传输速率,将所述传输速率的上限设置为预定的多个限速值之一,包括:在所述传输速率等于所述多个限速值中比当前限速值低一级的限速值时,或者在所述传输速率与所述多个限速值中比当前限速值低一级的限速值的比值小于或等于R2时,将所述传输速率的上限调整为所述多个限速值中比当前限速值低一级的限速值,其中R2大于O且小于I。
[0014]结合第一方面及其上述实现方式,在另一种实现方式中,在所述确定网络设备中转发单元向处理器发送ICMP报文的传输速率之前,还包括:将所述传输速率的上限设置为默认限速值,其中所述默认限速值为所述多个限速值中的最小限速值。
[0015]第二方面,提供了一种处理器的防护设备,包括:确定单元,用于确定网络设备中转发单元向处理器发送因特网控制消息协议ICMP报文的传输速率;控制单元,用于根据所述确定单元所确定的传输速率,控制所述转发单元向处理器发送ICMP报文的传输速率的上限。
[0016]结合第二方面,在一种实现方式中,所述控制单元具体用于将所述传输速率的上限设置为预定的多个限速值之一。
[0017]结合第二方面及其上述实现方式,在另一种实现方式中,所述确定单元还用于确定所述处理器的占用率,所述控制单元具体用于根据所述确定单元确定的传输速率和处理器的占用率,将所述传输速率的上限设置为所述多个限速值之一。
[0018]结合第二方面及其上述实现方式,在另一种实现方式中,所述控制单元具体用于在所述处理器的占用率低于第一阈值且所述传输速率等于当前限速值时,或者在所述处理器的占用率低于第一阈值且所述传输速率与当前限速值的比值大于或等于Rl时,将所述传输速率的上限设置为所述多个限速值中比当前限速值高一级的限速值,其中Rl大于O且小于I。
[0019]结合第二方面及其上述实现方式,在另一种实现方式中,所述控制单元具体用于在所述处理器的占用率高于第二阈值时,将所述传输速率的上限设置为所述多个限速值中的最小限速值。
[0020]结合第二方面及其上述实现方式,在另一种实现方式中,所述控制单元具体用于在所述传输速率等于所述多个限速值中比当前限速值低一级的限速值时,或者在所述传输速率与所述多个限速值中比当前限速值低一级的限速值的比值小于或等于R2时,将所述传输速率的上限调整为所述多个限速值中比当前限速值低一级的限速值,其中R2大于O且小于I。[0021]结合第二方面及其上述实现方式,在另一种实现方式中,控制单元还用于将所述传输速率的上限设置为默认限速值,其中所述默认限速值为所述多个限速值中的最小限速值。
[0022]第三方面,提供了一种网络设备,包括处理器和转发单元,所述转发单元,用于向所述处理器发送因特网控制消息协议ICMP报文;所述处理器,用于根据所述转发单元向所述处理器发送ICMP报文的传输速率,控制所述转发单元向所述处理器发送ICMP报文的传输速率的上限。
[0023]本发明实施例通过对ICMP报文发送至处理器的传输速率进行监控,动态控制处理器的防护阈值,从而能够灵活地防护ICMP报文对处理器的冲击。
【专利附图】

【附图说明】
[0024]为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0025]图1是可应用本发明实施例的网络设备的示例框图。
[0026]图2是本发明一个实施例的处理器的防护方法的流程图。
[0027]图3是本发明另一实施例的处理器防护方法的流程图。
[0028]图4是本发明一个实施例的处理器的防护设备的框图。
[0029]图5是本发明一个实施例的网络设备50的框图。
【具体实施方式】
[0030]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0031]图1是可应用本发明实施例的网络设备的示例框图。应注意,图1的网络设备100仅仅是可应用本发明实施例的设备的一个例子,而非要限制本发明实施例的范围。本发明实施例对网络设备100的具体类型不作限制,例如,网络设备100可以是交换机、路由器、月艮务器或终端设备。
[0032]如图1所示,网络设备100包括处理器101和转发单元102。处理器101的一个例子是CPU,用于控制网络设备100的整体操作。转发单元102可以由硬件或固件来实现,该硬件或固件上存储有相应的转发逻辑。转发单元102可以具有较强的报文转发能力,但转发单元102的数据处理能力较弱,或者转发单元102可以借助于处理器101进行数据处理。
[0033]转发单元102在接收到外部发来的ICMP报文时,会解析该ICMP报文的目的地址字段。如果该ICMP报文的目的地址不是网络设备100,则转发单元102进行相应的转发操作;如果该ICMP报文的目的地址是网络设备100,则转发单元102需要将该ICMP报文发送至处理器101进行处理。当需要处理的ICMP报文远远超过协议栈处理能力时,会导致处理器101的过载,甚至最终导致网络设备100的瘫痪。[0034]处理器101可以向转发单元102发送控制命令,以控制转发单元102的操作。例如,处理器101可向转发单元102发送有关ICMP报文传输速率的上限的控制命令,以控制转发单元102向处理器101发送ICMP报文的传输速率,放置ICMP报文对处理器。换句话说,网络设备100可以对ICMP报文设置流量阈值(单位一般为kbps)。在该机制下,通过硬件或软件,在单位时间内,对于超过阈值的流量直接进行丢弃,从而减轻处理器的负担,防止DoS攻击。
[0035]对于交换机等网络设备,主要通过针对各种报文类型设置固定的阈值,从而阻止报文大量冲击处理器。但是,该阈值的设定一般相对较小,仅能满足部分场景的需求。例如,一旦业务量出现激增,当前的处理器阈值就不能满足需求;相反,当需要处理的报文数量缩减并趋于稳定,较大的处理器防护阈值给攻击报文带来可乘之机。因此,这种调整方式不能灵活地防护ICMP报文对处理器的冲击。
[0036]图2是本发明一个实施例的处理器的防护方法的流程图。图2的方法可以由图1的网络设备100执行,具体地,可由网络设备100的处理器101执行,或者由网络设备100中独立于处理器101和转发单元102的专用单元执行。为了简洁,下文中,结合图1的框图,以处理器101执行防护方法的情况为例进行描述,但本发明实施例对防护方法的执行主体不作限制。
[0037]201,确定网络设备中转发单元向处理器发送ICMP报文的传输速率。
[0038]例如,处理器101可实时监控转发单兀102向处理器101发送ICMP报文的传输速率。传输速率的单位可以是kbps (kilobits per second,千比特每秒)。
[0039]202,根据所确定的传输速率,控制转发单兀向处理器发送ICMP报文的传输速率的上限。
[0040]本发明实施例通过对ICMP报文发送至处理器的传输速率进行监控,动态控制处理器的防护阈值,从而能够灵活地防护ICMP报文对处理器的冲击。
[0041]可选地,作为一个实施例,在步骤202中,处理器101可根据实时监控的ICMP报文传输速率,结合处理器101的ICMP报文处理能力,不断调整相应的上限值。ICMP报文处理能力的单位可以是pps (packets per second,报文数每秒)。
[0042]例如,假设处理器101对ICMP报文的处理能力为2000pps,按照ICMP通常大小100字节(byte ;1字节=8比特)计算,设置处理器101对ICMP报文传输速率的上限为1600kbps=(2000X100X8)/1000。
[0043]与网络设备100相连的另一网络设备以2000pps的速率ping该网络设备100,每个报文大小为200字节。此时,如果处理器101的占用率较小(例如低于50%),则可以将转发单元102向处理器101发送ICMP报文的传输速率的上限提高至3200kbps= (2000X 200X8) /1000,以使得处理器101能够处理所有的ICMP报文,且不会导致处理器101的占用率过高。
[0044]当上述另一网络设备停止ping网络设备100时,处理器101检测到ICMP报文传输速率小于1600kbps,则降低ICMP报文传输速率的上限到1600kbps。
[0045]可选地,作为另一实施例,在步骤202中,可将传输速率的上限设置为预定的多个限速值之一。换句话说,可以预先设置多个级别的限速值,级别越低的限速值越小。这样可以根据ICMP报文传输速率与多个限速值之间的关系,提高、降低或维持传输速率的上限所在的级别,而无需不断计算传输速率的上限,可以更高效地实现传输速率的控制。
[0046]表1是限速值的级别的一个例子,可以预先配置在网络设备中。应注意,表1只是多个级别的限速值的例子,而不是要限制本发明实施例的范围。例如,本发明实施例可以采用更多或更少个级别。
[0047]表1
[0048]
【权利要求】
1.一种处理器的防护方法,其特征在于,包括: 确定网络设备中转发单元向处理器发送因特网控制消息协议ICMP报文的传输速率; 根据所确定的传输速率,控制所述转发单元向处理器发送ICMP报文的传输速率的上限。
2.如权利要求1所述的方法,其特征在于,所述根据所确定的传输速率,控制所述转发单元向处理器发送ICMP报文的传输速率的上限,包括: 根据所确定的传输速率,将所述传输速率的上限设置为预定的多个限速值之一。
3.如权利要求2所述的方法,其特征在于,还包括:确定所述处理器的占用率, 所述根据所确定的传输速率,将所述传输速率的上限设置为预定的多个限速值之一,包括: 根据所确定的传输速率和所确定的处理器的占用率,将所述传输速率的上限设置为所述多个限速值之一。
4.如权利要求3所述的方法,其特征在于,所述根据所确定的传输速率和所确定的处理器的占用率,将所述传输速率的上限设置为所述多个限速值之一,包括: 在所述处理器的占用率低于第一阈值且所述传输速率等于当前限速值时,或者在所述处理器的占用率低于第一阈值且所述传输速率与当前限速值的比值大于或等于Rl时,将所述传输速率的上限设置为所述多个限速值中比当前限速值高一级的限速值,其中Rl大于O且小于I。
5.如权利要求3所述的方法,其特征在于,所述将所述传输速率的上限设置为预定的多个限速值之一,还包括: 在所述处理器的占用率高于第二阈值时,将所述传输速率的上限设置为所述多个限速值中的最小限速值。
6.如权利要求2-5任一项所述的方法,其特征在于,所述根据所确定的传输速率,将所述传输速率的上限设置为预定的多个限速值之一,包括: 在所述传输速率等于所述多个限速值中比当前限速值低一级的限速值时,或者在所述传输速率与所述多个限速值中比当前限速值低一级的限速值的比值小于或等于R2时,将所述传输速率的上限调整为所述多个限速值中比当前限速值低一级的限速值,其中R2大于O且小于I。
7.如权利要求2-6任一项所述的方法,其特征在于,在所述确定网络设备中转发单元向处理器发送ICMP报文的传输速率之前,还包括: 将所述传输速率的上限设置为默认限速值,其中所述默认限速值为所述多个限速值中的最小限速值。
8.—种处理器的防护设备,其特征在于,包括: 确定单元,用于确定网络设备中转发单元向处理器发送因特网控制消息协议ICMP报文的传输速率; 控制单元,用于 根据所述确定单元所确定的传输速率,控制所述转发单元向处理器发送ICMP报文的传输速率的上限。
9.如权利要求8所述的设备,其特征在于,所述控制单元具体用于将所述传输速率的上限设置为预定的多个限速值之一。
10.如权利要求9所述的设备,其特征在于,所述确定单元还用于确定所述处理器的占用率, 所述控制单元具体用于根据所述确定单元确定的传输速率和处理器的占用率,将所述传输速率的上限设置为所述多个限速值之一。
11.如权利要求10所述的设备,其特征在于,所述控制单元具体用于在所述处理器的占用率低于第一阈值且所述传输速率等于当前限速值时,或者在所述处理器的占用率低于第一阈值且所述传输速率与当前限速值的比值大于或等于Rl时,将所述传输速率的上限设置为所述多个限速值中比当前限速值高一级的限速值,其中Rl大于O且小于I。
12.如权利要求10所述的设备,其特征在于,所述控制单元具体用于在所述处理器的占用率高于第二阈值时,将所述传输速率的上限设置为所述多个限速值中的最小限速值。
13.如权利要求9-12任一项所述的设备,其特征在于,所述控制单元具体用于在所述传输速率等于所述多个限速值中比当前限速值低一级的限速值时,或者在所述传输速率与所述多个限速值中比当前限速值低一级的限速值的比值小于或等于R2时,将所述传输速率的上限调整为所述多个限速值中比当前限速值低一级的限速值,其中R2大于O且小于I。
14.如权利要求9-13任一项所述的设备,其特征在于,控制单元还用于将所述传输速率的上限设置为默认限速值,其中所述默认限速值为所述多个限速值中的最小限速值。
15.一种网络设备,其特征在于,包括处理器和转发单元, 所述转发单元,用于向 所述处理器发送因特网控制消息协议ICMP报文; 所述处理器,用于根据所述转发单元向所述处理器发送ICMP报文的传输速率,控制所述转发单元向所述处理器发送ICMP报文的传输速率的上限。
【文档编号】H04L12/24GK103812687SQ201210460480
【公开日】2014年5月21日 申请日期:2012年11月15日 优先权日:2012年11月15日
【发明者】彭和平, 陈智威 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1