防止mac地址表溢出攻击的方法及网络设备的制作方法

文档序号:7551348阅读:605来源:国知局
专利名称:防止mac地址表溢出攻击的方法及网络设备的制作方法
技术领域
本申请涉及网络安全技术领域,尤其涉及防止MAC地址表溢出攻击的方法及网络设备。
背景技术
随着新技术的诞生和发展,越来越显出二层转发的便利,因此,例如以太网虚拟化互联EV1、最短路径桥SPB、多链路透明互联Trill等新技术都采用广义的二层进行转发报文,从而在接入层的攻击有从三层的以太网地址解析协议ARP攻击转向二层的介质访问控制Mac攻击之势。Mac地址表溢出攻击,就是利用交换机、路由器等网络设备的Mac地址表项有一定的容量,向网络设备发送源Mac地址变化的报文,网络设备会不断学习源Mac地址表项和port接口,而将Mac地址表项占满,此时,继续向网络设备发送任何单播报文时,网络设备就无法学习该单播报文的Mac地址,该单播报文成为未知单播报文,而在传统的二层转发中,面对未知单播报文的转发,网络设备采用的是广播方式向成员内的每一个端口都转发未知单播报文,这样使得网络设备的Mac地址表项被占满后,网络设备会将接收到的所有单播报文都作为未知单播报文进行广播发送,从而会出现未知单播报文的泛洪,其它端口也同样收到报文,占用大量业务带宽,造成了带宽的浪费,同时也占用了所述网络设备的CPU及Mac地址表项等资源,甚至会威胁到局域网内的安全,因为学不到Mac地址,可能会导致其它私密的报文也被所述网络设备认为是未知单播报文而进行广播发送,造成不必要的风险。因此,Mac地址表溢出攻击会造成业务带宽被占用,也浪费了网络设备的CPU及Mac地址表项等资源,甚至会威胁到局域网内的安全。

发明内容
有鉴于此,本申请提出一种防止MAC地址表溢出攻击的方法,可以有效防止MAC地址表溢出攻击的发生。本申请还提出一种网络设备,可以有效防止MAC地址表溢出攻击的发生。为达到上述目的,本申请实施例的技术方案是这样实现的:一种防止MAC地址表溢出攻击的方法,包括以下步骤:网络设备按照预设时间周期获取其各个端口在所述时间周期内学习Mac地址表项的数量,当任一端口在所述时间周期内学习到的Mac地址表项数量达到第一阈值时,标记该端口为可疑端口;当所述网络设备学习的所有Mac地址表项数量达到第二阈值时,若所述可疑端口学习到的Mac地址表项数量超过为所述可疑端口配置的Mac地址表项数量的门限阈值,则用超出所述门限阈值的Mac地址表项覆盖当前Mac地址表中最早学习的对应数量的Mac地址表项,所述第二阈值大于第一阈值。
一种网络设备,包括:Mac表项数量获取模块、可疑端口鉴定模块、Mac表项覆盖模块,其中:Mac表项数量获取模块,用于按照预设时间周期获取各个端口在所述时间周期内学习Mac地址表项的数量;可疑端口标记模块,用于当任一端口在所述时间周期内学习到的Mac地址表项数量达到第一阈值时,标记该端口为可疑端口 ;Mac表项覆盖模块,用于当本设备学习的所有Mac地址表项数量达到第二阈值时,若所述可疑端口学习到的Mac地址表项数量超过为所述可疑端口配置的Mac地址表项数量的门限阈值,则用超出所述门限阈值的Mac地址表项覆盖当前Mac地址表中最早学习的对应数量的Mac地址表项,所述第二阈值大于第一阈值。本申请的有益效果为,通过将可能受到攻击的端口标记为可疑端口,并在网络设备学习的Mac地址表项数量达到一定阈值、且所述可疑端口学习到的Mac地址表项数量超过为其配置的门限阈值时,用所述可疑端口学习到的超出所述门限阈值的Mac地址表项覆盖当前Mac地址表中最早学习的对应数量的Mac地址表项,可以及时限制Mac地址表中Mac地址表项的数量,可以有效防止Mac地址表溢出攻击的发生。


