面向意圖的SDN北向接口

面向意圖的北向接口是一種與網絡實現技術無關的北向接口,僅表達應用相關的詞彙和術語,使得用戶不需要看到***、MPLS、路由協議等具體的網絡技術。

SDN北向接口的挑戰

根據Open Networking Foundation(ONF)的定義,軟件定義網絡(Software Defined Networking,SDN)構架分爲垂直的三層:基礎構架、控制層和應用層。SDN的北向接口(North-Bound Interface,NBI) 位於控制平面和應用之間,將控制器提供的網絡能力和信息進行抽象並開放給應用層使用。因此,NBI對應用的創新和SDN生態系統的繁榮起着至關重要的作用。

現有的NBI多關注在網絡功能層面。功能型NBI(Functional NBI)通常由網絡領域的專家,從網絡系統的角度設計,並自底向上的考慮NBI能夠提供怎樣的網絡能力。這種設計不需要知道用戶需求,而儘可能多的暴露網絡的信息和能力,爲上層應用提供了最大限度的編程能力。這樣的功能型NBI的例子包括:設備和鏈路的發現、分配接口ID、設置設備的轉發規則、管理成千上萬的網絡狀態信息。

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

對於應用的開發者來說網絡服務接口的複雜性是網絡相關應用開發的痛點。複雜是可擴展性的敵人,複雜使得接口不易於使用,複雜使應用的開發容易出錯,複雜阻礙了網絡相關應用的創新!

解決複雜性的方法是在控制器平臺上構建一層聲明式的網絡中間件,應用通過Intent NBI告訴控制器想要做什麼而不是怎麼去做。由它捕捉到應用的意圖,轉換成領域和具體技術相關的網絡配置細節,並隱藏轉換過程的複雜性。

1240

1240

什麼是Intent NBI

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

讓我們用乘坐出租車打一個比方,通常乘客的意圖就是從A地到B地。他不需要知道怎麼走,只要對司機說:“嘿,我要去B地。”就這麼簡單,僅包含客戶關心的信息。同樣,乘客也不需要告訴司機爲什麼他要從A地到B地,因爲這和乘客的需求無關。這樣的例子擴展到網絡服務領域是完全適用的。

Intent NBI可以爲應用和應用開發帶來很多的好處:

●   Intent的描述是聲明式的,並不指定執行的方式,使得控制器能夠爲基於Intent的請求自動的計算最優的結果,最大程度的滿足請求。

●   基於Intent的請求和控制器平臺及控制器的實現無關,它只是體現了應用層的需求,並使用應用相關的詞彙和信息。相同的Intent請求可以由不同的控制器通過不同的方法或算法完成,這也使得應用具備跨平臺的可移植性。

●  使用Intent NBI的應用可以在高層避免衝突的發生,增加請求的成功率。例如,一個常規的連接建立,需要應用指定連接路徑經過的網絡節點,之後控制器在相應的網絡節點上下發配置。然而,如果基於運營商的某種管理策略,該路徑上的某個網絡節點是此應用不可使用的,則這樣的部署請求將會失敗。如果我們使用Intent,應用僅表達在A和B站點之間建立連接的需求,則控制器可以智能的爲該請求選擇一條避開指定網絡節點的最有路徑,並完成部署。

Intent表述模型

控制器理解Intent請求,需要有一種形式化的模型來描述Intent。總結生活中Intent的表述例子,通常可以歸結於兩類表達:一種是表達操作(Operation),表示“想要做什麼”;另一種是表達結果(Result),表示“希望達到某一狀態”。網絡中意圖表達的例子有:

● “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表述模型:

1240

Intent由Object和Operation,或者Object和Result組成。服務層網絡中

●  對象,可以總結爲:面向用戶的節點(Customer Facing Node,CFN)、連接(Connection)和業務流(Service Flow)。

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

●  結果,描述用戶希望達到的狀態,可以用“期望達到某一狀態”或者“避免達到某一狀態”的子句來表述。

華爲的Intent NBI實踐

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

NEMO的Intent執行引擎實現了一個網絡中間件,隱藏網絡實現和部署的複雜性,將高層次的服務級別的Intent轉化成真正的網絡部署,並通過軟件自動化的方式解決網絡中資源和策略的衝突。創新提出的三層映射架構,簡化了Intent到網絡部署的轉換,使得每層映射功能清晰,第三方模塊和新的算法功能可以快速的集成。

此外,NEMO還提供了一系列的支撐工具,比如沙箱,爲測試、仿真和部署都提供了便利,爲網絡應用提供了一套集成開發環境。

業務定製與業務創新一直倍受運營商的關注。NEMO抓住運營商的需求,面向不同行業用戶的意圖,基於通用的網絡操作模式和以應用爲中心的網絡模型,爲運營商的業務設計人員提供一種簡單易用的網絡業務模板定製方式。使用NEMO語言可以快速的捕捉行業用戶的意圖,方便的在應用中描述其對網絡的需求,而將網絡實現層面的複雜性留給SDN控制器,並通過優化的軟件系統,自動實現資源的分配、網絡性能的監控、資源與策略的衝突解決,極大的簡化了運營商的設計工作並加速了業務創新和新業務的布放。

華爲正攜手標準組織IETF、ONF以及開源社區共同完成Intent NBI、相關模型、NEMO語言語法以及Intent引擎的定義和實現。

本文轉載自:http://developer.huawei.com/ict/cn/site-sdn/article/08


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章