一种网络设备有效防攻击的方法

文档序号:7622523阅读:147来源:国知局
专利名称:一种网络设备有效防攻击的方法
技术领域
本发明涉及网络安全技术,尤指一种网络设备有效防攻击的方法。
背景技术
分布式网络设备中的转发平面和控制平面是分开的,控制平面由分布式网络设备中的CPU实现;转发平面由分布式网络设备中的转发引擎实现。其中,分布式网络设备可以是三层交换机、路由器等。分布式网络设备将需要处理的报文由转发平面上送给控制平面进行处理,然后再由控制平面下发转发表项给转发平面,供转发平面进行报文的转发。在分布式网络设备中,转发平面和控制平面之间报文传输通道只有一条,在由转发平面上送报文给控制平面的传输过程中,常常由于一种协议报文的泛滥所造成的网络攻击,会导致整个转发平面到控制平面之间报文传输通道瘫痪,报文转发不通、协议断链、CPU占用率高等问题。以下,将转发平面和控制平面之间报文传输通道简称为通道。
现有技术中,一般采用在分布式网络设备中配置服务质量(QOS,Qualityof Service)规则的方法来实现分布式网络设备的有效防攻击。QOS规则由两部分组成规则和动作。在分布式网络设备中,对每种协议报文配置相应的规则,然后配置相应流量限制的动作,进而避免由于一种协议报文的泛滥而造成的网络攻击。例如,当转发平面收到一个开放最短路径优先(OSPF,Open Shortest Path First)协议报文,首先判断该协议报文的协议类型,然后依照具体协议报文所设置的流量限制的动作,比如,限制该协议报文的速率、丢弃该协议报文等,依靠执行相应的动作,限制转发平面到控制平面的流量,从而实现分布式网络设备有效防攻击的方法。但是,由于QOS规则是使用报文的五元组进行相应规则的查找,因此在对二层协议报文配置QOS规则时,需要将二层协议与所对应的三层IP地址联系起来,因此配置过程十分复杂;并且由于QOS资源的有限性,当分布式网络设备运行多种网络协议时,针对每一个不同的网络协议则需要配置不同的QOS规则,这样极大地占用了QOS资源,使QOS无法有效地为整个网络系统服务。
为了有效的防止分布式网络设备遭受攻击,就需要对转发平面上送给控制平面的报文进行限流,由于互联网的流量基本是属于突发模式,现有技术中针对突发模式限流的方法,一般采用令牌桶模型来实现。一般情况下,在令牌桶模型中网络设备通过定时中断向令牌桶内添加令牌,报文依靠在令牌桶内领取足够的令牌通过令牌桶。此时,即使令牌桶长时间没有报文到来,系统也会定时向令牌桶内注入令牌,这样,极大地浪费了系统的资源。同时,在令牌桶数目较多时,由于系统采用定时中断的方式向多个不同的令牌桶注入令牌,这样势必会导致系统负担加重,从而影响系统性能,给攻击者可趁之机。

