鄧志華,呂光宏
(四川大學 計算機學院,四川 成都 610065)
SDN網絡可擴展性問題的研究
鄧志華,呂光宏
(四川大學 計算機學院,四川 成都 610065)
軟定義網絡(SDN)將控制平面從數據平面中解耦合,通過使用一個統一的控制平面來管理網絡事件,并通過全局網絡視圖來同步網絡狀態,以此提供一個更加靈活和易于管理的網絡;然而,由于數據平面和控制平面的分離增加了對OpenFlow事件處理額外的計算和網絡資源消耗,隨著網絡流量的增加,不可避免地會使控制器和交換機以及控制器與控制器之間通信量的增大,因此單一的控制器或者設計不合理的多控制器網絡拓撲都有可能使SDN網絡出現可擴展性問題。為了解決SDN網絡的可擴展性問題,文中從引起網絡擁塞的原因以及網絡轉發器件性能兩大方面進行分析,分別針對SDN的可擴展性問題從減輕網絡負載和設計更加合理的網絡器件兩個角度出發,分析并綜述了近兩年在該領域的研究與貢獻。
軟定義網絡;可擴展性;網絡負載;網絡器件
SDN控制與轉發分離使得控制器抽身于復雜轉發事務,而去專心處理上層的應用決策;交由數據平面的交換機根據控制器下發的轉發規則進行數據轉發。這種控制與轉發分離的網絡架構與傳統的網絡架構相比,能夠很好地降低網絡的復雜性,提升網絡的可擴展性以及可管理性。然而,與傳統網絡的發展一樣,SDN網絡的發展同樣面臨著網絡規模不斷變大、網絡流量不斷攀升的挑戰。因此,如何在保證甚至提升網絡服務質量的前提下對不斷擴充的網絡實現動態管理顯得尤為重要。在同一網絡中各方面的性能往往不能共存[1]。譬如要實現網絡的實時性,就有可能意味著要以網絡的容錯性和一致性等為代價;而要實現控制平面的一致性可能相應會增加網絡流量的冗余度以及影響消息傳遞的實時性。因此,在提高SDN網絡的可擴展性時需要根據實際需求對網絡進行優化和改進。
在早期的單控制器網絡中,網絡規模受到中央控制器硬件性能及網絡事件處理能力的限制導致網絡的可擴展性極差,因此出現了各種多控制器的擴展方案[2]。在多控制器的SDN網絡中,多個控制器之間通過交互自身的網絡狀態來維護一張全局網絡視圖,控制器依據該網絡視圖生成對應的流轉發規則。然而,當網絡事件過于頻繁時,SDN網絡的可擴展性、靈活性及容錯性等就可能面臨相應的挑戰[3]。
1.1 規則處理
為了有效減少控制器和交換機之間的流量,最直接的方式就是盡可能地減少規則請求的事件通信流量(在多控制器的SDN網絡中主要體現在減少交換機和控制器之間的事件通信量[4])。
1.1.1 匹配規則緩存
規則緩存在多控制器可擴展方案中體現的是本地化策略。系統啟動時,一般要對網絡中的組件進行初始化操作,其中就包括了對交換機流表進行初始化。該過程包括了對交換機的一些參數設置以及將轉發規則部署到相應的交換機流表中。緩存規則可以大大減少對控制器的請求和流表的設置時間,然而交換機的流表空間十分有限,為了解決這個問題,引入了通配符規則緩存機制。相比全匹配規則,通配符規則可以提升流表規則的可重用性并且減少交換機對控制器的流表設置請求,增強系統的可擴展性[5]。像DevoFlow[6]使用了通配符規則來處理小尺寸流,SwitchReduce[7]使用通配符來壓縮具有相同行為的規則以及DomainFlow[8]使用通配符匹配規則用來抽取匹配好的規則。在規則緩存機制中,與傳統的匹配模式相比,通配符規則匹配能更好地減少交換機與控制器的交互以及規則所占用的流表空間,從而增強網絡的可擴展性。但通配符規則匹配存在規則域的重疊,可能會導致錯誤的匹配問題(見圖1)。

