net-snmp环境安装和命令

搭建一个SNMP环境可以方便学习,也可直观的了解SNMP中各种实体及其行为,更加有效的学习。此处用net-snmp软件包搭建SNMP环境。

1   net-snmp简介

net-snmp是个开源的SNMP实现项目。支持SNMPv1SNMPv2SNMPv3,支持基于IPv4IPv6SNMP应用程序开发。

net-snmp包括以下内容:

l  完整的API用于SNMP应用程序开发(包括cperlAPI);

l  一个可扩展的SNMP代理程序(snmpd);开发者可开发动态模块扩展snmpdnet-snmp内置扩展子代理与主代理的通信协议;

l  提供众多命令行工具检查和使用SNMP协议;

l  一个trap接收进程,用于接收和显示trap。并可以将trap记录到日志文件里;

l  一个图形化的MIB浏览工具(tkmib:基于Tk/Perl的);

net-snmp被很多商业化linux包含,大多少的linux使用net-snmp的主代理实现LinuxSNMP支持。

2         安装与配置

net-snmp需要经过安装和配置两个主要步骤才可以使用。

2.1       操作系统

net-snmp可以在BSO UNIXLinuxWindows等操作系统上编译使用。此处我们选择Linux操作系统。如果没有第二台机器装Linux,可以在Windows下安装一个VMWare5.5以上版本),新建一个虚拟机,在虚拟机上安装Linux

安装Linux时需要选择安装开发套件,否则编译net-snmp时会缺少编译和连接工具。

2.2       下载

net-snmp下载地址:http://www.net-snmp.org/download.html可以选择下载二进制文件或源码。源码需要自己编译,二进制只有Linux版本。

该处源码以net-snmp-5.2.2.tar为例。

2.3       解压

Su – root   //切换到root用户,否则后面的编译和安装会有问题。

Tar –xvf net-snmp-5.2.2.tar        //进入net-snmp源码目录后,执行该指令进行解压;

2.4       编译准备

编译之前需要进行编译准备,以生成编译所需的配置文件和Makefile,执行下列命令:

cd  net-snmp-5.2.2

./configure

检查编译环境的最后会提示输入一些配置信息。一般取默认值即可(版本号笔者选择2)。net-snmp提供可扩展的代理,安装后运行在本机上,使本机成为一台被管理设备。最后配置检查程序会生成相关配置文件、编译及安装所需要的输入文件及相应的Makefile

2.5       编译

make                   //使用编译准备步骤生成的Makefile,就可以编译net-snmp了。编译生成net-snmpC语言开发库、SNMP工具、可扩展的主代理、开发工具。

2.6       安装

make  install  //

net-snmp编译完成后需要进行安装。默认安装情况下,安装后的文件和路径为:

1)         可扩展代理snmpd位于:/usr/local/share/ net-snmp

2)         C语言开发库位于:          /usr/local/share/ lib

3)         C语言开发头文件位于:/usr/local/share/ include

4)         net-snmp提供的SNMP工具位于:      /usr/local/share/ net-snmp

5)         net-snmp依赖的MIB文件位于:/usr/local/share/ net-snmp/mibs

6)         net-snmp依赖的配置文件:           /usr/local/share/ net-snmp/conf/etc/snmp

2.7       配置文件

需要为我们的测试环境配置一个学习用的配置文件。

Vi  /etc/snmp/snmpd.conf         //进入编辑net-snmp的配置文件;

2.8       验证

安装完成后需要验证是否可以正常工作。

1)         Snmpd    //启动代理。验证主代理是否可以正常启动;

也可以加入参数使snmpd使用指定配置文件启动:

Snmpd  -C –c /etc/snmp/snmpd.conf             //该方式,我们可以配置很多不同的配置文件,设置不同的运行环境,便于学习和开发。

2)         Ps  -aef | grep snmpd      //检查代理是否已启动。(代理是守护进行,执行后会到后台运行)

3)         从代理中读取一个管理对象验证代理是否正常运行。