发明内容
有鉴于此,本发明的主要目的在于提供一种网络设备有效防攻击的方法,该方式能够在有效限制报文流量的同时,节约系统资源。
为达到上述目的,本发明的技术方案是这样实现的一种网络设备有效防攻击的方法,设置令牌桶及令牌桶参数,该方法还包括以下步骤A、当报文到达令牌桶时,向相应令牌桶内注入令牌;B、判断所述令牌桶是否溢出,如果溢出,则丢弃溢出报文,进入步骤C;否则,直接进入步骤C;C、判断所述令牌桶内是否有足够的令牌,如果有,则报文领取令牌通过令牌桶;否则,丢弃报文;D、更新令牌桶参数。
其中,所述设置令牌桶为将报文传输通道设置为一个令牌桶。
其中,所述设置令牌桶为根据报文特征将报文传输通道划分为一个以上逻辑通道,且为每个逻辑通道设置对应的令牌桶;步骤A中在报文到达令牌桶之前,进一步包括根据当前到达报文的特征查找并确定当前报文对应的令牌桶,令当前报文到达所确定的令牌桶。
其中,将一个以上令牌桶分层设置。
其中,所述分层设置为根据报文的一个特征设置一层令牌桶,并分配令牌桶标识;则所述查找并确定当前报文对应的令牌桶为根据令牌桶标识查找得到对应的令牌桶。
其中,所述分层设置为先根据报文的第一特征设置至少一个令牌桶组,作为第一层令牌桶,并设置每个令牌桶组的组标识;再根据报文的第二特征在每个令牌桶组中设置一个以上令牌桶,作为第二层令牌桶,并设置每个令牌桶的桶标识;组标识和桶标识组成令牌桶标识;则所述查找并确定当前报文对应的令牌桶为根据令牌桶标识查找得到对应的令牌桶。
其中,一个以上令牌桶对应相同的报文特征。
其中,所述令牌桶参数包括桶内令牌数、时戳标记、令牌桶高度、限流速率。
其中,步骤A具体为根据报文到达令牌桶时间向相应令牌桶中注入令牌。
其中,步骤A向令牌桶内注入的令牌数为将当前报文到达令牌桶时间减去上一报文到达时间的差乘以限流速率得到向令牌桶注入的令牌数。
其中,步骤B中所述判断令牌桶是否溢出为判断当前令牌桶内的令牌数是否大于令牌桶高度,如果大于,则令牌桶溢出;否则,令牌桶没有溢出。
其中,步骤C中所述判断令牌桶内是否有足够的令牌为判断报文长度是否大于令牌桶内的当前令牌数,如果大于,则没有足够的令牌数;否则,有足够的令牌数。
其中,步骤D中所述更新令牌桶参数为更新桶内令牌数为,当前报文进入令牌桶后令牌桶内的报文数;更新时戳标记为当前报文进入令牌桶的时间。
本发明所提供的一种网络设备有效防攻击的方法,使用令牌桶模型对转发平面上送给控制平面的报文进行限流,并利用报文到来作为向令牌桶注入令牌的触发条件,极大地节约了系统资源,控制了转发平面到控制平面上送报文的流量。另外,本发明又将转发平面到控制平面之间的通道划分为一个或一个以上的逻辑通道,并根据报文的特征将这些逻辑通道分层设置为不同的令牌桶。当报文到来时,报文根据自身的特征进入不同的令牌桶,使得分布式网络设备能够根据报文的特征更加高效的、可靠的对报文进行限流,有效地防止攻击;同时由于采用根据报文的特征这种有针对性的限流方法,极大地节约了系统资源。


