NETCONF

IETF在2003年5月成立了Netconf工作組,該工作組主要是為了提出一個全新的基於XML的網路配置(NETCONF)協定而成立的。該工作組已於2006年12月通過了NETCONF協定的基本標準RFC4741-4744,2011年6月RFC6241、RFC6242替代了原有的 RFC4741、RFC4742,RFC4743和 RFC4744則被標記為歷史資料。

簡介

RFC4741- 4744 分別描述了NETCONF在三種不同的傳輸模式SOAP,BEEP和SSH下是如何工作的。2008 年7 月推出RFC5277,主要定義了NETCONF的事件通知機制,用於故障管理。2009 年5 月推出的RFC5539 描述了NETCONF如何保證傳輸層傳輸信息的安全機制,加強了NETCONF的安全體系。2011年6月RFC6242更新了基於 SSH 的傳輸模式。NETCONF 協定是完全基於XML 之上的,所有的配置數據和協定訊息都用XML 表示,XML 可以表達複雜的、具有內在邏輯關係的、模型化的管理對象,而且由於它是W3C提出的國際標準,因而受到廣大軟體提供商的支持,易於進行數據交流和開發。

四個層次

如同ISO/OSI 一樣NETCONF協定也採用了分層結構,每個層分別對協定的某一個方面進行包裝,並向上層提供相關的服務。分層結構能讓每個層只關注協定的一個方面,實現起來更加簡單,同時合理的解耦各個層之間的依賴,可以將各層內部實現機制的變更對其它層的影響降低到最低。NETCONF 協定分成四層:內容層、操作層、RPC層、通信協定層。

內容層表示的是被管對象的集合。內容層的內容需要來自數據模型中,而原有的MIB等數據模型對於配置管理存在著如不允許創建和刪除行,對應的MIB 不支持複雜的表結構等缺陷,因此內容層的內容沒有定義在RFC4741 中,但在 RFC6242進行了更新,數據建模語言和數據模型使用2011年提出的 YANG 模型   。

操作層定義了一系列在RPC中套用的基本的原語操作集,這些操作將組成NETCONF的基本能力。為了簡單的目的,SNMP只定義了五種基本操作,涵蓋了取值、設值和告警三個方面。NETCONF全面地定義了九種基礎操作,功能主要包括三個方面取值操作、配置操作、鎖操作和會話操作,其中get、get- config用來對設備進行取值操作,而edit- config、copy- config、delete- config則是用於配置設備參數,lock和unlock 則是在對設備進行操作時為防止並發產生混亂的鎖行為,close- session和kill- session則是相對比較上層的操作,用於結束一個會話操作。

RPC層為RPC模組的編碼提供了一個簡單的、傳輸協定無關的機制。通過使用 和元素對NETCONF協定的客戶端(網路管理者或網路配置應用程式) 和伺服器端(網路設備) 的請求和回響數據(即操作層和內容層的內容) 進行封裝,正常情況下 元素封裝客戶端所需的數據或配置成功的提示信息,當客戶端請求報文存在錯誤或伺服器端處理不成功時,伺服器端在 元素中會封裝一個包含詳細錯誤信息的 元素來反饋給客戶端。

一旦NETCONF會話開始,控制器和設備就會交換一組“特性”。這組“特性”包括一些信息,如NETCONF協定版本支持列表、備選數據是否存在、運行中的數據存儲可修改的方式。除此之外,“特性”在NETCONF RFC中定義,開發人員可以通過遵循RFC中描述的規範格式添加額外的“特性”。

NETCONF協定的命令集由讀取、修改設備配置數據,以及讀取狀態數據的一系列命令組成。命令通過RPCs進行溝通,並以RPC回復來應答。一個RPC回復必須回響一個RPC才能返回。一個配置操作必須由一系列RPC組成,每個都有與其對應的應答RPC。  

總結SNMPV1,V2 在安全方面的缺陷不難發現,原因是由於其採用面向無連線的UDP傳輸協定。與SNMP使用無連線的UDP作為傳輸協定不同,NETCONF是面向連線的,它要求通信連線埠之間永久性的連線,而且這種連線必須提供可靠的,順序的數據傳輸。在傳輸層,NETCONF制定了RFC4742、RFC4743 和RFC4744 分別給出了向傳輸協定SSH、SOAP和BEEP映射的實現方案。這些安全協定通過加密和認證等方法來保證網路連線的安全性。

相關詞條

相關搜尋

熱門詞條

聯絡我們