论文部分内容阅读
软件定义网络(Software Defined Network,SDN)将网络的转发和控制功能分离,具有网络虚拟化和集中控制的特点,常被业界用来解决传统网络结构僵化的问题。然而灵活的网络结构也使得控制器更容易受到恶意流量攻击,当流量出现激增或其它变化时,控制器与交换机之间无法迅速地适应这种负载改变,尤其是在部署大规模SDN网络时,会导致控制平面负载不均衡,进而产生安全隐患。如何保护控制器、尤其是骨干控制器避免遭受安全威胁,提高SDN网络控制平面的安全性,是一个非常重要的问题。在SDN网络中,根据交换机与控制器之间的交互流程,当用户请求流量到达时,若交换机流表中没有可以与之匹配的流表项,交换机就会向其Master控制器发送Packet_In数据包请求路由信息,这一机制很容易被攻击者利用,向控制器发起攻击,造成控制器过载甚至控制平面的级联故障,导致系统发生故障。骨干控制器是SDN网络的核心,会接受到更多来自于交换机的请求,处理大量的消息,这使得它们更容易被攻击者识别,发起恶意监听或被恶意流量吞没。为了保护骨干控制器,通过交换机迁移的方法实现主动防御,将骨干控制器下的负载迁移到其它控制器,降低骨干控制器被识别被攻击的可能性,同时使控制器之间的负载尽可能达到均衡。针对分布式控制层面的安全需求,提出了一种基于交换机迁移的SDN控制平面安全防御方案,在保证控制器安全性的同时,也合理的控制了调度过程中所产生的代价,具体内容如下:(1)为了减少骨干控制器被识别的可能性,同时减少迁移交换机所产生的代价,本文提出基于最小代价路径的交换机迁移算法(Switch Migration Algorithm Based on Minimum Cost Path,SMCP)。通过改进的迪杰斯特拉算法获取最小代价迁移路径,根据控制器负载状态,以及待迁移交换机的流量优先级确定最优迁移交换机集合,该算法可以确保迁移后控制平面负载有较好的均衡性,减少骨干控制器被监听被识别的可能性,减少了迁移代价,同时保证重要流量被优先处理。(2)本文提出的SMCP迁移算法,通过减少迁移次数来进一步降低迁移所产生的代价。对于过载控制器采用一次均衡方法来降低其负载,在之后的每个均衡过程,都只进行一次迁移操作,减少了迁移次数,降低了迁移代价,从而提高了系统的稳定性。(3)为了减少频繁迁移,规避不必要迁移操作,本文的迁移模型中加入了负载预测模块。传统方法仅通过控制器阈值来确定是否迁移,一旦负载值大于阈值就执行迁移,这样会产生大量的迁移代价并导致系统稳定性降低。比如控制器在当前时刻是超过阈值的,但是下一个时刻控制器流量回归正常,此时的迁移是不必要的,并且带来额外的系统开销。负载预测模块可以预测下一时刻的负载情况从而确定目标控制器以及迁移触发时机,减少不必要的迁移,保证系统稳定性。(4)本文针对迁移过程中可能产生的孤立节点问题给出了解决方案。迁移某个或者某些交换机时可能会造成孤立节点问题,孤立节点内的交换机会同时请求本域和目标域控制器,给两个控制器带来负担,导致控制器性能下降。本文提出孤立节点处理算法,解决迁移过程中出现的孤立节点问题,减少控制器响应时间。