图1为本申请实施例的方法流程图;图2为本申请实施例的网络设备功能结构模块示意图。
具体实施例方式为了使本申请的目的、技术方案及优点更加清楚明白,以下通过具体实施例并参见附图,对本申请进行详细说明。本申请中,首先在网络设备上配置使能防mac地址表溢出测试功能,然后所述网络设备开始启动防mac地址表溢出攻击检测,即网络设备按照预设时间周期获取其各个端口在所述时间周期内学习Mac地址表项的数量,当任一端口在所述时间周期内学习到的Mac地址表项数量达到第一阈值时,标记该端口为可疑端口 ;当所述网络设备学习的所有Mac地址表项数量达到第二阈值时,若所述可疑端口学习到的Mac地址表项数量超过为所述可疑端口配置的Mac地址表项数量的门限阈值,则用超出所述门限阈值的Mac地址表项覆盖当前Mac地址表中最早学习的对应数量的Mac地址表项,所述第二阈值大于第一阈值。本申请通过获取各端口学习的Mac地址表项数量信息,标记出可能受到攻击的可疑端口,并且在所有Mac地址表项达到更大的阈值时,对之前标记的可疑端口采取相应的措施,即为可疑端口的Mac地址表项数量设置门限阈值,用可疑端口学习到的超出门限阈值的Mac地址表项覆盖网络设备上当前Mac地址表中最早学习的Mac地址表项,以便于及时阻止Mac地址表的溢出,避免网络设备受到Mac地址表溢出攻击。本申请实施例的方法流程如图1所示,一种防止MAC地址表溢出攻击的方法,包括以下步骤:步骤101:网络设备按照预设时间周期获取其各个端口在所述时间周期内学习Mac地址表项的数量。所述网络设备获取其各个端口学习Mac地址表项的数量的方式有如下两种。第一种方式:所述网络设备实时获取其各个端口学习Mac地址表项的数量,按照预设时间周期统计其各个端口在所述时间周期内学习Mac地址表项的数量。目前,每一个端口的芯片都会实时记录本端口学习到的Mac地址表项的数量,因此,网络设备的CPU可以很容易地实时获取到各个端口学习Mac地址表项的数量,然后,按照预设时间周期统计各个端口在所述时间周期内学习Mac地址表项的数量,时间周期由用户自定义设置。例如,预先设定时间周期为5秒,有端口广端口 10,则网络设备每隔5秒统计一次各个端口学习Mac地址表项的数量,比如,统计出端口 I在5秒内学习Mac地址表项的总数量为100条,分别统计出各个端口的数据。第二种方式:所述网络设备接收其各个端口的芯片按照预设时间周期发送的对应端口在所述时间周期内学习Mac地址表项的数量信息。此方式中,统计的工作由各个端口的芯片完成,目前,各个端口的芯片会实时记录本端口学习到的Mac地址表项的数量,通过可编程逻辑器件(FPGA或CPLD)很容易实现端口芯片的统计功能,由各个端口的芯片按时间周期统计后再周期性地发送给网络设备的CPU。例如,端口 I的芯片每隔5秒统计一次端口 I在这5秒内学习Mac地址表项的总数量100,并发送给网络设备的CPU。步骤102:当任一端口在所述时间周期内学习到的Mac地址表项数量达到第一阈值时,标记该端口为可疑端口。本步骤用于鉴别各个端口是否为可能受到攻击的可疑端口。这里,当任一端口在预设时间周期内学习到的Mac地址表项数量达到第一阈值时,网络设备标记该端口为可疑端口。例如,当任一端口在5秒内学习到的Mac地址达到网络设备上Mac地址表容量的50%时,认为该端口可能受到攻击,标记该端口为可疑端口。网络设备上Mac地址表容量的50%为第一阈值。所述第一阈值根据网络中主机的数量、接入设备的数量及流量来确定。当网络中的主机和接入设备数量较多、流量较大时,第一阈值就设置得大一些,否则,可以设置小一些。例如,当网络中的主机及接入设备的数量为10000台时,流量也会较大,若时间周期设置为5秒,则第一阈值可以设置为网络设备上Mac地址表容量的50%,而当网络中的主机及接入设备的数量只有100台时,若时间周期设置为3秒,则第一阈值可以设置为网络设备上Mac地址表容量的10%。第一阈值的确定需要在考虑上述因素的前提下,根据实际应用中的不断实验,找到合理的取值。后面的第二阈值、第三阈值以及为可疑端口配置的Mac地址表项数量的门限阈值均是如此取值。第一阈值的设置主要是为了标记出可疑端口,可疑端口可以为一个,也可以为多个,只要满足可疑端口的标记条件即可。接下来继续对网络设备学习的Mac地址表项数量进行检测,当情况更严重时,就需要对所述可疑端口采取措施,以防止Mac地址表溢出攻击发生,具体见如下步骤。步骤103:当所述网络设备学习的所有Mac地址表项数量达到第二阈值时,若所述可疑端口学习到的Mac地址表项数量超过为所述可疑端口配置的Mac地址表项数量的门限阈值,则用超出所述门限阈值的Mac地址表项覆盖当前Mac地址表中最早学习的对应数量的Mac地址表项,所述第二阈值大于第一阈值。第二阈值的设置是为了对可疑端口采取必要的措施,以防止Mac地址表溢出攻击发生。因此,第二阈值大于第一阈值,表明网络设备的Mac地址表更接近溢出的状态,也就更容易受到Mac表溢出攻击。第二阈值具体根据网络中主机的数量、接入设备的数量及流量来确定。网络中主机数、接入设备数量及流量越多,第二阈值设置得越接近网络设备上Mac地址表的最大容量。例如,第一阈值设置为网络设备上Mac地址表容量的50%,第二阈值根据网络状况设置为网络设备上Mac地址表容量的90%。当所述网络设备学习的所有Mac地址表项数量达到第二阈值时,进一步判断所述可疑端口学习到的Mac地址表项数量是否超过为所述可疑端口配置的Mac地址表项数量的门限阈值。这里,Mac地址表项数量的门限阈值是预先为各个端口(包括可疑端口和正常端口)配置的,用于限制各个端口下Mac地址表项的数量,即每个端口下,最多能学到多少个Mac地址表项,从而限制网络设备整体的流量,防止Mac地址表溢出,进而防止网络设备受到Mac地址表溢出攻击。所述Mac地址表项数量的门限阈值也是根据网络中主机的数量、接入设备的数量及流量来确定的。一般情况下,可疑端口当前学习到的Mac地址表项总数量都会超过为所述可疑端口配置的Mac地址表项数量的门限阈值。此时,可疑端口可以继续学习Mac地址表项,用超出所述门限阈值的Mac地址表项覆盖当前Mac地址表中最早学习的对应数量的Mac地址表项,也就是用新学习到的Mac地址表项覆盖之前最早学习到的Mac地址表项。例如,当所述网络设备学习的所有Mac地址表项数量达到网络设备上Mac地址表容量的90% (第二阈值)时,若所述可疑端口学习到的Mac地址表项数量为100条,超过为所述可疑端口配置的Mac地址表项数量的门限阈值90条,则用超出所述门限阈值的Mac地址表项10条,覆盖当前Mac地址表中最早学习的10条Mac地址表项。因为越早学习到的Mac地址表项,其存在价值越小。通过覆盖的方式可以限制网络设备学习Mac地址表项的数量,防止网络设备受到Mac地址表溢出攻击。当所述网络设备学习的所有Mac地址表项数量达到第二阈值时,为了更好地防止所述网络设备受到Mac地址表溢出攻击,还可以设置所述可疑端口学习到的每一 Mac地址表项的老化时间为AX (N+S),以减少网络设备上Mac地址表中Mac地址表项的数量;其中,A是该Mac地址表项的当前老化时间,N是为所述可疑端口预先配置的Mac地址表项数量的门限阈值,S是所述可疑端口当前学习到的Mac地址表项总数量。当所述网络设备学习的所有Mac地址表项数量达到第二阈值时,S 一般都比N大,因此,Mac地址表项的老化时间为AX (N+S)小于Mac地址表项的当前正常老化时间A,可以加速Mac地址表项的老化,快速恢复网络转发能力。
进一步地,当所述网络设备学习的所有Mac地址表项数量达到其Mac地址表的最大容量时,也就是占满了 Mac地址表,此时,受到的威胁更大,可以直接暂停所述可疑端口的Mac地址学习及未知单播报文转发,并设置所述暂停操作的老化时间。例如,在所述网络设备学习的所有Mac地址表项数量达到Mac地址表容量的90%(第二阈值)后,网络设备学习的Mac地址表项数量还在继续增加,直至达到Mac地址表容量的100%,占满了 Mac地址表,此时,对可疑端口执行暂停操作,使可疑端口停止学习任何Mac地址表项,也停止转发未知单播报文,以防止未知单播报文的泛洪,形成Mac地址表溢出攻击。所述网络设备暂停所述可疑端口的Mac地址学习及未知单播报文转发时,继续执行所述可疑端口对有目的Mac地址表项的单播报文的转发,并且设置所述暂停操作的老化时间,因为一般攻击不是持续性地,比如设置老化时间为5秒,5秒后恢复学习Mac地址表项及正常转发报文,以尽量减少对正常单播报文学习及转发的影响。进行上述暂停的操作,并不影响其他它接口学习Mac地址表项。采取以上措施后,若可疑端口恢复到正常状态,需要取消针对所述可疑端口的上述各项限制操作,因此,继续对可疑端口学习到的Mac地址表项数量进行检测,当所述可疑端口当前学习到的Mac地址表项总数量小于第三阈值时,取消针对所述可疑端口的所有操作,包括用可疑端口学习到的超出其门限阈值的Mac地址表项覆盖当前Mac地址表中最早学习的对应数量的Mac地址表项的操作、加速可疑端口学习到的Mac地址表项老化的操作、以及暂停可疑端口的Mac地址学习和未知单播报文转发的操作,取消针对所述可疑端口的上述操作后,标记所述可疑端口为正常端口。所述第三阈值用于鉴别可疑端口是否恢复正常状态,第三阈值小于第一阈值,也是根据网络中主机的数量、接入数量及流量来确定。例如,第一阈值设置为网络设备上Mac地址表容量的50%,第三阈值设置为网络设备上Mac地址表容量的40%,当所述可疑端口学习到的Mac地址表项数量小于网络设备上Mac地址表容量的40%时,取消针对所述可疑端口的所有操作,标记所述可疑端口为正常端□。本申请实施例方案通过一系列的策略,来减少流量,防止网络设备被攻击,且不会影响。本申请实施例的设备功能模块示意图如图2所示,一种网络设备,既可以是二层的交换机,也可以是二层的路由器,所述网络设备包括=Mac表项数量获取模块、可疑端口鉴定模块、Mac表项覆盖模块,其中:Mac表项数量获取模块,用于按照预设时间周期获取各个端口在所述时间周期内学习Mac地址表项的数量;可疑端口标记模块,用于当任一端口在所述时间周期内学习到的Mac地址表项数量达到第一阈值时,标记该端口为可疑端口 ;Mac表项覆盖模块,用于当本设备学习的所有Mac地址表项数量达到第二阈值时,若所述可疑端口学习到的Mac地址表项数量超过为所述可疑端口配置的Mac地址表项数量的门限阈值,则用超出所述门限阈值的Mac地址表项覆盖当前Mac地址表中最早学习的对应数量的Mac地址表项,所述第二阈值大于第一阈值。
较佳地,所述网络设备进一步包括:Mac地址加速老化模块,用于在所述网络设备学习的所有Mac地址表项数量达到第二阈值之后,设置所述可疑端口学习到的每一 Mac地址表项的老化时间为AX (N+S);其中,A是该Mac地址表项的当前老化时间,N是为所述可疑端口预先配置的Mac地址表项数量的门限阈值,S是所述可疑端口当前学习到的Mac地址表项总数量。较佳地,所述网络设备进一步包括:可疑端口暂停操作模块,用于当本设备学习的所有Mac地址表项数量达到其Mac地址表的最大容量时,暂停所述可疑端口的Mac地址学习及未知单播报文转发,并设置所述暂停操作的老化时间。较佳地,所述网络设备进一步包括:恢复处理模块,用于当所述可疑端口当前学习到的Mac地址表项总数量小于第三阈值时,取消针对所述可疑端口的所有操作,标记所述可疑端口为正常端口,所述第三阈值小于第一阈值。较佳地,所述Mac表项数量获取模块具体用于:实时获取各个端口学习Mac地址表项的数量,按照预设时间周期统计各个端口在所述时间周期内学习Mac地址表项的数量;或者,接收各个端口的芯片按照预设时间周期发送的对应端口在所述时间周期内学习Mac地址表项的数量信息。所述第一阈值、第二阈值以及为可疑端口配置的Mac地址表项数量的门限阈值均是根据网络中主机的数量、接入设备的数量及流量来确定。本申请方案能根据交换机的转发报文,自动识别网络设备所处的转发状态,可以采取多方面的措施来预防和制止二层未知单播报文的攻击,从而可有效地防止Mac溢出攻击发生。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
权利要求
1.一种防止MAC地址表溢出攻击的方法,其特征在于,包括以下步骤: 网络设备按照预设时间周期获取其各个端口在所述时间周期内学习介质访问控制Mac地址表项的数量,当任一端口在所述时间周期内学习到的Mac地址表项数量达到第一阈值时,标记该端口为可疑端口 ; 当所述网络设备学习的所有Mac地址表项数量达到第二阈值时,若所述可疑端口学习到的Mac地址表项数量超过为所述可疑端口配置的Mac地址表项数量的门限阈值,则用超出所述门限阈值的Mac地址表项覆盖当前Mac地址表中最早学习的对应数量的Mac地址表项,所述第二阈值大于第一阈值。
2.根据权利要求1所述的方法,其特征在于,所述网络设备学习的所有Mac地址表项数量达到第二阈值之后进一步包括: 设置所述可疑端口学习到的每一 Mac地址表项的老化时间为AX (N+S); 其中,A是该Mac地址表项的当前老化时间,N是为所述可疑端口预先配置的Mac地址表项数量的门限阈值,S是所述可疑端口当前学习到的Mac地址表项总数量。
3.根据权利要求1所述的方法,其特征在于,所述方法进一步包括: 当所述网络设备学习的所有Mac地址表项数量达到其Mac地址表的最大容量时,暂停所述可疑端口的Mac地址学习及未知单播报文转发,并设置所述暂停操作的老化时间。
4.根据权利要求1或2或3所述的方法,其特征在于,所述方法进一步包括: 当所述可疑端口当前学习到的Mac地址表项总数量小于第三阈值时,取消针对所述可疑端口的所有操作,标记所述可疑端口为正常端口,所述第三阈值小于第一阈值。
5.根据权利要求1所述的方法,其特征在于,所述网络设备按照预设时间周期获取其各个端口在所述时间周期内学习Mac地址表项的数量,包括: 所述网络设备实时获取其各个端口学习Mac地址表项的数量,按照预设时间周期统计其各个端口在所述时间周期内学习Mac地址表项的数量; 或者, 所述网络设备接收其各个端口的芯片按照预设时间周期发送的对应端口在所述时间周期内学习Mac地址表项的数量信息。
6.一种网络设备,其特征在于,包括:Mac表项数量获取模块、可疑端口鉴定模块、Mac表项覆盖模块,其中: Mac表项数量获取模块,用于按照预设时间周期获取各个端口在所述时间周期内学习介质访问控制Mac地址表项的数量; 可疑端口标记模块,用于当任一端口在所述时间周期内学习到的Mac地址表项数量达到第一阈值时,标记该端口为可疑端口 ; Mac表项覆盖模块,用于当本设备学习的所有Mac地址表项数量达到第二阈值时,若所述可疑端口学习到的Mac地址表项数量超过为所述可疑端口配置的Mac地址表项数量的门限阈值,则用超出所述门限阈值的Mac地址表项覆盖当前Mac地址表中最早学习的对应数量的Mac地址表项,所述第二阈值大于第一阈值。
7.根据权利要求6所述的网络设备,其特征在于,所述网络设备进一步包括: Mac地址加速老化模块 ,用于在所述网络设备学习的所有Mac地址表项数量达到第二阈值之后,设置所述可疑端口学习到的每一 Mac地址表项的老化时间为AX (N+S); 其中,A是该Mac地址表项的当前老化时间,N是为所述可疑端口预先配置的Mac地址表项数量的门限阈值,S是所述可疑端口当前学习到的Mac地址表项总数量。
8.根据权利要求6所述的网络设备,其特征在于,所述网络设备进一步包括: 可疑端口暂停操作模块,用于当本设备学习的所有Mac地址表项数量达到其Mac地址表的最大容量时,暂停所述可疑端口的Mac地址学习及未知单播报文转发,并设置所述暂停操作的老化时间。
9.根据权利要求6或7或8所述的网络设备,其特征在于,所述网络设备进一步包括: 恢复处理模块,用于当所述可疑端口当前学习到的Mac地址表项总数量小于第三阈值时,取消针对所述可疑端口的所有操作,标记所述可疑端口为正常端口,所述第三阈值小于第一阈值。
10.根据权利要求6所述的网络设备,其特征在于,所述Mac表项数量获取模块具体用于: 实时获取各个端口学习Mac地址表项的数量,按照预设时间周期统计各个端口在所述时间周期内学习Mac地址表项的数量; 或者, 接收各个端口的芯片按照预设时间周期发送的对应端口在所述时间周期内学习Mac地址表项的数量信息。
全文摘要
本申请公开了一种防止MAC地址表溢出攻击的方法,包括网络设备按照预设时间周期获取其各个端口在所述时间周期内学习Mac地址表项的数量,当任一端口在所述时间周期内学习到的Mac地址表项数量达到第一阈值时,标记该端口为可疑端口;当所述网络设备学习的所有Mac地址表项数量达到第二阈值时,若所述可疑端口学习到的Mac地址表项数量超过为所述可疑端口配置的Mac地址表项数量的门限阈值,则用超出所述门限阈值的Mac地址表项覆盖当前Mac地址表中最早学习的对应数量的Mac地址表项,所述第二阈值大于第一阈值。本申请还公开了一种网络设备。本申请可以有效防止MAC地址表溢出攻击的发生。
文档编号H04L29/06GK103095717SQ201310034249
公开日2013年5月8日 申请日期2013年1月28日 优先权日2013年1月28日
发明者徐燕成, 王伟 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1