圖1 規則依賴問題
基于該問題,Yan Bo等提出的CAB[9](一種通配符規則匹配)通過引入桶的概念將規則的域空間劃分到桶中,然后存儲關聯后的桶和規則,解決了區域重疊可能導致規則匹配出錯的問題。
1.1.2 規則依賴
緩存規則是為了減少交換機與控制器之間的流量通信。然而,交換機的緩存空間有限,不可能預先部署所有的規則到每個交換機,并且靜態部署的規則不能適應動態變化的網絡狀態,因此需要控制器根據上層決策制定并部署相應的轉發規則[10]。研究結果顯示,缺乏對規則依賴的處理是產生冗余規則的一個很重要的原因。在現存的SDN策略編譯器中,并沒有處理好策略更新所導致的大量冗余規則更新的問題,而許多策略的更新只是修改一下優先級。基于該問題,文獻[11]提出了一種建立編譯與規則之間的依賴的可擴展策略編譯器和一個用來獲取離散分布優先數的在線優化算法,基本上解決了因為策略優先級更新而帶來的冗余規則更新的問題。另一方面,一個網絡狀態的更新往往由一系列相互獨立的子更新組成。因此,這些子更新可以在不考慮安裝順序的情況下平行安裝。像ESPRES[12]正是利用這一特性,提出了一種通過規則重排和流量控制的方式來充分地利用交換機有限資源。相比普通的規則處理,它能夠加快規則的更新速度,還能減少規則占用的存儲空間。
1.1.3 規則壓縮
雖然很多控制器(像NOX、Pox和Ryu等)并不包含交換機流表的拷貝,但在實際的網絡部署中,讓控制器存儲交換機的轉發狀態是很有必要的,尤其是在網絡快速恢復、網絡狀態查詢、一致性檢查和規則空間分析等方面[13]。然而,如果按照傳統的在控制器中保持每個交換機流表的一個拷貝,這樣無疑將消耗巨大的控制器內存空間,致使網絡的可擴展性面臨挑戰。
正如1.1.2節中提到的,現存的策略編譯器并不能很好地處理策略更新所產生的冗余規則,而冗余規則之間存在一定的相關性,因此可以利用該特性來壓縮規則、降低規則占用的存儲空間。文獻[13]提出了一種基于模型的壓縮方法,該方法通過合并多個流表并整合流表內的action字段以及由規則推導規則的方式有效減少了流表的尺寸,從而提高了資源的利用率。
1.1.4 規則優化
按照傳統SDN網絡的流轉發方式,當流到達不能由規則匹配轉發的交換機時,交換機會請求控制器下發規則來處理該流的轉發。同樣地,當流轉發到下游節點交換機時,交換機需要將流轉發到控制器,由控制器安裝規則到交換機,然后控制器將流返回到該交換機進行轉發。這種情況一直持續流到達出口點進行交付。因此,在部署OpenFlow網絡的過程中,合理地選擇轉發策略不但能減少規則對空間和鏈路的消耗,還能有效減少網絡中的流量。為了避免交換機請求規則設置受轉發路徑長度的影響,ERSDN[14]通過在流的首部加入轉發路徑并通過特殊指令來設置下一跳交換機的流表,從而避免了規則設置請求隨著轉發路徑的增加而增加,減少了控制器-交換機規則設置請求的流量,提高了網絡的可擴展性。
除了以上提及的對轉發策略規則設置請求優化外,對轉發規則的資源消耗優化同樣能提高網絡的可擴展性。現存的優化資源消耗的方式主要有兩種:第一種像Palette[15]和OneBigSwitch[16],旨在尋找最優的資源分配來滿足最小化流和策略的需求。這種方式在解決規則的選擇和安放問題上遵循端點策略(該策略聲明了包必須嚴格按照路由策略生成的轉發路徑進行轉發以到達出口位置[17])。而另一種像文獻[17]提出的,不去注重包轉發的具體細節而盡可能多地去轉發,放寬了對路由的限制。這種方式能夠提高路徑的多樣性,增加網絡容量,因為強制路由方案限制了包的轉發路徑以及需要對高度復雜的規則選擇和安放操作付出很大的代價。
1.2 多控制器網絡架構
單控制器注定不能滿足網絡的要求。首先,隨著網絡中交換機數量的不斷增加,控制器的流量也會隨之增加;其次,對于大直徑的網絡,不管將控制器部署在哪個位置,一些較遠的交換機將會出現遠距離流的設置延遲;最后,單控制在硬件上存在性能瓶頸。
該節將從控制器的部署以及最優路徑算法為例討論如何通過多控制器網絡結構來提升網絡對事件的處理能力以及通過優化路徑來減少網絡通信流量。
在SDN可擴展方案(見表1)中,將HyperFlow作為分布式多控制器擴展方案的典型代表。

