1.Windows SNMP服務(wù)的基本概念,要求達(dá)到識(shí)記層次
SNMP代理服務(wù)和SNMP陷入服務(wù)的概念
SNMP服務(wù)的安裝、配置和測(cè)試方法
2.SNMP應(yīng)用程序接口,要求達(dá)到領(lǐng)會(huì)層次
擴(kuò)展API的概念
管理API的概念題
實(shí)用程序API的概念
服務(wù) API的概念
3.擴(kuò)展代理的實(shí)現(xiàn),要求達(dá)到綜合應(yīng)用層次
建立擴(kuò)展代理動(dòng)態(tài)鏈接庫的方法
安裝、啟動(dòng)、測(cè)試擴(kuò)展代理的方法
MIB數(shù)據(jù)庫的實(shí)現(xiàn)方法
4.陷入的實(shí)現(xiàn),要求達(dá)到領(lǐng)會(huì)層次
陷入的設(shè)計(jì)方法
由擴(kuò)展代理支持陷入的方法
陷入的觸發(fā)條件
5.SNMP管理應(yīng)用程序接口,要求達(dá)到綜合應(yīng)用層次
Microsoft MIB編譯器的作用
管理API頭文件的內(nèi)容和作用
管理API的功能
6.網(wǎng)絡(luò)管理應(yīng)用程序設(shè)計(jì),要求達(dá)到綜合應(yīng)用層次
管理應(yīng)用程序的類型
Windows環(huán)境下管理應(yīng)用程序的實(shí)現(xiàn)方法
知識(shí)重點(diǎn)
(一) Windows SNMP服務(wù)的基本概念
Windows NT支持SNMPv1管理站和代理功能,包括發(fā)送和接收陷入的能力。SNMP服務(wù)完全集成在Windows NT系統(tǒng)中,是發(fā)行的NT軟件包的一部分。在安裝Windows NT時(shí),可以有選擇地安裝SNMP服務(wù),尖劈成需要得新年搞活司。Windows95只支持SNMP代理功能,不支持管理站功能。顯然Microsoft把Windows95看作時(shí)被管理的系統(tǒng),它不能管理別的系統(tǒng)。
所謂服務(wù)實(shí)際上是一種特殊的 Win32應(yīng)用軟件,它通過Win32 API與Windows NT服務(wù)控制管理器(SCM)接口,一般在后臺(tái)運(yùn)行。它的作用是監(jiān)視硬件設(shè)備和其他系統(tǒng)進(jìn)程,提供訪問外圍設(shè)備和操作系統(tǒng)輔助功能的能力。系統(tǒng)服務(wù)在系統(tǒng)啟動(dòng)時(shí)或用戶登錄時(shí)自動(dòng)開始運(yùn)行,當(dāng)用戶退出或系統(tǒng)關(guān)機(jī)時(shí)停止運(yùn)行。SNMP服務(wù)就是一種Win32應(yīng)用軟件。
Windows NT的SNMP的服務(wù)包括兩各應(yīng)用程序。一個(gè)是SNMP代哦服務(wù)程序snmp.exe,另一個(gè)是SNMP陷入服務(wù)程序SNMPTRAP.EXE.snmp.exe接收SNMP請(qǐng)求報(bào)文,根據(jù)要求發(fā)送響應(yīng)報(bào)文,能對(duì)SNMP報(bào)文進(jìn)行語法分析,ASN.1和BER編碼/譯碼,也能發(fā)送陷入報(bào)文,并處理WinSock API的接口。Windows95也含有這個(gè)文件;SNMPTRAP.EXE監(jiān)聽發(fā)送給NT主機(jī)的陷入報(bào)文,然后把其中的數(shù)據(jù)傳送給SNMP管理API.Windows95沒有陷入服務(wù)文件。
Windows NT的SNMP代理服務(wù)是可擴(kuò)展的,即允許動(dòng)態(tài)地加入或減少M(fèi)IB信息。這意味著程序員不必修改和重新編譯代理程序,只需加入或刪除一個(gè)能處理指定信息的子代理就可以了。Microsoft把著子代理叫做擴(kuò)展代理,它處理私有的MIB對(duì)象和特定陷入條件。當(dāng)SNMP代理服務(wù)接收到一個(gè)請(qǐng)求報(bào)文時(shí),它就把變量綁定表的有關(guān)內(nèi)容送給對(duì)應(yīng)的擴(kuò)展代理。擴(kuò)展代理根據(jù)SNMP的規(guī)則對(duì)其私有的變量進(jìn)行處理,形成響應(yīng)信息。編寫擴(kuò)展代理程序是開發(fā)網(wǎng)絡(luò)管理系統(tǒng)的程序員的責(zé)任,程序員可根據(jù)需要隨時(shí)增加或刪除系統(tǒng)中的擴(kuò)展代理程序。
SNMP API是Microsoft為SNMP協(xié)議開發(fā)的應(yīng)用程序接口,是一組用于構(gòu)造SNMP服務(wù)、擴(kuò)展代理和SNMP管理系統(tǒng)的庫函數(shù)。SNMP報(bào)文通過UDP/IP服務(wù)經(jīng)WinSock API傳送到SNMP代理(SNMP.EXE)。SNMP代理對(duì)報(bào)文譯碼,并進(jìn)行認(rèn)證檢查,這個(gè)過程是通過與SNMP API(SNMP.DLL)交互作用完成的。然后把變量綁定表的內(nèi)容傳送給有關(guān)的擴(kuò)展代理,經(jīng)擴(kuò)展代理處理形成響應(yīng)信息后又送回SNMP代理,再由SNMP代理裝配成GetResponse報(bào)文,交給WinSock API送回發(fā)出請(qǐng)求的管理站。如果請(qǐng)求的MIB信息沒有得到任何擴(kuò)展代理的支持,則返回noSnchName錯(cuò)誤。
陷入服務(wù)監(jiān)視從 WinSock API傳來的陷入報(bào)文,然后把陷入數(shù)據(jù)通過命令的管理傳送給SNMP的管理API(MGNTAPI.DLL)。管理API是Microsoft為開發(fā)SNMP管理應(yīng)用提供的動(dòng)態(tài)鏈接庫,是SNMP API的一部分。管理應(yīng)用程序從管理API接收數(shù)據(jù),向管理API發(fā)送管理信息,并通過管理API與WinSock通信,實(shí)現(xiàn)網(wǎng)絡(luò)管理功能。
2.SNMP服務(wù)的安裝、配置和測(cè)試
安裝 SNMP服務(wù)像安裝其他的Windows NT網(wǎng)絡(luò)服務(wù)一樣,唯一的差別是必須先安裝TCP/IP32協(xié)議棧。如果已經(jīng)安裝并開始運(yùn)行了TCP/IP協(xié)議,那么就可以安裝SNMP服務(wù)了。Microsoft的其他網(wǎng)絡(luò)產(chǎn)品也支持SNMP,其中的MIB模塊也可以安裝再Windows NT中。
在 Windows NT4.0中安裝SNMP服務(wù)的過程如下:
。登錄到具有管理特權(quán)的帳戶上;
。雙擊控制面板的網(wǎng)絡(luò)圖標(biāo);
。點(diǎn)擊服務(wù)條;
。點(diǎn)擊添加按紐;
。點(diǎn)擊網(wǎng)絡(luò)服務(wù)列表中的 SNMP服務(wù)選項(xiàng);
。點(diǎn)擊確定按紐。
SNMP服務(wù)安裝后就會(huì)出現(xiàn)一個(gè)屬性窗口,也可以從控制面板進(jìn)入SNMP屬性窗口。SNMP服務(wù)使用的主要信息都出現(xiàn)在這個(gè)窗口中,可以進(jìn)行修改,配置成需要的形式。配置信息存儲(chǔ)在Windows注冊(cè)表中,改變屬性窗口的內(nèi)容就是改變了注冊(cè)表中的注冊(cè)鍵。屬性窗口中有3各按鍵,其中的代理鍵包含變量sysContact(聯(lián)系人)、sysLocation(位置)和sysServices(服務(wù))的值,可以由用戶設(shè)置和修改。陷入鍵可以設(shè)置最多5個(gè)網(wǎng)絡(luò)地址(IP或IPA)或DNS主機(jī)名,這些是陷入報(bào)文的目標(biāo)地址,陷入博愛文中的團(tuán)體名也在這個(gè)鍵下置這個(gè)鍵下的團(tuán)體名,則任何團(tuán)體名都是有效的。如果要使代理只接受某些特殊的管理主機(jī)發(fā)來的陷入,則可以在這個(gè)鍵下輸入這些主機(jī)的名字或網(wǎng)絡(luò)地址。設(shè)置完成后點(diǎn)擊確定按紐退出控制面板,新的配置就起作用了。
在 Windows95中安裝SNMP服務(wù)比較復(fù)雜。在Windows95安裝光盤的目錄下、ADMIN\NETOOLS\SNMP下面有一個(gè)自解壓文件SNMPZP.EXE.執(zhí)行這個(gè)文件,可以產(chǎn)生以下解壓后的文件:
。 INETMIB1.DLL:SNMP代理文件
。 SNMP.EXE:SNMP的安裝信息文件
。 SNMP.TXT
。 README.TXT
。 LICENSE.TXT
安裝過程如下:
⑴進(jìn)入控制面板;
⑵選擇網(wǎng)絡(luò)圖標(biāo);
⑶選擇配置;
⑷選擇添加;
⑸選擇網(wǎng)絡(luò)組件,服務(wù);
⑹選擇從磁盤安裝,找到文件 snmp.inf,進(jìn)行安裝;
⑺安裝結(jié)束后重新啟動(dòng)計(jì)算機(jī)。
安裝完成后 SNMP.EXE出現(xiàn)在Windows根目錄下;SNMP.INF在Windows\INF目錄下;INETMIB1.DLL在Windows\SYSTEM,如果此目錄下沒有INETMIB1.DLL,可把該文件拷貝到這個(gè)目錄下。當(dāng)Windows95啟動(dòng)時(shí)SNMP服務(wù)自動(dòng)開始工作,Windows95停止時(shí)SNMP也停止了。還可以用DOS命令“snmp”和“snmp close”啟動(dòng)和停止SNMP服務(wù)。
在 Windows95中,SNMP服務(wù)的配置要通過系統(tǒng)策略編輯器進(jìn)行設(shè)置,或者直接修改注冊(cè)表。
(二)SNMP應(yīng)用程序接口
SNMP的應(yīng)用程序接口SNMP API由4部分組成,即擴(kuò)展API、管理API、實(shí)用程序API和服務(wù)API.編寫擴(kuò)展代理和SNMP管理應(yīng)用程序都要使用這些庫函數(shù)。
1.擴(kuò)展API的概念
擴(kuò)展 API是4個(gè)函數(shù)的集合,SNMP服務(wù)和擴(kuò)展代理DLL使用這些函數(shù)交換數(shù)據(jù)。這些函數(shù)的原型出現(xiàn)在頭文件SNMP.H中,函數(shù)的代碼用在每一個(gè)擴(kuò)展代理中。
2. 管理API
管理API(MGMTAPI.DLL)由7個(gè)函數(shù)組成,管理應(yīng)用程序調(diào)出這些函數(shù)發(fā)送請(qǐng)求,接收響應(yīng)和陷入。
3.實(shí)用程序 API
實(shí)用程序 API共包含14個(gè)函數(shù),分為存儲(chǔ)器分配和數(shù)據(jù)管理兩組。函數(shù)原型在SNMP.H中,函數(shù)代碼在SNMP.DLL和SNMP和SNMPAPI.LIB中。
4.服務(wù) API
服務(wù) API(ASNMPAPI.DLL)包含19個(gè)函數(shù),這些函數(shù)用在SNMP.EXE中,但是Mircosoft在推出Windows NT5時(shí)才會(huì)正式公布這些函數(shù)的原型。
(三)擴(kuò)展代理的實(shí)現(xiàn)
擴(kuò)展 API的4個(gè)函數(shù)用在擴(kuò)展代理中。其中3個(gè)函數(shù)SnmpExtensionInit,SnmpExtensionQuery和SnmpExtension Trap應(yīng)該出現(xiàn)在每一個(gè)擴(kuò)展代理中,另外一個(gè)函數(shù)SnmpExtensionInitEx是任選的,根據(jù)擴(kuò)展代理的需要而定。每個(gè)擴(kuò)展代理都是使用這些函數(shù)與SNMP服務(wù)通信,一般不需要其他可執(zhí)行的線程。
(四)陷入的實(shí)現(xiàn)
1. 陷入的設(shè)計(jì)
陷入的設(shè)計(jì)關(guān)系到兩個(gè)決策問題:一個(gè)是要決定哪些事件可以引起陷入;另一個(gè)是陷入報(bào)文中應(yīng)該包含哪些數(shù)據(jù)。如果陷入是基于已有的 MIB,則可陷入的事件(或變量)就已經(jīng)確定了,甚至已寫在規(guī)范文件中了。但是對(duì)于企業(yè)專用的MIB,則要根據(jù)企業(yè)的標(biāo)準(zhǔn)或者設(shè)備的特點(diǎn)決定哪些事件可以引起陷入。陷入一般要分為不同的優(yōu)先級(jí)別,這樣可以使管理系統(tǒng)能夠區(qū)分通知性的陷入和災(zāi)害性的陷入。例如,電源掉電引起的陷入應(yīng)該比系統(tǒng)啟動(dòng)引起的陷入更優(yōu)先。代理對(duì)不同優(yōu)先級(jí)的陷入可能要發(fā)送給不同的管理瞻,或者統(tǒng)一由一個(gè)管理系統(tǒng)區(qū)別處理。一般來說,對(duì)于通知性和警告性的陷入,管理系統(tǒng)只是把有關(guān)信息寫入事件記錄;對(duì)于嚴(yán)重的或?yàn)?zāi)害性的陷入,管理站要立即發(fā)出報(bào)警信號(hào),例如控制臺(tái)閃亮警告燈、發(fā)出聲響、打印出事故報(bào)告等。
2. 擴(kuò)展代理支持的陷入
用擴(kuò)展代理實(shí)現(xiàn)陷入關(guān)系到兩個(gè)函數(shù) SnmpExtensionInit 和 SnmpExtensionTrap 。
3.陷入的檢測(cè)
陷入機(jī)制的設(shè)計(jì)還與兩個(gè)問題有關(guān):一個(gè)是用什么檢測(cè)陷入;另一個(gè)是怎樣檢測(cè)陷入。
(五)SNMP管理應(yīng)用程序接口
Microsoft的管理應(yīng)用程序借口MGMTAPI.DLL包含7個(gè)函數(shù)。
1.Microsoft MIB編譯器
Microsoft的MIB編譯器MIBCC.EXE是一個(gè)支持掛零你應(yīng)用的附屬工具,它的作用是把人工可讀MIB模塊轉(zhuǎn)換程程序刻度的數(shù)據(jù)格式,產(chǎn)生的二進(jìn)制文件MIB.BIN由管理應(yīng)用程序使用。
2.管理 API頭文件
管理 API 使用的常數(shù)和數(shù)據(jù)類型包含在頭文件 MGMTAPI .H中。
3.管理 API 的功能
管理 API 用來管理應(yīng)用程序,它由 7 個(gè)函數(shù)組成。
(六)網(wǎng)絡(luò)管理應(yīng)用程序設(shè)計(jì)
通用的管理應(yīng)用程序通常叫做管理平臺(tái),它提供一組通用的網(wǎng)絡(luò)管理功能,也提供實(shí)現(xiàn)專用管理程序的工具。例如 HP的Open View for Windows是SNMP網(wǎng)管平臺(tái),支持基本的管理功能:網(wǎng)絡(luò)自動(dòng)發(fā)現(xiàn)、拓?fù)溆诚裆伞IB編譯器、陷入記錄、管理輪詢等。還提供開發(fā)API(OVAPI),可以用C,C++,Visual Basic編寫用戶專用的管理程序(叫做Open View集成應(yīng)用)
無論有什么管理平臺(tái),設(shè)計(jì)自己的網(wǎng)絡(luò)管理應(yīng)用程序時(shí)都要做好下列準(zhǔn)備工作:
。確定被管理結(jié)點(diǎn)的網(wǎng)絡(luò)地址( IP地址,IPX啊地址,DNS主機(jī)名);
。確定遠(yuǎn)程目標(biāo)的端口號(hào)( UDP161,專用端口號(hào)大于1024);
。確定接收陷入的端口號(hào)( UDP162,專用端口號(hào)大于1024);
。 確定團(tuán)體名(通常為 public,如果用兩個(gè)團(tuán)體名,則read-only團(tuán)體名為public,read-write團(tuán)體名為private);
。確定響應(yīng)定時(shí)器等待時(shí)間間隔;
。確定重復(fù)請(qǐng)求次數(shù);
。確定輪詢時(shí)間間隔。