买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种OpenFlow控制器抵御DDoS攻击的方法_南京航空航天大学_201711094387.1 

申请/专利权人:南京航空航天大学

申请日:2017-11-09

公开(公告)日:2020-08-11

公开(公告)号:CN107800711B

主分类号:H04L29/06(20060101)

分类号:H04L29/06(20060101);H04L12/801(20130101);H04L12/863(20130101)

优先权:["20170616 CN 2017104559102"]

专利状态码:有效-授权

法律状态:2020.08.11#授权;2018.04.06#实质审查的生效;2018.03.13#公开

摘要:一种OpenFlow控制器抵御DDoS攻击的方法,所述的OpenFlow控制器包括:流信息收集模块、流量检测模块和流量过滤模块,能够收集和分析流信息、下发流表,并以此来控制OpenFlow交换机的转发行为,本发明的方法不仅能够预防控制器遭受DDoS攻击,而且能够降低UDP大流对控制器资源的冗余消耗;无需修改现有的OpenFlow交换机;利用OpenFlow交换机的RED队列和限速机制,能明显减少攻击报文的数目;能够快速滤除DDoS攻击流量,保证控制器为收到的报文及时提供服务;是一种轻量级的易部署机制,可针对不同的DDoS攻击类型做出扩展,从而显著提高方法的健壮性。

主权项:1.一种OpenFlow控制器抵御DDoS攻击的方法,所述的OpenFlow控制器包括:流信息收集模块、流量检测模块和流量过滤模块,能够收集和分析流信息、下发流表,并以此来控制OpenFlow交换机的转发行为,其特征在于该方法包括以下步骤:S1:OpenFlow控制器获取全网拓扑信息,根据网络中OpenFlow交换机和主机的数量计算限速队列的速率值;S2:在OpenFlow交换机上配置匹配流协议字段的转移流表,同时在限速队列中进行随机早期检测,获取DDoS攻击情况;S3:到达OpenFlow交换机的新流通过转移流表传输到与该OpenFlow交换机相邻的OpenFlow交换机。

