SDN的研究进展
JournalofSoftware软件学报V01.26,No.1,January2015
2.2转发规则相关研究
与传统网络类似,SDN中也会出现网络节点失效的问题,导致网络中的转发规则被迫改变,严重影响了网络的可靠性.此外,流量负载转移或网络维护等也会带来转发规则的变化.SDN允许管理人员自主更新相关规则,但采用较低抽象层次(10w.1evel)的管理方式来更新规则容易出现失误【”],导致出现规则更新不一致的现象.即便没有出现失误,由于存在更新延迟问题,在更新过程中,转发路径上有些交换机已经拥有新规则,而另一些交换机还使用旧规则,仍然会造成规则更新不一致性的问题.
将配置细节进行抽象,使管理人员能够使用较高抽象层次(high.1evel)的管理方式统一更新,就可防止低层管理引起的不一致性问题.一般采用两阶段提交方式来更新规则【401:第1阶段,当某个规则需要更新时,控制器询问每个交换机是否处理完对应旧规则的流,并对处理完毕的所有交换机进行规则更新;第2阶段,当所有交换机都更新完毕时,才完成更新,否则将取消该更新操作.为了能够使用两阶段提交方式更新规则,在预处理阶段,对数据包打上标签以标示新旧策略的版本号.在转发过程中,交换机将检查标签的版本,并按照对应版本的规则执行相应的转发动作.当数据包从出口交换机转发出去时,则去掉标签.然而,这种方式需要等待旧规则的数据包全部处理完毕才能处理新规则的数据包,这样会造成规则空间被占用进而产生较高的成本.增量式一致性更新算法【4l】可以解决规则空间成本较高的问题,该算法将规则更新分成多轮进行,每一轮都采用二阶段提交方式更新一个子集,这样可以节省规则空间,达到更新时间与规则空间的折中.McGeer提出了基于OpenFlow的安全更新协议【42】来完善抽象层两阶段提交方式的安全性,该协议将无法识别新旧规则的报文发送至控制器,来保证流转发的正确性.此外,规则更新过程需要考虑性能问题.Ghorbani等人【43】研究了虚拟机场景下规则更新算法,该算法可以确保在更新过程中拥有足够的带宽。同时不会影响到其他流的正常转发.
由于OpenFlow无法主动增加未知协议,为保证新协议能在SDN中使用,OpenFlow只能将该协议更新到接口的规格说明书当中,并未真正做到协议无关.因此,如何做到协议无关转发,成为数据平面可扩展的重要研究方向之一.在数据平面建立与协议无关的流指令集(flowinstructionset,简称FIS),可以做到协议无关的转发【州.协议无关的FIS抽象了数据平面,每个协议相关的规则会转化成FIS中协议无关的指令,并被数据平面硬件所识别,从而实现快速转发.协议无关的FIS使规则与转发设备无关,提高了数据平面的可扩展性,真正实现了控制平面与数据平面的全面分离.
3控制层关键技术研究
控制器是控制层的核心组件,通过控制器,用户可以逻辑上集中控制交换机,实现数据的快速转发,便捷安全地管理网络,提升网络的整体性能.本节首先详细阐述了以NOX控制器【12】为基础的两种技术改进方法:一种是采用多线程的控制模式,另一种是通过增加分布式控制器数量,实现扁平式和层次式控制模式.然后介绍了主流接口语言的研究发展,实现控制语言抽象.最后,深入分析了控制器的一致性、可用性和容错性等特性.3.1控制器设计问题
控制器的基本功能是为科研人员提供可用的编程平台.最早且广泛使用的控制器平台是NOX[12],能够提供一系列基本接口.用户通过NOX可以对全局网络信息进行获取、控制与管理,并利用这些接口编写定制的网络应用.随着SDN网络规模的扩展,单一结构集中控制的控制器(如NOX)处理能力受到限制,扩展困难,遇到了性能瓶颈,因此仅能用于小型企业网或科研人员进行仿真等.网络中可采用两种方式扩展单一集中式控制器:一种是通过提高自身控制器处理能力的方式,另一种是采用多控制器的方式来提升整体控制器的处理能力.
控制器拥有全网信息,能够处理全网海量数据,因此需要具有较高的处理能力.NOX—MT【45】提升了NOX的性能,它是具有多线程处理功能的NOX控制器.NOX.MT并未改变NOX控制器的基本结构,而是利用传统的并行技术提升性能,使NOX用户可以快速更新至NOX.MT,且不会由于控制器平台的更替产生不一致性问题【4….另一种并行控制器为Maestro[471,它通过良好的并行处理架构,充分发挥了高性能服务器的多核并行处理能力,使其在网络规模较大情况下的性能明显优于NOX.