图1为本发明一实施例流程图;图2为本发明另一实施例流程图。
具体实施例方式
本发明的具体实施过程是先设置令牌桶及令牌桶参数,在报文到达令牌桶时,记录报文到达时间,计算需注入令牌桶的令牌数;向令牌桶注入所需令牌之后,判断令牌桶是否溢出,如果溢出,则在丢弃溢出令牌后,判断是否有足够的令牌供报文领取;如果没有溢出,则直接判断是否有足够的令牌供报文领取;在判断是否有足够的令牌供报文领取时,如果有足够的令牌供报文领取,则报文领取令牌,通过令牌桶;否则丢弃报文。
其中,设置令牌桶参数包括,设置两个变量桶内令牌数BT、时戳标记Tp;设置两个常量令牌桶高度H,限流速率V。桶内令牌数BT表示报文在进入令牌桶之前,令牌桶中的当前令牌数;时戳标记Tp表示报文在进入令牌桶之前,令牌桶记录的上一报文到达令牌桶时间;令牌桶高度H表示令牌桶所能容纳的最多令牌数;限流速率V表示令牌桶的限流速率,也就是令牌注入令牌桶的速率,这两个变量和两个常量的单位均为字节。
令牌桶常量可以根据分布式网络设备控制平面的处理能力进行设定。比如,如果分布式网络设备控制平面的处理能力强,则设置相应较高的H和V;如果分布式网络设备控制平面的处理能力弱,则设置相应较低的H和V。
实施例一将转发平面与控制平面之间的通道设置为一个令牌桶,配置令牌桶参数H和V,利用报文到达令牌桶作为向令牌桶注入令牌的触发条件,当一个报文需要通过转发平面上送给控制平面时触发注入令牌的过程,该过程主要是首先计算需向令牌桶注入令牌的令牌数,然后向令牌桶注入相应令牌数的令牌,具体过程如图1所示步骤101转发引擎记录当前要上送的报文到达令牌桶的时间Tn及报文长度S;同时读取配置好的H和V,以及当前的BT和Tp。
步骤102计算当前报文与上一报文进入令牌桶的时间差dTdT=Tn-Tp,其中Tp为令牌桶记录的上一报文到达令牌桶时间,并根据时间差dT计算需要向令牌桶注入的令牌数V×dT;然后向令牌桶注入V×dT个令牌,得到注入令牌后的令牌桶内令牌数BTn=BT+V×dT,同时记录新的时戳标记为Tp=Tn,其中BT为当前要上送报文在进入令牌桶之前,令牌桶中的令牌数。BTn为注入令牌后的令牌桶内当前令牌数。
步骤103~104判断令牌桶内当前令牌数BTn是否大于令牌桶高度H,如果BTn>H,则令牌桶溢出,丢弃令牌桶中溢出的BTn-H个令牌,使当前桶内令牌数为H,进入步骤105;如果BTn≤H,则令牌桶没有溢出,直接进入步骤105。
步骤105~107判断到达令牌桶的报文的报文长度是否大于令牌桶内的当前令牌数,如果S>BTn,则令牌桶内当前没有足够的令牌,转发引擎则丢弃报文;如果S≤BTn,则令牌桶内当前有足够的令牌,报文根据自身的长度在令牌桶内领取令牌后,通过令牌桶,即转发引擎将到达令牌桶的报文上送给控制平面,并记录新的桶内令牌数BT=BTn-S。
步骤108更新令牌桶参数,即将桶内令牌数BT和时戳标记Tp更新为记录的新的时戳标记和新的桶内令牌数。
实施例二本实施例中,转发引擎根据报文的不同特征将转发平面到控制平面之间的通道划分为一个以上的逻辑通道,并设置每个逻辑通道为令牌桶,设置令牌桶参数以及令牌桶标识(ID)。在划分逻辑通道时,可使一个或一个以上的逻辑通道对应报文的同一个特征。
例如,在分布式网络设备中,上送报文主要有四种协议类型,则可以设置五个令牌桶,其中四个令牌桶分别对应四种类型的协议报文,另外一个令牌桶则为默认令牌桶,对应不常用的、或无法识别的、或除这四种之外的协议报文。转发引擎则可将通道划分为五个逻辑通道,根据报文协议类型的这个特征分别设置每个逻辑通道对应一个令牌桶,同时分别设置令牌桶参数以及令牌桶ID。除了以上设置令牌桶的方法之外,也可以根据报文的四种协议类型,设置七个令牌桶,其中四个令牌桶对应一种类型的协议报文,另外三个令牌桶分别对应于其他三种类型的协议报文。在这种情况下,转发引擎则可将通道划分为七个逻辑通道,并设置每个逻辑通道为一个令牌桶,同时分别设置令牌桶参数以及令牌桶ID。
这里,还可以根据报文的特征分层设置令牌桶,首先根据报文的某一个特征划分多个逻辑通道,并设置为相应的令牌桶以及同时设置令牌桶参数,将根据报文同一特征划分出来的至少一个令牌桶组成令牌桶组,为该令牌桶组设置组ID;然后,再根据报文的另一特征,对同一令牌桶组中的令牌桶分别设置桶ID。在这种情况下,令牌桶ID由组ID和桶ID组成。这时,上送报文根据它的某一特征进入对应的令牌桶组,然后再根据报文的另一特征进入具体的令牌桶。这里,用于划分令牌桶组的特征可称为报文的第一特征,根据报文第一特征划分的令牌桶组称为第一层令牌桶;用于划分每个令牌桶组中不同令牌桶的特征可称为报文的第二特征,在同一个令牌桶组内根据报文第二特征划分的令牌桶称为第二层令牌桶。
例如,报文的某个特征为报文的协议类型,报文的另一特征为报文来自的虚拟专用网(VPN)。假设,在分布式网络设备中,上送报文主要有四种协议类型,并且,上送报文分别来自于三个不同的VPN,那么,可针对报文的协议类型设置五个令牌桶组,并分别分配相应的组ID;针对报文来自于的不同VPN在每个令牌桶组中进一步设置三个令牌桶,并分别分配相应的桶ID。其中,设置的五个令牌桶组中,四个令牌桶组分别对应于四种不同的协议类型,另外一个为默认令牌桶组,用于不常用的、或无法识别的、或除这四种之外的报文;在每个令牌桶组中设置的三个令牌桶,分别对应于同一协议类型报文中三个不同的VPN。这样,将所有令牌桶组中所包含的所有令牌桶个数求和,就可以得到需要划分的逻辑通道个数。
在设置了令牌桶组的情况下,也可以设置一个或一个以上的令牌桶组对应报文的一个特征;在一个令牌桶组中,也可以设置一个或一个以上的令牌桶对应报文的一个特征。
这里,所述的报文的特征包括报文的协议类型,报文来自的虚拟专用网、或虚拟局域网、或端口的种类。
以上根据报文的特征分层设置令牌桶的例子为设置两层,包括设置令牌桶组和令牌桶;另外,还可以根据报文特征的不断细分,将令牌桶设置为三层,包括设置令牌桶群、令牌桶组和令牌桶,其中,每个令牌桶群由对应于报文同一特征的至少一个令牌桶组所组成,同时设置相应的群ID。此时,令牌桶ID由群ID、组ID和桶ID组成。上送报文根据报文的某一特征进入令牌桶群;再根据另一个特征进入令牌桶群的中某一令牌桶组;最后,根据报文的又一特征进入令牌桶组的中具体某一令牌桶。当然,在实际应用中,可以根据上述思想,进一步设置三层以上令牌桶。
这里,在设置令牌桶限流速率V的时候,还可以根据分布式网络设备所处的位置来设置,例如,如果分布式网络设备处于网络接入侧时,由于不需要处理开放最短路径优先(OSPF,Open Shortest Path First),则在为OSPF设置了令牌桶的前提下,可设置该令牌桶的限流速率为0;而此时,分布式网络设备需要处理大量的地址解析协议(ARP,Address Resolution Protocol)报文,因此可以设置较大的令牌桶限流速率。
当一个报文需要通过转发平面上送到控制平面时,同样利用报文到达令牌桶作为向令牌桶注入令牌的触发条件,与实施例一不同的是在向令牌桶注入令牌之前,增加了根据报文的特征查找相应令牌桶的过程,具体步骤如图2所示步骤201依照转发引擎预先设置的令牌桶,根据报文的特征找到相对应的令牌桶,进入该令牌桶。
例如,转发引擎根据报文的某一特征,如报文的协议类型,为该报文配置相应的令牌桶ID。报文通过转发引擎根据该令牌桶ID查找得到相应的令牌桶,进入步骤202。如果转发引擎设置了令牌桶组,则转发引擎根据报文的某一特征,如报文的协议类型,找到该报文对应的令牌桶组,并为该报文配置相应的组ID;在令牌桶组中,转发引擎再根据该报文的另一特征配置桶ID,如报文源目的地址所在的VPN,报文则可通过获得的组ID和桶ID组成的令牌桶ID,由转发引擎查找得到对应的令牌桶后,进入步骤202。如果转发引擎设置的是令牌桶群,则可以根据同样的方法找到相对应的令牌桶后,进入步骤202。
步骤202~209具体实施过程与实施例一中步骤101~108相同,在此不再详述。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
权利要求
1.一种网络设备有效防攻击的方法,其特征在于,设置令牌桶及令牌桶参数,该方法还包括以下步骤A、当报文到达令牌桶时,向相应令牌桶内注入令牌;B、判断所述令牌桶是否溢出,如果溢出,则丢弃溢出报文,进入步骤C;否则,直接进入步骤C;C、判断所述令牌桶内是否有足够的令牌,如果有,则报文领取令牌通过令牌桶;否则,丢弃报文;D、更新令牌桶参数。
2.根据权利要求1所述的方法,其特征在于,所述设置令牌桶为将报文传输通道设置为一个令牌桶。
3.根据权利要求1所述的方法,其特征在于,所述设置令牌桶为根据报文特征将报文传输通道划分为一个以上逻辑通道,且为每个逻辑通道设置对应的令牌桶;步骤A中在报文到达令牌桶之前,进一步包括根据当前到达报文的特征查找并确定当前报文对应的令牌桶,令当前报文到达所确定的令牌桶。
4.根据权利要求3所述的方法,其特征在于,将一个以上令牌桶分层设置。
5.根据权利要求4所述的方法,其特征在于,所述分层设置为根据报文的一个特征设置一层令牌桶,并分配令牌桶标识;则所述查找并确定当前报文对应的令牌桶为根据令牌桶标识查找得到对应的令牌桶。
6.根据权利要求4所述的方法,其特征在于,所述分层设置为先根据报文的第一特征设置至少一个令牌桶组,作为第一层令牌桶,并设置每个令牌桶组的组标识;再根据报文的第二特征在每个令牌桶组中设置一个以上令牌桶,作为第二层令牌桶,并设置每个令牌桶的桶标识;组标识和桶标识组成令牌桶标识;则所述查找并确定当前报文对应的令牌桶为根据令牌桶标识查找得到对应的令牌桶。
7.根据权利要求3至6任一项所述的方法,其特征在于,一个以上令牌桶对应相同的报文特征。
8.根据权利要求1至6任一项所述的方法,其特征在于,所述令牌桶参数包括桶内令牌数、时戳标记、令牌桶高度、限流速率。
9.根据权利要求8所述的方法,其特征在于,步骤A具体为根据报文到达令牌桶时间向相应令牌桶中注入令牌。
10.根据权利要求9所述的方法,其特征在于,步骤A向令牌桶内注入的令牌数为将当前报文到达令牌桶时间减去上一报文到达时间的差乘以限流速率得到向令牌桶注入的令牌数。
11.根据权利要求8所述的方法,其特征在于,步骤B中所述判断令牌桶是否溢出为判断当前令牌桶内的令牌数是否大于令牌桶高度,如果大于,则令牌桶溢出;否则,令牌桶没有溢出。
12.根据权利要求8所述的方法,其特征在于,步骤C中所述判断令牌桶内是否有足够的令牌为判断报文长度是否大于令牌桶内的当前令牌数,如果大于,则没有足够的令牌数;否则,有足够的令牌数。
13.根据权利要求8所述的方法,其特征在于,步骤D中所述更新令牌桶参数为更新桶内令牌数为,当前报文进入令牌桶后令牌桶内的报文数;更新时戳标记为当前报文进入令牌桶的时间。
全文摘要
本发明公开了一种网络设备有效防攻击的方法,设置令牌桶及令牌桶参数,该方法还包括以下步骤A、当报文到达令牌桶时,向相应令牌桶内注入令牌;B、判断所述令牌桶是否溢出,如果溢出,则丢弃溢出报文,进入步骤C;否则,直接进入步骤C;C、判断所述令牌桶内是否有足够的令牌,如果有,则报文领取令牌通过令牌桶;否则,丢弃报文;D、更新令牌桶参数。本发明使用令牌桶模型对转发平面上送给控制平面的报文进行限流,并利用报文到来作为向令牌桶注入令牌的触发条件,控制转发平面到控制平面上送报文流量。另外,又将转发平面到控制平面之间的通道划分为逻辑通道,根据报文特征将逻辑通道设置为令牌桶,报文根据自身特征进入不同的令牌桶。
文档编号H04L29/06GK1852227SQ200510093079
公开日2006年10月25日 申请日期2005年8月25日 优先权日2005年8月25日
发明者任广涛 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1