樊自甫+朱興浩+陶君
摘 要: 針對多個軟件定義網(wǎng)絡(luò)域中控制器失效檢測時間長、檢測點單一及誤判率高等問題,提出一種基于問詢機制的軟件定義網(wǎng)絡(luò)等級式控制平面失效檢測方法。該機制首先在控制器之間按概率分布發(fā)送與到達時間間隔相關(guān)的心跳信息,再將下一次到達時間間隔與預(yù)測時間間隔進行對比,最后通過問詢方式?jīng)Q定控制器是否失效。仿真結(jié)果表明,相比于傳統(tǒng)檢測方案,該機制能縮短控制器間的失效檢測時間,并能夠根據(jù)失效概率的大小詢問不同數(shù)量的控制器,有效降低了多域控制器失效檢測的誤判概率。
關(guān)鍵詞: 軟件定義網(wǎng)絡(luò); 等級式控制平面; 時間到達分布; 失效概率; 問詢機制; 失效檢測
中圖分類號: TN711?34 文獻標(biāo)識碼: 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
軟件定義網(wǎng)絡(luò)(Software Defined Networking,SDN)[1]將數(shù)據(jù)與控制平面解耦,并實現(xiàn)可編程化控制。未來的SDN網(wǎng)絡(luò)由多個SDN控制域[2?3]組成,控制器作為網(wǎng)絡(luò)操作系統(tǒng)負(fù)責(zé)數(shù)據(jù)平面的流量控制、流表下發(fā)及網(wǎng)絡(luò)管理[3]等工作。對于單控制器管理的網(wǎng)絡(luò)而言,控制節(jié)點一旦發(fā)生失效將造成網(wǎng)絡(luò)癱瘓[4],在多控制器協(xié)同工作的網(wǎng)絡(luò)中,控制器的失效[5]將造成域內(nèi)網(wǎng)絡(luò)中斷且域間無法通信。因此,對控制平面的失效檢測方案設(shè)計[6]尤為重要,并且也是當(dāng)下的研究熱點之一。
1 研究現(xiàn)狀與問題分析
當(dāng)前的失效檢測方案分為兩種:基于心跳機制和基于時間戳機制。文獻[7]提出一種基于心跳機制[7?8]的檢測方式,控制器之間通過心跳信息相互檢測彼此的健康狀況,但此方案所需的檢測時間太長,控制器發(fā)送心跳信息的頻率是通常情況下[7]=5 ms,若控制器每5 ms發(fā)送給另一個控制器的報文在1 ms后沒有收到回復(fù)消息,則進行重發(fā)動作,當(dāng)重發(fā)的次數(shù)達到5次時可以認(rèn)為被檢測的控制器已經(jīng)失去連接,即控制器需要36 ms才能知道對方已經(jīng)失效。文獻[9]提出一種環(huán)形結(jié)構(gòu)下控制器時間檢測機制,通過將前者控制器的時間戳發(fā)送給后者控制器提高了檢測時間,但沒有考慮傳輸鏈路上由于消息的延遲而造成對前者控制器的誤判。文獻[10]中采用Master/Slave進行控制器相互備份的方式,成本太高。文獻[11]提出類似于時間戳機制的檢測方法,通過依次檢測每個控制器的CPU利用率是否溢出決定失效與否,然而失效檢測點并沒有安全保障。此外,在文獻[10?12]中控制器的失效檢測點都只有一個,安全性得不到保證。
綜上所述,在以往的檢測機制中,控制器檢測節(jié)點或者只有一個[13],或因失效檢測時間太長,無法快速得知失效控制器的編號而導(dǎo)致數(shù)據(jù)平面終端時延變大。然而對于控制器而言,這兩個因素關(guān)系到對控制平面的判決標(biāo)準(zhǔn),因此提出了問詢機制的方式來檢測控制器的失效。
2 解決辦法
2.1 問詢機制
基于等級式多域SDN架構(gòu)的基礎(chǔ)上,本文提出一種失效檢測機制,如圖1所示。
圖1中,將控制平面分為區(qū)域1和區(qū)域2兩個大區(qū)域。在區(qū)域1中,記頂層控制器所組成的子域為底層控制平面為;控制器之間通過心跳信息進行交互,同一子區(qū)域內(nèi)的控制器相互發(fā)送心跳信息來檢測對方是否失效,屬于區(qū)域1中子域的底層控制器在得到域內(nèi)控制器的健康狀況之后,由域向域中的高層控制器進行匯報。高層控制器間相互確認(rèn)健康狀況后,通過區(qū)域1將信息發(fā)送到區(qū)域2以便共享。endprint