李吉良,婁 陽,張學敏
(中國電子科技集團公司第五十四研究所,河北 石家莊 050081)
互聯網的快速發展促使了傳統網絡在功能和結構上變得愈加復雜,傳統網絡存在的問題也逐漸暴露出來。軟件定義網絡(Software Defined Networking,SDN)[1]將數據面與控制面分離,采用集中控制方式,具有可編程、整網控制、業務部署快捷及成本低等優勢,不僅提升了網絡的安全性與服務質量、降低了網絡運營與維護的成本,而且使新的服務與應用可以更加快捷地部署到網絡中,縮短了新產品的開發周期。
SDN網絡中控制器實現控制平面功能,控制面是SDN架構的核心層,負責收集網絡狀態、計算路由以及下發控制信息給數據平面的數據轉發設備,因此,研究控制平面的可靠性、可擴展性和抗毀性十分重要[2-4]。為解決網絡管控規模大帶來的路由計算量大、資源管控量大的問題,控制器一般采用分布式集群系統。分布式集群系統一般分為垂直分布和水平分布兩種方式,把不同的功能部署在不同的分布式節點中并進行并行處理稱為垂直分布,相同功能部署在不同的分布式節點中形成一個集群稱為水平分布。控制器采用垂直分布和混合分布混合使用的方式,拓撲管理等采用垂直分布方式,網絡設備管理、協議處理等功能使用水平分布方式。
當前,基于SDN的廣域網技術是一個比較前沿的研究領域,與數據中心網絡不同,廣域網的SDN化面臨最大的問題是大規模組網以及網絡動態變化而導致的網絡可靠性降低、抗毀能力差等問題[5-6]。傳統SDN控制器(如OpenDaylight[7-8]、ONOS[9]等)采用控制器集群化方式[10],主要為滿足數據中心需求而設計,并不適用于廣域網中,主要原因如下:
① 數據中心網絡為專用網,地域、邏輯較為集中,傳輸帶寬大,因此在大帶寬小地域的數據中心網絡中控制器之間能夠進行大量集群信息的收發。而廣域網具有地域覆蓋廣泛、網絡帶寬情況復雜等特點,傳統SDN控制器并不適用。
② 數據中心網絡為滿足虛擬機遷移等需求一般采用大二層等技術,沒有控制器分級、網絡分域的需求。而廣域網網絡規模大、范圍廣、流表數量巨大,因此,一般根據區域進行分級分域管理,這樣不僅減少了域內的流表信息,而且使得整個網絡更便于管理。
③ 傳統SDN控制器通過集群冗余方式進行抗毀,由于沒有進行分域控制,需要對全網拓撲進行路由計算與網絡狀態監控,當出現集群節點不可用等情況,其他控制節點的計算與流量負載會產生成倍的增加,不適用于廣域網抗毀情況使用。
④ 傳統SDN網絡控制器與交換機之間控制通道采用帶外控制方式,控制器通過專用控制網絡與交換機相連,并利用該網絡完成與交換機的南向通信。這種帶外方式構建的控制通道不僅成本高,而且只適用于數據中心等地域集中的網絡,不適用廣域網的情況。
綜上,現有SDN控制方式并不適用于廣域網,為實現SDN在廣域網的使用,本文提出基于帶內控制方式的分級分域控制器組網架構,并研究在此架構下控制器抗毀[11]組網方法。
SDN分級分域控制器組網架構如圖1所示。該架構采用垂直分層水平分域的方式將網絡控制層分為兩層:上層為域間控制器(Inter Area Controller,IAC),底層為區域控制器(Area Controller,AC)。其中AC負責管理區域(Area)內設備,完成區域內業務轉發;上層的IAC則負責對AC進行協同,完成區域間的網絡管理和控制工作。AC與IAC之間的東西向接口(AC-IAC)使用控制器互聯協議進行通信,AC通過南向接口(Southbound Interface,SBI)管理區域內交換機。每個AC管理網絡的一個區域,在一個區域的邊緣交換機上既有區域內鏈路(Area Link,AL),也有區域間鏈路(Inter Area Link,IAL)。AC通過LLDP協議[12]完成區域內拓撲信息探測并同步至IAC,同時接收IAC執行區域間轉發策略;IAC通過AC搜集各區域內拓撲信息,通過LLDP協議探測區域間鏈路構建全局網絡拓撲,為AC控制器提供區域間轉發策略。

