殷 波 張云勇 王志軍 房秉毅 馮偉斌
中國聯通研究院 北京 100032
隨著云計算技術的大規模應用,傳統數據中心網絡不能很好地滿足現有網絡的需求。新應用的發展對傳統網絡提出更高效集中的網絡管理需求、高效靈活的組網需求,虛擬機的部署和遷移也需要網絡更加靈活,并且網絡要能支撐虛擬機多租戶業務。簡言之,數據中心網絡SDN(Software defined network,軟件定義網絡)化的需求主要表現在海量的虛擬租戶、多路徑轉發、VM(虛擬機)的智能部署和遷移、網絡集中自動化管理、綠色節能、數據中心能力開放等幾個方面[1]。
數據中心之間互聯的網絡具有流量大、突發性強、周期性強等特點,需要網絡具備多路徑轉發與負載均衡、網絡帶寬按需提供、綠色節能、集中管理和控制的能力。數據中心間的網絡流量傾向按照固定路徑經多跳進行傳輸,任何流量阻塞或是設備故障都會產生瀑布效應影響到通過同一臺設備的其他網絡流量;因此,由于數據中心中無時無刻不存在著虛擬服務器的擴展和移動(例如虛擬機的生成和移動),這將使網絡性能表現地更加不確定。在傳統數據中心網絡中一般可以通過配置網絡QoS,以及進行有限的多路徑選擇,有時甚至可能需要手工更改配置來解決交通擁堵的問題。若將SDN引入數據中心網絡中,就可以對網絡進行端到端虛擬路徑的可編程操作,中央控制器可以將多臺核心設備聚合在一起進行高速背板轉發。在未來,SDN網絡將能夠基于實時分析和數據統計得到的網絡利用率對數據中心網絡流量的轉發過程進行智能決策。
引入SDN技術[2]后,SDN控制邏輯集中的特點可充分滿足網絡集中自動化管理、多路徑轉發、綠色節能等方面的要求;SDN網絡能力開放化和虛擬化可充分滿足數據中心能力開放、VM的智能部署和遷移、海量虛擬租戶的需求。數據中心的建設和維護一般統一由數據中心運營商或ICP/ISP維護,具有相對的封閉性,可統一規劃、部署和升級改造,SDN在其中部署的可行性高。引入SDN的網絡可通過部署統一的控制器來收集各數據中心之間的流量需求,從而進行統一的計算和調度、實施帶寬的靈活按需分配、最大程度優化網絡、提升資源利用率。目前Google已經在其數據中心之間應用了SDN技術,將數據中心之間的鏈路利用率提升至接近100%,成效顯著。數據中心網絡是SDN目前最為明確的應用場景之一,也是最有前景的應用場景之一。
SDN是一種新型的基于軟件可編程思想的網絡架構[3],它有一個集中式的控制平面和分布式的轉發平面,兩個平面相互分離,可以實現控制平面對數據平面的集中化控制,并提供開放的編程接口,為網絡提供靈活的可編程能力,具備以上特點的網絡架構都可以被認為是一種廣義的SDN。
SDN可支持網絡層中的不同功能,并創建新功能以將網絡作為一組抽象服務進行管理。這些抽象服務的部分功能包括以下幾點。
1) 將虛擬機從網絡中分離。SDN支持通過將虛擬機與其物理網絡身份相分離來對超大規模數據中心進行擴建和管理。在虛擬機遷移到數據中心內的不同LAN甚至跨WAN上的數據中心遷移時,SDN可確保它們之間的互相通信。
2) 基于SDN的安全應用。基于SDN的網絡能夠以多種方式提升安全性,包括支持創建虛擬化的安全性設備,這種方式具有動態可擴展的優點;以及能夠將LAN和WLAN安全策略和控制集成到集中控制平臺上進行統一管理的方式。
3) 基于軟件的負載均衡。在基礎層級,SDN和負載均衡是較為相似的流量優化方法。目前,廠商正努力將負載均衡建立為一種網絡基元。借助支持SDN的負載均衡,應用服務器可分布到多個數據中心上,從而提升最終用戶的服務等級。
4) 視頻流量優化。服務提供商可通過使用網絡運營中心的SDN控制器動態地向服務器(接近消耗點)路由及分配高容量的視頻傳輸流量來管理流量。
5) 虛擬插線面板。借助虛擬插線面板,可以通過SDN控制器向交換機流量表中寫入靜態流表項,以這種可編程的方式可以使位于不同交換機上的端口進行級聯。SDN固有的可編程性可確保插線面板的動態性以及流表的快速修改。該虛擬插線面板方法適用于廣泛的場景,包括網絡監控和安全應用。
ONF(Open Network Foundation,開放式網絡基金會)定義的SDN架構共由四個平面組成(如圖1所示),即數據平面(Data Plane)、控制平面(Control Plane)、應用平面(Application Plane)以及右側的控制管理平面(Management&Admin)。

