從SNMP到NETCONF

tl;dr
今天與同事交流,提到了一個特別有意思的問題,有了SNMP(可以做設(shè)備配置,而且兼容的廠商還足夠多),為什么還需要NETCONF?值得思考,所以整理出這個文章,從發(fā)展的歷程以及各階段面臨的問題分析原因。

通信協(xié)議變遷

SNMP最早由IETF在20世紀80年代晚期(1980s)開發(fā),一直被用來做為網(wǎng)絡設(shè)備的監(jiān)控(如告警、性能管理),并不用來做配置。
性能管理后來也不用SNMP了,是因為網(wǎng)絡設(shè)備的處理數(shù)據(jù)量越來越大,設(shè)備就需要一些更輕量級的的協(xié)議來專注于對設(shè)備性能進行統(tǒng)計分析,Cisco最早提出的Netflow來解決這個問題,并最終行成標準。

隨著網(wǎng)絡設(shè)備數(shù)量的增加,網(wǎng)絡管理員也越來越需要批量對設(shè)備的管理,這時候主要的手段是CLI Sciprt,因為畢竟這個是人類可以讀懂的,方便操作。不像SNMP是BER編碼的。而且,核心問題是很多設(shè)備廠家提供的SNMP MIB庫也不能實現(xiàn)完全的設(shè)備配置。

SNMP不能實現(xiàn)完全設(shè)備管理,CLI大家也慢慢發(fā)現(xiàn)可用性也不太好,因為其不確定性,輸出內(nèi)容可讀性、可處理性也不高。這時候急需一套新的配置協(xié)議,Juniper最早提出來的基于XML的管理方案,并提交給IETF,并最終推動于2013年5月行成了現(xiàn)在的NETCONF協(xié)議。


協(xié)議對比-1
協(xié)議對比-2

數(shù)據(jù)編碼語言變遷

數(shù)據(jù)編碼語言作用:
Data model: Describes the data, its constraints. A.k.a., Schema E.g., address may consist of street, state, zip within 50 states. 1 Brookings Dr., Saint Louis, MO 63130 is an instance.

SNMP的編碼語言(Data Modeling Language)是SMI(Structure of Management Information),SMI是基于ASN.1構(gòu)建的,主版本是SMIv2。20世紀90年代末,SMIng被提出,用于將編碼語言與SNMP協(xié)議解耦,讓SMIng可以更容易的學習,以及更方便的被Parsor程序讀取。但SMIng后來沒有在IETF成功發(fā)展。
NETCONF協(xié)議誕生后,也同樣需要一個編碼語言,IETF NETMOD小組基于SMIng構(gòu)建了YANG,使用XML建立數(shù)據(jù)模型。

YANG全稱:Yet Another Next Generation data modeling language

YANG使用XML做為其數(shù)據(jù)模型,但是我們在寫YANG的描述時,是采用一種比較容易讀寫的方式。在數(shù)據(jù)傳輸前,其需要通過轉(zhuǎn)換成YIN Module的XML語言(無損轉(zhuǎn)換),才能被程序開發(fā)者廣泛的編程調(diào)用。


YANG vs. YIN

參考URL:

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

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

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