面向意圖的SDN北向接口

面向意圖的北向接口是一種與網(wǎng)絡(luò)實現(xiàn)技術(shù)無關(guān)的北向接口,僅表達應(yīng)用相關(guān)的詞匯和術(shù)語,使得用戶不需要看到VPN、MPLS、路由協(xié)議等具體的網(wǎng)絡(luò)技術(shù)。

SDN北向接口的挑戰(zhàn)

根據(jù)Open Networking Foundation(ONF)的定義,軟件定義網(wǎng)絡(luò)(Software Defined Networking,SDN)構(gòu)架分為垂直的三層:基礎(chǔ)構(gòu)架、控制層和應(yīng)用層。SDN的北向接口(North-Bound Interface,NBI) 位于控制平面和應(yīng)用之間,將控制器提供的網(wǎng)絡(luò)能力和信息進行抽象并開放給應(yīng)用層使用。因此,NBI對應(yīng)用的創(chuàng)新和SDN生態(tài)系統(tǒng)的繁榮起著至關(guān)重要的作用。

現(xiàn)有的NBI多關(guān)注在網(wǎng)絡(luò)功能層面。功能型NBI(Functional NBI)通常由網(wǎng)絡(luò)領(lǐng)域的專家,從網(wǎng)絡(luò)系統(tǒng)的角度設(shè)計,并自底向上的考慮NBI能夠提供怎樣的網(wǎng)絡(luò)能力。這種設(shè)計不需要知道用戶需求,而盡可能多的暴露網(wǎng)絡(luò)的信息和能力,為上層應(yīng)用提供了最大限度的編程能力。這樣的功能型NBI的例子包括:設(shè)備和鏈路的發(fā)現(xiàn)、分配接口ID、設(shè)置設(shè)備的轉(zhuǎn)發(fā)規(guī)則、管理成千上萬的網(wǎng)絡(luò)狀態(tài)信息。

然而,讓我們完全站在應(yīng)用開發(fā)者的角度,假設(shè)我們并不了解復(fù)雜的網(wǎng)絡(luò)概念和配置。應(yīng)用的開發(fā)者希望將更多的精力集中在應(yīng)用功能的體現(xiàn)、用戶交互的友好,在使用網(wǎng)絡(luò)服務(wù)的時候希望能夠像使用云服務(wù)一樣簡單、自動化,希望網(wǎng)絡(luò)能夠具有靈活的、可靠的和可擴展的。這要求網(wǎng)絡(luò)能夠提供一套面向網(wǎng)絡(luò)服務(wù)的、聲明式的、反應(yīng)用戶意圖的NBI(Intent NBI),例如:“在A站點和B站點之間建立連接”,“為我的數(shù)據(jù)中心互聯(lián)(Data Center Interconnection,DCI)提供服務(wù)質(zhì)量保障(Service Level Agreement,SLA)”,“為我的虛擬數(shù)據(jù)中心(Virtual Data Center,VDC)上網(wǎng)提供業(yè)務(wù)鏈(Service Function Chain,SFC)服務(wù)”。

對于應(yīng)用的開發(fā)者來說網(wǎng)絡(luò)服務(wù)接口的復(fù)雜性是網(wǎng)絡(luò)相關(guān)應(yīng)用開發(fā)的痛點。復(fù)雜是可擴展性的敵人,復(fù)雜使得接口不易于使用,復(fù)雜使應(yīng)用的開發(fā)容易出錯,復(fù)雜阻礙了網(wǎng)絡(luò)相關(guān)應(yīng)用的創(chuàng)新!

解決復(fù)雜性的方法是在控制器平臺上構(gòu)建一層聲明式的網(wǎng)絡(luò)中間件,應(yīng)用通過Intent NBI告訴控制器想要做什么而不是怎么去做。由它捕捉到應(yīng)用的意圖,轉(zhuǎn)換成領(lǐng)域和具體技術(shù)相關(guān)的網(wǎng)絡(luò)配置細節(jié),并隱藏轉(zhuǎn)換過程的復(fù)雜性。

什么是Intent NBI

為了簡化消費網(wǎng)絡(luò)服務(wù)的應(yīng)用和控制器之間的交互,控制平面應(yīng)該提供一層Intent NBI。Intent NBI是一種與網(wǎng)絡(luò)實現(xiàn)技術(shù)無關(guān)的北向接口,僅表達應(yīng)用相關(guān)的詞匯和術(shù)語,使得用戶不需要看到VPN、MPLS、路由協(xié)議等具體的網(wǎng)絡(luò)技術(shù)。Intent NBI自頂向下地從需求視角對網(wǎng)絡(luò)對象與能力進行抽象,并通過聲明式的表達體現(xiàn)使用者的意圖(想做什么),而不是如何去做。Intent NBI表達了應(yīng)用期望控制器交付的服務(wù)輸出,將控制器變成一個資源分配和資源管理的“黑盒系統(tǒng)”。

讓我們用乘坐出租車打一個比方,通常乘客的意圖就是從A地到B地。他不需要知道怎么走,只要對司機說:“嘿,我要去B地?!本瓦@么簡單,僅包含客戶關(guān)心的信息。同樣,乘客也不需要告訴司機為什么他要從A地到B地,因為這和乘客的需求無關(guān)。這樣的例子擴展到網(wǎng)絡(luò)服務(wù)領(lǐng)域是完全適用的。

Intent NBI可以為應(yīng)用和應(yīng)用開發(fā)帶來很多的好處:

● ? Intent的描述是聲明式的,并不指定執(zhí)行的方式,使得控制器能夠為基于Intent的請求自動的計算最優(yōu)的結(jié)果,最大程度的滿足請求。