圖1 ONF定義的SDN架構
1) 數據平面。由若干網元(Network Elements)構成,每個網元可以包含一個或多個SDN Datapath。每個SDN Datapath是一個邏輯上的網絡設備,它沒有控制能力,只是單純用來轉發和處理數據,它在邏輯上代表全部或部分的物理資源。如圖1所示,一個SDN Datapath包含控制數據平面接口代理(Control-Data-Plane Interface Agent,CDPI Agent)、轉發引擎表(Forwarding Engine)和處理功能(Processing Function)三部分。
2)控制平面。即圖1所示的SDN控制器(SDN Controller),它是一個邏輯上集中的實體,主要負責兩個任務。一是將SDN應用層請求轉換到SDN Datapath,二是為SDN應用提供底層網絡的抽象模型(可以是狀態、事件)。一個SDN控制器包含北向接口代理(Northbound Interfaces Agent,NBI Agent)、SDN控制邏輯(Control Logic)以及控制數據平面接口驅動(CDPI Driver)三部分。SDN控制器只要求邏輯上完整,因此,它可以由多個控制器實例協同組成,也可以是層級式的控制器集群;從地理位置上來講既可以是所有控制器實例在同一位置,也可以是多個實例分散在不同的位置。
3) 應用平面。由若干SDN應用(SDN Application)構成,SDN應用是用戶關注的應用程序,它可以通過北向接口與SDN控制器進行交互,即這些應用能夠通過可編程方式把需要請求的網絡行為提交給控制器。一個SDN應用可以包含多個北向接口驅動(使用多種不同的北向API),同時,SDN應用也可以對本身的功能進行抽象、封裝來對外提供北向代理接口,封裝后的接口就形成了更為高級的北向接口。
4) 控制管理平面。該平面著重負責一系列靜態的工作,這些工作比較適合在應用、控制、數據平面外實現,比如對網元進行配置、指定SDN Datapath的控制器,同時,負責定義SDN控制器以及SDN應用能控制的范圍。
在數據中心中引入SDN架構,帶來了網絡設備標準化,特別是轉發設備,將能在通用的硬件設備基礎上實現,同時,網絡設備標準化和網絡能力開放為網絡設備替換和第三方網絡應用開發掃清了障礙,網絡的建設成本將大大降低;并且,數據中心引入SDN,可使封閉的數據中心網絡走向開放,借助開放接口API,可開發出各種網絡應用,對攻克數據中心網絡運維難題提供了很好的解決方案。

圖2 控制器層次化體系架構
控制平面的設備,是連接底層交換設備與上層應用的橋梁。一方面,控制器通過南向接口協議對底層網絡交換設備進行集中管理、狀態監測、轉發決策以處理調度數據平面的流量;另一方面,控制器通過北向接口向上層應用開放多個層次的可編程能力,允許其根據特定的應用場景靈活地制定各種網絡策略。將具有基本模塊的控制器稱為通用控制器[4],通用控制器的層次化體系架構如圖2所示,控制器功能被分為基本功能層與網絡基礎服務層兩個層面。
基本功能層主要提供控制器所需要的最基本功能。首先,為便于SDN網絡動態靈活地部署,通用控制器應具有協議適配功能,能夠方便地添加接口協議。需要包含的接口協議主要分為兩類。一是用來與底層交換設備進行信息交互的南向接口協議,二是用于控制平面分布式部署的東西向接口協議。其次,控制器需要提供用于支撐上層應用開發的功能。這些功能主要包括以下4方面內容。1)模塊管理:重點完成對控制器中各模塊的管理,允許在不停止控制器運行的情況下加載新的應用模塊,實現上層業務變化前后底層網絡環境的無縫切換;2)事件機制:該模塊定義了事件處理相關的操作,包括創建時間、觸發事件、事件處理等操作;3)任務日志:該模塊提供基本的日志功能,開發者可以用它來快速地調試自己的應用程序,網絡管理人員可以用它來高效、便捷地維護SDN網絡;4)資源數據庫:這個數據庫包含底層各種網絡資源的實時信息,主要包括交換機資源、主機資源、鏈路資源等,以方便開發人員查詢使用。
對于一個完善的控制器體系架構來說,僅僅實現基本功能層還遠遠不夠。為使開發者能夠專注于上層的業務邏輯,提高開發效率,需要在控制器中加入網絡基礎服務層以提供基礎的網絡功能。網絡基礎服務層中的模塊作為控制器實現的一部分,可以通過調用基本功能層的接口來實現設備管理、狀態監測等一系列功能。這一層涵蓋的模塊可以有很多,取決于控制器具體的實現,下面介紹5個主要的功能模塊。1)交換機管理:控制器從資源數據庫中得到底層交換機信息,并將這些信息以更加直觀的方式提供給用戶以及上層應用服務的開發者;2)主機管理:與交換機管理模塊的功能類似,重點負責提取網絡中主機的信息;3)拓撲管理:控制器從資源數據庫中得到鏈路、交換機和主機的信息后,就會形成整個網絡的拓撲結構圖;4)路由、轉發策略:提供數據包的轉發策略,最簡單的策略有根據二層MAC地址轉發、根據IP轉發數據包,用戶也可以在此基礎上繼續開發來實現自己的轉發策略;5)虛網劃分:虛網劃分可有效利用網絡資源,實現網絡資源價值的最大化,但出于安全性的考慮,SDN控制器必須能夠通過集中控制和自動配置的方式實現對虛擬網絡的安全隔離。
OpenFlow協議[5]是基于網絡中“流”的概念設計的一種SDN南向接口協議,OpenFlow交換機利用基于安全連接的OpenFlow協議與控制器互相通信。OpenFlow交換機的SDN轉發平面的基礎設備,是指擁有OpenFlow接口的局域網交換機。
傳統網絡轉發設備的功能架構主要由控制平面和數據平面組成,它們在物理上是緊密耦合的。控制平面通過網絡操作系統和底層軟件生成、維護交換設備內部的轉發表,并實現對網絡的配置管理。數據平面通過硬件轉發芯片對數據包進行高速轉發,基本功能主要有轉發決策、背板轉發以及輸出鏈路調度等。
不同于傳統網絡轉發設備(如圖3所示),應用于SDN中的轉發設備將數據平面與控制平面完全解耦,所有數據包的控制策略由遠端的控制器通過南向接口協議下發,網絡的配置管理同樣也由控制器完成,這大大提高了網絡管控的效率。交換設備只保留數據平面,專注于數據包的高速轉發,降低了交換設備的復雜度[6]。

