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