圖1 SDN分級分域控制器組網架構
1.1 帶內控制
在廣域網絡中,節點數量大,節點地域分布廣,物理鏈路種類多,一般不會搭建類似數據中心網絡的SDN物理專用控制網絡,考慮到南向控制通道承載業務帶寬需求相對較小,采用在控制器與交換機中運行傳統IP路由協議組建邏輯獨立的帶內控制網絡是可行方式,通過路由方式可以在數據傳輸網絡中隔離出相對獨立的控制域Areai,該思路既能保證網絡邏輯上集中控制,也能保證網絡控制與轉發分離。如圖1所示,SBI、AC-IAC交互報文在邏輯獨立的控制網絡中傳輸,IAC與各AC之間,AC控制器與所轄交換機之間通過傳統路由協議建立控制通道連接,它們在邏輯上還是星型關系,控制通道SBI、AC-IAC與轉發數據業務共用一張物理網絡。
1.2 區域控制器(AC)
AC完成本區域內的鏈路發現、主機信息管理以及區域內的轉發策略計算,并通過控制器互聯協議(AC-IAC)協助IAC完成區域間數據轉發。
① 鏈路信息發現
AC通過發送包含交換機ID、端口號、控制器ID和對外端口號信息的LLDP包發現鏈路。如果AC收到來自另一個區域的LLDP包,那么這個AC會將收到這個包的端口標記為對外端口,并分配一個在區域內唯一的對外端口號。同時AC也需要向IAC轉發從其他區域發來的LLDP包,使IAC發現區域間鏈路與端口關系并記錄。
② 主機信息管理
AC負責一個區域的管理,為了能夠轉發數據包,AC需要收集包括MAC地址、IP地址和子網掩碼等主機信息。另外AC還需要異步地向IAC發送主機信息,使IAC能夠根據主機信息進行編排和協同決策。
③ 轉發策略計算
當出現轉發層面無法通過流表正常轉發的數據時,該數據會被PacketIn到控制平面進行路徑計算。當AC通過區域內信息能夠計算出轉發路徑時,則為區域內數據傳輸,AC將轉發路徑以流表形式下發到數據平面進行數據轉發;當AC無法通過區域內信息計算出轉發路徑時,通過AC-IAC上報到IAC進行跨域路徑轉發計算。
④ 控制器互聯協議
AC需要通過AC-IAC向IAC發送區域內節點信息、鏈路信息、主機信息以及與其他區域相連的對外端口等信息,幫助IAC形成全網網絡拓撲;并接收IAC的跨域轉發策略,實現跨域轉發中的本區域數據轉發。
1.3 域間控制器(IAC)
IAC負責管理AC之間的編排和協同,通過收集區域拓撲信息和域間鏈路(IAL)信息生成全網拓撲,此外還需要收集主機位置信息以保證能夠完成全網范圍內的業務處理。
① 全局拓撲收集
IAC通過AC-IAC從AC獲得區域拓撲信息,并將多區域拓撲信息整合為全網拓撲信息。
② 跨域轉發策略計算
接收區域控制器的跨域轉發請求,并根據全局拓撲計算跨域轉發策略,如圖2所示。當能夠計算出跨域轉發策略時,IAC將跨域轉發策略分解成多個區域的區域轉發策略,通過AC-IAC將跨域轉發策略下發對應的AC中;當不能夠計算出跨域轉發策略時,IAC通告請求的AC目的不可達,將數據丟棄。