Snmpget  -v2c –c public localhost sysDescr.o               //读取MIB-II表中的sysDescr对象,该对象表示设备的描述信息。执行该命令后应该得到类似以下的结果:SNMPv2-MIV::sysDescr.0=STRING:linux leelin.leelindomain 2.4.18-14 #1 Wed Sep 4 13:35:50 EDT 2002 i686

3         工具使用介绍

net-snmp提供了许多工具使用和调试SNMP,下面简单说明。具体参数请参见相应工具的Man page。方法: man <command>,例如:man snmpget

序列

command

说明

1)          

Snmpget

模拟SNMPGetRequest操作的工具。用来获取一个或几个管理信息。用来读取管理信息内容。

2)          

snmpgetnext

模拟SNMPGetNextRequest操作的工具。用来获取一个管理信息实例的下一个可用实例数据。一般用来遍历SNMP中的表格数据。

3)          

Snmpset

模拟SNMPSetRequest操作的工具。用来设置可以写的管理信息。一般用来配置设备或对设备进行操作。

4)          

Snmpbulkget

模拟SNMPGetBulkRequest操作的工具。用来读取大块的数据。一般在大量读取大块数据时使用以提高带宽利用率,并且比使用SnmpgetsnmpgetnextSnmpwalk有更强的容错能力,代理会返回尽可能多的数据,比其它命令更有保证。

5)          

Snmpwalk

利用给定的GetNextRequest对给定的管理树进行遍历的工具。一般用来对表格类型管理信息进行遍历。

6)          

Snmptrap

模拟发送trap的工具。

7)          

snmptrapd

接收并显示trap的工具。一般用在代理的开发过程中,接收代理发来的trap,并将PDU细节打印出来,用来测试trap发送功能是否正常。

8)          

Snmpinform

模拟发送InformRequest的工具。用来发送模拟的带应答的trap,以测试管理站或自己开发的接收程序。

9)          

Snmptable

使用GetNextRequestGetBulkRequest操作读取表信息,以列表形式显示的工具。

10)      

Snmpstatus

SNMP实体中读取几个重要的管理信息以确定设备状态的工具。用来简单测试设备状态。

11)      

Snmpbulkwalk

利用GetBulkRequest实现对给定管理树进行遍历的工具。对表格类型管理信息进行遍历读取。

12)      

snmpdelta

用来监视Interger类型的管理对象,会及时报告值改变情况的工具。用于检测一个设备或开发中的代理。

13)      

Snmptest

是一个复杂的工具,可以检测和管理一个网络实体的信息,通过SNMP请求操作与管理实体通信。

14)      

Snmptranslate

将对象名称和标识符相互转化的工具。用于数据格式的对象标识符和可读式字符串的数据名称的转换。类似于域名和Ip地址的关系。

15)      

Snmpusm

SNMPv3 USM配置工具。用于SNMPv3的用户管理。

16)      

Snmpvacm

为一个网络实体创建或维护SNMPv3的基于视图访问控制参数的工具。用于维护SNMPv3的视图访问控制。

17)      

Snmpconf

生成snmpd配置文件的工具。用于生成snmpd的各种配置文件,用作模板,以生成用户级配置文件。

18)      

Snmpd

net-snmp开发的主代理程序,包括众多标准MIB的实现,还可以使用子代理对其进行扩展,是一个功能强大的SNMP代理。LinuxUNIXWindows系统运行snmpd后,直接具备了SNMP协议支持,可以被管理站管理。许多商业化的Linux中使用snmpd作为系统的SNMP代理。

19)      

Snmpdf

通过SNMP访问并显示网络实体磁盘利用情况的工具。用来检测网络实体的磁盘。

4         总结

net-snmp是一个使用广泛的开源SNMP实现。它支持SNMP全功能版本,并且提供丰富的工具,可以用于调试和管理。同时,net-snmp提供代理开发API

你可能感兴趣的:(linux,网络协议)