一种sdn网络访问方法及系统的制作方法

文档序号:7814312阅读:257来源:国知局
一种sdn网络访问方法及系统的制作方法
【专利摘要】本发明提供一种SDN网络访问方法及系统。所述SDN网络访问方法包括:控制器接收到SYN报文;控制器保存所述SYN报文,并将所述SYN报文发送给所述服务器;控制器接收到所述服务器发送的所述SYN报文的响应报文,保存所述响应报文,发送所述响应报文给所述客户端,并开始在预设的时间内计时;如果在计时结束前,控制器收到所述响应报文的ACK回应报文,则结束所述计时,将所述ACK回应报文发送给所述服务器;如果直到计时结束,控制器也没有收到所述响应报文的ACK回应报文,则控制器利用保存的报文,构造RST报文,将所述RST报文发送给所述服务器。本发明的方案能够防御SYNFlood攻击。
【专利说明】—种SDN网络访问方法及系统

【技术领域】
[0001]本发明涉及一种计算机网络技术,特别是涉及一种SDN网络访问方法及系统。

【背景技术】
[0002]SYN Flood(也可称为 SYN 洪泛,或同步泛滥)是一种 DoS(Denial of Services,拒绝服务攻击)与DDoS (Distributed Denial of Services,分布式拒绝攻击)的方式之一,它利用了 TCP/IP协议实现上的一个缺陷,通过伪造大量的SYN报文向服务器发起连接,由于这些SYN报文的源地址是不存在的地址,服务器无法收到其相应的应答报文,只有等待SYN超时才能释放相应的资源,从而使得服务器系统资源耗尽,导致正常用户无法访问。
[0003]目前,计算机网络中针对SYNFlood的防御方法有以下几种:一是服务器主机防御的方法,通过增加连接缓冲队列长度和缩短SYN超时时间来提高对攻击报文的处理能力。SYN超时时间是从接收到SYN报文到确定该报文无效并丢弃该连接的时间,缩短SYN超时时间,可以成倍的降低服务器的负荷。但如果攻击者发送足够多的SYN-Flood攻击报文,很容易使服务器达到服役极限,影响合法用户访问。二是规则过滤的方法,使用规则过滤掉被认为地址伪装的包,这会有效的遏制攻击流量。但该方式完全依赖于规则的定义,如果攻击者所伪造的地址是本子网的合法地址,它就不适用了 ;此外使用访问控制列表会带来额外的负荷。三是防火墙的TCP proxy方法,在SYN请求连接到真正的服务器之前,使用防火墙TCP proxy来测试其合法性。防火墙TCP proxy会先跟客户端建立TCP三次握手,如果成功,证明是合法用户,防火墙TCP proxy再跟服务器建立TCP三次握手。由于防火墙TCPproxy会跟客户端和服务器分别建立TCP连接,它们的TCP sequence是不一致的,需要防火墙TCP proxy在传输数据的时候,进行TCP sequence转换,当系统访问量较大时,防火墙自身的负荷会较高。
[0004]SDN(Software Defined Networking,软件定义网络)是一种新兴的基于软件的网络架构及技术,其核心技术为OpenFlow技术。SDN的核心技术通过控制器(Controller)和OpenFlow交换机(Switcher)将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制。随着SDN的发展,如何在SDN网络中,更好的防御或抵御SYN Flood攻击也成为本领域技术人员亟待解决的问题。


【发明内容】

