SDN的典型架構(gòu)可分為三層,最上層為應(yīng)用層,包括各種不同的業(yè)務(wù)和應(yīng)用;中間的控制層主要負責(zé)處理數(shù)據(jù)平面資源的編排、維護網(wǎng)絡(luò)拓撲和狀態(tài)信息等;最下層的基礎(chǔ)設(shè)施層負責(zé)數(shù)據(jù)處理、轉(zhuǎn)發(fā)和狀態(tài)收集。除上述三個層次外,控制層與基礎(chǔ)層之間的接口和應(yīng)用層與控制層之間的接口也是SDN架構(gòu)中的兩個重要組成部分。按照接口與控制層的位置關(guān)系,前者通常被稱為南向接口,后者則被稱為北向接口。其中ONF在南向接口上定義了開放的OpenFlow標(biāo)準(zhǔn)4,而在北向接口上還沒有統(tǒng)一要求。因此,ONF SDN架構(gòu)更多的是從網(wǎng)絡(luò)資源用戶的角度出發(fā),希望通過對網(wǎng)絡(luò)的抽象推動跟快速的業(yè)務(wù)創(chuàng)新。
OpenFlow標(biāo)準(zhǔn)描述了OpenFlow交換機的需求,涵蓋了OpenFlow交換機的所有組件和基本功能,并且對遠程控制器管理OpenFlow交換機采用的OpenFlow協(xié)議進行描述,即OpenFlow協(xié)議用來描述控制器和交換機之間交互所用的信息的標(biāo)準(zhǔn),以及控制器和交換機的接口標(biāo)準(zhǔn)。
OpenFlow交換機包括用于查找和轉(zhuǎn)發(fā)數(shù)據(jù)部分組成的一個或多個流表,以及與外部控制器進行通信的OpenFlow信道,交換機與控制器進行通信以及控制器管理交換機均采用OpenFlow協(xié)議。
OpenFlow交換機的主要組件:
2012年6月發(fā)布了OpenFlow1.3,主要針對SDN的基礎(chǔ)設(shè)施層的轉(zhuǎn)發(fā)面抽象模型進行了定義,將網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)面設(shè)備抽象為一個由多級流表驅(qū)動的轉(zhuǎn)發(fā)模型。OpenFlow多級流表轉(zhuǎn)發(fā)模型如下圖:
OpenDaylight開源聯(lián)盟隸屬于Linux基金會,旨在提供一個支持SDN的網(wǎng)絡(luò)編程平臺,并且為NFV及更多的不同大小共和規(guī)模的網(wǎng)絡(luò)創(chuàng)建一個可靠的基礎(chǔ)平臺。
OpenDaylight最新平臺總體架構(gòu):
網(wǎng)絡(luò)開放可編程:SDN 建立了新的網(wǎng)絡(luò)抽象模型,為用戶提供了一套完整的通用API,使用戶可以在控制器上編程實現(xiàn)對網(wǎng)絡(luò)的配置、控制和管理,從而加快網(wǎng)絡(luò)業(yè)務(wù)部署的進程。
控制平面與數(shù)據(jù)平面的分離:此處的分離是指控制平面與數(shù)據(jù)平面的解耦合??刂破矫婧蛿?shù)據(jù)平面之間不再相互依賴,兩者可以獨立完成體系結(jié)構(gòu)的演進,類似于計算機工業(yè)的Wintel 模式,雙方只需要遵循統(tǒng)一的開放接口進行通信即可??刂破矫媾c數(shù)據(jù)平面的分離是SDN 架構(gòu)區(qū)別于傳統(tǒng)網(wǎng)絡(luò)體系結(jié)構(gòu)的重要標(biāo)志,是網(wǎng)絡(luò)獲得更多可編程能力的架構(gòu)基礎(chǔ)。
邏輯上的集中控制:主要是指對分布式網(wǎng)絡(luò)狀態(tài)的集中統(tǒng)一管理。在SDN 架構(gòu)中,控制器會擔(dān)負起收集和管理所有網(wǎng)絡(luò)狀態(tài)信息的重任。邏輯集中控制為軟件編程定義網(wǎng)絡(luò)功能提供了架構(gòu)基礎(chǔ),也為網(wǎng)絡(luò)自動化管理提供了可能。
因此,只要符合以上三個特征的網(wǎng)絡(luò)都可以稱之為軟件定義網(wǎng)絡(luò)。在這三個特征中,控制平面和數(shù)據(jù)平面分離為邏輯集中控制創(chuàng)造了條件,邏輯集中控制為開放可編程控制提供了架構(gòu)基礎(chǔ),而網(wǎng)絡(luò)開放可編程才是SDN 的核心特征。
一般來說,SDN 網(wǎng)絡(luò)體系結(jié)構(gòu)主要包括SDN 網(wǎng)絡(luò)應(yīng)用、北向接口、SDN 控制器、南向接口和SDN 數(shù)據(jù)平面共五部分,如圖所示。
SDN 網(wǎng)絡(luò)應(yīng)用層實現(xiàn)了對應(yīng)的網(wǎng)絡(luò)功能應(yīng)用。這些應(yīng)用程序通過調(diào)用SDN 控制器的北向接口,實現(xiàn)對網(wǎng)絡(luò)數(shù)據(jù)平面設(shè)備的配置、管理和控制。
北向接口是SDN 控制器與網(wǎng)絡(luò)應(yīng)用之間的開放接口,它將數(shù)據(jù)平面資源和狀態(tài)信息抽象成統(tǒng)一的開放編程接口。
SDN 控制器是SDN 的大腦,也稱作網(wǎng)絡(luò)操作系統(tǒng)??刂破鞑粌H要通過北向接口給上層網(wǎng)絡(luò)應(yīng)用提供不同層次的可編程能力,還要通過南向接口對SDN 數(shù)據(jù)平面進行統(tǒng)一配置、管理和控制。
南向接口是SDN 控制器與數(shù)據(jù)平面之間的開放接口。SDN 控制器通過南向接口對數(shù)據(jù)平面進行編程控制,實現(xiàn)數(shù)據(jù)平面的轉(zhuǎn)發(fā)等網(wǎng)絡(luò)行為。
SDN 數(shù)據(jù)平面包括基于軟件實現(xiàn)的和基于硬件實現(xiàn)的數(shù)據(jù)平面設(shè)備。數(shù)據(jù)平面設(shè)備通過南向接口接收來自控制器的指令,并按照這些指令完成特定的網(wǎng)絡(luò)數(shù)據(jù)處理。同時,SDN 數(shù)據(jù)平面設(shè)備也可以通過南向接口給控制器反饋網(wǎng)絡(luò)配置和運行時的狀態(tài)信息。
在SDN 架構(gòu)中,網(wǎng)絡(luò)的控制平面與數(shù)據(jù)平面相分離,數(shù)據(jù)平面將變得更加通用化,變得與計算機通用硬件底層類似,不再需要具體實現(xiàn)各種網(wǎng)絡(luò)協(xié)議的控制邏輯,而只需要接收控制平面的操作指令并執(zhí)行即可。網(wǎng)絡(luò)設(shè)備的控制邏輯轉(zhuǎn)而由軟件實現(xiàn)的SDN 控制器和SDN 應(yīng)用來定義,從而實現(xiàn)網(wǎng)絡(luò)功能的軟件定義化。隨著開源SDN 控制器和開源SDN 開放接口的出現(xiàn),網(wǎng)絡(luò)體系結(jié)構(gòu)也擁有了通用底層硬件、支持軟件定義和開源模式三個要素。從傳統(tǒng)網(wǎng)絡(luò)體系結(jié)構(gòu)到SDN 網(wǎng)絡(luò)體系結(jié)構(gòu)的演進關(guān)系如圖所示。
傳統(tǒng)網(wǎng)絡(luò)架構(gòu)向SDN 架構(gòu)演進示意圖
傳統(tǒng)網(wǎng)絡(luò)設(shè)備
控制平面與數(shù)據(jù)平面的分離
時間 | 事件 | 影響力 |
---|---|---|
2007 | Ethane 項目論文發(fā)表 | SDN 架構(gòu)的雛形,論文發(fā)表獲得了學(xué)術(shù)圈的關(guān)注 |
2007 | 第一個初創(chuàng)公司Nicira 誕生 | SDN 走向工業(yè)界 |
2008 | OpenFlow 論文發(fā)表 | OpenFlow 獲得廣泛關(guān)注 |
2008 | 第一個開源控制器NOX 誕生 | SDN 系統(tǒng)實驗得以部署 |
2009 | SDN 被MIT Technology View 評為十大突破性技術(shù)之一 | SDN 的誕生 |
2009 | OpenFlow 協(xié)議規(guī)范1.0 發(fā)布 | OpenFlow 走進大眾視野 |
2010 | Big Switch 和Cumulus 誕生 | SDN 初創(chuàng)公司開始增加 |
2011 | ONF 成立 | SDN 獲得工業(yè)界的廣泛關(guān)注 |
根據(jù)ONF的定義,SDN的架構(gòu)可自下而上劃分為三個層面,如下圖所示,分別是基礎(chǔ)設(shè)施層、控制層和應(yīng)用層。最上層為應(yīng)用層,包括各種不同的業(yè)務(wù)和應(yīng)用,網(wǎng)絡(luò)運營者可以設(shè)計各種面向業(yè)務(wù)的應(yīng)用,來對網(wǎng)絡(luò)進行有針對性的運維和管理;中間的控制層需集成網(wǎng)絡(luò)操作系統(tǒng),主要負責(zé)處理數(shù)據(jù)平面資源的編排、維護網(wǎng)絡(luò)拓撲和狀態(tài)信息等;最下層的基礎(chǔ)設(shè)施層只需關(guān)注設(shè)備的硬件性能,負責(zé)數(shù)據(jù)處理、轉(zhuǎn)發(fā)和狀態(tài)收集。控制層和基礎(chǔ)設(shè)施層之間一般通過OpenFlow或者其他南向接口協(xié)議進行通信,該協(xié)議規(guī)定了設(shè)備按照流表轉(zhuǎn)發(fā)的多種匹配規(guī)則,致力于滿足網(wǎng)絡(luò)各個方面的功能需要。
除上述的功能模塊以外,控制器通過北向接口,以API的形式連接上層應(yīng)用,北向接口是各種網(wǎng)絡(luò)應(yīng)用和控制器交互的接口。同時,基于網(wǎng)絡(luò)虛擬化層功能,SDN轉(zhuǎn)發(fā)設(shè)備提供網(wǎng)絡(luò)資源服務(wù),能夠通過北向接口開放不同權(quán)限,客戶可以進行端到端的全網(wǎng)業(yè)務(wù)監(jiān)控、流量分析和端口監(jiān)控。
在SDN架構(gòu)中,轉(zhuǎn)發(fā)節(jié)點負責(zé)數(shù)據(jù)流的轉(zhuǎn)發(fā),一般由數(shù)據(jù)平面模塊、控制代理模塊、管理代理模塊組成,如圖所示。
在該架構(gòu)中,轉(zhuǎn)發(fā)節(jié)點的控制面上已經(jīng)上移到控制器。管理代理接收來自網(wǎng)管的配置信息,提供面向網(wǎng)管的設(shè)備端口、電源/電壓和環(huán)境監(jiān)控等信息;控制代理負責(zé)接受從控制器下發(fā)的外部信令信息和轉(zhuǎn)發(fā)信息,經(jīng)過控制器的信令和轉(zhuǎn)發(fā)設(shè)配等模塊處理后,結(jié)合自身的信令和轉(zhuǎn)發(fā)信息,將必要的轉(zhuǎn)發(fā)信息下發(fā)給數(shù)據(jù)平面,實現(xiàn)控制代理對數(shù)據(jù)平面的控制。數(shù)據(jù)平面完成數(shù)據(jù)的轉(zhuǎn)發(fā),同時具備發(fā)送轉(zhuǎn)發(fā)狀態(tài)信息到控制代理,實現(xiàn)對控制代理相應(yīng)模塊的查詢、響應(yīng)和反饋能力??刂拼韺⑿枰獋魉偷酵獠康霓D(zhuǎn)發(fā)狀態(tài)信息通過信令通信接口發(fā)給控制器。
控制層有多種實現(xiàn),主要有NOX、Floodlight、Open Daylight和ONOS(開放網(wǎng)絡(luò)操作系統(tǒng))。
NOX是針對軟件定義網(wǎng)絡(luò)架構(gòu)下網(wǎng)絡(luò)控制器的一種開源實現(xiàn),支持C /Python,主要由Nicira公司支持。
Floodlight是由BigSwitch公司贊助支持的一個開源OpenFlow控制器實現(xiàn),主要支持通過Java語言進行功能擴展,其架構(gòu)如圖所示。
Open Daylight是一套以社區(qū)為主導(dǎo)的開源架構(gòu),旨在推動創(chuàng)新實施以及軟件定義網(wǎng)絡(luò)的透明化。Open Daylight擁有一套模塊化、可插拔且極為靈活的控制器,這使其能夠被部署在任何支持Java的平臺上。
ONOS的設(shè)計理念是能在任何硬件上靈活地創(chuàng)建服務(wù)并大規(guī)模部署,實現(xiàn)降低運營開支、加快服務(wù)加速和收入,以及提供在運營商看來具有核心價值地白盒硬件等。
ONOS定義地SDN網(wǎng)絡(luò)架構(gòu):
從網(wǎng)絡(luò)運營者地視角來看,由于網(wǎng)絡(luò)組成的復(fù)雜性,目前很難采用單一類型的SDN控制器實現(xiàn)對全網(wǎng)的控制。同時,在運營商的大網(wǎng)中往往都存在多廠家的情形。因此,SDN的引入也有兩種方式,第一種方式是參照OpenFlow協(xié)議,采用標(biāo)準(zhǔn)的南向接口,實現(xiàn)控制器和各廠家轉(zhuǎn)發(fā)設(shè)備之間的完全解耦,同時運營商需要具備對SDN控制器的絕對控制權(quán)。第二種方式是暫時不開放南向接口,采用各個設(shè)備廠商控制器搭配轉(zhuǎn)發(fā)設(shè)備,南向接口可以采用私有協(xié)議或者公有協(xié)議的擴展實現(xiàn),但是運營商在各廠家控制器之上搭建統(tǒng)一的協(xié)同層,實現(xiàn)對跨廠家域業(yè)務(wù)的管理和調(diào)度。目前來看,第二種方式是運營商近期引入SDN的主要選擇。
業(yè)務(wù)協(xié)同平臺總體架構(gòu):
應(yīng)用層位于SDN架構(gòu)最上層,它基于控制器提供的API接口,實現(xiàn)和網(wǎng)絡(luò)業(yè)務(wù)相關(guān)的管理、安全等應(yīng)用,還能根據(jù)用戶需求定制其他網(wǎng)絡(luò)業(yè)務(wù)。目前SDN應(yīng)用主要包括三種類型:
網(wǎng)絡(luò)功能虛擬化NFV,是指借助于標(biāo)準(zhǔn)的IT虛擬化技術(shù)、傳統(tǒng)的專有硬件(如路由器、防火墻、DPI、CDN、NAT等),通過采用工業(yè)標(biāo)準(zhǔn)大容量服務(wù)器、存儲器和交換機承載各種各樣軟件化的網(wǎng)絡(luò)功能(Network Function)的技術(shù)。
NFV適用場景:
狹義SDN特指基于ONF組織發(fā)布的OpenFlow標(biāo)準(zhǔn)協(xié)議構(gòu)建的SDN。它由軟件Controller、OpenFlow交換機組成,通過將網(wǎng)絡(luò)設(shè)備控制面和數(shù)據(jù)面分離來實現(xiàn)網(wǎng)絡(luò)流量的靈活控制。狹義SDN設(shè)備形態(tài)主要是交換機,在運營商網(wǎng)絡(luò)中主要應(yīng)用在數(shù)據(jù)中心等場景。
狹義的SDN的目的是通過控制轉(zhuǎn)發(fā)分離生成網(wǎng)絡(luò)的抽象,能夠快速創(chuàng)新,體現(xiàn)在集中控制、開放協(xié)同的網(wǎng)絡(luò)可編程。NFV的目的是通過軟硬件解耦實現(xiàn)網(wǎng)絡(luò)功能虛擬化,能夠?qū)崿F(xiàn)自動化管理和運維,體現(xiàn)在工業(yè)服務(wù)器硬件標(biāo)準(zhǔn)化和網(wǎng)絡(luò)功能軟件化。SDN與NFV關(guān)注網(wǎng)絡(luò)角度不同,兩者之間是互補的關(guān)系,但兩者相互獨立,并無直接依賴關(guān)系。NFV技術(shù)可以在沒有SDN的前提下部署,反之亦然。
狹義SDN | NFV |
---|---|
核心思想 | 控制轉(zhuǎn)發(fā)分離 |
關(guān)注 | 多個網(wǎng)絡(luò)設(shè)備的集中控制 |
控制點 | 控制平面 |
技術(shù)優(yōu)勢 | 集中控制、開放協(xié)同和網(wǎng)絡(luò)可編程 |
相關(guān)知識 | ONF、Open daylight、IETF |
廣義SDN泛指基于開放接口實現(xiàn)軟件可編程的各種網(wǎng)絡(luò)架構(gòu)。只要網(wǎng)絡(luò)架構(gòu)滿足三個特征,即控制轉(zhuǎn)發(fā)分離、邏輯集中控制、開放API,我們就稱其為廣義SDN。廣義的SDN除了包括狹義SDN外,還包括NFV技術(shù)。廣義SDN的設(shè)備可以是無線接入網(wǎng)、有線接入網(wǎng)、核心網(wǎng)、傳送網(wǎng)、承載網(wǎng)、云計算和IDC等各個專業(yè)領(lǐng)域的架構(gòu)符合三個特征的設(shè)備,可以應(yīng)用在運營商的整個網(wǎng)絡(luò)的各個方面。