再思考SDN(一)
來(lái)源:cnw.com.cn
作者:中興通訊中心研究院系統(tǒng)架構(gòu)部總工 汪軍
摘要: ONF成立兩年之際,SDN開(kāi)始得到業(yè)界的廣泛認(rèn)同,尤其是從IT真正走入了CT,而CT的網(wǎng)絡(luò)類型五花八門,這使得SDN的應(yīng)用場(chǎng)景急劇增長(zhǎng),大有無(wú)所不能之勢(shì)。
Abstract:
Key words :
ONF成立兩年之際,SDN開(kāi)始得到業(yè)界的廣泛認(rèn)同,尤其是從IT真正走入了CT,而CT的網(wǎng)絡(luò)類型五花八門,這使得SDN的應(yīng)用場(chǎng)景急劇增長(zhǎng),大有無(wú)所不能之勢(shì)。
業(yè)界目前所推的SDN無(wú)非兩種,方式一是原生的斯坦福/ONF推崇的OpenFlow完全控制的網(wǎng)絡(luò)架構(gòu),方式二是部分廠商推出的設(shè)備可編程的架構(gòu),兩者的核心區(qū)別在于后者設(shè)備的本地控制面仍然要運(yùn)行傳統(tǒng)的協(xié)議,可編程是附加的能力,當(dāng)應(yīng)用崩潰后,原有設(shè)備/網(wǎng)絡(luò)仍然可以繼續(xù)正常運(yùn)行。這一架構(gòu)的優(yōu)點(diǎn)看起來(lái)很明顯,避免了控制面本身故障的問(wèn)題,但是問(wèn)題也同樣明顯,首先設(shè)備本身的復(fù)雜度實(shí)際上是增加了,門檻繼續(xù)加高,不利于新興的設(shè)備廠商的參與;其次既然部分由傳統(tǒng)控制面控制,部分由應(yīng)用程序控制就需要額外的控制仲裁規(guī)則,比如基于OpenFlow Hybrid模式下端口的劃分、路由器RIB的合成規(guī)則或者增加額外的流分類器等等,這使得可編程性受到限制,客戶未必能夠操縱所有的轉(zhuǎn)發(fā)面狀態(tài),使得其實(shí)際上更適合于特定的應(yīng)用優(yōu)化;
而方式二其優(yōu)點(diǎn)是轉(zhuǎn)發(fā)面可以徹底簡(jiǎn)單化,受控轉(zhuǎn)發(fā),在全局的控制面控制下可以做到完全自動(dòng)化部署、配置和維護(hù),缺點(diǎn)也有很多:1)目前的硬件不能很好地支持OF1.1+的抽象模型,只能由控制面適配ASIC本身的能力,業(yè)務(wù)支持受限于特定硬件,所以Nicira選擇在vSwitch上支持OpenFlow。2)集中控制面的問(wèn)題,控制面本身的可靠性可以通過(guò)分布式技術(shù)解決,主要是控制平面本身的時(shí)延、可靠性問(wèn)題,時(shí)延隨距離增加線性增加,而可靠性則下降更為迅速,關(guān)鍵設(shè)備必須要通過(guò)雙網(wǎng)雙平面的方式保證,這使得控制本身的成本大大增加。我們有理由相信Pure OpenFlow的方式更適合于地理上相對(duì)較近的網(wǎng)絡(luò),比如企業(yè)網(wǎng)、數(shù)據(jù)中心和運(yùn)營(yíng)商接入網(wǎng)絡(luò)。地理跨度更大的網(wǎng)絡(luò)往往用基于網(wǎng)管接口的方式更加合適。
我們?cè)倏疾燹D(zhuǎn)發(fā)設(shè)備芯片,目前速度最快的ASIC到NP、FPGA、多核以及純軟轉(zhuǎn)發(fā)的x86均有,其處理單元組織可以分為Pipeline和SMP/NUMA兩種形式,pipeline結(jié)構(gòu)分工明確、可以按Pipeline環(huán)節(jié)的功能設(shè)計(jì)進(jìn)行優(yōu)化,同樣的芯片面積可以做到更高的轉(zhuǎn)發(fā)速度,問(wèn)題是需要分解轉(zhuǎn)發(fā)邏輯到相應(yīng)的流水線上,靈活度受限;SMP方式編程簡(jiǎn)單、靈活,但開(kāi)銷稍高。說(shuō)到底,靈活和成本是互換的。對(duì)于Switch ASIC這樣的流水線長(zhǎng)度、鍵值類型和操作都固化特定的芯片而言,控制面很難統(tǒng)一控制不同的設(shè)備,比如說(shuō)我按業(yè)務(wù)分解到查目的MAC表打上MPLS標(biāo)簽,但是ASIC MAC表只支持打VLAN標(biāo)簽,那么就玩不轉(zhuǎn)了。比較理想的模式是轉(zhuǎn)發(fā)面Match和Action最好都是可以由控制面定義的,比如在數(shù)據(jù)中心中,主要是端口分類表、MAC轉(zhuǎn)發(fā)表、L3交換表和L3前綴表,那么我就初始化成4個(gè)Flowtable,三個(gè)HASH的,一個(gè)BST或TCAM的即可(此處為說(shuō)明簡(jiǎn)化成4張表),那么在運(yùn)營(yíng)商網(wǎng)絡(luò)可能需要增加MPLS、IPv6等表,而這些表對(duì)Action的支持是均質(zhì)的,那么控制器軟件就不需要分別和多家多種設(shè)備做兩兩互通測(cè)試,真正做到產(chǎn)業(yè)鏈的開(kāi)放。在這種芯片結(jié)構(gòu)下,大的TCAM不是必須的,除非應(yīng)用要求進(jìn)行大量通配表查找,比如大量包含通配的流調(diào)度。Nick Mckeown ONS 2013上演講所提的芯片就是此種類型,其聲稱增加芯片面積、功耗不到15%,如果屬實(shí),那么其一旦商用,將對(duì)產(chǎn)業(yè)產(chǎn)生真正的顛覆作用,所謂SDN將轉(zhuǎn)發(fā)設(shè)備簡(jiǎn)化、開(kāi)放化的愿景主要依賴于此種芯片。
其實(shí)可編程和可配置之間的界限是比較模糊的,如果采用NetFlow統(tǒng)計(jì)流量,用NetConf、命令行下配置策略實(shí)現(xiàn)流量工程到底是叫配置還是編程?我個(gè)人認(rèn)為這一點(diǎn)區(qū)別并不重要,關(guān)鍵是轉(zhuǎn)發(fā)面正常運(yùn)行是否依賴于外部實(shí)體的實(shí)時(shí)響應(yīng),如果是,則外部實(shí)體(控制面)的可靠性就是和設(shè)備處于同一標(biāo)準(zhǔn),可以稱之為控制面,否則就是網(wǎng)管。在完全控制和部分可編程之間也不存在絕對(duì)的界限,比如可以將傳統(tǒng)控制面路由協(xié)議全部關(guān)閉,外部由應(yīng)用控制RIB,當(dāng)然這和pure OpenFlow方案相比多花了一些冤枉錢。
此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。