[0005]鉴于以上所述现有技术的缺点,本发明的目的在于提供一种SDN网络访问方法及系统,用于解决现有技术中不能很好的防御或抵御SYN Flood攻击的问题。
[0006]为实现上述目的及其他相关目的,本发明提供一种SDN网络访问方法,所述SDN网络访问方法包括:控制器接收到SYN报文,所述SYN报文的源地址为客户端地址,所述SYN报文的目的地址端为服务器地址;所述控制器保存所述SYN报文,并将所述SYN报文发送给所述服务器;所述控制器接收到所述服务器发送的所述SYN报文的响应报文,保存所述响应报文,发送所述响应报文给所述客户端,并开始在预设的时间内计时;如果在计时结束前,所述控制器收到所述客户端发送的所述响应报文的ACK回应报文,则结束所述计时,将所述ACK回应报文发送给所述服务器;如果在计时结束时,所述控制器没有收到所述客户端发送的所述响应报文的ACK回应报文,则所述控制器利用保存的所述SYN报文以及响应报文构造RST报文,并将所述RST报文发送给所述服务器。
[0007]可选地,所述SDN网络访问方法还包括:当OpenFlow交换机接收到SYN报文且在所述OpenFlow交换机的流表中没有找到于所述SYN报文匹配的流表项时,所述OpenFlow交换机将所述SYN报文转发给所述控制器。
[0008]可选地,所述SDN网络访问方法还包括:如果在计时结束前,所述控制器收到所述客户端发送的所述响应报文的ACK回应报文,则所述控制器下发相应的流表项到相应的OpenFlow交换机。
[0009]可选地,所述相应的流表项包括:处理从所述客户端发送到所述服务器的报文的流表项以及处理从所述服务器发送到所述客户端的报文的流表项。
[0010]可选地,所述SDN网络访问方法还包括:当所述服务器接收到所述SYN报文时,分配TCP连接资源,并发送所述SYN报文的响应报文;当所述服务器接收到所述ACK回应报文时,建立TCP连接;当所述服务器接收到所述RST报文时,释放所述TCP连接资源。
[0011]本发明提供一种SDN网络访问系统,所述SDN网络访问系统包括:控制器,所述控制器包括:连接报文处理模块,用于接收SYN报文,所述SYN报文的源地址为客户端地址,所述SYN报文的目的地址端为服务器地址;保存所述SYN报文,并将所述SYN报文发送给所述服务器;响应报文处理模块,与所述连接报文处理模块相连,用于接收所述服务器发送的所述SYN报文的响应报文,保存所述响应报文,发送所述响应报文给所述客户端,并开始在预设的时间内计时;如果所述响应报文处理模块在计时结束前,收到所述响应报文的ACK回应报文,则结束所述计时,将所述ACK回应报文发送给所述服务器;如果直到计时结束,所述响应报文处理模块也没有收到所述响应报文的ACK回应报文,则所述响应报文处理模块利用保存的所述SYN报文以及响应报文,构造RST报文,将所述RST报文发送给所述服务器。
[0012]可选地,所述SDN网络访问系统还包括=OpenFlow交换机,用于当接收到SYN报文且在所述OpenFlow交换机的流表中没有找到于所述SYN报文匹配的流表项时,所述OpenFlow交换机将所述SYN报文转发给所述控制器。
[0013]可选地,如果所述响应报文处理模块在计时结束前,收到所述响应报文的ACK回应报文,则所述控制器下发相应的流表项到所述OpenFlow交换机。
[0014]可选地,所述相应的流表项包括处理从所述客户端发送到所述服务器的报文的流表项以及处理从所述服务器发送到所述客户端的报文的流表项。
[0015]可选地,所述SDN网络访问系统还包括:服务器,所述服务器包括TCP连接初始化模块,用于接收到所述SYN报文,分配TCP连接资源,生成并发送所述SYN报文的响应报文;TCP连接建立模块,与所述TCP连接初始化模块相连,用于接收所述ACK回应报文,建立TCP连接;TCP连接终止模块,用于接收所述RST报文,释放所述TCP连接资源。
[0016]如上所述,本发明的一种SDN网络访问方法及系统,具有以下有益效果:利用SDN控制器中继TCP三次握手,由于TCP三次握手建立在客户端和服务器之间,数据传输时无须进行TCP sequence转换,提高了传输效率;而且流表下发在TCP三次握手成功之后,避免浪费硬件流表资源;如果SDN控制器没有收到客户端的TCP ACK应答,则主动构造TCP RST报文,发送给服务器,以关闭TCP半连接,防御SYN-FLOOD攻击。

【专利附图】

【附图说明】
[0017]图1显示为本发明的SDN网络访问方法的一实施例的流程示意图。
[0018]图2显示为本发明的SDN网络访问方法的一实施例的流程示意图。
[0019]图3显示为本发明的SDN网络访问方法的一实施例的交互示意图。
[0020]图4显示为本发明的SDN网络访问系统的一实施例的结构示意图。
[0021]元件标号说明
[0022]I SDN网络访问系统
[0023]11 控制器
[0024]111 连接报文处理模块
[0025]112 响应报文处理模块
[0026]12 服务器
[0027]121 TCP连接初始化模块
[0028]122 TCP连接建立模块
[0029]123 TCP连接终止模块
[0030]13 OpenFlow 交换机
[0031]SI ?S6 步骤