全文数据:一种OpenFIow控制器抵御DDoS攻击的方法技术领域[0001]本发明属于网络通信领域,具体地说是提出一种OpenFlow控制器抵御DDoS攻击的方法。背景技术[0002]软件定义网络(SoftwareDefinedNetworking,SDN是一种新型网络架构,它将控制逻辑从数据平面中抽象出来成为控制平面,为网络管理者提供了更为灵活的编程方式,为解决传统TCPIP网络中问题如流量工程、准入控制、负载均衡等提出了新的解决思路。OpenFlow作为SDN的一种南向接口标准,已经得到实际应用,符合OpenFlow标准的SDN网络被称为OpenFlow网络。作为承载控制平面功能的控制器,它在SDN中具有非常重要的地位,也是网络攻击者的首选目标。一旦控制器失效,将引发网络的单点故障,造成整个OpenFlow网络的瘫痪。[0003]分布式拒绝服务DistributedDenialofService,DDoS攻击是当今互联网面临的最主要的威胁之一。DDoS攻击通过调用分布于网络中的大量傀儡机向被攻击的目标服务器发起请求,该服务器因处理这些伪造请求而大量消耗资源,使得合法用户的请求无法及时得到网络服务。鉴于SDN控制器在网络中的作用,它将成为DDoS攻击的首选目标。因此,解决SDN控制器在DDoS攻击下的安全问题至关重要。发明内容[0004]本发明针对DDoS对OpenFlow控制器的攻击问题,提出了一种OpenFlow控制器抵御DDoS攻击的方法。[0005]本发明的技术方案是:[0006]一种OpenFlow控制器抵御DDoS攻击的方法,所述的OpenFlow控制器包括:流信息收集模块、流量检测模块和流量过滤模块,能够收集和分析流信息、下发流表,并以此来控制OpenFlow交换机的转发行为,该方法包括以下步骤:[0007]SI=OpenFlow控制器获取全网拓扑信息,根据网络中OpenFlow交换机和主机的数量计算限速队列的速率值;[0008]S2:在OpenFlow交换机上配置匹配流协议字段的转移流表,同时在限速队列中进行随机早期检测,获取DDoS攻击情况;[0009]S3:到达OpenFlow交换机的新流通过转移流表传输到与该OpenFlow交换机相邻的OpenFlow交换机。[0010]进一步地,所述的步骤Sl具体为:[0011]SlOl:计算OpenFlow控制器与OpenFlow交换机连接的每个端口的平均处理速率c:1[0013]其中,C表示OpenFlOW控制器的处理速率,K表示与前述OpenFlow控制器连接的OpenFlow交换机的数量;[00M]S102:将OpenFlow交换机的平均排队长度设为1个报文,计算限速队列的速率值V,计算公式为:[0016]其中,L为平均报文长度。[0017]进一步地,步骤S2中所述的随机早期检测具体为:[0018]S201:设置随机早期检测算法所需的4个预设参数,包括队列长度最小门限THmin,队列长度最大门限THmax,用于计算平均队列长度的比例值Wq和平均队列长度在最小门限和最大门限之间时最大报文丢弃概率Pmax;[0019]S202:检测DDos攻击,包括:[0020]S202-1=OpenFlow控制器以周期T向所有OpenFlow交换机发送流表查询信息,收到统计信息后提取每项流表的信息并将其存储于控制器中;[0021]S202-2:计算出报文数的平均增长量,判断平均增长量是否异常;当平均增长量正常时,继续检测;当平均增长量异常时,判定为受到DDoS攻击,OpenFlow控制器下发一个高优先级流表,将该端口的报文全部丢弃。[0022]进一步地,步骤201所述的最大门限THmax是最小门限值THmin的3倍,最小门限值THmin的值为5个报文,最大报文丢弃概率Pmax为0.1,用于计算平均队列长度的比例值Wq为0.002。[0023]进一步地,步骤S202-2中,高优先级流表设有超时时间Ttimeout,超时时间Ttimeout结束后,高优先级流表失效。[0024]进一步地,所述的超时时间初始化为60秒。[0025]进一步地,,步骤S202-2之后还包括:高优先级流表失效前IOs时,以5s为间隔查询该流表丢弃的报文数,若丢弃报文数的增长量异常,则高优先级流表的生存时间延长30s。[0026]进一步地,步骤S202-2中判断平均增长量是否异常的方法为:预先设定阈值N,当多个周期的平均增长量持续超过阈值N时,判定平均增长量异常。[0027]进一步地,当受到DDoS攻击时,对首次到达OpenFlow控制器的报文直接转发且不安装流表,同时将报文的源IP、目的IP、源端口、目的端口、协议类型和当前时刻存储于控制器中,当再次收到该流的报文时,再为其安装流表,存储报文信息时为每个报文信息设置2s的生存时间,超过生存时间后删除该报文信息。[0028]进一步地,连接OpenFlow交换机的OpenFlow控制器端口采用MGI-FCFS排队模型,OpenFlow交换机的连接端口采用循环调度算法。[0029]本发明的技术优势:[0030]1.不仅能够预防控制器遭受DDoS攻击,而且能够降低UDP大流对控制器资源的冗余消耗。[0031]2.无需修改现有的OpenFlow交换机。[0032]3.利用OpenFlow交换机的RED队列和限速机制,能明显减少攻击报文的数目。[0033]4.能够快速滤除DDoS攻击流量,保证控制器为收到的报文及时提供服务。[0034]5.是一种轻量级的易部署机制,可针对不同的DDoS攻击类型做出扩展,从而显著提高方法的健壮性。附图说明[0035]图1为本发明的机制框图。[0036]图2为TCPUDP转移限速过程。[0037]图3为试验拓扑。[0038]图4为抵御UDPflood攻击的CPU利用率。[0039]图5为抵御TCPSYNflood攻击的CPU利用率。[0040]图6为UDP控制报文数量。[0041]图7为TCP控制报文数量。具体实施方式[0042]下边结合附图和具体实施方式对本发明作进一步地说明。[0043]本发明是根据SDN网络和DDoS攻击的技术特点,设计的一套轻型、高效的控制器预防DDoS攻击ControlIer-Anti-DDoS,CADDoS方法,CADDoS重点解决以下两个问题:[0044]1对新到达网络的流进行合理限速,既要防止大量的Packet_In报文对控制器的性能影响,同时需要保证网络中流的服务率。[0045]2对DDoS流实施检测和追踪,并对DDoS流进行过滤。主要由安全限速机制和DDoS检测追踪两个机制组成。[0046]CADDoS方法的主要思想是:[0047]1转移流表和限速功能:为了防止可能产生大量的Packet_In报文,CADDoS对于所有到达网络的TCPUDP新流通过转移流表进行转发,同时通过队列限速降低新到达的TCPUDP流量到达控制器的速率,保证控制器可靠工作,转移流表和限速功能通过安全限速机制实现。[0048]2维护正常流转发:对于端主机发送的其他类型报文,通过Table-miss方法直接转发给控制器处理;对于网络中已安装流表的流进行正常转发。[0049]3控制器部署的DDoS检测追踪功能根据流表统计信息分析DDoS流量的来源,并对DDoS流量进行过滤。[0050]具体来说,该方法采用OpenFlow控制器和两台OpenFlow交换机,OpenFlow控制器包括:流信息收集模块、流量检测模块和流量过滤模块,能够收集和分析流信息、下发流表,并以此来控制OpenFlow交换机的转发行为,系统的结构见图1,通常部署在内网(如企业网)中;CADDoS应用程序运行在控制器之上,提供OpenFlow控制器抵御DDoS攻击的功能;[0051]进一步地,基于转移流表的限速机制,包括下列步骤:[0052]A.OpenFlow控制器获取全网拓扑,根据网络中交换机的数目和主机数目计算限速队列的速率值;[0053]若K台OpenFlow交换机都与控制器直接相连,对于连接交换机的每个控制器端口,采用MGl-FCFSFirstComeFirstServed排队模型来描述到达报文的队列排队情况。控制器对于所有交换机的连接端口采用循环调度算法。控制器对每个端口的平均处理速率为:⑴[0055]其中,c表示控制器对单个队列中报文的平均处理速率,C表示控制器主机的处理速率。由于UDP流是无连接的,将持续向控制器发送报文,存在λ=ν。为了减小初始化报文的排队时延,PFFR中设置交换机的平均排队长度为1个报文,其中L为平均报文长度。2[0057]B.OpenFlow控制器在OpenFlow交换机上安装匹配流协议字段的转移流表,同时在限速队列中使用RED技术,使得到达交换机的新流通过转移流表传输到端主机所在OpenFlow交换机的相邻OpenFlow交换机,实现限速和DDoS报文随机早期丢弃。转移TCPUDP队列中RED算法包含4个预设参数,即队列长度最小门限THmin,队列长度最大门限TH·,用于计算平均队列长度的比例值Wq,以及当平均队列长度在最小门限和最大门限之间时最大报文丢弃概率Pmax。若发生DDoS攻击,大量的攻击报文进入OpenFlow网络,当平均队列在最大与最小门限值之间时,攻击报文占整个队列的比重越大,则被丢弃的攻击报文越多。由于吞吐量并不是限速队列主要的优化目标,RED算法的参数设置队列长度最大门限THmax是最小门限值倍,其中最小门限值THmin的值为5个报文,最大报文丢弃概率PmaxSO.1,比例值%为0.002〇[0058]C.对于TCPSYNflood这类攻击,首次到达控制器的采用直接转发而不安装流表的方式,同时将报文的5元组源IP,目的IP,源端口,目的端口,协议类型存储于控制器中,当再次收到该流报文时,再为其安装流表。报文信息的存储依然会大量占用控制器资源,在存储报文信息时也要保存当前的时刻,并为每个报文设置一个2s的生存时间,用软状态方式来避免控制器存储资源的大量占用。[0059]进一步地,DDoS检测算法,包括下列步骤:[0060]控制器以周期T向网络中所有交换机发送流表查询信息,收到统计信息后提取每项流表的信息并将其存储于控制器中,同时,计算出报文数的平均增长量。当多个周期的增长量持续超过预先设定的阈值N时,可判定此端口流量异常。此时控制器下发一个高优先级的流表,将该端口的报文全部丢弃,从而避免将攻击报文转发至控制器。为该流表设置一个超时时间待攻击结束后恢复端口的转发功能,其中超时时间1^_初始化为60秒,在流表超时前IOs时以5s为间隔查询该流表丢弃的报文数,丢弃报文的增长量如依然高于预先设定的阈值N,此流表的生存时间延长30s,以此类推。[0061]具体实施时:[0062]本试验系统运行在控制器和Mininet平台上,其中Mininet部署了4台OpenFlow交换机和40台主机,试验网络拓扑如图3所示。控制器与Mininet仿真环境分别运行于2台计算机上,这些计算机的配置为主频3.2GHz、CPUi5-3470、内存4GB和IGbps以太网卡,网络中所有链路带宽为1000MbpsApenFlow交换机均采用OpenvSwitchv2·4·0,并为其配置6个队列,其中的2个队列用于初始UDP流,1个队列用于初始TCP流,3个队列用于正常数据转发。通过实际测量,控制器主机处理报文的最大速率为1171ppspacketspersecond,因此TCPUDP转移限速队列的最大的速率为3.5Mbps,交换机端口缓存为1500个报文,端口采用FCFS调度模型,RED参数的配置与2B中所述一致。试验中使用TFN作为DDoS攻击工具,分别向网络中发送4元组不断变化的TCPSYNfloocUUDPflood攻击报文,同时使用Iperf产生合法流量。[0063]共进行4组对比试验:[0064]1在未部署CADDoS防护系统的网络拓扑中,首先添加周期性的正常流量,整个试验过程运行100个周期,每个周期的持续时间为5s。攻击流注入过程如下:第20个周期到第40个周期从网络1持续注入UDPflood攻击流,第60个周期到第80个周期从网络1与网络3同时持续注入UDPflood攻击流,攻击强度较第一次攻击增强1倍。[0065]2与试验⑴相同,在未部署CADDoS防护系统的网络拓扑中添加TCPSYNflood异常流量:第20个周期由网络2注入TCPSYNflood攻击流,第60个周期由网络2与网络4注入TCPSYNflood攻击流,第二次攻击强度是第一次攻击的2倍。[0066]3作为试验(1的对比试验,在网络中部署CADDoS防护系统,控制器向交换机查询流表信息的时间间隔为5秒,在网络中加入相同的流量。[0067]4作为试验2的对比试验,在网络中部署CADDoS防护系统并加入相同的流量,控制器向交换机查询流表信息的时间间隔依然设置为5秒。[0068]图4与图5给出了CADDoS原型系统的性能评估曲线。性能评价指标包括:(1控制器的CPU利用率;⑵控制器收到的TCPUDP控制报文数。同时将网络中无攻击发生时的测量值作为参照标准。[0069]图4中,当网络中仅传输合法的流量时,控制器的CPU持续稳定在2%左右,最高仅达到10.4%,此时控制器运行稳定,能够及时对新到达的Packet_In做出响应。当未部署CADDoS原型系统的网络中产生UDPflood攻击时,控制器CPU在攻击发生后的1个周期内增长至43.5%,并最高增长至71.7%,此时控制器已处于高负荷运转,不仅不能对新到达的报文做出响应,而且断开了与各个交换机的连接,因此在经过10个周期左右后控制器CPU利用率略有降低,但依然远远高于控制器在无攻击时的CPU利用率,这是由于UDPflood攻击流已经向控制器发送了大量的无用报文,这些报文依然缓存在控制器与交换机相连的端口中等待控制器处理。而当网络中部署CADDoS原型系统后,控制器CPU的利用率仅略高于无攻击时控制器的CPU利用率,这归功于CADDoS不仅在攻击发生前便进行随机早期检测,同时对转发至控制器的UDP流进行限速,在攻击发生时能够在5-6个周期内检测出异常端口并对该端口流量进行无差别丢弃。在第20个周期与第60周期发生攻击后,仅在检测出攻击前增长至20%,依然能够保证控制器的正常运行,控制器与交换机也保持着稳定连接。CADDoS以5秒为周期查询流表信息,该行为仅使得控制器CPU利用率平均增加不到5%。[0070]图5中,在网络仅传输合法TCPUDP流时,控制器的CPU利用率依然维持在较低值。TCPSYNflood在攻击服务器时,霸占通信端口,使服务器忙于处理伪造的TCP连接请求而耗尽资源。因此,TCPSYNflood产生的攻击报文数量并没有UDPflood攻击所产生的报文数量多。在未部署CADDoS原型系统的SDN网络中发起TCPSYNflood攻击时,控制器CPU在发生攻击的1个周期内也产生了较大的增长,达到34.7%,远远高于正常情况下的CPU利用率,最高能达到40%。此时控制器依然能够维持与交换机的连接,但大量伪造的TCP报文占用了控制器与交换机的端口队列,消耗了控制器的计算资源,仅占很小比例的合法新流得不到控制器的及时服务,控制器处于不稳定态。当网络中部署CADDoS系统时,控制器CPU利用率仅在5%上下波动,在攻击发生的第60个周期后,控制器CPU利用率仅在检测出攻击前增长至25%XADDoS能够在检测出攻击后将源端口的新到达报文全部丢弃,保证控制器为收到的报文及时提供服务。[0071]图6中,在网络仅传输合法TCPUDP流时,UDP流在未安装流表前会向控制器转发较多的报文,一旦流表安装完全,该流将不再向控制器转发报文,直至新流到达,因此UDP控制报文数会呈阶梯式增长,整个周期控制器收到646个UDP控制报文。在未部署CADDoS的网络中发起UDPflood攻击时,UDP控制报文的数目瞬时增长至131387,严重超出控制器处理报文的速率,而后保持持续增长,最终增长至292037。而在部署CADDoS后,不仅在攻击发生后能减少UDP控制报文数99.4%,更由于其采用了安全限速机制,在网络中仅传输合法流量的前20个周期中,能够将UDP控制报文数从228减少至72。由此可以看出,CADDoS也适用于减少大流量UDP流产生的大量无用Packet_In。另外,UDP控制报文的增长明显晚于攻击发起时亥IJ,这是由于CADDoS采用了随机早期检测算法,当交换机队列中排队报文超过了RED队列的最小门限值THmin,后到的报文将会以一定的概率被丢掉。UDP大流的排队报文很快超过RED队列的THmin,从而会有部分报文被丢弃。可以看出,采用RED队列和限速机制,CADDoS能明显减少攻击报文的数目。[0072]图7中,由于TCP是一种面向连接的数据流,每一条合法流量在未发生超时重传时仅向控制转发2个PacketJn报文以建立连接,因此在网络中仅传输合法流量时,TCP控制报文数仅8个4条TCP流)。在未部署CADDoS的网络中发起TCPSYNflood攻击时,TCP控制报文的数目便瞬时增长至977,并持续增长,当网络中发起强度更大的TCPSYNflood攻击时,即第60个周期时,TCP控制报文的增长速率加快,最终达到19087。而在部署CADDoS后,TCP控制报文数显著减少,在首次发生攻击时,仅产生569个控制报文,经过第二次攻击后,TCP控制报文最高仅达到1444个,较未部署CADDoS时减少了92.5%。[0073]上述说明是示例性的,并非穷尽性的,并且也不限于所披露的实施例。在不偏离所说明的实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。

权利要求:I.一种OpenFlow控制器抵御DDoS攻击的方法,所述的OpenFlow控制器包括:流信息收集模块、流量检测模块和流量过滤模块,能够收集和分析流信息、下发流表,并以此来控制OpenFlow交换机的转发行为,其特征在于该方法包括以下步骤:S1:OpenFlow控制器获取全网拓扑信息,根据网络中OpenFIow交换机和主机的数量计算限速队列的速率值;S2:在OpenFlow交换机上配置匹配流协议字段的转移流表,同时在限速队列中进行随机早期检测,获取DDoS攻击情况;S3:到达OpenFlow交换机的新流通过转移流表传输到与该OpenFlow交换机相邻的OpenFlow交换机。2·根据权利要求1所述的一种OpenFlow控制器抵御DDoS攻击的方法,其特征在于,所述的步骤Sl具体为:SlOl:计算OpenFlow控制器与OpenFlow交换机连接的每个端口的平均处理速率c:其中,C表示OpenFlow控制器的处理速率,K表示与前述OpenFlow控制器连接的OpenFlow交换机的数量;S102:将OpenFlow交换机的平均排队长度设为1个报文,计算限速队列的速率值V,计算公式为:其中,L为平均报文长度。3·根据权利要求2所述的一种OpenFlow控制器抵御DDoS攻击的方法,其特征在于,步骤S2中所述的随机早期检测具体为:S201:设置随机早期检测算法所需的4个预设参数,包括队列长度最小门限THmin,队列长度最大门限THmax,用于计算平均队列长度的比例值Wq和平均队列长度在最小门限和最大门限之间时最大报文丢弃概率Pmax;S202:检测DDos攻击,包括:S202-1:OpenFlow控制器以周期T向所有OpenFlow交换机发送流表查询信息,收到统计信息后提取每项流表的信息并将其存储于控制器中;S202-2:计算出报文数的平均增长量,判断平均增长量是否异常;当平均增长量正常时,继续检测;当平均增长量异常时,判定为受到DDoS攻击,OpenFlow控制器下发一个高优先级流表,将该端口的报文全部丢弃。4·根据权利要求3所述的一种OpenFlow控制器抵御DDoS攻击的方法,其特征在于,步骤201所述的最大门限THmax是最小门限值THmin的3倍,最小门限值THmin的值为5个报文,最大报文丢弃概率Pmax为0.1,用于计算平均队列长度的比例值Wq为0.002。5·根据权利要求3所述的一种OpenFlow控制器抵御DDoS攻击的方法,其特征在于,步骤S202-2中,高优先级流表设有超时时间Ttimeout,超时时间Ttimeout结束后,高优先级流表失效。6·根据权利要求5所述的一种OpenFlow控制器抵御DDoS攻击的方法,其特征在于,所述的超时时间初始化为60秒。7·根据权利要求3所述的一种OpenFlow控制器抵御DDoS攻击的方法,其特征在于,步骤S202-2之后还包括:高优先级流表失效前IOs时,以5s为间隔查询该流表丢弃的报文数,若丢弃报文数的增长量异常,则高优先级流表的生存时间延长30s。8·根据权利要求3所述的一种OpenFlow控制器抵御DDoS攻击的方法,其特征在于,步骤S202-2中判断平均增长量是否异常的方法为:预先设定阈值N,当多个周期的平均增长量持续超过阈值N时,判定平均增长量异常。9·根据权利要求1所述的一种OpenFlow控制器抵御DDoS攻击的方法,其特征在于,当受到DDoS攻击时,对首次到达OpenFlow控制器的报文直接转发且不安装流表,同时将报文的源IP、目的IP、源端口、目的端口、协议类型和当前时刻存储于控制器中,当再次收到该流的报文时,再为其安装流表,存储报文信息时为每个报文信息设置2s的生存时间,超过生存时间后删除该报文信息。10.根据权利要求1所述的一种OpenFlow控制器抵御DDoS攻击的方法,其特征在于,连接OpenFlow交换机的OpenFlow控制器端口采用MG1-FCFS排队模型,OpenFlow交换机的连接端口采用循环调度算法。

百度查询: 南京航空航天大学 一种OpenFlow控制器抵御DDoS攻击的方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。