表1 基于OpenFlow的SDN可擴展方案對比
HyperFlow在每個控制器實例上安裝WheelFS(分布式文件系統)來有選擇性地向相鄰的其他控制器發布能改變系統狀態的事件,控制器通過交互自身狀態,實現了網絡中所有控制器狀態的匯聚(即全局網絡視圖)。在HyperFlow網絡中,所有的控制器擁有相同的全局網絡視圖,本地服務請求不用主動與遠端節點交互。除此之外,并非所有的網絡事件都會改變系統的狀態,因此,HyperFlow對這些事件進行有選擇性地發布。這樣,有效減少了流的設置時間,提高了網絡的可擴展性。
類似地,像Pratyaastha[18]能夠通過減少控制器之間的內部通信以及控制器的資源消耗,來大大降低流的設置延遲。初步估計,Pratyaastha能夠減少44%的流設置延遲以及42%的控制器操作開銷。
在實施多控制器可擴展性方案中,路由方案在可擴展性方面亦起著至關重要的作用。一方面,網絡拓撲在不斷變化,要求路由方案能夠及時發現變化了的網絡結構并以此重新尋找最優的轉發路徑以應對路徑失效問題。另一方面,路由方案關系到參與通信的控制器數量,好的路由方案應該盡可能減少轉發路徑上參與轉發的控制器個數,尤其應該避免環路的出現。通常拓撲發現采用生成樹的方法(例如在POX控制器上實現的最短路徑路由算法[19])。
2.1 交換機
在傳統的OpenFlow網絡中,控制平面對整個網絡提供了統一化的管理,所有的網絡決策都必須經過控制器來下發。SDN網絡的實現控制器通過維護一張全局網絡視圖來對網絡進行配置和管理。一方面,這種方式容易導致控制器成為網絡的性能瓶頸;另一方面,這種線下的事件處理方式使得控制器不能實時偵測到網絡狀態的變化,因此很容易受到像新流的攻擊、交換機接口頻變以及事件風暴等惡性網絡事件的影響[20]。雖然交換機是網絡數據包轉發的執行者,掌握了網絡動態信息的第一手資料,但這種“啞”的器件并不具備根據網絡信息做出相應判決的能力,而只能根據控制器下發的流表規則進行轉發或請求控制器處理,從而嚴重掣肘了網絡的靈活性和可擴展性。Neod[21]以固件的方式在交換機中提供一種輕量級的嵌入式CPU利用率檢測、接口頻變檢測以及事件風暴過濾的功能。像這種提供交換機對某些網絡事件自行處理的能力,能夠大大提升網絡資源的利用率。
另外,由于缺乏資源,不能支持轉發芯片與CPU間的高頻通信,導致交換機轉發性能低下[22]。因此,提升交換機的轉發速率能消除轉發平面的性能瓶頸。FAST[23]在交換機上定義了一種通過預定義包的動作的匹配規則來提升包轉發速率的方法;文獻[12]提供了一種通過軟硬件結合方式對交換機進行抽象的方法,實現了以低消耗無限制流表緩存的功能,從而提高了包的轉發效率。
2.2 控制器
在SDN網絡發展過程中,出現了一系列控制器。控制器的架構從單線程到多線程,從單控制器到支持分布式的多控制器。
表2從控制器類型、是否支持多線程以及分布式實現和開發語言等方面列舉了近年來的主流控制器。

