SDN技術(shù)面面觀
近兩年來(lái)SDN的概念被越來(lái)越廣泛地宣傳與接受,咨詢與研究機(jī)構(gòu)也頻頻調(diào)高其對(duì)SDN領(lǐng)域市場(chǎng)規(guī)模的預(yù)期。全球分析機(jī)構(gòu)Dell'Oro集團(tuán)的預(yù)測(cè)數(shù)據(jù)顯示:SDN的市場(chǎng)價(jià)值在2016年之前將達(dá)到15.9億英鎊,5年內(nèi)將實(shí)現(xiàn)17倍的增長(zhǎng);IDC也預(yù)測(cè),到2016年,SDN產(chǎn)業(yè)產(chǎn)值將達(dá)到37億美元以上。從研究機(jī)構(gòu)到高校,從企業(yè)到網(wǎng)絡(luò)廠商,越來(lái)越多的人和組織都參與到SDN的宣傳推廣與使用中來(lái)。如成立于2011年3月份的開放網(wǎng)絡(luò)基金會(huì)(ONF)就致力于推動(dòng)SDN的發(fā)展,同時(shí)負(fù)責(zé)制定與維護(hù)OpenFlow協(xié)議。又比如IETF最近新提交了I2RS的草案,其面向的目標(biāo)直指OpenFlow協(xié)議。其他的如NETCONFTCL/Python/等可能是用戶很熟悉的通信協(xié)議或接口,也已經(jīng)開始在SDN中有所應(yīng)用。面對(duì)蓬勃發(fā)展的SDN技術(shù),最終用戶是否會(huì)感到無(wú)所適從呢?本文將為您將揭開SDN技術(shù)的神秘面紗,帶您了解目前主流的SDN技術(shù)。
本文引用地址:http://m.butianyuan.cn/article/153557.htm目前業(yè)界通用的SDN架構(gòu)主要包括以下特征:控制與數(shù)據(jù)平面解耦合,網(wǎng)絡(luò)智能與控制邏輯集中,抽象的底層網(wǎng)絡(luò)基礎(chǔ)設(shè)施。因此不少SDN實(shí)踐者是從將控制與數(shù)據(jù)平面解耦合入手,將原來(lái)固化于網(wǎng)絡(luò)設(shè)備當(dāng)中的控制層抽取到設(shè)備之外,并進(jìn)行邏輯上的集中處理;同時(shí),在SDN的發(fā)展過(guò)程中,還發(fā)展出一種折衷的方案,在網(wǎng)絡(luò)設(shè)備中抽取控制層時(shí)仍保留部分控制能力,以求做到類似混合(Hybrid)的方式,以期可以帶來(lái)更大的靈活性:按用戶需要對(duì)控制進(jìn)行集中管理,或者仍按原有控制方式運(yùn)行。
上面介紹了目前主流的SDN實(shí)現(xiàn)方案的形態(tài),其主要思路還是將控制層提到設(shè)備外面來(lái)以便進(jìn)行統(tǒng)一的控制與管理,這里涉及到一個(gè)概念就是Controller與Agent,提取出來(lái)的控制層被定義為Controller(控制器),而被抽離了控制層的網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)層被定義為Agent(代理),剛剛提到的解耦合的控制層如何與原有的數(shù)據(jù)層通信的問(wèn)題也就轉(zhuǎn)化為Controller如何與Agent通信,具體到實(shí)現(xiàn)技術(shù)涉及到OpenFlow/I2RS等協(xié)議,下面分別進(jìn)行簡(jiǎn)單的介紹。
OpenFlow協(xié)議最早的思想是出現(xiàn)在Stanford里的實(shí)驗(yàn)項(xiàng)目Clean Slate中,后來(lái)被Stanford的Nick McKeown教授發(fā)現(xiàn)并進(jìn)行了更通用化的設(shè)計(jì),在2008年同其他人共同發(fā)表了題為《OpenFlow: Enabling Innovation in Campus Networks》的論文,首次提出了OpenFlow的概念,將傳統(tǒng)的網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)轉(zhuǎn)發(fā)平面與控制平面進(jìn)行了分離,通過(guò)將控制平面集中為Controller(控制器)并以標(biāo)準(zhǔn)化的接口對(duì)網(wǎng)絡(luò)設(shè)備進(jìn)行管理與配置,因此OpenFlow會(huì)將傳統(tǒng)網(wǎng)絡(luò)設(shè)備分離為數(shù)據(jù)轉(zhuǎn)發(fā)平面的交換機(jī)(也可以是路由器)與控制器(Controller),他們之間通過(guò)OpenFlow協(xié)議進(jìn)行通信。在OpenFlow交換機(jī)中存在一個(gè)流表,用于接收控制器發(fā)來(lái)的流轉(zhuǎn)發(fā)策略。
(上圖摘自O(shè)NF的OpenFlow白皮書)
與目前網(wǎng)絡(luò)設(shè)備所采用的二層(MAC)與三層(IP)轉(zhuǎn)發(fā)不同,OpenFlow從軟件(控制器)層面支持了比傳統(tǒng)硬件更多的控制轉(zhuǎn)發(fā)的能力,包括網(wǎng)絡(luò)報(bào)文中從1層到4層的關(guān)鍵信息,如MAC地址、IP地址、端口、VLAN、IP協(xié)議號(hào)等。
(上圖摘自O(shè)NF的OpenFlow白皮書)
通過(guò)支持OpenFlow協(xié)議可以將傳統(tǒng)網(wǎng)絡(luò)設(shè)備的控制平面與數(shù)據(jù)轉(zhuǎn)發(fā)平面進(jìn)行解耦合,同時(shí)將控制器集中,這樣用戶就可以通過(guò)集中的控制器來(lái)對(duì)整個(gè)網(wǎng)絡(luò)的數(shù)據(jù)轉(zhuǎn)發(fā)行為進(jìn)行全局的控制,而不是按網(wǎng)絡(luò)設(shè)備自己的協(xié)議來(lái)進(jìn)行處理,同時(shí)由于每一臺(tái)網(wǎng)絡(luò)設(shè)備都需要同控制器通信,控制器可以很容易就得到全局的拓?fù)湫畔?,進(jìn)而在控制器向上再提供開放API接口,供最終用戶在此基礎(chǔ)上開發(fā)針對(duì)自己網(wǎng)絡(luò)業(yè)務(wù)的應(yīng)用,為網(wǎng)絡(luò)資源的管理與使用提供更多的選擇,從而讓用戶擁有更多對(duì)自己網(wǎng)絡(luò)的編程與定制化能力。
目前OpenFlow的標(biāo)準(zhǔn)化工作是由ONF組織進(jìn)行維護(hù)與發(fā)展,最新的OpenFlow協(xié)議版本為1.3.1。很多廠商已經(jīng)推出支持OpenFlow的交換機(jī)與Controller,不少大型企業(yè)用戶也開始嘗試使用OpenFlow/SDN來(lái)解決他們的網(wǎng)絡(luò)問(wèn)題,但目前仍存在一些問(wèn)題制約著OpenFlow的發(fā)展,比如傳統(tǒng)設(shè)備硬件及芯片對(duì)OpenFlow流表的支持程度及流表數(shù)量的問(wèn)題,都是需要針對(duì)OpenFlow的芯片及硬件設(shè)計(jì)來(lái)解決的,這些問(wèn)題都在限制著OpenFlow的大規(guī)模應(yīng)用。
除了在針對(duì)OpenFlow的芯片上的努力外,業(yè)界還有人提出在現(xiàn)有的路由系統(tǒng)基礎(chǔ)上設(shè)計(jì)新的通信協(xié)議,這也就是我們下面要介紹的I2RS(Interface to the Routing System),這一協(xié)議是由IETF制定的標(biāo)準(zhǔn),目前還處于草案階段。I2RS的核心思想是在目前傳統(tǒng)網(wǎng)絡(luò)設(shè)備的路由及轉(zhuǎn)發(fā)系統(tǒng)基礎(chǔ)上開放新的接口來(lái)與外部控制層通信,外部控制層通過(guò)設(shè)備反饋的事件、拓?fù)渥兓⒘髁拷y(tǒng)計(jì)等信息來(lái)動(dòng)態(tài)地下發(fā)路由狀態(tài)、策略等到各個(gè)設(shè)備上去。從上面的介紹中可以看出I2RS與OpenFlow最大的區(qū)別是I2RS并沒(méi)有像OpenFlow提出流那樣較新的概念,而是延用了傳統(tǒng)網(wǎng)絡(luò)設(shè)備中正在使用的路由、轉(zhuǎn)發(fā)等結(jié)構(gòu)與功能,并在此基礎(chǔ)上進(jìn)行功能的擴(kuò)展與豐富。
就目前SDN應(yīng)用來(lái)看,除了新部署的網(wǎng)絡(luò),還有大量的現(xiàn)存網(wǎng)絡(luò),這些現(xiàn)存網(wǎng)絡(luò)如何應(yīng)用SDN也是眾企業(yè)、用戶所關(guān)心的。不少網(wǎng)絡(luò)設(shè)備廠商適時(shí)地推出了可以幫助用戶平滑演進(jìn)SDN的開放API方案即是為解決此問(wèn)題而出現(xiàn)的。
相對(duì)于Controller Agent結(jié)構(gòu),開放API方案直接在設(shè)備層面上提供新的開放的API接口,包括NETCONF/RESTful等基于XML結(jié)構(gòu)化標(biāo)記語(yǔ)言的接口,也有基于TCL/Python/Javascript等基于腳本語(yǔ)言的接口,更有的直接開放更為底層的Java/C++/C語(yǔ)言接口,讓用戶可以深入到設(shè)備操作系統(tǒng)底層對(duì)硬件進(jìn)行更深入地管理與操作,從而取得設(shè)備更大的控制權(quán)限。這種開放API的方案省略掉了Controller控制層,等于在用戶的應(yīng)用程序中直接嵌入了控制層的接口,從而實(shí)現(xiàn)了結(jié)構(gòu)的簡(jiǎn)化,減少了用戶在Controller層的技術(shù)負(fù)擔(dān);同時(shí)由于對(duì)現(xiàn)有設(shè)備的改動(dòng)小(只需要更新軟件以支持新的開放API接口即可),更利于保護(hù)用戶的投資。當(dāng)然,這種方案的缺點(diǎn)也是有的,主要在于目前開放API沒(méi)有形成業(yè)界統(tǒng)一的標(biāo)準(zhǔn),可能會(huì)出現(xiàn)不同廠商設(shè)備提供的開放API接口不兼容的問(wèn)題,這可能還需要漫長(zhǎng)的時(shí)間才會(huì)有公司或組織出面進(jìn)行相關(guān)的標(biāo)準(zhǔn)化工作。
隨著SDN在用戶中應(yīng)用的展開,當(dāng)前各種協(xié)議、接口、方案必將會(huì)碰到更多的問(wèn)題,可能哪種方案或協(xié)議都無(wú)法完全符合每一個(gè)用戶的具體需求,我們有理由猜測(cè),最后SDN的支撐技術(shù)可能會(huì)包含多種不同的協(xié)議與方案,他們既相互競(jìng)爭(zhēng),又互為補(bǔ)充,互相啟發(fā),并呈現(xiàn)出一個(gè)螺旋上升的發(fā)展趨勢(shì),這實(shí)際上也是我們所接觸到的大多數(shù)技術(shù)的演進(jìn)方式。
評(píng)論