一:我該如何創建自己的MIB?
首先:要定義自己的MIB,要先熟悉ASN.1的語法,其中有個老外的一本MIB書很好,MIB的RFC文檔就是它定義的好像。
其次:多看其他的MIB,其實定義比較簡單,就是TYPE,標量,表三個主要的東西。
二:我實現一個代理進程,如果捕獲SNMP的端口信息那同一機器上另外的代理進程不就沒辦法捕獲管理信息了嗎?我的代理進程只對特定的OID進行服務,如果不屬於我的OID,我如何將其交給系統中存在的其他代理進程處理?
這個問題就是擴展代理了,就是擴展Agent,在windows下面的SNMP系統服務,你可以直接用擴展來做的,這樣就可以吧你新加的OID添加到系統的snmp服務中,這些編程相對很簡單,在MSDN中有介紹,好像是snmpExtensionXXX,記不太清楚了!
三:在被管設備中究竟存不存在一個MIB?我的理解,是不是只在管理者進程中收集各個被管設備的信息形成一個MIB,而在被管設備中沒有真正的MIB存在?
你的理解不對的,MIB是Management Information Base是受管的信息數據庫,這些信息都是保存在Agent端的,Agent廣義上的概念其實包括兩個部分,一個是狹義的Agent,(就是接受網絡SNMP協議,返回信息),另外一個就是MIB信息的組織了。
四:我要誇平台管理,代理進程和管理者進程分別用什麼實現方便呢?
方便的方法:
有兩個開放的SNMP開發庫,也是現在用的最多的!一個net-snmp,一個是snmp++,都可以誇平台,但是net-snmp是基於c語言的,而snmp++是基於C++的,並且一般多用於Windows,反之net-snmp多用於Linux!
希望對你有所幫助,
書籍嘛!有一個《SNMP簡單網絡管理協議的原理和應用》不錯!其他的麼!我覺得看RFC文檔就夠了,RFC1213(MIB-II)等等!