【具体实施方式】
[0032]以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的【具体实施方式】加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
[0033]需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0034]本发明提供一种SDN网络访问方法。如图1所示,在一个实施例中,所述SDN网络访问方法包括:
[0035]步骤SI,控制器接收到SYN报文,所述SYN报文的源地址为客户端地址,所述SYN报文的目的地址端为服务器地址。具体地,SDN控制器接收到TCP协议的SYN报文,所述SYN报文的源地址为客户端地址,所述SYN报文的目的地址端为服务器地址。
[0036]在一个实施例中,客户端发送TCP连接请求,即客户端发送SYN报文;当OpenFlow交换机接收到SYN报文且在所述OpenFlow交换机的流表中没有找到于所述SYN报文匹配的流表项时,所述OpenFlow交换机将所述SYN报文转发给所述控制器,所述控制器接收到所述SYN报文。
[0037]步骤S2,所述控制器保存所述SYN报文,并将所述SYN报文发送给所述服务器。具体地,所述控制器保存所述SYN报文的信息,并将所述SYN报文发送给所述服务器。在一个实施例中,所述控制器保存所述SYN报文的信息,并将所述SYN报文发送给所述服务器。所述服务器接收到所述SYN报文,根据所述SYN报文分配TCP连接资源,生成所述SYN报文的响应报文,并发送所述SYN报文的响应报文给所述控制器。
[0038]步骤S3,所述控制器接收到所述服务器发送的所述SYN报文的响应报文,保存所述响应报文,发送所述响应报文给所述客户端,并开始在预设的时间内计时。具体地,所述服务器发送所述SYN报文的响应报文给OpenFlow交换机,对于新的TCP连接请求,所述OpenFlow交换机中无与所述响应报文匹配的流表项,所述OpenFlow交换机将所述响应报文转发给所述控制器,所述控制器接收到所述响应报文。
[0039]步骤S4,判断在计时结束前,控制器是否收到所述响应报文的ACK回应报文。如果在计时结束前,控制器收到所述响应报文的ACK报文,则接着执行步骤S5 ;如果在计时结束前,控制器未收到所述响应报文的ACK报文,则接着执行步骤S6。
[0040]步骤S5,结束所述计时,将所述ACK回应报文发送给所述服务器。具体地,如果在计时结束前,所述控制器收到所述响应报文的ACK回应报文,则结束所述计时,将所述ACK回应报文发送给所述服务器。在一个实施例中,如果在计时结束前,所述控制器收到所述响应报文的ACK回应报文,则所述控制器下发相应的流表项到相应的OpenFlow交换机。所述相应的流表项包括处理从所述客户端发送到所述服务器的报文的流表项以及处理从所述服务器发送到所述客户端的报文的流表项。在一个实施例中,所述ACK回应报文发送给所述服务器,所述服务器接收到所述ACK回应报文,建立TCP连接。
[0041]步骤S6,所述控制器利用保存的所述SYN报文以及响应报文,构造RST报文,将所述RST报文发送给所述服务器。具体地,如果直到计时结束,所述控制器也没有收到所述响应报文的ACK回应报文,则所述控制器利用保存的所述SYN报文以及响应报文,构造RST报文,将所述RST报文发送给所述服务器。其中,所述RST报文是通知TCP连接异常终止的报文,也称复位报文,用于异常释放一个连接。在一个实施例中,当所述服务器接收到所述RST报文时,异常终止相应的TCP连接,释放与所述RST报文相应的所述TCP连接资源。
[0042]在一个实施例中,如图2所示,本发明提供的一种SDN网络访问方法包括:OpenFlow Switch (即OpenFlow交换机)收到新用户SYN报文(所述SYN报文是指TCP协议的SYN报文,即客户端发送新的TCP连接请求时发送的报文),OpenFlow交换机的流表中无所述SYN报文相应的匹配规则,所述SYN通过Packet-1n消息上送SDN控制器。SDN控制器检查是SYN报文,保存该报文;通过Packet-out消息发给服务器。服务器回应TCP ACK+SYN报文(即所述SYN报文的响应报文),发给OpenFlow Swith,所述OpenFlowSwitch的流表中未找到所述响应报文的匹配规则,OpenFlow Switch将所述响应报文通过Packet-1n消息上传SDN控制器(即转发给所述控制器)。SDN控制器检查是TCP ACK+SYN报文(即所述SYN报文的响应报文),保存该报文,设定定时器(即在预设的时间内计时),通过Packet-out消息发给客户端。在设定的时间内,是否收到用户回应报文TCP ACK(即ACK回应报文)?如果收到TCP ACK报文(即ACK回应报文)则SDN控制器收到TCP ACK报文,通过Packet-out消息发给服务器;SDN控制器下发双向流表(即包括处理从所述客户端发送到所述服务器的报文的流表项以及处理从所述服务器发送到所述客户端的报文的流表项),建立客户端和服务器的双向连接。如果没有收到TCP ACK报文,则SDN控制器生成TCP RST报文(即所述RST报文),通过Packet-OUt消息发给服务器。服务器收到TCPRST报文(即所述RST报文),关闭相应的半连接,释放所述SYN报文对应的连接资源。月艮务器TCP重新进入LISTEN状态。
[0043]在一个实施例中,如图3所示,图中揭示了应用所述SDN网络访问方法的SDN控制器TCP中继TCP三次握手的过程。l)0penFlow Switch收到一个新用户的连接请求报文(SYN报文),在流表中没有找到匹配规则,报文通过Packet-1n消息发给SDN控制器。2)SDN Controller检查是SYN报文,开始TCP中继,保存该报文,通过Packet-out消息发给服务器,让服务器和客户端尝试开始建立三次TCP连接。3)服务器回应TCP ACK+SYN报文,报文通过Packet-1n消息上送SDN控制器。4) SDN控制器检查是TCP ACK+SYN报文,保存该报文,同时设定定时器(10s,时间根据网络实际情况可设定),通过Packet-out消息发给客户端。5)在设定时间内,SDN控制器收到了客户端的TCP ACK回应,证明是合法用户,通过Packet-out消息发给服务器,让客户端和服务器完成三次TCP握手,建立TCP连接,同时SDN控制器下发流表,建立客户端和服务器之间的硬连接。6)在设定时间内,SDN控制器没有收到客户端响应,证明是非法用户,利用已保存的报文信息,构造TCP RST报文,通过Packet-out消息发给服务器,释放服务器资源,关闭TCP半连接,防御SYN-FL00D攻击。
[0044]本发明提供一种SDN网络访问系统。在一个实施例中,如图4所示,所述SDN网络访问系统I包括:控制器11,服务器12和OpenFlow交换机13。OpenFlow交换机可以有一个或多个,都与所述控制器11相连,每个OpenFlow交换机13连接有一个或多个服务器12。服务器12可以有一个或多个,服务器12与控制器11相连,服务器12同时与某个OpenFlow交换机相连。其中:
[0045]所述控制器11包括连接报文处理模块111以及响应报文处理模块112。其中:
[0046]连接报文处理模块111用于接收SYN报文、保存所述SYN报文,并将所述SYN报文发送给所述服务器12。所述SYN报文的源地址为客户端地址,所述SYN报文的目的地址端为服务器地址。
[0047]响应报文处理模块112与所述连接报文处理模块111相连,用于接收所述服务器12发送的SYN报文的响应报文,保存所述响应报文,发送所述响应报文给所述客户端,并开始在预设的时间内计时;如果所述响应报文处理模块112在计时结束前,收到所述响应报文的ACK回应报文,则结束所述计时,将所述ACK回应报文发送给所述服务器12 ;此时,所述控制器11将下发相应的流表项(包括处理从所述客户端发送到所述服务器的报文的流表项以及处理从所述服务器发送到所述客户端的报文的流表项)到OpenFlow交换机13。如果直到计时结束,所述响应报文处理模块112也没有收到所述响应报文的ACK回应报文,则所述响应报文处理模块112利用保存的所述SYN报文以及响应报文,构造RST报文,将所述RST报文发送给所述服务器12。
[0048]服务器12与控制器11以及OpenFlow交换机13相连。服务器12包括TCP连接初始化模块121、TCP连接建立模块122以及TCP连接终止模块123。其中:
[0049]TCP连接初始化模块121接收到所述SYN报文,分配TCP连接资源,生成并发送所述SYN报文的响应报文。
[0050]TCP连接建立模块122与所述TCP连接初始化模块121相连,用于接收所述ACK回应报文,建立TCP连接。[0051 ] TCP连接终止模块123与所述TCP连接初始化模块121相连,用于接收所述RST报文,释放所述TCP连接资源。
[0052]OpenFlow交换机13与控制器11以及服务器12相连,用于当接收到报文(包括SYN报文、ACK回应报文、TCP ACK+SYN报文等报文)且在所述OpenFlow交换机的流表中没有找到于所述报文匹配的流表项时,所述OpenFlow交换机将所述报文转发给所述控制器
11。OpenFlow交换机13还用于接收控制器11下发的相应的流表项(包括处理从所述客户端发送到所述服务器的报文的流表项以及处理从所述服务器发送到所述客户端的报文的流表项)。
[0053]综上所述,本发明一种SDN网络访问方法及系统,利用SDN控制器中继TCP三次握手,由于TCP三次握手建立在客户端和服务器之间,数据传输时无须进行TCP sequence转换,提供了传输效率;而且流表下发在TCP三次握手成功之后,避免浪费硬件流表资源;如果SDN控制器没有收到客户端的TCP ACK应答,则控制器主动构造TCP RST报文,发送给服务器,以关闭TCP半连接,防御SYN-FL00D攻击。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0054]上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属【技术领域】中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
【权利要求】
1.一种SDN网络访问方法,其特征在于,所述SDN网络访问方法包括: 控制器接收到SYN报文,所述SYN报文的源地址为客户端地址,所述SYN报文的目的地址端为服务器地址; 所述控制器保存所述SYN报文,并将所述SYN报文发送给所述服务器; 所述控制器接收到所述服务器发送的所述SYN报文的响应报文,保存所述响应报文,发送所述响应报文给所述客户端,并开始在预设的时间内计时; 如果在计时结束前,所述控制器收到所述客户端发送的所述响应报文的ACK回应报文,则结束所述计时,将所述ACK回应报文发送给所述服务器; 如果在计时结束后,所述控制器没有收到所述客户端发送的所述响应报文的ACK回应报文,则所述控制器利用保存的所述SYN报文以及响应报文构造RST报文,并将所述RST报文发送给所述服务器。
2.根据权利要求1所述的SDN网络访问方法,其特征在于:所述SDN网络访问方法还包括:当OpenFlow交换机接收到SYN报文且在所述OpenFlow交换机的流表中没有找到于所述SYN报文匹配的流表项时,所述OpenFlow交换机将所述SYN报文转发给所述控制器。
3.根据权利要求1所述的SDN网络访问方法,其特征在于:所述SDN网络访问方法还包括:如果在计时结束前,所述控制器收到所述客户端发送的所述响应报文的ACK回应报文,则所述控制器下发相应的流表项到相应的OpenFlow交换机。
4.根据权利要求3所述的SDN网络访问方法,其特征在于:所述相应的流表项包括:处理从所述客户端发送到所述服务器的报文的流表项以及处理从所述服务器发送到所述客户端的报文的流表项。
5.根据权利要求1所述的SDN网络访问方法,其特征在于:所述SDN网络访问方法还包括:当所述服务器接收到所述SYN报文时,分配TCP连接资源,并发送所述SYN报文的响应报文;当所述服务器接收到所述ACK回应报文时,建立TCP连接;当所述服务器接收到所述RST报文时,释放所述TCP连接资源。
6.一种SDN网络访问系统,其特征在于:所述SDN网络访问系统包括:控制器,所述控制器包括: 连接报文处理模块,用于接收SYN报文,所述SYN报文的源地址为客户端地址,所述SYN报文的目的地址端为服务器地址;保存所述SYN报文,并将所述SYN报文发送给所述服务器; 响应报文处理模块,与所述连接报文处理模块相连,用于接收所述服务器发送的所述SYN报文的响应报文,保存所述响应报文,发送所述响应报文给所述客户端,并开始在预设的时间内计时;如果所述响应报文处理模块在计时结束前,收到所述响应报文的ACK回应报文,则结束所述计时,将所述ACK回应报文发送给所述服务器;如果直到计时结束,所述响应报文处理模块也没有收到所述响应报文的ACK回应报文,则所述响应报文处理模块利用保存的所述SYN报文以及响应报文,构造RST报文,将所述RST报文发送给所述服务器。
7.根据权利要求6所述的SDN网络访问系统,其特征在于:所述SDN网络访问系统还包括=OpenFlow交换机,用于当接收到SYN报文且在所述OpenFlow交换机的流表中没有找到于所述SYN报文匹配的流表项时,所述OpenFlow交换机将所述SYN报文转发给所述控制器。
8.根据权利要求6所述的SDN网络访问系统,其特征在于:如果所述响应报文处理模块在计时结束前,收到所述响应报文的ACK回应报文,则所述控制器下发相应的流表项到所述OpenFlow交换机。
9.根据权利要求8所述的SDN网络访问系统,其特征在于:所述相应的流表项包括处理从所述客户端发送到所述服务器的报文的流表项以及处理从所述服务器发送到所述客户端的报文的流表项。
10.根据权利要求6所述的SDN网络访问系统,其特征在于:所述SDN网络访问系统还包括:服务器,所述服务器包括: TCP连接初始化模块,用于接收到所述SYN报文,分配TCP连接资源,生成并发送所述SYN报文的响应报文; TCP连接建立模块,与所述TCP连接初始化模块相连,用于接收所述ACK回应报文,建立TCP连接; TCP连接终止模块,用于接收所述RST报文,释放所述TCP连接资源。
【文档编号】H04L29/06GK104184749SQ201410469233
【公开日】2014年12月3日 申请日期:2014年9月15日 优先权日:2014年9月15日
【发明者】王超 申请人:上海斐讯数据通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1