《企業(yè)網(wǎng)D1Net》12月23日訊
隨著SDN應用的日益廣泛,提及SDN就無法回避控制器,對于SDN而言,控制器的作用是不可或缺的,控制器負責整個SDN網(wǎng)絡的集中化控制,對于把握全網(wǎng)置資源視圖、改善網(wǎng)絡資源交付都具有非常重要的作用。
但控制能力的集中化,也意味著控制器局的安全性和性能成為全網(wǎng)的瓶頸,一旦控制器在性能或安全性上得不到保障,隨之而來的是全網(wǎng)的服務能力的降級甚至是癱。另外,單一的控制器也無法應對跨多個地域的SND網(wǎng)絡問題,需要多個SDN控制器組成的分布式集群,以避免單一的控制器節(jié)點在可靠性、擴展性、性能方面的問題。目前,用于多個控制器之間溝通和聯(lián)系的東西向接口還沒定義標準,但一些非常成熟的集群技術可以被運用到SDN網(wǎng)絡中來解決上述難題。
控制器的軟件化讓服務器可以作為控制器的載體,控制器集群可以以服務器集群為基礎搭建。因為SDN控制器在SDN網(wǎng)絡中的重要作用,控制器集群的設計更具特殊性,例如要能夠支持正在運行的集群中增加新的控制器,以改善擴展性、保存失效控制器對應的交換機狀態(tài)一保證可靠性,特別是因為控制器掌握著全網(wǎng)的SDN交換設備,通過分布式的協(xié)作方式確保網(wǎng)絡狀態(tài)的一致性尤其重要,
為保證控制器集群對SDN網(wǎng)絡的控制效果,有兩個方面的設計與實現(xiàn)非常重要。
第一是主控制器的選舉,主控制器主要負責生成和維護全網(wǎng)范圍內的控制器和交換機狀態(tài)信息,一旦出現(xiàn)失效,就需要從集群的副控制器中選舉一個成為新的主控制器。
第二是控制器集群對交換機的透明化,即在SDN網(wǎng)絡的運行過程中,交換機無需關心當前他接受的是哪一臺控制器發(fā)來的命令,同時在其向控制器發(fā)送數(shù)據(jù)包時,能保持之前單一控制器的操作方式,從而保證控制器在邏輯上的集中。為了實現(xiàn)上述目標,控制器集群設計的關鍵要素包含以下:
1. 主控制器選舉
在網(wǎng)絡運行過程中,集群的副控制器需要周期性的監(jiān)控主控制器的工作狀態(tài),一旦發(fā)現(xiàn)訪問不可達,就要啟動主控制器的選舉,集群中主控制器的選舉,業(yè)界已有不少算法,例如基于paxos的分布式選舉算法,在算法設計中,需要考慮算法實現(xiàn)的復雜度,特別是如果控制器集群部署在廣域網(wǎng)中,還要考慮帶寬延遲等網(wǎng)絡質量因素。
2. 集群虛擬地址
為了實現(xiàn)控制器之間的負載均衡,控制器集群可以利用傳統(tǒng)的負載均衡技術,例如在交換機向控制器進行注冊時,可以向某個靜態(tài)的虛擬IP地址發(fā)送,然后控制器集群會根據(jù)負載均衡算法,通過控制器間的通信確定并記錄該虛擬地址對應的控制器,并要求其負責對該交換機的控制,而控制器返回給交換機的數(shù)據(jù)包也將以虛擬IP地址為源地址,實現(xiàn)控制器集群對交換機的透明化。
3. 全網(wǎng)拓撲獲取
SDN網(wǎng)絡中的拓撲信息是實現(xiàn)資源優(yōu)化調度的關鍵。為了獲得全網(wǎng)控制器和交換機的工作情況,需要各個控制器周期的進行鏈路發(fā)現(xiàn),并將采集回來的網(wǎng)絡信息發(fā)送給主控制器匯總,再由主控制器統(tǒng)一下發(fā)給各個控制器。如果在定制數(shù)據(jù)流的轉發(fā)策略時,控制器發(fā)現(xiàn)數(shù)據(jù)流傳輸涉及的設備超過其控制的交換機范圍時,將會根據(jù)全網(wǎng)拓撲告知交換機對應的控制器,并通過協(xié)商制定一致的策略,進而統(tǒng)一下發(fā)給交換機。
D1Net評論:
總而言之,控制器的方向性擴展已經成為亟待解決的問題,尤其是東西向的擴展,若想解決這一問題,控制器集群是最合適的技術之一,雖然當前有很多成熟的技術和成功的經驗可供參考,但對SDN網(wǎng)絡而言,還有許多內容需要進一步研究,例如控制器之間東西向接口標準的指定,這將有助于在控制層面提供更好的開放性,實現(xiàn)控制器之間的兼容,更好的支持SDN部署規(guī)模的提升。