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