圖2 跨域業務實現
SDN分級分域控制器組網架構將網絡根據區域進行了劃分,將整網的路由計算劃分到不同的區域中。首先,采用帶內的控制通道組建方式,解決了廣域SDN網絡集中控制的問題,使得SDN網絡能夠在大規模、跨地域的廣域網進行應用。其次,分域將路由計算與網絡狀態采集分解到每個域內,單一域內的路由計算量與網絡狀態變化量相對全網較少,一個或幾個區域控制節點失效,不會造成本域中其他集群控制器的負載過大,甚至整個區域所有控制節點均失效,也只影響此區域的數據通信,因此能夠有效地降低網絡故障影響。另外,本架構中AC只需要掌握本區域網絡信息,無需直接與其他區域的AC通信,減少了控制器間的信息交換,提高了SDN在廣域網應用的可靠性。
由于SDN將控制面與數據面分離,為實現控制面對數據面的控制,在OpenFlow協議中增加了控制通道,控制通道的斷開會導致數據面失去控制不能進行有效的轉發。在SDN分級分域控制器組網架構下,當一個交換機相連的所有AC均失聯后交換機便不能進行有效的數據轉發。為解決此問題,提高SDN分級分域控制器組網架構在廣域網應用的抗毀性,數據面采用OpenFlow-hybrid交換機(此種SDN交換機既支持傳統IP路由轉發,同時也支持OpenFlow協議流表轉發),保證在控制通道斷開情況下交換機仍有部分路由計算能力,當OpenFlow-hybrid交換機與控制器失聯后,采用切換到傳統IP路由模式的方法實現其自身的抗毀組網。
2.1 傳統區域自組網
在SDN分級分域控制器組網架構下,OpenFlow-hybrid交換機與控制器失聯后應獨立為單獨的一個區域,方便整網進行分級分域控制。
當失聯原因為控制器正常、控制鏈路阻塞等情況導致的控制通道斷開時,失聯交換機為獨立的單個或幾個交換機。若有失聯交換機相連,失聯交換機會自動通過傳統路由協議(包括OSPF[13]、IS-IS[14]、RIP[15]協議等路由協議)進行協議交互,實現之間的自動組網,兩個獨立區域便合并為一個區域,如圖3所示。當失聯原因為控制器失效,整個域內交換機均產生失聯情況下,整個區域的交換機均會切換至傳統路由協議方式下運行,并整體組成一個傳統IP路由區域。其中,失聯交換機之間鏈路變為區域內鏈路,失聯交換機與未失聯交換機相連鏈路變為域間鏈路(IAL)。AC可通過下發的LLDP包,動態識別與失聯交換機相連的域間鏈路(IAL)。如果AC收到來自另一個區域的LLDP包,那么這個AC會將收到這個包的端口更改為對外端口,并能根據LLDP包的計數計算是否經過失聯交換機,以及經過幾個失聯交換機。當計算得到經過失聯交換機時,AC更新接收到該LLDP包端口為連接失聯交換機的對外端口。

圖3 傳統IP路由區域自組網
2.2 跨域數據傳輸
為實現失聯交換機組成的傳統IP路由區域與SDN區域之間的數據互通,IAC需要通過傳統IP路由協議獲得傳統區域內的拓撲與路由情況。因此,AC需要通過AC-IAC將路由協議包發送至IAC進行協議交互與解析。
① 區域控制器(AC)
AC需要向與傳統IP路由區域相連的交換機下發路由協議PacketIn到AC的流表,并通過AC-IAC將PacketIn的數據包轉發到IAC上,再通過AC-IAC接收IAC發送的傳統協議數據包,并轉發到接收路由協議的對外端口上。
② 域間控制器(IAC)
IAC通過AC-IAC接收AC上傳的路由協議數據包,通過路由協議模塊、路由表解析模塊進行處理,將處理結果反饋至拓撲管理模塊,方便路徑計算模塊進行路徑計算,如圖4所示。

