OpenDaylight是一種開源的SDN控制器,在2013年初由Linux協(xié)會(huì)聯(lián)合業(yè)內(nèi)18家企業(yè)(包括Cisco、Juniper、Broadcom等多家傳統(tǒng)網(wǎng)絡(luò)設(shè)備商)創(chuàng)立,他們的共同目標(biāo)是以透明、開放、公平、協(xié)作為原則建立一個(gè)供應(yīng)商、客戶、合作伙伴和開發(fā)人員可以共同使用的SDN開源平臺(tái),從而推動(dòng)SDN的產(chǎn)品化和商業(yè)化。2018年3月,OpenDaylight與FD.io、ONAP、OPNFV、SNAS.io、PNDA.io、Tungsten Fabric等頂級(jí)網(wǎng)絡(luò)項(xiàng)目合并成立LFN(LF Networking),其目標(biāo)是促進(jìn)最終用戶、設(shè)備廠商及開發(fā)者的協(xié)作,促進(jìn)網(wǎng)路轉(zhuǎn)型和開源發(fā)展進(jìn)程,降低成本、推動(dòng)創(chuàng)新和提高網(wǎng)絡(luò)容量,實(shí)現(xiàn)網(wǎng)絡(luò)優(yōu)化管理和自動(dòng)化的開源平臺(tái)。
目前,OpenDaylight已經(jīng)有6年的時(shí)間,這對(duì)很多開源項(xiàng)目來說已經(jīng)走過一個(gè)從創(chuàng)建發(fā)展到?jīng)]落的輪回,而對(duì)OpenDaylight來說,現(xiàn)在仍然保持較高的版本發(fā)布頻率來增加新的特性,以滿足商用的要求。另外,OpenDaylight的版本命名策略是按元素周期表的順序依次命名,并在前段時(shí)間OpenDaylight發(fā)布了第9個(gè)版本:氟(Flourine),該版本增強(qiáng)了SFC和邊緣計(jì)算特性。
一、邏輯架構(gòu)
OpenDaylight的邏輯架構(gòu)分為應(yīng)用層、控制器層和數(shù)據(jù)轉(zhuǎn)發(fā)層。其中,應(yīng)用層聚焦網(wǎng)絡(luò)業(yè)務(wù)邏輯開發(fā),負(fù)責(zé)資源編排;控制器層進(jìn)行全局網(wǎng)絡(luò)的管理;數(shù)據(jù)轉(zhuǎn)發(fā)層為各種網(wǎng)絡(luò)設(shè)備,負(fù)責(zé)數(shù)據(jù)的轉(zhuǎn)發(fā)。
從控制器層的角度來說,與應(yīng)用層的接口被為北向接口,與數(shù)據(jù)轉(zhuǎn)發(fā)層之間的接口被定義為南向接口。通過對(duì)北向接口(REST API、NETCONF)的封裝,應(yīng)用層以軟件編程的形式調(diào)用各種網(wǎng)絡(luò)資源和把控整個(gè)網(wǎng)絡(luò)的資源狀態(tài),并對(duì)資源進(jìn)行統(tǒng)一調(diào)度。南向接口協(xié)議包含NETCONF、OVSDB、SNMP、BGP等協(xié)議,其中OpenFlow協(xié)議用于控制器和交換機(jī)之間的通信,控制器可以通過OpenFlow下發(fā)流表控制交換機(jī),交換機(jī)也可以反饋信息給控制器,同時(shí),OpenFlow也規(guī)定了交換機(jī)對(duì)報(bào)文的轉(zhuǎn)發(fā)方式。
注意到這里NETCONF即是北向接口也是南向接口,可能容易產(chǎn)生誤解,為什么同一協(xié)議即在北向出現(xiàn)也在南向出現(xiàn)?事實(shí)上,從上面的定義來看,北向和南向只是我們一種習(xí)慣的稱法,出現(xiàn)在應(yīng)用層與控制層之間就是北向,出現(xiàn)在控制層與數(shù)據(jù)轉(zhuǎn)發(fā)層之間就是南向。所以,這里不用太糾結(jié),理解其本質(zhì)就可以了。
二、項(xiàng)目依賴關(guān)系
OpenDaylight包含核心項(xiàng)目、協(xié)議項(xiàng)目、應(yīng)用項(xiàng)目、服務(wù)項(xiàng)目與支撐項(xiàng)目等,其中核心項(xiàng)目包含AAA、Archetypes、MD-SAL、Controller、Yang Tools等;協(xié)議項(xiàng)目包含BGP LS、NETCONF、OpenFlow、OVSDB、P4、SNMP4SDN等;應(yīng)用項(xiàng)目包含DluxApp、NetVirt、FaaS、NeutronNorthbound等;服務(wù)項(xiàng)目包含Topology Processing Framework、Unimgr等。支撐項(xiàng)目包含ODL Tools、Integration、Documentation等,如下圖所示:
面對(duì)OpenDaylight這樣一個(gè)龐然大物,讓人最不安的問題或許是:我該如何更快更好地了解并掌握這個(gè)快速變化的項(xiàng)目?或許我們認(rèn)知OpenDaylight最快也是最自然的方式就是努力在腦海里形成該項(xiàng)目的組織形式,并不斷地細(xì)化。比如OpenDaylight作為一個(gè)SDN控制器,它包括了哪些功能分別對(duì)應(yīng)哪些項(xiàng)目,各個(gè)項(xiàng)目又實(shí)現(xiàn)了哪些服務(wù)以及功能,這些功能又是以什么樣的方式實(shí)現(xiàn)的等等。對(duì)于我們感興趣的項(xiàng)目又可以更為細(xì)致地去研究其內(nèi)部架構(gòu)和流程。
三、重要概念
1.MD-SAL
SAL即為業(yè)務(wù)抽象層,將服務(wù)抽象化,實(shí)現(xiàn)控制器既能夠支持多種不同的南向協(xié)議,也能向北向應(yīng)用提供統(tǒng)一的服務(wù)接口。SAL提供設(shè)備發(fā)現(xiàn)、數(shù)據(jù)收集等服務(wù),負(fù)責(zé)銜接南向協(xié)議與北向應(yīng)用。OpenDaylight基于MD-SAL構(gòu)建項(xiàng)目。
2.YANG
從網(wǎng)絡(luò)設(shè)備配置的實(shí)踐角度來說,讓你配置一臺(tái)設(shè)備,你直接CLI敲命令就可以了,如果讓你配置10臺(tái)、100臺(tái)設(shè)備你會(huì)怎么去做,你肯定會(huì)去想有沒有這樣的方法,可以使用極少的步驟統(tǒng)一配置下發(fā),甚至一鍵下發(fā)。針對(duì)網(wǎng)絡(luò)中的眾多問題,一群網(wǎng)絡(luò)工程師聚在一起,滔滔不決地討論著工作過程中的問題,同時(shí),也期望著詩和遠(yuǎn)方:“如果是那樣的話,就好了”,就這么著NETCONF和YANG出現(xiàn)了,所以,夢(mèng)想還是要有的,萬一實(shí)現(xiàn)了呢。有關(guān)YANG的細(xì)節(jié)如下圖:
四、應(yīng)用案例
-
控制器
+關(guān)注
關(guān)注
112文章
16416瀏覽量
178777 -
網(wǎng)絡(luò)設(shè)備
+關(guān)注
關(guān)注
0文章
317瀏覽量
29709 -
應(yīng)用層
+關(guān)注
關(guān)注
0文章
46瀏覽量
11524
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論