圖3 傳統轉發設備架構
1) 轉發決策。應用最廣泛的南向接口協議OpenFlow協議用流表代替了傳統網絡設備二層和三層轉發表,該流表中的每個表項都代表了一種流解析以及相應的處理動作。數據包進入SDN交換機后,先與流表進行匹配查找,若與其中一個表項匹配成功則執行相應處理動作,若無匹配項則上交控制器,由其決定處理決策。這些流程依舊是依賴網絡設備內的交換芯片來實現的。
2) 背板轉發。目前,SDN應用最廣泛的場景是數據中心,其對交換機數據交換速率的要求還是較高的。不過就目前的網絡設備來說,設備的速率瓶頸點在交換芯片上,提供滿足要求的交換速率并不是問題。
3) 輸出鏈路調度。正常情況下,數據包發往交換機某一端口或準備從交換機某一端口發出時,均需在端口隊列中等待處理。而支持QoS的交換機則可能要對報文根據某些字段進行分類以進入有優先級的隊列,對各個隊列進行隊列調度,以及修改報文中的QoS字段以形成整個鏈路的有機處理流程等。支持OpenFlow協議的SDN交換機對QoS的支持主要有基于流表項設置報文入隊列、根據Meter進行限速、基于Counter進行計費、基于Group的Select進行隊列調度等。
基于SDN的數據中心網絡實現了邏輯和控制的分離,控制邏輯集中的特點解決了當前數據中心網絡集中自動化管理、多路徑轉發、綠色節能的問題;SDN網絡能力開放化和虛擬化有效實現了數據中心能力開放、VM的智能部署和遷移、海量虛擬租戶的需求。引入SDN的網絡可通過部署統一的控制器來收集各數據中心之間的流量需求,進而進行統一的計算和調度、實施帶寬的靈活按需分配、最大程度優化網絡、提升資源利用率。目前SDN技術尚未成熟,多控制器的控制機制是下一步的研究方向。
參考文獻
[1]ONF.Software-Defined Networking:The New Norm for Networks[EB/OL].(2012-03-13)[2014-12-31].https://www.opennetworking.org/images/stories/downloads/white-papers/wp-sdnnewnorm.pdf
[2]Yeganeh S,Tootoonchian A,Ganjali Y.On Scalability of Software-Defined Networking[J].IEEE Commun.Mag.2013,51(2):136-141
[3]Porras P,Shin S,Yegneswaran V,et al.A security enforcement kernel for OpenFlow networks[C]//The 1st Workshop on Hot Topics in Software Defined Networks.New York:ACM Press,2012:121-126
[4]ETSI Industry Spec.Group.Network Function Virtualisation[EB/OL].[2014-12-29].http://portal.etsi.org/portal/server.pt/community/NFV/367
[5]ITU.T Rec.Y.1731.OAM Functions and Mechanisms for Ethernet Based Networks[EB/OL].[2014-12-31].http://www.itu.int/itudoc/itu-t.
[6]IRTF Working Group[EB/OL].[2014-12-31].Interface to the Routing System,available: https://datatracker.ietf.org/wg/irs/charter/.