圖4 跨域控制器(IAC)路由協議處理
路由協議模塊接收路由協議報文生成路由表,路由表解析模塊根據路由表將傳統域內網絡信息附加到對應的對外端口上,完成整網拓撲網絡信息的更新。如圖5所示,傳統路由協議模塊從SW1上PacketIn的路由協議中獲得路由表(目標網絡:10.223.223.0/24、20.223.221.0/24 接口:1),從SW2上PacketIn的路由協議中獲得路由表(目標網絡:10.223.223.0/24、20.223.223.0/24 接口:2)。解析分析得到通過SW1的1接口和SW2的2接口可達10.223.223.0/24網絡,將網絡拓撲信息上傳并存儲到拓撲管理中。當路徑計算模塊需要計算到10.223.223.0/24網絡時,可通過拓撲管理模塊得到通過SW1的1接口或SW2的2接口到達,跨域控制器只需要下發流表將數據轉發至SW1的1接口或SW2的2接口,SW3收到通過1接口或2接口收到數據包后根據傳統路由協議轉發至目的網絡。

圖5 路由信息解析
路由表解析模塊從拓撲管理模塊獲得域內網絡信息,并將區域網絡信息轉換為路由信息添加到路由協議模塊中。圖5中路由表解析模塊根據SDN區域內拓撲信息生成SW1路由表(目標網絡:20.223.222.0/24 接口:2)和SW2路由表(目標網絡:20.223.224.0/24 接口:1),兩條路由信息通過路由協議模塊與交換機SW3進行路由協議交互,SW3最終生成路由表(目標網絡:20.223.221.0/24、20.223.222.0/24 接口:1;目標網絡:20.223.223.0/24、20.223.224.0/24 接口2;目標網絡:10.223.223.0/24 接口:3),其中路由(目標網絡: 20.223.222.0/24 接口:1;目標網絡:20.223.224.0/24 接口2)為學習到的新路由表項。當傳統域中數據包請求SDN域A中20.223.224.0/24網絡時,可通過路由協議轉發至SW3交換機的2接口上,之后通過控制器計算下發流表將數據包轉發至SW2的1接口上,最終到達目的網絡。
通過以上IAC學習傳統IP路由區域中路由表、IP路由交換機學習AC中SDN區域網絡信息實現兩個區域之間的雙向通信。當控制通道恢復后,OpenFlow-hybrid交換機通過檢查,自動恢復為OpenFlow交換機,脫離所在傳統IP路由區域,恢復到相連AC所控制的SDN區域中進行流表轉發。本抗毀組網方法能夠解決控制通道斷開造成的交換機轉發失效的問題,提高了SDN在廣域網應用的抗毀性。
2.3 實驗驗證
實驗驗證平臺由控制面和數據面組成,控制面包括3個運行在Ubuntu系統上的控制器,控制器采用擴展了分級分域模塊與抗毀模塊的ONOS控制器。3個控制器節點,即1個IAC與2個AC組成2層控制網絡,如圖6所示。數據面由6臺OpenFlow-hybrid交換機組成,交換機由改造的OpenVSwitch與Quagga進行仿真,每個AC控制3個仿真交換機。

圖6 實驗平臺拓撲
抓取主機A到主機B的流量,在抓包過程中關閉AC B,觸發AC B控制的3個交換機與控制失連。在啟用與不啟用抗毀模塊兩種情況下進行流量抓取,得到對比數據如圖7所示。 通過對比發現,抗毀模塊能在失連后繼續保證SDN域與傳統域之間的互通,滿足控制器失連下的抗毀要求。

