SDN概述1
SDN是什么
ONRC是 SDN創始人斯坦福大學教授Nick McKeown和加州大學伯克利分校教授 Scott Shenker,以 Larry Peterson教授 共同創建的研究架構。ONRC對SDN的定義是:“SDN是一種邏輯集中控制的新網絡架構,其關鍵屬性包括:數據平面和控制平面分離;控制平面和數據平面之間有統一的開放接口OpenFlow。”在ONRC的定義中,SDN的特征表現為數據平面和控制品面分離,擁有邏輯集中式的控制平面,並通過統一而開放的南向接口來實現對網絡的控制。ONRC強調“數控分離”,邏輯集中式控制和統一、開放的接口。
另一個重要的組織ONF2 對SDN 定義做出了不同的描述。ONF 是Nick McKeown 教授和Scott Shenker 教授聯合多家業界廠商發起的非營利性開放組織,其工作的主要內容是推動SDN 的標准化和商業化進程。ONF 認為:“SDN是一種支持動態、彈性管理的新型網絡體系結構,是實現高帶寬、動態網絡的理想架構。SDN 將網絡的控制平面和數據平面解耦分離,抽象了數據平面網絡資源,並支持通過統一的接口對網絡直接進行編程控制”。相比之下,ONF 強調了SDN 對網絡資源的抽象能力和可編程能力。
2012年4月,ONF發布白皮書《Software-Defined Networking: The New Norm for Networks》3。ONF認為,SDN的典型架構可分為三層,最上層為應用層,包括各種不同的業務和應用;中間的控制層主要負責處理數據平面資源的編排、維護網絡拓撲和狀態信息等;最下層的基礎設施層負責數據處理、轉發和狀態收集。除上述三個層次外,控制層與基礎層之間的接口和應用層與控制層之間的接口也是SDN架構中的兩個重要組成部分。按照接口與控制層的位置關系,前者通常被稱為南向接口,后者則被稱為北向接口。其中ONF在南向接口上定義了開放的OpenFlow標准4,而在北向接口上還沒有統一要求。因此,ONF SDN架構更多的是從網絡資源用戶的角度出發,希望通過對網絡的抽象推動跟快速的業務創新。
本質上,這兩個組織給出的SDN 定義並沒有太大的差別,都強調了SDN 擁有數據平面和控制平面解耦分離的特點,也都強調了SDN 支持通過軟件編程對網絡進行控制的能力。但是ONRC 更強調數控分離和集中控制等表現形式,而ONF 則強調抽象和可編程等功能。
OpenFlow標准
OpenFlow標准描述了OpenFlow交換機的需求,涵蓋了OpenFlow交換機的所有組件和基本功能,並且對遠程控制器管理OpenFlow交換機采用的OpenFlow協議進行描述,即OpenFlow協議用來描述控制器和交換機之間交互所用的信息的標准,以及控制器和交換機的接口標准。
OpenFlow交換機包括用於查找和轉發數據部分組成的一個或多個流表,以及與外部控制器進行通信的OpenFlow信道,交換機與控制器進行通信以及控制器管理交換機均采用OpenFlow協議。
OpenFlow交換機的主要組件:
2012年6月發布了OpenFlow1.3,主要針對SDN的基礎設施層的轉發面抽象模型進行了定義,將網絡中的轉發面設備抽象為一個由多級流表驅動的轉發模型。OpenFlow多級流表轉發模型如下圖:
OpenDaylight
OpenDaylight開源聯盟隸屬於Linux基金會,旨在提供一個支持SDN的網絡編程平台,並且為NFV及更多的不同大小共和規模的網絡創建一個可靠的基礎平台。
OpenDaylight最新平台總體架構:
SDN 的三個特征。
網絡開放可編程:SDN 建立了新的網絡抽象模型,為用戶提供了一套完整的通用API,使用戶可以在控制器上編程實現對網絡的配置、控制和管理,從而加快網絡業務部署的進程。
控制平面與數據平面的分離:此處的分離是指控制平面與數據平面的解耦合。控制平面和數據平面之間不再相互依賴,兩者可以獨立完成體系結構的演進,類似於計算機工業的Wintel 模式,雙方只需要遵循統一的開放接口進行通信即可。控制平面與數據平面的分離是SDN 架構區別於傳統網絡體系結構的重要標志,是網絡獲得更多可編程能力的架構基礎。
邏輯上的集中控制:主要是指對分布式網絡狀態的集中統一管理。在SDN 架構中,控制器會擔負起收集和管理所有網絡狀態信息的重任。邏輯集中控制為軟件編程定義網絡功能提供了架構基礎,也為網絡自動化管理提供了可能。
因此,只要符合以上三個特征的網絡都可以稱之為軟件定義網絡。在這三個特征中,控制平面和數據平面分離為邏輯集中控制創造了條件,邏輯集中控制為開放可編程控制提供了架構基礎,而網絡開放可編程才是SDN 的核心特征。
一般來說,SDN 網絡體系結構主要包括SDN 網絡應用、北向接口、SDN 控制器、南向接口和SDN 數據平面共五部分,如圖所示。
SDN 網絡應用層實現了對應的網絡功能應用。這些應用程序通過調用SDN 控制器的北向接口,實現對網絡數據平面設備的配置、管理和控制。
北向接口是SDN 控制器與網絡應用之間的開放接口,它將數據平面資源和狀態信息抽象成統一的開放編程接口。
SDN 控制器是SDN 的大腦,也稱作網絡操作系統。控制器不僅要通過北向接口給上層網絡應用提供不同層次的可編程能力,還要通過南向接口對SDN 數據平面進行統一配置、管理和控制。
南向接口是SDN 控制器與數據平面之間的開放接口。SDN 控制器通過南向接口對數據平面進行編程控制,實現數據平面的轉發等網絡行為。
SDN 數據平面包括基於軟件實現的和基於硬件實現的數據平面設備。數據平面設備通過南向接口接收來自控制器的指令,並按照這些指令完成特定的網絡數據處理。同時,SDN 數據平面設備也可以通過南向接口給控制器反饋網絡配置和運行時的狀態信息。
在SDN 架構中,網絡的控制平面與數據平面相分離,數據平面將變得更加通用化,變得與計算機通用硬件底層類似,不再需要具體實現各種網絡協議的控制邏輯,而只需要接收控制平面的操作指令並執行即可。網絡設備的控制邏輯轉而由軟件實現的SDN 控制器和SDN 應用來定義,從而實現網絡功能的軟件定義化。隨着開源SDN 控制器和開源SDN 開放接口的出現,網絡體系結構也擁有了通用底層硬件、支持軟件定義和開源模式三個要素。從傳統網絡體系結構到SDN 網絡體系結構的演進關系如圖所示。
傳統網絡架構向SDN 架構演進示意圖
傳統網絡設備
控制平面與數據平面的分離
網絡可編程發展史
SDN前期標志性事件
時間 | 事件 | 影響力 |
---|---|---|
2007 | Ethane 項目論文發表 | SDN 架構的雛形,論文發表獲得了學術圈的關注 |
2007 | 第一個初創公司Nicira 誕生 | SDN 走向工業界 |
2008 | OpenFlow 論文發表 | OpenFlow 獲得廣泛關注 |
2008 | 第一個開源控制器NOX 誕生 | SDN 系統實驗得以部署 |
2009 | SDN 被MIT Technology View 評為十大突破性技術之一 | SDN 的誕生 |
2009 | OpenFlow 協議規范1.0 發布 | OpenFlow 走進大眾視野 |
2010 | Big Switch 和Cumulus 誕生 | SDN 初創公司開始增加 |
2011 | ONF 成立 | SDN 獲得工業界的廣泛關注 |
SDN 發展大事件
SDN架構總覽
根據ONF的定義,SDN的架構可自下而上划分為三個層面,如下圖所示,分別是基礎設施層、控制層和應用層。最上層為應用層,包括各種不同的業務和應用,網絡運營者可以設計各種面向業務的應用,來對網絡進行有針對性的運維和管理;中間的控制層需集成網絡操作系統,主要負責處理數據平面資源的編排、維護網絡拓撲和狀態信息等;最下層的基礎設施層只需關注設備的硬件性能,負責數據處理、轉發和狀態收集。控制層和基礎設施層之間一般通過OpenFlow或者其他南向接口協議進行通信,該協議規定了設備按照流表轉發的多種匹配規則,致力於滿足網絡各個方面的功能需要。
除上述的功能模塊以外,控制器通過北向接口,以API的形式連接上層應用,北向接口是各種網絡應用和控制器交互的接口。同時,基於網絡虛擬化層功能,SDN轉發設備提供網絡資源服務,能夠通過北向接口開放不同權限,客戶可以進行端到端的全網業務監控、流量分析和端口監控。
基礎設備層
在SDN架構中,轉發節點負責數據流的轉發,一般由數據平面模塊、控制代理模塊、管理代理模塊組成,如圖所示。
在該架構中,轉發節點的控制面上已經上移到控制器。管理代理接收來自網管的配置信息,提供面向網管的設備端口、電源/電壓和環境監控等信息;控制代理負責接受從控制器下發的外部信令信息和轉發信息,經過控制器的信令和轉發設配等模塊處理后,結合自身的信令和轉發信息,將必要的轉發信息下發給數據平面,實現控制代理對數據平面的控制。數據平面完成數據的轉發,同時具備發送轉發狀態信息到控制代理,實現對控制代理相應模塊的查詢、響應和反饋能力。控制代理將需要傳送到外部的轉發狀態信息通過信令通信接口發給控制器。
控制層
控制層有多種實現,主要有NOX、Floodlight、Open Daylight和ONOS(開放網絡操作系統)。
NOX是針對軟件定義網絡架構下網絡控制器的一種開源實現,支持C++/Python,主要由Nicira公司支持。
Floodlight是由BigSwitch公司贊助支持的一個開源OpenFlow控制器實現,主要支持通過Java語言進行功能擴展,其架構如圖所示。
Open Daylight是一套以社區為主導的開源架構,旨在推動創新實施以及軟件定義網絡的透明化。Open Daylight擁有一套模塊化、可插拔且極為靈活的控制器,這使其能夠被部署在任何支持Java的平台上。
ONOS的設計理念是能在任何硬件上靈活地創建服務並大規模部署,實現降低運營開支、加快服務加速和收入,以及提供在運營商看來具有核心價值地白盒硬件等。
ONOS定義地SDN網絡架構:
協同平台和應用層
業務協同平台
從網絡運營者地視角來看,由於網絡組成的復雜性,目前很難采用單一類型的SDN控制器實現對全網的控制。同時,在運營商的大網中往往都存在多廠家的情形。因此,SDN的引入也有兩種方式,第一種方式是參照OpenFlow協議,采用標准的南向接口,實現控制器和各廠家轉發設備之間的完全解耦,同時運營商需要具備對SDN控制器的絕對控制權。第二種方式是暫時不開放南向接口,采用各個設備廠商控制器搭配轉發設備,南向接口可以采用私有協議或者公有協議的擴展實現,但是運營商在各廠家控制器之上搭建統一的協同層,實現對跨廠家域業務的管理和調度。目前來看,第二種方式是運營商近期引入SDN的主要選擇。
業務協同平台總體架構:
APP應用層
應用層位於SDN架構最上層,它基於控制器提供的API接口,實現和網絡業務相關的管理、安全等應用,還能根據用戶需求定制其他網絡業務。目前SDN應用主要包括三種類型:
- 資源管理平台:面向雲計算資源統一管理和調度平台,其目標是實現池化的計算、存儲、網絡等資源的靈活交付,按需滿足雲計算的業務資源需求。
- 軟件定義的應用交付:基於SDN理念改造負載均衡、訪問控制、應用加速等應用交付技術,使之能替換或者擴展此前在網絡中需要利用專用硬件實現的功能。
- 創新網絡業務:主要是指在傳統的靜態網絡中難以實現,但在SDN環境下能夠獲得良好支持的新興業務。
NFV
網絡功能虛擬化NFV,是指借助於標准的IT虛擬化技術、傳統的專有硬件(如路由器、防火牆、DPI、CDN、NAT等),通過采用工業標准大容量服務器、存儲器和交換機承載各種各樣軟件化的網絡功能(Network Function)的技術。
NFV適用場景:
SDN與NFV的關系
狹義SDN特指基於ONF組織發布的OpenFlow標准協議構建的SDN。它由軟件Controller、OpenFlow交換機組成,通過將網絡設備控制面和數據面分離來實現網絡流量的靈活控制。狹義SDN設備形態主要是交換機,在運營商網絡中主要應用在數據中心等場景。
狹義的SDN的目的是通過控制轉發分離生成網絡的抽象,能夠快速創新,體現在集中控制、開放協同的網絡可編程。NFV的目的是通過軟硬件解耦實現網絡功能虛擬化,能夠實現自動化管理和運維,體現在工業服務器硬件標准化和網絡功能軟件化。SDN與NFV關注網絡角度不同,兩者之間是互補的關系,但兩者相互獨立,並無直接依賴關系。NFV技術可以在沒有SDN的前提下部署,反之亦然。
狹義SDN | NFV |
---|---|
核心思想 | 控制轉發分離 |
關注 | 多個網絡設備的集中控制 |
控制點 | 控制平面 |
技術優勢 | 集中控制、開放協同和網絡可編程 |
相關知識 | ONF、Open daylight、IETF |
廣義SDN泛指基於開放接口實現軟件可編程的各種網絡架構。只要網絡架構滿足三個特征,即控制轉發分離、邏輯集中控制、開放API,我們就稱其為廣義SDN。廣義的SDN除了包括狹義SDN外,還包括NFV技術。廣義SDN的設備可以是無線接入網、有線接入網、核心網、傳送網、承載網、雲計算和IDC等各個專業領域的架構符合三個特征的設備,可以應用在運營商的整個網絡的各個方面。
- SDN/NFV重構未來網絡電信運營商願景與實踐 ↩
- http://www.opennetworking.org/ ↩
- Foundation O N. Software-Defined Networking: The New Norm for Networks[J]. 2012. ↩
- Mckeown N, Anderson T, Balakrishnan H, et al. OpenFlow:enabling innovation in campus networks[J]. Sigcomm Computer Communication Review, 2008, 38(2):69-74. ↩