樊自甫+朱兴浩+陶君
摘 要: 针对多个软件定义网络域中控制器失效检测时间长、检测点单一及误判率高等问题,提出一种基于问询机制的软件定义网络等级式控制平面失效检测方法。该机制首先在控制器之间按概率分布发送与到达时间间隔相关的心跳信息,再将下一次到达时间间隔与预测时间间隔进行对比,最后通过问询方式决定控制器是否失效。仿真结果表明,相比于传统检测方案,该机制能缩短控制器间的失效检测时间,并能够根据失效概率的大小询问不同数量的控制器,有效降低了多域控制器失效检测的误判概率。
关键词: 软件定义网络; 等级式控制平面; 时间到达分布; 失效概率; 问询机制; 失效检测
中图分类号: TN711?34 文献标识码: A 文章编号: 1004?373X(2018)05?0037?04
Abstract: Since the controller in the multiple SDN domains has the problems of long failure detection time, single check point and high misjudgment, an inquiry mechanism based hierarchical control plane failure detection algorithm of SDN is proposed. This mechanism can send the heartbeat message related with arrival time interval between controllers according to the probability distribution, compare the arrival time interval at next time with predicted time interval, and judge whether the controller fails or not by means of querying mode. The simulation results show that, in comparison with the traditional detection scheme, the mechanism can shorten the failure detection time among controllers, effectively reduce the misjudgment probability of the multi?domain controller failure detection according to different failure probabilities to query the controllers with different quantity.
Keywords: software defined networking; hierarchical control plane; time arrival distribution; failure probability; inquiry mechanism; failure detection
软件定义网络(Software Defined Networking,SDN)[1]将数据与控制平面解耦,并实现可编程化控制。未来的SDN网络由多个SDN控制域[2?3]组成,控制器作为网络操作系统负责数据平面的流量控制、流表下发及网络管理[3]等工作。对于单控制器管理的网络而言,控制节点一旦发生失效将造成网络瘫痪[4],在多控制器协同工作的网络中,控制器的失效[5]将造成域内网络中断且域间无法通信。因此,对控制平面的失效检测方案设计[6]尤为重要,并且也是当下的研究热点之一。
1 研究现状与问题分析
当前的失效检测方案分为两种:基于心跳机制和基于时间戳机制。文献[7]提出一种基于心跳机制[7?8]的检测方式,控制器之间通过心跳信息相互检测彼此的健康状况,但此方案所需的检测时间太长,控制器发送心跳信息的频率是通常情况下[7]=5 ms,若控制器每5 ms发送给另一个控制器的报文在1 ms后没有收到回复消息,则进行重发动作,当重发的次数达到5次时可以认为被检测的控制器已经失去连接,即控制器需要36 ms才能知道对方已经失效。文献[9]提出一种环形结构下控制器时间检测机制,通过将前者控制器的时间戳发送给后者控制器提高了检测时间,但没有考虑传输链路上由于消息的延迟而造成对前者控制器的误判。文献[10]中采用Master/Slave进行控制器相互备份的方式,成本太高。文献[11]提出类似于时间戳机制的检测方法,通过依次检测每个控制器的CPU利用率是否溢出决定失效与否,然而失效检测点并没有安全保障。此外,在文献[10?12]中控制器的失效检测点都只有一个,安全性得不到保证。
综上所述,在以往的检测机制中,控制器检测节点或者只有一个[13],或因失效检测时间太长,无法快速得知失效控制器的编号而导致数据平面终端时延变大。然而对于控制器而言,这两个因素关系到对控制平面的判决标准,因此提出了问询机制的方式来检测控制器的失效。
2 解决办法
2.1 问询机制
基于等级式多域SDN架构的基础上,本文提出一种失效检测机制,如图1所示。
图1中,将控制平面分为区域1和区域2两个大区域。在区域1中,记顶层控制器所组成的子域为底层控制平面为;控制器之间通过心跳信息进行交互,同一子区域内的控制器相互发送心跳信息来检测对方是否失效,属于区域1中子域的底层控制器在得到域内控制器的健康状况之后,由域向域中的高层控制器进行汇报。高层控制器间相互确认健康状况后,通过区域1将信息发送到区域2以便共享。endprint