樊自甫+朱興浩+陶君
摘 要: 針對多個軟件定義網絡域中控制器失效檢測時間長、檢測點單一及誤判率高等問題,提出一種基于問詢機制的軟件定義網絡等級式控制平面失效檢測方法。該機制首先在控制器之間按概率分布發送與到達時間間隔相關的心跳信息,再將下一次到達時間間隔與預測時間間隔進行對比,最后通過問詢方式決定控制器是否失效。仿真結果表明,相比于傳統檢測方案,該機制能縮短控制器間的失效檢測時間,并能夠根據失效概率的大小詢問不同數量的控制器,有效降低了多域控制器失效檢測的誤判概率。
關鍵詞: 軟件定義網絡; 等級式控制平面; 時間到達分布; 失效概率; 問詢機制; 失效檢測
中圖分類號: 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