● ? 基于Intent的請求和控制器平臺及控制器的實現(xiàn)無關(guān),它只是體現(xiàn)了應(yīng)用層的需求,并使用應(yīng)用相關(guān)的詞匯和信息。相同的Intent請求可以由不同的控制器通過不同的方法或算法完成,這也使得應(yīng)用具備跨平臺的可移植性。

● ?使用Intent NBI的應(yīng)用可以在高層避免沖突的發(fā)生,增加請求的成功率。例如,一個常規(guī)的連接建立,需要應(yīng)用指定連接路徑經(jīng)過的網(wǎng)絡(luò)節(jié)點,之后控制器在相應(yīng)的網(wǎng)絡(luò)節(jié)點上下發(fā)配置。然而,如果基于運營商的某種管理策略,該路徑上的某個網(wǎng)絡(luò)節(jié)點是此應(yīng)用不可使用的,則這樣的部署請求將會失敗。如果我們使用Intent,應(yīng)用僅表達在A和B站點之間建立連接的需求,則控制器可以智能的為該請求選擇一條避開指定網(wǎng)絡(luò)節(jié)點的最有路徑,并完成部署。

Intent表述模型

控制器理解Intent請求,需要有一種形式化的模型來描述Intent??偨Y(jié)生活中Intent的表述例子,通常可以歸結(jié)于兩類表達:一種是表達操作(Operation),表示“想要做什么”;另一種是表達結(jié)果(Result),表示“希望達到某一狀態(tài)”。網(wǎng)絡(luò)中意圖表達的例子有:

● “I want toCREATEa Network for HR (Customer Facing Node)"

● ? "I want toBLOCKthe http flow (Flow)"

● ? "I want toADJUSTthe bandwidth (Connection) to 10G“

● “I want toAVOIDthe bandwidth utilization on the connection greater than 80%. (Result)”

從這些例子中,我們可以得出下面的Intent表述模型:

Intent由Object和Operation,或者Object和Result組成。服務(wù)層網(wǎng)絡(luò)中

● ?對象,可以總結(jié)為:面向用戶的節(jié)點(Customer Facing Node,CFN)、連接(Connection)和業(yè)務(wù)流(Service Flow)。

● ?操作,描述用戶期望的行為,可以用“在某個條件下(Condition),做某個動作(Action),同時遵守某種約束(Constraint)”的模式來表述。

● ?結(jié)果,描述用戶希望達到的狀態(tài),可以用“期望達到某一狀態(tài)”或者“避免達到某一狀態(tài)”的子句來表述。

華為的Intent NBI實踐

華為提出的NEMO項目一直引領(lǐng)Intent NBI的實踐,提供了一套完整的基于意圖的實現(xiàn)。NEMO項目開發(fā)了一種面向網(wǎng)絡(luò)服務(wù)的編程語言作為一種新的SDN北向接口形式,打破了傳統(tǒng)上“煙囪式”基于場景逐一定義接口的方式,基于Intent的表述模型總結(jié)出一套面向網(wǎng)絡(luò)服務(wù)的原語,通過靈活的組合實現(xiàn)任意場景應(yīng)用的描述與部署,并通過15種簡單的語句替代了傳統(tǒng)上成百上千的API。NEMO語言以更加自然和直接的方式表達用戶的意圖,網(wǎng)絡(luò)應(yīng)用和開發(fā)者在使用NEMO語言描述網(wǎng)絡(luò)服務(wù)時,只需要告訴控制器做什么,而不需要指明如何去做。

NEMO的Intent執(zhí)行引擎實現(xiàn)了一個網(wǎng)絡(luò)中間件,隱藏網(wǎng)絡(luò)實現(xiàn)和部署的復(fù)雜性,將高層次的服務(wù)級別的Intent轉(zhuǎn)化成真正的網(wǎng)絡(luò)部署,并通過軟件自動化的方式解決網(wǎng)絡(luò)中資源和策略的沖突。創(chuàng)新提出的三層映射架構(gòu),簡化了Intent到網(wǎng)絡(luò)部署的轉(zhuǎn)換,使得每層映射功能清晰,第三方模塊和新的算法功能可以快速的集成。

此外,NEMO還提供了一系列的支撐工具,比如沙箱,為測試、仿真和部署都提供了便利,為網(wǎng)絡(luò)應(yīng)用提供了一套集成開發(fā)環(huán)境。

業(yè)務(wù)定制與業(yè)務(wù)創(chuàng)新一直倍受運營商的關(guān)注。NEMO抓住運營商的需求,面向不同行業(yè)用戶的意圖,基于通用的網(wǎng)絡(luò)操作模式和以應(yīng)用為中心的網(wǎng)絡(luò)模型,為運營商的業(yè)務(wù)設(shè)計人員提供一種簡單易用的網(wǎng)絡(luò)業(yè)務(wù)模板定制方式。使用NEMO語言可以快速的捕捉行業(yè)用戶的意圖,方便的在應(yīng)用中描述其對網(wǎng)絡(luò)的需求,而將網(wǎng)絡(luò)實現(xiàn)層面的復(fù)雜性留給SDN控制器,并通過優(yōu)化的軟件系統(tǒng),自動實現(xiàn)資源的分配、網(wǎng)絡(luò)性能的監(jiān)控、資源與策略的沖突解決,極大的簡化了運營商的設(shè)計工作并加速了業(yè)務(wù)創(chuàng)新和新業(yè)務(wù)的布放。

華為正攜手標(biāo)準(zhǔn)組織IETF、ONF以及開源社區(qū)共同完成Intent NBI、相關(guān)模型、NEMO語言語法以及Intent引擎的定義和實現(xiàn)。

本文轉(zhuǎn)載自:http://developer.huawei.com/ict/cn/site-sdn/article/08

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容