一种防止DDOS攻击的方法和装置与流程

文档序号:17923251发布日期:2019-06-15 00:15阅读:144来源:国知局
本发明涉及网络与信息安全领域中的软件定义网络(SDN)的控制器安全功能设计,尤其涉及一种防止分布式拒绝服务(DDOS)攻击的方法和装置。
背景技术
::SDN(SoftwareDefinedNetwork,)是2006年出现的一种网络技术,该技术将现有的网络控制与转发功能解耦,通过一个集中控制器,实现对整个网络通信的控制。正常工作时,交换机接收到数据包后,按照预置的流表中路由策略转发到下一跳,或者随时接收控制器的命令,修改和删除流表项。数据包在到达交换机后,交换机对数据包首先通过流表匹配,不能匹配的数据包要返回给控制器,当恶意的攻击者要对控制器发起DDOS攻击时,随机产生数据包,其格式符合合法数据包的格式,但是不能匹配交换机的流表项,交换机将该类数据包判断为tablemiss事件,如果交换机预设置为将tablemiss的数据包都转发给控制器,则会有大量数据包到达控制器,当攻击者控制的交换机足够多时,将会大大消耗控制器的处理资源,导致负控制器负载过大,使得系统瘫痪,影响正常用户的业务。现有解决SDN网络DDOS攻击的方法是通过部署多台控制器,增加控制器的处理能力的角度考虑的。但是由于网络设备扩容量有限,而且容量越大设备成本越高,所以在此技术在实际应用中有一定的局限性。另外,也有人提出一种SDN控制器盲DDOS攻击防护系统,(注:盲DDOS攻击是一种适用于SDN网络特有机制的攻击方式,指黑客利用交换机将无法处理的数据包上传给控制器这一特性发起的DDOS攻击。)这种方法系统包括:SDN控制器资源池监控器、部署在SDN交换机上的控制器列表动态切换模块以及与控制器通过数据接口进行数据交互攻击检测应用模块;系统中的SDN控制器资源池监控器,用于维护多个物理机和/或虚拟机控制器的创建、数据同步、IP地址分配以及状态列表下发交换机;攻击检测应用模块对SDN网中的所有的控制器以及每个控制器与交换机的通信数据流进行检测,当检测到针对控制器的盲DDOS攻击流时,资源池监控器会根据攻击流量大小,动态调控控制器的数量。该发明适用于多控制器的场景,控制器资源池中包含多于一台控制器,而SDN控制器资源池监控器可以动态调节控制器的数量,从而保护控制不受DDOS攻击。上述方法适用于SDN网络的控制层中有分布式控制器部署的场景,对于流表(Flowtable)中无法处理的异常数据包,交换机都会发给控制器。如果攻击者利用这一特性,会使得交换机自动去找对应的控制器,将无法处理的数据包转发到控制器,当大量的交换机上传大量的数据包的时候,就会造成控制器的拒绝服务,甚至瘫痪。但是该发明在只部署一台控制器的场景下,是无法解决此类安全威胁的。比如在数据中心中,只需要部署一台控制器,但是交换机仍然收到攻击者发送的大量无法处理的数据包,按照流表规则,这类数据包将在短时间内被交换机转发到控制器,导致控制器拒绝服务。技术实现要素:本发明实施例的目的在于提供一种防止DDOS攻击的方法和装置,防止在SDN网络中,受到DDOS攻击时导致控制器整体瘫痪。为了达到上述目的,本发明实施例提供了一种防止DDOS攻击的方法,应用于交换机,包括:交换机接收数据包。所述交换机对接收到的数据包按照流表进行匹配。在匹配不成功时,根据预先建立的交换机群与控制器的流量分析次级模块之间的对应关系,确认交换机所属交换机群对应的流量分析次级模块,所述控制器包含多个用于对流量进行分析的所述流量分析次级模块。在所确认的流量分析次级模块正常工作时,将所述数据包发送给所确认的流量分析次级模块。其中,将所述数据包发送给所确认的流量分析次级模块之后,所述方法还包括:交换机接收控制器返回的针对所述数据包的流表项。其中,所述方法还包括:在所确认的流量分析次级模块不能正常工作时,则根据预设的候选策略处理所述数据包。其中,所述预设的候选策略为:在本交换机所属交换机群对应的流量分析次级模块工作异常时,将需要发送给该流量分析次级模块的数据包转发给预设的下一个交换机,或者在本交换机所属交换机群对应的流量分析次级模块工作异常时,将需要发送给该流量分析次级模块的数据包均匀分配给与控制器的其他多个流量分析次级模块对应的交换机群,或者在本交换机所属交换机群对应的流量分析次级模块工作异常时,将需要发送给该流量分析次级模块的数据包丢弃。为了达到上述目的,本发明实施例还提供了一种防止DDOS攻击的装置,包括:接收模块,用于接收数据包。匹配模块,用于对接收到的数据包按照流表进行匹配。确认模块,用于当匹配模块匹配不成功时,根据预先建立的交换机群与控制器的流量分析次级模块之间的对应关系,确认交换机所属交换机群对应的流量分析次级模块,所述控制器包含多个用于对流量进行分析的所述流量分析次级模块。发送模块,用于在所确认的流量分析次级模块正常工作时,将所述数据包发送给所确认的流量分析次级模块。其中,所述接收模块还用于接收控制器返回的针对所述数据包的流表项。其中,所述装置还包括:异常处理模块,用于在所确认的流量分析次级模块不能正常工作时,则根据预设的候选策略处理所述数据包。其中,所述预设的候选策略为:在本交换机所属交换机群对应的流量分析次级模块工作异常时,将需要发送给该流量分析次级模块的数据包转发给预设的下一个交换机,或者在本交换机所属交换机群对应的流量分析次级模块工作异常时,将需要发送给该流量分析次级模块的数据包均匀分配给与控制器包括的其他多个流量分析次级模块对应的交换机群,或者在本交换机所属交换机群对应的流量分析次级模块工作异常时,将需要发送给该流量分析次级模块的数据包丢弃。为了达到上述目的,本发明实施例还提供了一种防止DDOS攻击的方法,应用于控制器,包括:通过控制器的流量分析次级模块接收并分析交换机发送的数据包,所述控制器包括多个用于对所述数据包进行分析的流量分析次级模块,其中,所述数据包是所述交换机根据预先建立的交换机群与控制器的流量分析次级模块之间的对应关系发送至该交换机所属交换机群对应的流量分析次级模块的。根据所述分析结果和当前的网络拓扑管理图生成流表项,并将所述生成的流表项与原有流表项进行比对,检测是否有冲突,若所述流表项与原有流表项冲突,则重新生成流表项,直到生成的流表项与原有流表项不冲突为止。将所述流表项发送给相应的交换机。其中,所述根据所述分析结果和当前的网络拓扑管理图生成流表项之前,所述方法还包括:监控网络中的流量情况,根据监控结果生成网络拓扑管理图。为了达到上述目的,本发明实施例还提供了一种防止DDOS攻击的装置,包括:流量分析次级模块,用于接收并分析交换机发送的数据包,所述控制器包括多个用于对数据包进行分析的流量分析次级模块,其中,所述数据包是所述交换机根据预先建立的交换机群与控制器的流量分析次级模块之间的对应关系发送至该交换机所属交换机群对应的流量分析次级模块的。流表项生成模块,用于根据所述分析结果和当前的网络拓扑管理图生成流表项,并将所述生成的流表项与原有流表项进行比对,检测是否有冲突,并在所述流表项与原有流表项冲突时,触发所述流表项生成模块重新生成流表项,直到生成的流表项与原有流表项不冲突为止。命令下发模块,用于将所述流表项发送给相应的交换机。其中,所述装置还包括:网络拓扑管理模块,在流表项生成模块生成流表项之前,用于监控网络中的流量情况,根据监控结果生成网络拓扑管理图。本发明的有益效果是:本发明实施例提供的防止DDOS攻击的方法和装置的核心思想是将控制器的用于分析流量的流量分析模块划分成若干个流量分析次级模块。流量分析次级模块之间是平等独立的,每个流量分析次级模块控制一个交换机群。正常情况下,当交换机有不能处理的数据包时,需要将这些数据包上传到与所述交换机所属的交换机群对应的流量分析次级模块上,当遇到DDOS攻击时,攻击者随机产生数据包发送给第一交换机群中的所有交换机,这些数据包由于是随机产生的,无意义,因此在交换机的流表中不能匹配;因此第一交换机群中所有交换机要把数据包发送给对应的流量分析次级模块,该流量分析次级模块一次接收到大量的数据包,导致该流量分析次级模块负载过大,该流量分析次级模块瘫痪;但是控制器里其余的流量分析次级模块均不受影响,正常工作。附图说明图1为本发明实施例所述防止DDOS攻击的方法应用于交换机时的步骤;图2为本发明实施例所述防止DDOS攻击的装置应用于交换机时的结构示意图;图3为本发明实施例所述防止DDOS攻击的方法应用于控制器时的步骤;图4为本发明实施例所述防止DDOS攻击的装置应用于控制器时的结构示意图。具体实施方式为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。如图1所示,本发明实施例提供了一种防止DDOS攻击的方法,应用于交换机,包括:步骤11,交换机接收数据包。步骤12,交换机对接收到的数据包按照流表进行匹配。步骤13,在匹配不成功时,根据预先建立的交换机群与控制器的流量分析次级模块之间的对应关系,确认交换机所属交换机群对应的流量分析次级模块,控制器包含多个用于对流量进行分析的流量分析次级模块。步骤14,在所确认的流量分析次级模块正常工作时,将所述数据包发送给所确认的流量分析次级模块。在本发明的上述实施例中,所述方法还包括在所确认的流量分析次级模块不能正常工作时,则根据预设的候选策略处理数据包。在本发明的上述实施例中,若流量分析次级模块正常工作时,执行步骤14之后,方法还包括:交换机接收控制器返回的针对数据包的流表项。在本发明的具体实施例中,交换机对接收到的数据包按照其存储的流表进行匹配,当匹配不成功时,需要确认交换机所属交换机群对应的流量分析次级模块在流量分析次级模块正常工作时,则将数据包发送给所确认的流量分析次级模块,否则,不再将数据包发送给所确认的流量分析次级模块,而根据预设的候选策略处理数据包。当攻击者随机产生大量数据包发送给第一交换机群中所有交换机时,第一交换机群中所有交换机对接收到数据包进行匹配,这些数据包由于是随机产生的,无意义,所以匹配不成功,则归为tablemiss事件,tablemiss事件的默认行为是发送给交换机所属交换机群对应的流量分析次级模块,第一交换机群中所有交换机将无法匹配的数据包发送给该流量分析次级模块,该流量分析次级模块将接收到大量的数据包,导致该流量分析次级模块负载过大,该流量分析次级模块瘫痪,不能正常工作,此时若再有数据包传输到第一交换机群的交换机上时,交换机确认它所属的第一交换机群对应的该流量分析次级模块不能正常工作,此时交换机就会按照预先设定的候选策略处理数据包。在本发明的具体实施例中,交换机预先设定的候选策略有三种,分别为在本交换机所属第一交换机群对应的流量分析次级模块工作异常时,将需要发送给该流量分析次级模块的数据包转发给预设的下一个交换机,这样该流量分析次级模块的流量负载也会转移到下一个交换机所属的交换机群对应的流量分析次级模块上,这种方式的好处是,不会影响交换机群的工作,但是可能造成另外一个流量分析次级模块的瘫痪;在本交换机所属交换机群对应的流量分析次级模块工作异常时,将需要发送给该流量分析次级模块的数据包均匀分配给与控制器包括的其他多个流量分析次级模块对应的交换机群,这种情况下,该流量分析次级模块瘫痪,该流量分析次级模块所控制的第一交换机群中的多个交换机的数据包会被均匀分到与控制器包括的其他多个流量分析次级模块对应的交换机群上,这样即使一个交换机群被攻击者控制,数据包量增加也会平均分担到多个流量分析次级模块上,大大降低了其他流量分析次级模块的风险;当本交换机所属交换机群对应的流量分析次级模块瘫痪后,将需要发送给该流量分析次级模块的数据包都会被丢弃。优选地,交换机在检测本交换机所属第一交换机群对应的流量分析次级模块是否正常工作时,是通过向该流量分析次级模块发送报文,并等待接收次级模块返回的响应报文:若在预定时间内接收到响应报文,则认为该流量分析次级模块正常工作;否则,则认为该流量分析次级模块工作不正常。如图2所示,本发明实施例还提供一种防止DDOS攻击的装置,包括:接收模块21,用于接收数据包和控制器返回的针对数据包的流表项。匹配模块22,用于对接收到的数据包按照流表进行匹配。确认模块23,用于当匹配模块匹配不成功时,根据预先建立的交换机群与控制器的流量分析次级模块之间的对应关系,确认交换机所属交换机群对应的流量分析次级模块,控制器包含多个用于对流量进行分析的流量分析次级模块。发送模块24,用于在所确认的流量分析次级模块正常工作时,将所述数据包发送给所确认的流量分析次级模块。在本发明的上述实施例中,所述装置还包括:异常处理模块,用于在所确认的流量分析次级模块不能正常工作时,则根据预设的候选策略处理数据包。在本发明的上述实施例中,预设的候选策略包括:在本交换机所属交换机群对应的流量分析次级模块工作异常时,将需要发送给该流量分析次级模块的数据包转发给预设的下一个交换机,或者在本交换机所属交换机群对应的流量分析次级模块工作异常时,将需要发送给该流量分析次级模块的数据包均匀分配给与控制器包括的其他多个流量分析次级模块对应的交换机群,或者在本交换机所属交换机群对应的流量分析次级模块工作异常时,将需要发送给该流量分析次级模块的数据包丢弃。如图3所示,在本发明的上述实施例中,还提供了一种防止DDOS攻击的方法,应用于控制器,包括:步骤31,通过控制器的流量分析次级模块接收并分析交换机发送的数据包,控制器包括多个用于对数据包进行分析的流量分析次级模块,其中,数据包是交换机根据预先建立的交换机群与控制器的流量分析次级模块之间的对应关系发送至该交换机所属交换机群对应的该流量分析次级模块的。步骤32,根据所述分析结果和当前的网络拓扑管理图生成流表项,并将所述生成的流表项与原有流表项进行比对,检测是否有冲突,若所述流表项与原有流表项冲突,则重新生成流表项,直到生成的流表项与原有流表项不冲突为止。步骤33,将流表项发送给相应的交换机。在本发明的上述实施例中,执行步骤32之前,所述方法还包括:监控网络中的流量情况,根据监控结果生成网络拓扑管理图。在本发明的具体实施例中,流量分析次级模块主要分析数据包包含的源交换机地址,目的交换机地址,附加端口地址。优选地,步骤32中,根据分析结果和当前的网络拓扑管理图生成流表项,主要是根据对数据包的分析结果和网络拓扑管理图计算出该数据包的最优路径,形成新的流表项。如图4所示,在本发明的上述实施例中,还提供了一种防止DDOS攻击的装置,包括:流量分析次级模块41,用于接收并分析交换机发送的数据包,控制器包括多个用于对数据包进行分析的流量分析次级模块,其中,数据包是交换机根据预先建立的交换机群与控制器的流量分析次级模块之间的对应关系发送至该交换机所属交换机群对应的该流量分析次级模块的。流表项生成模块42,用于根据所述分析结果生成流表项,并将所述生成的流表项与原有流表项进行比对,检测是否有冲突,若所述流表项与原有流表项冲突,则重新生成流表项,直到生成的流表项与原有流表项不冲突为止。命令下发模块43,将所述流表项发送给相应的交换机。在本发明的上述实施例中,所述装置还包括:网络拓扑管理模块,在流表项生成模块生成流表项之前,用于监控网络中的流量情况,根据监控结果生成网络拓扑管理图。在本发明的具体实施例中,交换机提交的数据包会先到达控制器的流量分析次级模块41,流量分析次级模块41会对该数据包进行检测分析,验证数据包的合法性,随后流表项生成模块42会访问网络拓扑管理模块获取网络拓扑管理图来形成新的删除或者修改的流表项,以完成交换机新的需求,但是需要将新的流表项跟原有的流表项进行比对,检测是否有冲突,如果有冲突,流表项生成模块42还需要重新制定新的流表项,直到新的流表项与现有流表项不再冲突为止,随后新的流表项经过命令下发模块43通过对应的端口下达到相应的交换机上。在本发明的具体实施例中,控制器还包括端口集合,负责交换机群和流量分析次级模块相连,一个交换机群与和其对应的流量分析次级模块对应一个逻辑端口。需要说明的是,本发明提供的装置应用上述防止DDOS攻击的方法,则因此上述防止DDOS攻击的方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。以上所述是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1