一、实验目的
通过在本机安装SNMP(代理)服务,建立本机的管理信息库(MIB),在本机运行SNMP管理站程序,查看本机的MIB信息,验证管理信息结构(SMI)、管理信息库(MIB)、简单网络管理协议(SNMP)的互联网标准与现实的一致性。
二、预备知识
SNMP网络管理架构如图1,由一个管理站和多个管理代理组成。
PC机操作系统的SNMP服务实际上就是SNMP代理,该代理等待在UDP的161端口。Windows下的实用程序snmputil.exe通过自己的UDP的161端口与SNMP代理通信,就可以查询代理所在站点的MIB信息。
三、实验内容
1.在WinXP、Win7或Win10上配置SNMP服务,使之能接受管理站发来的SNMP请求。
2.执行管理站软件snmputil,向本机上的SNMP服务发出get、getnext、walk查询请求,验证收到的响应内容是否与预期的一致。查询system下的标量对象、ip下的路由表。
四、实验步骤
1.配置PC机的SNMP(代理)服务;
①先检查电脑有没有安装SNMP
②利用powershell命令进行在线安装
③检查是否安装成功
或者在CMD中运行命令(管理员权限)
④设置SNMP服务
3.在PowerShell或Cmd中,用“.\Snmputil get 127.0.0.1 public x.y.z.w….”获得给定OID的值。
①获取当前机器开机的时间
.\Snmputil.exe get 127.0.0.1 public .1.3.6.1.2.1.1.3.0
②获取当前用户名
.\Snmputil.exe get 127.0.0.1 public .1.3.6.1.2.1.1.5.0
③查看ip组
.\Snmputil.exe walk 127.0.0.1 public .1.3.6.1.2.1.4
④查看ObjectID值
.\Snmputil.exe getnext 127.0.0.1 public .1.3.6.1.2.1.1.1.0
五、问题与总结
在次实验中,遇到这样一个问题,在使用snmputil的命令时,其中get参数个getnext参数再开始的时候并没有搞清楚两者的区别,就像上图那样出现的错误一样会出现报错而显示错误信息,当然解决的办法就是搞清这两条命令。
与其说是两条命令,不如说是getnext是get的进阶命令,使用get是具体的绝对的OID值,而使用getnext时意思是得到此OID值的下一条值的信息,问题迎刃而解。还有一个参数walk,这个参数在可以理解为是查询当前OID下所有的分支,如下所示: