圖1 SDN體系架構(gòu)
圖1表達(dá)了SDN的分層解耦合概念,包括通用的基礎(chǔ)硬件層、硬件抽象層、網(wǎng)絡(luò)操作系統(tǒng)、上層應(yīng)用。其中基礎(chǔ)硬件與硬件抽象兩層組成物理網(wǎng)絡(luò)設(shè)備,也 就是SDN架構(gòu)中的數(shù)據(jù)轉(zhuǎn)發(fā)層面;網(wǎng)絡(luò)操作系統(tǒng)與上層應(yīng)用組成了控制層面。數(shù)據(jù)轉(zhuǎn)發(fā)層面與控制層面之間以一種標(biāo)準(zhǔn)化的交互協(xié)議來解耦合,此協(xié)議當(dāng)前為 OpenFlow。這種去耦合的架構(gòu),表明網(wǎng)絡(luò)操作系統(tǒng)及網(wǎng)絡(luò)應(yīng)用(如路由控制協(xié)議等)不必運行在物理設(shè)備上,而可以運行在外部系統(tǒng)(如X86架構(gòu)的服務(wù) 器)內(nèi),從而實現(xiàn)網(wǎng)絡(luò)控制的靈活可編程性。
除了解耦合控制層面與數(shù)據(jù)轉(zhuǎn)發(fā)層面,SDN還引入了集中控制的概念(如圖2所示)。對于傳統(tǒng)的設(shè)備,因為不同的硬件、供應(yīng)商私有的軟件,使得網(wǎng)絡(luò)本 身相對封閉,只能通過標(biāo)準(zhǔn)的互通協(xié)議與計算設(shè)備配合運行。網(wǎng)絡(luò)中所有設(shè)備的自身系統(tǒng)都是相對孤立和分散的,網(wǎng)絡(luò)控制分布在所有設(shè)備中,網(wǎng)絡(luò)變更復(fù)雜、工作 量大,并且因為設(shè)備異構(gòu),管理上兼容性很差,不同設(shè)備的功能與配置差異極大;同時網(wǎng)絡(luò)功能的修改或演進(jìn),會涉及到全網(wǎng)的升級與更新。而在SDN的開放架構(gòu) 下,一定范圍內(nèi)的網(wǎng)絡(luò)(或稱SDN域),由集中統(tǒng)一的控制邏輯單元來實施管理,由此解決了網(wǎng)絡(luò)中大量設(shè)備分散獨立運行管理的問題,使得網(wǎng)絡(luò)的設(shè)計、部署、 運維、管理在一個控制點完成,而底層網(wǎng)絡(luò)差異性也因為解耦合的架構(gòu)得到了消除。集中控制在網(wǎng)絡(luò)中引入了SDN區(qū)別于傳統(tǒng)網(wǎng)絡(luò)架構(gòu)的角色——SDN Controller,也就是運行SDN網(wǎng)絡(luò)操作系統(tǒng)并控制所有網(wǎng)絡(luò)節(jié)點的控制單元。SDN能夠提供網(wǎng)絡(luò)應(yīng)用的接口,在此基礎(chǔ)上按照業(yè)務(wù)需求進(jìn)行軟件設(shè)計 與編程,并且是在SDN Controller上加載,從而使得全網(wǎng)迅速升級新的網(wǎng)絡(luò)功能,而不必再對每個網(wǎng)元節(jié)點進(jìn)行獨立操作。
圖2 封閉式網(wǎng)絡(luò)與開放網(wǎng)絡(luò)
分層解耦合架構(gòu)中采用了OpenFlow的協(xié)議來分離網(wǎng)絡(luò)的控制與轉(zhuǎn)發(fā)層,圖3是來自斯坦福的一張圖表明OpenFlow的解耦模型。
圖3 OpenFlow協(xié)議工作模式
網(wǎng)絡(luò)設(shè)備(圖3中OpenFlowSwitch)由標(biāo)準(zhǔn)的網(wǎng)絡(luò)硬件和支持OpenFlow代理的軟件構(gòu)成。OpenFlow定義的網(wǎng)絡(luò)硬件,不是傳 統(tǒng)的交換模式,而是以一種流表的方式來進(jìn)行數(shù)據(jù)的轉(zhuǎn)發(fā)處理,非常類似于當(dāng)前交換機使用的TCAM對數(shù)據(jù)流的分類與控制行為,每一個網(wǎng)絡(luò)中的流均由流表中的 規(guī)則來控制處理,可以達(dá)到極精細(xì)的粒度。OpenFlow協(xié)議定義了一種通用的數(shù)據(jù)平面描述語言,設(shè)備上的OpenFlow代理軟件通過與 OpenFlow Controller建立安全加密(如SSL通信機制)通信隧道來接受對設(shè)備的控制轉(zhuǎn)發(fā)指令。所有的流表指令均被定義成標(biāo)準(zhǔn)規(guī)范,通過 Controller與代理之間的加密協(xié)議可靠傳遞。Controller上運行的各種網(wǎng)絡(luò)應(yīng)用,均被轉(zhuǎn)換成OpenFlow“指令集”下發(fā),從而易于實 現(xiàn)標(biāo)準(zhǔn)化的模式,這使得OpenFlow成為SDN架構(gòu)下的重要技術(shù)。
OpenFlow以一種比較理想的形式定義了網(wǎng)絡(luò)設(shè)備的供應(yīng)方式,但這種定義使得網(wǎng)絡(luò)不是一個平滑升級和演進(jìn),而是一個顛覆性的更新,現(xiàn)有網(wǎng)絡(luò)不能 通過OpenFlow來升級,而是需要被完全替換。同時,OpenFlow設(shè)備是一種流表轉(zhuǎn)發(fā),也需要新的體系架構(gòu)來設(shè)計網(wǎng)絡(luò)芯片,雖然現(xiàn)有TCAM技術(shù) 能支持OpenFlow的特性,但是功能不完備、大TCAM表項設(shè)備極其昂貴。因此,當(dāng)前的OpenFlow設(shè)備,基本是在傳統(tǒng)網(wǎng)絡(luò)基礎(chǔ)上支持 OpenFlow協(xié)議,規(guī)格受限的初期產(chǎn)品。
OpenFlow的設(shè)計思路體現(xiàn)了SDN架構(gòu),但是,這種思路只體現(xiàn)了集中控制的優(yōu)勢,對于網(wǎng)絡(luò)的運維管理并沒有深入考慮,管理通信如何采用 OpenFlow并與正常業(yè)務(wù)流的分離,是否覆蓋替代還是與傳統(tǒng)SNMP/NETCONF的管理方式,集中的OpenFlow Controller與分散的OpenFlow網(wǎng)絡(luò)設(shè)備之間采取一種如何的管理方式更優(yōu),還需要OpenFlow本身的技術(shù)不斷實踐來印證。
OpenFlow在協(xié)議定義上還不完善,針對已有網(wǎng)絡(luò)特性的定義還在補充變化,內(nèi)容變更會不斷持續(xù),并逐步形成不同的技術(shù)版本,這使得軟件和硬件在配套兼容上存在較大的問題,這也是OpenFlow作為SDN協(xié)議的在網(wǎng)絡(luò)應(yīng)用覆蓋不全方面的嚴(yán)重不足。
2 H3C SDN體系架構(gòu):開放與融合
2.1 H3C SDN總體架構(gòu)與策略
H3C在基于全網(wǎng)端到端的總體網(wǎng)絡(luò)架構(gòu)上,將會交付一個逐步發(fā)展豐富的SDN產(chǎn)品與解決方案集。(如圖4所示)H3C SDN當(dāng)前提供三大方案集:基于Controller/Agent的SDN全套網(wǎng)絡(luò)交付、基于Open API的網(wǎng)絡(luò)平臺開放接口、基于OAA的自定義網(wǎng)絡(luò)平臺。在這三大方案集成基礎(chǔ)上,構(gòu)建一個標(biāo)準(zhǔn)化深度開放、用戶應(yīng)用可融合的NPaaS(Network Platform as a Service)網(wǎng)絡(luò)平臺即服務(wù)的SDN體系,既具備H3C已有的優(yōu)勢網(wǎng)絡(luò)技術(shù)方案,又能在各種層次融合與擴展用戶自制化網(wǎng)絡(luò)應(yīng)用。
圖4 H3C SDN總體架構(gòu)
2.2 基于Controller/Agent的SDN全套網(wǎng)絡(luò)交付
在上述SDN基本體系架構(gòu)定義的框架下,H3C提供與此一致的方案架構(gòu)。如圖5所示,H3C將在同一SDN的架構(gòu)下,除了支持標(biāo)準(zhǔn)化的OpenFlow協(xié)議,并提供基于H3C自身成熟技術(shù)的自有協(xié)議RIPCRIPC(Remote IPC)。
圖5 Controller/Agent的SDN網(wǎng)絡(luò)
H3C將提供標(biāo)準(zhǔn)化的系列化Controller部件,能夠以O(shè)penFlow協(xié)議進(jìn)行OpenFlow設(shè)備的集中控制,對上層提供靈活的開放接 口,以滿足各種網(wǎng)絡(luò)應(yīng)用的調(diào)用需求。在當(dāng)前網(wǎng)絡(luò)產(chǎn)品逐步集成OpenFlow特性,滿足初始OpenFlow網(wǎng)絡(luò)部署需求,并逐步豐富OpenFlow的 產(chǎn)品組成,如圖6左圖構(gòu)建了整體OpenFlow的SDN網(wǎng)絡(luò)。
針對H3C優(yōu)勢技術(shù)IRF的進(jìn)一步強化,基于Controller/Agent架構(gòu),以H3C RIPCRIPC的協(xié)議實現(xiàn)了VCF的技術(shù),如圖6右圖所示,使用多臺S5820V2組成的IRF結(jié)構(gòu)體工作為網(wǎng)絡(luò)的Controller角色,下聯(lián)多臺S5120HI。
圖6 H3C SDN網(wǎng)絡(luò)的兩種實現(xiàn)
VCF采用SDN架構(gòu)的N:1網(wǎng)絡(luò)虛擬化,不僅將多臺同一網(wǎng)絡(luò)層面的設(shè)備整合,也將另一層次的設(shè)備整合,整個網(wǎng)絡(luò)運行如同一臺大型框式設(shè)備,運行管 理各種操作均被虛擬化在一臺大型設(shè)備內(nèi)。所有的控制、設(shè)備管理均在S5820V2的IRF組上,其它的S5120HI運行為線卡模式。在這種SDN架構(gòu) 下,H3C的RIPC協(xié)議消除了OpenFlow協(xié)議在效率與管理上的不足,并有效繼承了H3C Comware平臺的原有IRF優(yōu)勢。
2.3 基于Open API的網(wǎng)絡(luò)平臺
SDN最重要的網(wǎng)絡(luò)需求是可編程性,即用戶可以在自身業(yè)務(wù)變化的情況下,根據(jù)需要自行軟件開發(fā),這種需求的核心是網(wǎng)絡(luò)要有靈活開放的接口提供給用戶的編程實現(xiàn)。H3C實現(xiàn)了多層化的Open API方案(如圖7所示)。
基礎(chǔ)設(shè)備層面可以提供深度的SDK級標(biāo)準(zhǔn)化VCC網(wǎng)絡(luò)應(yīng)用(VCC: Virtual Computing Container 虛擬計算容器),并提供高級XML的訪問操作NETCONF標(biāo)準(zhǔn)接口體系,OpenFlow也是設(shè)備層面提供的一種標(biāo)準(zhǔn)接口模式;
設(shè)備控制層面(SDN Controller),作為網(wǎng)絡(luò)操作系統(tǒng),標(biāo)準(zhǔn)化的接口依據(jù)Controller的不同實現(xiàn),對外可提供VCC、REST/SOAP、NETCONF、OpenFlow等。
Open API與H3C系統(tǒng)(Comware/iMC)內(nèi)部集成(Integrated)API(如RIPC)相輔相成,構(gòu)建差別的SDN架構(gòu),并在不同層次形成自有系統(tǒng)及對外開放與標(biāo)準(zhǔn)化,使得不同用戶的可編程與應(yīng)用變化性需求得以滿足。
圖7 H3C多層化的Open API
在Open API接口中,REST/SOAP是常規(guī)的高層協(xié)議編程接口,NETCONF是網(wǎng)絡(luò)設(shè)備上新興的XML語言編程接口,OpenFlow是SDN的一種協(xié) 議,以上均是通用化的技術(shù)實現(xiàn),VCC則是H3C在長期網(wǎng)絡(luò)軟件技術(shù)積累過程中形成的一種更為底層的標(biāo)準(zhǔn)化實現(xiàn)。
ComwareV7是基于Linux內(nèi)核實現(xiàn)的新一代云計算網(wǎng)絡(luò)操作系統(tǒng),當(dāng)前的架構(gòu),基于類POSIX的Linux接口及擴展形成一套開放的 SDK,H3C提供了含SDK的接口描述、調(diào)用庫、編譯環(huán)境等完備的編程環(huán)境,使得用戶可以使用C/C++以幾乎完全等同于Linux系統(tǒng)下的環(huán)境進(jìn)行自 己的網(wǎng)絡(luò)應(yīng)用程序軟件開發(fā),而ComwareV7則為用戶的軟件運行提供了一個完整的系統(tǒng)環(huán)境,如圖8所示。
圖8 VCC運行
在VCC環(huán)境中,用戶程序包可獨立加載到設(shè)備上運行,軟件可以不間斷業(yè)務(wù)升級。Comware V7提供接口給用戶,軟件設(shè)計可以一定程度上訪問底層硬件,對路由、MAC等硬件表項進(jìn)行操作,或者設(shè)備的配置變更及相應(yīng)狀態(tài)監(jiān)控等,同時還可以利用 Comware V7現(xiàn)有的特性來輔助實現(xiàn)用戶業(yè)務(wù),從而實現(xiàn)用戶軟件定義網(wǎng)絡(luò)的真正需求。
2.4 基于OAA的自定義網(wǎng)絡(luò)平臺
早期,H3C提出了開放應(yīng)用架構(gòu)(Open Application Architecture)的網(wǎng)絡(luò)模型,即在H3C的網(wǎng)絡(luò)設(shè)備中提供具有計算能力的線卡,用戶可以在其上開發(fā)自己的特殊應(yīng)用,并通過H3C的OAA關(guān)聯(lián)協(xié)議與網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)交互。
基于SDN的架構(gòu)思路,H3C演繹了更靈活的用戶化網(wǎng)絡(luò)設(shè)計,實現(xiàn)的OAA新的業(yè)務(wù)模式,可以方便用戶靈活實現(xiàn)自定義的網(wǎng)絡(luò)功能。在OAA基礎(chǔ)上,提出了兩種開放式的接口模型,如圖9所示。
圖9左圖,顯示了一種全松耦合的OAA架構(gòu)。針對用戶任意形態(tài)運行的網(wǎng)絡(luò)業(yè)務(wù),可能是在服務(wù)器上的計算業(yè)務(wù)(如流量監(jiān)控分析、數(shù)據(jù)旁路挖掘),也可 能是專用的業(yè)務(wù)設(shè)備(如防火墻、IPS、加密機、數(shù)據(jù)壓縮機),用戶設(shè)備可以支持標(biāo)準(zhǔn)的OpenFlow協(xié)議,即可與H3C網(wǎng)絡(luò)進(jìn)行通信,在 OpenFlow協(xié)議中傳輸業(yè)務(wù)指令,對需要處理的網(wǎng)絡(luò)流量進(jìn)行鏡像、牽引、封裝、定向等操作,將清晰定義的數(shù)據(jù)流以合適的方式導(dǎo)引到用戶的計算設(shè)備進(jìn)行 自定義處理。這種方案的本質(zhì)是,借助SDN的模型,將用戶的數(shù)據(jù)處理設(shè)備運行為SDN Controller方式,而對特定業(yè)務(wù)流進(jìn)行處理。
圖9右圖,顯示了一種緊耦合的OAA架構(gòu),其中分兩種模式:模式一,用戶自設(shè)計提供高性能計算單元子卡,H3C提供OAA的線卡底板,兩者以開放的 標(biāo)準(zhǔn)化電氣接口連接器相連,用戶計算單元與網(wǎng)絡(luò)之間依然通過標(biāo)準(zhǔn)的OpenFlow方式進(jìn)行網(wǎng)絡(luò)流量的引流操作,而軟件、硬件均由用戶自身根據(jù)業(yè)務(wù)需求來 設(shè)計;模式二,H3C提供了整體的OAA線卡,用戶基于H3C的硬件來開發(fā)自己的軟件,在協(xié)議上仍然采用OpenFlow的方式進(jìn)行特定數(shù)據(jù)處理。
圖9 基于OAA的自定義網(wǎng)絡(luò)平臺
3 結(jié)束語
SDN是一個寬泛的網(wǎng)絡(luò)體系架構(gòu),需要通過靈活開放的結(jié)構(gòu)來實現(xiàn)用戶需求,H3C的技術(shù)模式,是在不同的網(wǎng)絡(luò)層面、不同的體系架構(gòu)上均可提供用戶需要的接口與業(yè)務(wù)環(huán)境,同時H3C本身也提供基于SDN的用戶網(wǎng)絡(luò)應(yīng)用。