1.Windows SNMP服务的基本概念,要求达到识记层次
SNMP代理服务和SNMP陷入服务的概念
SNMP服务的安装、配置和测试方法
2.SNMP应用程序接口,要求达到领会层次
扩展API的概念
管理API的概念题
实用程序API的概念
服务 API的概念
3.扩展代理的实现,要求达到综合应用层次
建立扩展代理动态链接库的方法
安装、启动、测试扩展代理的方法
MIB数据库的实现方法
4.陷入的实现,要求达到领会层次
陷入的设计方法
由扩展代理支持陷入的方法
陷入的触发条件
5.SNMP管理应用程序接口,要求达到综合应用层次
Microsoft MIB编译器的作用
管理API头文件的内容和作用
管理API的功能
6.网络管理应用程序设计,要求达到综合应用层次
管理应用程序的类型
Windows环境下管理应用程序的实现方法
知识重点
(一) Windows SNMP服务的基本概念
Windows NT支持SNMPv1管理站和代理功能,包括发送和接收陷入的能力。SNMP服务完全集成在Windows NT系统中,是发行的NT软件包的一部分。在安装Windows NT时,可以有选择地安装SNMP服务,尖劈成需要得新年搞活司。Windows95只支持SNMP代理功能,不支持管理站功能。显然Microsoft把Windows95看作时被管理的系统,它不能管理别的系统。
所谓服务实际上是一种特殊的 Win32应用软件,它通过Win32 API与Windows NT服务控制管理器(SCM)接口,一般在后台运行。它的作用是监视硬件设备和其他系统进程,提供访问外围设备和操作系统辅助功能的能力。系统服务在系统启动时或用户登录时自动开始运行,当用户退出或系统关机时停止运行。SNMP服务就是一种Win32应用软件。
Windows NT的SNMP的服务包括两各应用程序。一个是SNMP代哦服务程序snmp.exe,另一个是SNMP陷入服务程序SNMPTRAP.EXE.snmp.exe接收SNMP请求报文,根据要求发送响应报文,能对SNMP报文进行语法分析,ASN.1和BER编码/译码,也能发送陷入报文,并处理WinSock API的接口。Windows95也含有这个文件;SNMPTRAP.EXE监听发送给NT主机的陷入报文,然后把其中的数据传送给SNMP管理API.Windows95没有陷入服务文件。
Windows NT的SNMP代理服务是可扩展的,即允许动态地加入或减少MIB信息。这意味着程序员不必修改和重新编译代理程序,只需加入或删除一个能处理指定信息的子代理就可以了。Microsoft把着子代理叫做扩展代理,它处理私有的MIB对象和特定陷入条件。当SNMP代理服务接收到一个请求报文时,它就把变量绑定表的有关内容送给对应的扩展代理。扩展代理根据SNMP的规则对其私有的变量进行处理,形成响应信息。编写扩展代理程序是开发网络管理系统的程序员的责任,程序员可根据需要随时增加或删除系统中的扩展代理程序。
SNMP API是Microsoft为SNMP协议开发的应用程序接口,是一组用于构造SNMP服务、扩展代理和SNMP管理系统的库函数。SNMP报文通过UDP/IP服务经WinSock API传送到SNMP代理(SNMP.EXE)。SNMP代理对报文译码,并进行认证检查,这个过程是通过与SNMP API(SNMP.DLL)交互作用完成的。然后把变量绑定表的内容传送给有关的扩展代理,经扩展代理处理形成响应信息后又送回SNMP代理,再由SNMP代理装配成GetResponse报文,交给WinSock API送回发出请求的管理站。如果请求的MIB信息没有得到任何扩展代理的支持,则返回noSnchName错误。
陷入服务监视从 WinSock API传来的陷入报文,然后把陷入数据通过命令的管理传送给SNMP的管理API(MGNTAPI.DLL)。管理API是Microsoft为开发SNMP管理应用提供的动态链接库,是SNMP API的一部分。管理应用程序从管理API接收数据,向管理API发送管理信息,并通过管理API与WinSock通信,实现网络管理功能。
2.SNMP服务的安装、配置和测试
安装 SNMP服务像安装其他的Windows NT网络服务一样,唯一的差别是必须先安装TCP/IP32协议栈。如果已经安装并开始运行了TCP/IP协议,那么就可以安装SNMP服务了。Microsoft的其他网络产品也支持SNMP,其中的MIB模块也可以安装再Windows NT中。
在 Windows NT4.0中安装SNMP服务的过程如下:
。登录到具有管理特权的帐户上;
。双击控制面板的网络图标;
。点击服务条;
。点击添加按纽;
。点击网络服务列表中的 SNMP服务选项;
。点击确定按纽。
SNMP服务安装后就会出现一个属性窗口,也可以从控制面板进入SNMP属性窗口。SNMP服务使用的主要信息都出现在这个窗口中,可以进行修改,配置成需要的形式。配置信息存储在Windows注册表中,改变属性窗口的内容就是改变了注册表中的注册键。属性窗口中有3各按键,其中的代理键包含变量sysContact(联系人)、sysLocation(位置)和sysServices(服务)的值,可以由用户设置和修改。陷入键可以设置最多5个网络地址(IP或IPA)或DNS主机名,这些是陷入报文的目标地址,陷入博爱文中的团体名也在这个键下置这个键下的团体名,则任何团体名都是有效的。如果要使代理只接受某些特殊的管理主机发来的陷入,则可以在这个键下输入这些主机的名字或网络地址。设置完成后点击确定按纽退出控制面板,新的配置就起作用了。
在 Windows95中安装SNMP服务比较复杂。在Windows95安装光盘的目录下、ADMIN\NETOOLS\SNMP下面有一个自解压文件SNMPZP.EXE.执行这个文件,可以产生以下解压后的文件:
。 INETMIB1.DLL:SNMP代理文件
。 SNMP.EXE:SNMP的安装信息文件
。 SNMP.TXT
。 README.TXT
。 LICENSE.TXT
安装过程如下:
⑴进入控制面板;
⑵选择网络图标;
⑶选择配置;
⑷选择添加;
⑸选择网络组件,服务;
⑹选择从磁盘安装,找到文件 snmp.inf,进行安装;
⑺安装结束后重新启动计算机。
安装完成后 SNMP.EXE出现在Windows根目录下;SNMP.INF在Windows\INF目录下;INETMIB1.DLL在Windows\SYSTEM,如果此目录下没有INETMIB1.DLL,可把该文件拷贝到这个目录下。当Windows95启动时SNMP服务自动开始工作,Windows95停止时SNMP也停止了。还可以用DOS命令“snmp”和“snmp close”启动和停止SNMP服务。
在 Windows95中,SNMP服务的配置要通过系统策略编辑器进行设置,或者直接修改注册表。
(二)SNMP应用程序接口
SNMP的应用程序接口SNMP API由4部分组成,即扩展API、管理API、实用程序API和服务API.编写扩展代理和SNMP管理应用程序都要使用这些库函数。
1.扩展API的概念
扩展 API是4个函数的集合,SNMP服务和扩展代理DLL使用这些函数交换数据。这些函数的原型出现在头文件SNMP.H中,函数的代码用在每一个扩展代理中。
2. 管理API
管理API(MGMTAPI.DLL)由7个函数组成,管理应用程序调出这些函数发送请求,接收响应和陷入。
3.实用程序 API
实用程序 API共包含14个函数,分为存储器分配和数据管理两组。函数原型在SNMP.H中,函数代码在SNMP.DLL和SNMP和SNMPAPI.LIB中。
4.服务 API
服务 API(ASNMPAPI.DLL)包含19个函数,这些函数用在SNMP.EXE中,但是Mircosoft在推出Windows NT5时才会正式公布这些函数的原型。
(三)扩展代理的实现
扩展 API的4个函数用在扩展代理中。其中3个函数SnmpExtensionInit,SnmpExtensionQuery和SnmpExtension Trap应该出现在每一个扩展代理中,另外一个函数SnmpExtensionInitEx是任选的,根据扩展代理的需要而定。每个扩展代理都是使用这些函数与SNMP服务通信,一般不需要其他可执行的线程。
(四)陷入的实现
1. 陷入的设计
陷入的设计关系到两个决策问题:一个是要决定哪些事件可以引起陷入;另一个是陷入报文中应该包含哪些数据。如果陷入是基于已有的 MIB,则可陷入的事件(或变量)就已经确定了,甚至已写在规范文件中了。但是对于企业专用的MIB,则要根据企业的标准或者设备的特点决定哪些事件可以引起陷入。陷入一般要分为不同的优先级别,这样可以使管理系统能够区分通知性的陷入和灾害性的陷入。例如,电源掉电引起的陷入应该比系统启动引起的陷入更优先。代理对不同优先级的陷入可能要发送给不同的管理瞻,或者统一由一个管理系统区别处理。一般来说,对于通知性和警告性的陷入,管理系统只是把有关信息写入事件记录;对于严重的或灾害性的陷入,管理站要立即发出报警信号,例如控制台闪亮警告灯、发出声响、打印出事故报告等。
2. 扩展代理支持的陷入
用扩展代理实现陷入关系到两个函数 SnmpExtensionInit 和 SnmpExtensionTrap 。
3.陷入的检测
陷入机制的设计还与两个问题有关:一个是用什么检测陷入;另一个是怎样检测陷入。
(五)SNMP管理应用程序接口
Microsoft的管理应用程序借口MGMTAPI.DLL包含7个函数。
1.Microsoft MIB编译器
Microsoft的MIB编译器MIBCC.EXE是一个支持挂零你应用的附属工具,它的作用是把人工可读MIB模块转换程程序刻度的数据格式,产生的二进制文件MIB.BIN由管理应用程序使用。
2.管理 API头文件
管理 API 使用的常数和数据类型包含在头文件 MGMTAPI .H中。
3.管理 API 的功能
管理 API 用来管理应用程序,它由 7 个函数组成。
(六)网络管理应用程序设计
通用的管理应用程序通常叫做管理平台,它提供一组通用的网络管理功能,也提供实现专用管理程序的工具。例如 HP的Open View for Windows是SNMP网管平台,支持基本的管理功能:网络自动发现、拓扑映像生成、MIB编译器、陷入记录、管理轮询等。还提供开发API(OVAPI),可以用C,C++,Visual Basic编写用户专用的管理程序(叫做Open View集成应用)
无论有什么管理平台,设计自己的网络管理应用程序时都要做好下列准备工作:
。确定被管理结点的网络地址( IP地址,IPX啊地址,DNS主机名);
。确定远程目标的端口号( UDP161,专用端口号大于1024);
。确定接收陷入的端口号( UDP162,专用端口号大于1024);
。 确定团体名(通常为 public,如果用两个团体名,则read-only团体名为public,read-write团体名为private);
。确定响应定时器等待时间间隔;
。确定重复请求次数;
。确定轮询时间间隔。