第一章 SNMP协议介绍
SNMP协议
基于TCP/IP的网络管理包含3个组成部分:
1) 一个管理信息库MIB(Management Information Base)。管理信息库包含所有代理进程的所有可被查询和修改的参数。RFC 1213定义了第二版的MIB,叫做MIB-II。
2) 关于MIB的一套公用的结构和表示符号。叫做管理信息结构SMI(Structure of Management Information)。这个在RFC 1155 中定义。例如:SMI定义计数器是一个非负整数,它的计数范围是 0~4294967295,当达到最大值时,又从0开始计数。
3) 管理进程和代理进程之间的通信协议,叫做简单网络管理协议SNMP(Simple Network Management Protocol)。在RFC 1157 中定义。SNMP包括数据报交换的格式等。尽管可以在传输层采用各种各样的协议,但是在SNMP中,用得最多的协议还是UDP。
一 SNMP协议概述
1
简单网络管理协议,SNMP,Simple Network Management Protocol。该协议基于简单网关监视协议(SGMP:Simple Gateway Monitor Protocol)。利用SNMP,一个管理工作站可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。虽然SNMP开始是面向基于IP的网络管理,但作为一个工业标准也被成功用于电话网络管理。
2 SNMP的发展史
到目前为止一共经历了三个版本。当下使用最广泛是SNMPv2。
3 SNMP的工作原理
SNMP采用特殊的客户机/服务器模式,即代理/管理站模型。对网络的管理与维护是通过管理工作站与SNMP代理间的交互工作完成的。每个SNMP从代理负责回答SNMP管理工作站(主代理)关于MIB定义信息的各种查询。
管理站和代理端使用MIB进行接口统一,MIB定义了设备中的被管理对象。管理站和代理都实现相应的MIB对象,使得双方可以识别对方的数据,实现通信。管理站向代理请求MIB中定义的数据,代理端识别后,将管理设备提供的相关状态或参数等数据转换成MIB定义的格式,最后将该信息返回给管理站,完成一次管理操作。
4 SNMP的报文类型
SNMP中定义了五种消息类型:Get-Request、Get-Response、Get-Next-Request、Set-Request和Trap 。
(1)Get-Request 、Get-Next-Request与Get-Response
SNMP 管理站用Get-Request消息从拥有SNMP代理的网络设备中检索信息,而SNMP代理则用Get-Response消息响应。Get-Next- Request用于和Get-Request组合起来查询特定的表对象中的列元素。
(2)Set-Request
SNMP管理站用Set-Request 可以对网络设备进行远程配置(包括设备名、设备属性、删除设备或使某一个设备属性有效/无效等)。
(3)Trap
SNMP代理使用Trap向SNMP管理站发送非请求消息,一般用于描述某一事件的发生,如接口UP/DOWN,IP地址更改等。
上面五种消息中Get-Request、Get-Next-Request和Set-Request是由管理站发送到代理侧的161端口的;后面两种Get-Response和Trap 是由代理进程发给管理进程的,其中Trap消息被发送到管理进程的162端口,所有数据都是走UDP封装。
第二章 SNMP在Windows 7 下的相关操作
一 若要使电脑支持SNMP协议,应在 控制面板-打开或关闭Windows功能 中,安装之,如下图。
二 如果已安装,在控制台敲入net start snmp,会提示:请求的服务已经启动;
三 现在看一下服务列表里,SNMP Service是启动的,而SNMP Trap没有;
四 到网上下载一个叫snmputil的工具,拷贝到D盘下,然后输入一个命令试一下;
snmputil get 192.168.1.134 public .1.3.6.1.2.1.1.5.0
snmputil的命令规则是:snmputil [get|getnext|walk] agent community oid [oid ...]
[get|getnext|walk]为消息类型,我们此次进行的操作是get
agent指Snmp代理即你想进行操作的网络设备的ip或名称,即192.168.1.134
community:分区域,即密码,默认是public
oid:想要操作的MIB数据对象号,设备名称对应的MIB对象号是.1.3.6.1.2.1.1.5.0
查本机IP为192.168.1.134,上述命令为获取本机设备名;回车之后显示错误;
五 snmp使用的是udp 161端口,snmptrap使用的是udp 162端口;
输入 netstat -aon|findstr "161" 命令,查看161端口的使用情况;显示如下图,161端口是开启的;
六
在SNMP服务的属性对话框,选择 陷阱 选项卡,在 社区名称 输入"public",单击 添加到列表;在 陷阱目标 中加入 127.0.0.1;
在 安全 选项卡,添加社区 public,勾选 发送身份验证陷阱;
七
再敲入四的命令,还是出同样的错;如果把IP地址改为localhost,就对了;如下图;
.1.3.6.1.2.1.1.5.0 是获取设备名;
.1.3.6.1.2.1.1.1.0 是获取系统描述;
snmputil工具的总结:如果出现“error on SnmpMgrRequest 40"错误,先看输入的IP是否有误;再看161端口是否开启;再看是否有步骤六的设置。