表2 典型控制器平臺對比
SDN為從數據平面中解耦合控制平面提供了一個更好的網絡管理平臺,成為越來越多人的選擇。然而,隨著網絡流量的與日俱增(據思科對未來網絡流量的統計,2018年網絡平均流量將比2013年增長2.8倍[24]),網絡的中心化控制可能會因為大的網絡負載而產生控制平面的可擴展性問題。文中針對該問題,從規則處理和網絡設備兩方面出發,結合近年在該方面的研究進行了分析和總結。
[1] Panda A,Scott C,Ghodsi A,et al.CAP for networks[C]//Proc of the ACM SIGCOMM workshop on HotSDN.[s.l.]:ACM,2013:91-96.
[2] 左青云,陳 鳴,趙廣松,等.基于OpenFlow的SDN技術研究[J].軟件學報,2013,24(5):1078-1097.
[3] Guan Xinjie,Choi Baek-Young,Song Sejun.Reliability and scalability issues in software defined network frameworks[C]//Proc of GREE.[s.l.]:[s.n.],2013.
[4] 張朝昆,崔 勇,唐翯祎,等.軟件定義網絡(SDN)研究進展[J].軟件學報,2015,26(1):62-81.
[5] Tootoonchian A, Ganjali Y. HyperFlow:a distributed control plane for OpenFlow[C]//Proc of Internet network management workshop on research on enterprise networking.[s.l.]:[s.n.],2010.
[6] Curtis A R,Mogul J C,Tourrilhes J,et al.DevoFlow:scaling flow management for high-performance networks[J].SIGCOMM CCR,2011,41(4):254-265.
[7] Iyer A, Mann A, Samineni N.Switchreduce:reducing switch state and controller involvement in OpenFlow networks[C]//Proc of IFIP networking conference.[s.l.]:[s.n.],2013.
[8] Nakagawa Y,Hyoudou K,Lee C,et al.Domainflow:practical flow management method using multiple flow tables in commodity switches[C]//Proc of conference on emerging networking experiment and technologies.[s.l.]:ACM,2013.
[9] Yan Bo,Xu Yang,Xing Hongya,et al.CAB:a reactive wildcard rule caching system for software-defined networks[C]//Proc of the ACM SIGCOMM workshop on HotSDN.[s.l.]:ACM,2014.
[10] Katta N,Rexford J,Walker D.Infinite cacheflow in software-defined networks[R].USA:Princeton University,2013.
[11] Wen Xitao,Diao Chunxiao,Zhao Xun,et al.Compiling minimum incremental update for modular SDN language[C]//Proc of the ACM SIGCOMM workshop on HotSDN.[s.l.]:ACM,2014.
[12] Peresini P,Kuzniar M,Canini M,et al.ESPRES:transparent SDN update scheduling[C]//Proc of the ACM SIGCOMM workshop on HotSDN.[s.l.]:ACM,2014.
[13] Zhang Ying,Natarajan S,Huang Xin,et al.A compressive method for maintaining forwarding states in SDN controller[C]//Proc of the ACM SIGCOMM workshop on HotSDN.[s.l.]:ACM,2014.
[14] Owens H,Durresi A.Explicit routing in software-defined networking (ERSDN):addressing controller scalability[C]//Proc of international conference on network-based information systems.[s.l.]:[s.n.],2014.
[15] Kanizo Y,Hay D, Keslassy I. Palette:distributing tables in software-defined networks[C]//Proc of INFOCOM.Turin:IEEE,2013:545-549.
[16] Kang N,Liu Z,Rexford J, et al. Optimizing the ‘one big switch’ abstraction in software-defined networks[C]//Proc of conference on emerging networking experiments and technologies.[s.l.]:ACM,2013.
[17] Nguyen X,Saucez D,Barakat C,et al.Optimizing rules placement in openflow networks:trading routing for better efficiency[C]//Proc of the ACM SIGCOMM workshop on HotSDN.[s.l.]:ACM,2014.
[18] Krishnamurthy A,Shoban P,Chandrabose A G.Pratyaastha:an efficient elastic distributed SDN control plane[C]//Proc of the ACM SIGCOMM workshop on HotSDN.[s.l.]:ACM,2014.
[19] Jmal R,Fourati L C.Implementing shortest path routing mechanism using Openflow POX controller[C]//Proc of 2014 international symposium on networks,computers and communications.[s.l.]:[s.n.],2014.
[20] Zhou Shijie,Jiang Weirong,Prasanna V K.A programmable and scalable OpenFlow switch using heterogeneous SoC platforms[C]//Proc of the ACM SIGCOMM workshop on HotSDN.[s.l.]:ACM,2014.
[21] Song Sejun,Hong Sungmin,Guan Xinjie,et al.Neod:network embedded on-line disaster management framework for software defined networking[C]//Proc of 2013 IFIP/IEEE international symposium on integrated network management.[s.l.]:IEEE,2013.
[22] Yeganeh S H,Tootoonchian A,Ganjali Y.On scalability of software-defined networking[J].IEEE Communications Magazine,2013,51(2):136-141.
[23] Moshref M,Bhargava A,Gupta A,et al.Flow-level state transition as a new switch primitive for SDN[C]//Proc of the ACM SIGCOMM workshop on HotSDN.[s.l.]:ACM,2014.
[24] Cisco.Cisco visual networking index:forecast and methodology[M].[s.l.]:Cisco,2013.
Research on Scalability of SDN
DENG Zhi-hua,Lü Guang-hong
(School of Computer,Sichuan University,Chengdu 610065,China)
Software Defined Network (SDN) provides a more flexible and a better management network,by a united control plane which decoupled from data plane to manage network event and a global network view to synchronize network status.However,as the separation between data plane and control plane increased to OpenFlow event handling additional computing and network resources consumption,with the increase of network traffic,it will inevitably make the traffic increasing between controller and switches,as well as between controller and the controller,and that may lead to scalability issues occurred in SDN network.In order to solve the problem of SDN network scalability,the analysis is conducted from the cause of network congestion and network device performance.Starting from reducing network load and designing more reasonable network device,the contribution and research in this field is analyzed and summarized in past two years.
SDN;scalability;network load;network devices
2015-06-22
2015-09-23
時間:2016-02-18
國家“863”高技術發展計劃項目(2008AA01Z105)
鄧志華(1989-),男,碩士研究生,研究方向為計算機網絡;呂光宏,教授,研究方向為計算機網絡。
http://www.cnki.net/kcms/detail/61.1450.TP.20160218.1636.062.html
TP393
A
1673-629X(2016)03-0014-04
10.3969/j.issn.1673-629X.2016.03.004