论文部分内容阅读
软件定义网络(Software-Defined Networking,SDN)是一种新兴的网络架构。在SDN网络架构中,架构设计者将控制层和数据层进行解耦,通过控制器实现对整个网络的逻辑集中控制。与传统的网络架构相比,集中控制使得网络管理人员和开发人员的管理与开发过程变得更为简单和便捷,利用SDN控制器提供的可编程接口,开发人员可以实现各种网络服务和功能,而无需关注底层的实现。虽然SDN网络架构的管理和开发比传统网络架构更容易,但是其设计也引入了一些新的安全问题。比如DDoS攻击,因为SDN控制器需要管理和控制整个网络,使得SDN控制器成为整个SDN网络的核心部分,而攻击者可以利用伪造源IP地址的数据包来向控制器发送大量的packet-in消息,从而可能导致SDN控制器负载过高,SDN交换机流表项溢出等问题,使得整个SDN网络瘫痪,无法继续处理新的网络请求。目前,用于检测针对SDN网络设备的DDoS攻击的主要方法有两种:基于统计分析方式和基于机器学习方式。前者主要是将传统网络下的DDoS攻击检测算法部署到SDN网络中,这种方式不能充分发挥SDN自身的优势。后者训练学习时间较长,且需要大量的存储空间来进行部署和训练,无法实现快速重新部署。由于SDN自身有许多特性,如流量分析、集中控制、丰富的流表项等,所以我们不能直接简单的将传统网络架构下的算法照搬过来。本文首先提出了一种基于边界交换机端口 packet-in速率的余弦相似度的DDoS检测算法。该算法能充分利用SDN集中控制和全局拓扑的特性,通过统计边界交换机端口的packet-in发送速率的余弦相似度,能在较短的时间内检测到DDoS攻击,并找到真实的DDoS攻击源头,实现快速响应,阻挡DDoS攻击。接着,本文提出了一种基于余弦相似度和流量不对称的DDoS攻击源查找算法,该算法无需一层一层的回溯来查找含有DDoS攻击的交换机,也无需第三方设备支持,更节省控制器的计算资源和查找时间,而且能在DDoS攻击的源端对DDoS数据包进行拦截。