關於網管開發的一點總結

5年前,我也曾經急動過。。。。。。。

算起來從2002年在學校做的第一個網管的項目,加上後來在兩個公司做的兩個,實際上是有3個這樣的項目了.主要的工具依然是SNMP,這是個好東西,當然還有別的接口和協議比如TMN和一些專屬語言,但總歸說起來,我始終覺得工具就是工具,一個工具不可能讓人真正優秀起來.

 

研一的時候,拿到的第一個開發包,是大名鼎鼎的ucd-snmp,那個時候已經在改名爲net-snmp.這是個好東西,比較簡單,而且關鍵是免費的,很好.我拿到這個工具真是大材小用,用它來幹嗎那,來糊弄學校的老闆,來糊弄那幫863的專家,就是用標準代理中的接口組提供的數據,統計整個網絡中的流量情況,包括路由相關的信息,這帶來了一個副產品,後來我胡編亂造寫了篇拓撲發現的文章,發表到了通信學報上面.

 

關於net-snmp,其實也沒有什麼好說的,是一個做agent擴展的好東西,lib2c這個toolkit的翻譯做得也不錯,ansi格式的mib文件到c源文件,這個轉換工作做得也不錯.基本上一個基本的agent開發的流程和主要方面,它都有涵蓋.不過我們說網管五大領域中,FCAPS,這個中間最考驗功力的是容錯管理和安全管理,那個時候我沒有涉及,實際上很可惜,trap是個很好的東西,應該花些時間在上面的.另外,當時沒有想過用這個工具做些manager的開發工作,這個也是個遺憾.在學校做的東西,大部分都是玩具,所以這個agent實際上也是個玩具,玩具的表現是,它實際上是將應用集成到了agent裏面,呵呵.這個避開了agent開發裏面最麻煩的和應用的集成.當時的開發難度,就相當於自己寫個UDPagent,解解包,發發包,就這麼個簡單玩意.

 

後來到了AC,拿到了很多ASAM7300的源碼,不得不說,阿爾卡特的DSL平臺做得真好,這是後來我在LU接觸到那個RNC平臺時候才發現的,所以說什麼東西都怕有比較的,不過考慮到DSL是AC發家的兩大看家本領,至少當時是全球第一也是中國第一,這樣的前提背景下,把這個平臺的核心架構拿到中國來,還是很不容易的.當時這個平臺中就是集成了TMSsnmp代理,很好的東西,這個平臺太龐大了,龐大到我在那兒的一年都沒有機會接觸到manager的東西,包括source code,據說manager是印度人做得,Solaris上面做得,使用過那個東西,做得真好,一看就是大規模現代化的軟件工廠的作品,很好,很好,很好.

 

那麼這個網管的開發的主要工作是什麼呢?當然也是集成了,這次用的一個工具叫mibc,我不知道這個東西是不是法國人自己做的,因爲mibc產出的下游是一個叫MAPPERWRAPER,這個MAPPERlayer做得非常非常好,結構非常乾淨,有了它的存在,AGENT是個很簡單,很乾淨的東西,從層次來講,WRAPPER在標準agent和應用程序,協議和驅動之間,所以它可以掩蓋agent擴展中的那些很細節的東西,這個當然是對agent而言,同時,因爲有了它的存在,使得下面各個模塊中的負責網管工作的兄弟們非常輕鬆。

 

我前面說過,我在這個項目的過程中,始終都沒有看到網管的manager的實現部分,也就是manager打包SNMPUDPpacket,然後發送出去的部分.這個遺憾後來到了LUCENT算是得到補償,:LUCENT的這套RNC的東西實現是印度人做的,不過這次印度人讓我很失望,不過好歹我也算看到了.另外從RNC這個平臺的實現來看,它的代碼的嚴謹和結構,也遠遠不及ASAM的那套實現,這也是可以理解的,因爲畢竟LUCENT最核心的東西不在這個上面,RNC只是個附送品,比起大名鼎鼎的四號機五號機,這個產品也是分量不夠.不過考慮到貝爾實驗室的名號,做出這樣的東西,儘管很好,但是還是讓我不太滿意,可能是心中對貝爾實驗室的頂禮膜拜讓我昏了頭.接着說RNC的這套實現機制吧,它的manager實際上用的是Adventnet的一個標準manager,自己做了擴展註冊,做了個managerclient,snmp的代理部分用的是WindRiverTMS,這個東西我也不陌生,考慮到IP問題,甚至是職業道德,我在這裏不可能把它的實現細節畫出來,不過我個人覺得這個東西還是比較清晰,當時花了1個星期讀它的那些東西,畫了不少UML,還是畫得很高興,不過考慮到當時是無心戀戰,僅僅是出於自己得興趣愛好,我覺得可能以後再也不會有這樣的心情去挖啊去exploit這些大面的code.

 

TMS的那套mib翻譯和agent接口很多地方都有介紹,我在這裏也沒啥必要貼上來,不過這裏讓人很難忘的是這套AGENT嵌入到應用中的實現是基於C++,這個比起以前的mib2cmibc都不太一樣.C++就是好,接口很乾淨,看起來賞心悅目.另外,這次是正兒八經做Fault管理,看到了trap的東西,不過真是痛苦.這個錯誤檢測和恢復太難了,所以這個軟件或者說系統的健壯性真是太難保證了.

 

我不知道自己以後還有沒有機會繼續開發網管的一些東西,不過真是很捨不得,有人總是說要動不動就去瞧瞧LINUX的內核代碼啥的,其實這些優秀的平臺做得都非常好,有機會有時間好好看看他們的實現讓人也會增長不少功力.我沒有看過LINUX的內核代碼,也不知道後面有沒有時間和心情去exploit這些東西,不過我覺得功夫在書外,只要有一個好的平臺,很多東西都是相通的,現在手頭上的一個SUNKVM的實現和一個嵌入式的平臺,好像做得也不錯……

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