圖7 實驗數據對比
本文提出了面向廣域網的SDN分級分域控制器組網架構,解決了SDN在廣域網組織運用時控制規模大、計算量大導致的網絡不穩定問題,以及控制面和數據面分離導致網絡抗毀能力差等問題。該架構將網絡控制層分為區域控制層與跨域控制層,提出區域控制器控制域內業務轉發,域間控制器控制跨域業務轉發的控制策略,采用帶內方式承載東西向和南向接口報文的方法,較好地解決了SDN廣域網控制通道問題。為提高此架構在廣域網應用的抗毀性,研究控制器失聯情況下的抗毀組網方法,通過使用OpenFlow-hybrid交換機,將失聯OpenFlow交換機臨時切換到傳統IP路由交換機,通過失聯域與SDN域控制器的路由信息交互,完成兩域間數據的雙向通信,實現分級分域架構下的抗毀組網,對進一步開展基于SDN的廣域網研究具有借鑒意義。
[1] ONF White Paper.Software-Defined Networking: The New Norm for Networks,Open Networking Foundation[R],2012.
[2] Baskett P,Shang Y,Zeng W,et al.SDNAN:Software-defined Networking in Ad Hoc Networks of Smartphones[C]∥2013 IEEE Consumer Communications and Networking Conference (CCNC),2013:861-862.
[3] Yeganeh S H,Ganjali Y.Kandoo: A Framework for Efficient and Scalable Offloading of Control Applications[C]∥Proceedings of the First Workshop on Hot Topics in Software Defined Networks.ACM,2012: 19-24.
[4] McCauley J,Panda A,Casado M,et al.Extending SDN to Large-scale Networks[J].Open Networking Summit,2013: 1-2.
[5] Tootoocian A,Ganjali Y.HyperFlow: A Distributed Control Plane for OpenFlow[C]∥In Proc.ACM INM/WREN,2010:3.
[6] McCauley J,Panda A,Casado M,et al.Extending SDN to Large-Scale Networks[C]∥In Proc.ONS,2013:75-79.
[7] Hildrum K,Kubiatowicz J D,Rao S,et al.Distributed
Object Location in a Dynamic Network[J].Theory of Computing Systems,2004,37(3): 405-440.
[8] Medved J,Varga R,Tkacik A,et al.Opendaylight:Towards a Model-driven Sdn Controller Architecture[C]∥2014 IEEE 15th International Symposium on.IEEE,2014: 1-6.
[9] Berde P,Gerola M,Hart J,et al.ONOS: Towards an Open,Distributed SDN OS[C]∥Proceedings of the Third Workshop on Hot Topics in Software Defined Networking.ACM,2014: 1-6.
[10] Demers A,Greene D,Hauser C,et al.Epidemic Algorithms for Replicated Database Maintenance[C]∥Proceedings of the Sixth Annual ACM Symposium on Principles of Distributed Computing.ACM,1987: 1-12.
[11] XIONG Xiaoping.Reliability Analysis and Optimal Design of Wide Area Communication Network in Power System [D].Guangxi:Guangxi University,2013.
[12] HUANG Wunyuan,HU Jenwei,LIN Shucheng. Design and Implementation of Automatic Network Topology Discovery System for International Multi-Domain Future Internet Testbed[J].Journal of Internet Technology,2013 ,14(2):181-183.
[13] OSPF Version2,RFC 2328[DB/OL].Available: https:∥tools.ietf.org/html/rfc2328.
[14] IS-IS Protocol Specification (IETF),RFC 1142[DB/OL].Available:http:∥tools.ietf.org/html/rfc1142.
[15] RIP Version2,RFC 2453[DB/OL].Available: https:∥tools.ietf.org/html/rfc2453.
[16] Dixit A,Hao F,Mukherjee S,et al.Towards an Elastic Distributed SDN Controller[C]∥In Proc.ACM SIGCOMM HotSDN,2013:7-12.
[17] McKeown N,Anderson T,Balakrishnan H,et al.OpenFlow: Enabling Innovation in Campus Networks[J].ACM SIGCOMM Computer Communication Review,2008,38(2): 69-74.