用NET-SNMP软件包开发代理端
- 格式:doc
- 大小:87.00 KB
- 文档页数:16
第28卷 第5期 武汉理工大学学报・信息与管理工程版 Vol.28No.52006年5月 JOURNAL OF WUT (INFORMATION &MANAGEMENT ENGINEERING ) May.2006文章编号:1007-144X (2006)05-0051-04收稿日期:2005-12-15.作者简介:吕 锋(1957-),男,山东滨州人,武汉理工大学信息工程学院教授.嵌入式Power PC Linux 环境下基于Net -SNMP 的代理开发吕 锋,闵 笛(武汉理工大学信息工程学院,湖北武汉430070)摘 要:在Linux for Power PC 环境下,使用Net -SNMP 软件开发工具开发了一个基于SNMP 协议的代理,在该代理中将原有的标准MIB 进行了私有MIB 的扩展。
详细给出了运用Net -SNMP 开发工具在嵌入式Power PC 平台上开发代理进行私有MIB 扩展的实现方法。
关键词:SNMP ;Net -SNMP ;代理;私有MIB ;Power PC 中图法分类号:TP319 文献标识码:A1 代理扩展的意义和私有MIB 文件的定义随着网络技术的发展,各种网络设备的功能不断增强,这使得各厂商对网络系统的可管理性也提出了更高的要求。
目前网络管理系统的行业标准是SNMP (简单网络管理协议)。
该协议至今共有3个版本,当前大部分设备厂商提供的网络管理系统基本上是使用v2版本,这些设备都配有标准的SNMP 代理模块,包括MIB II 及其相关组件。
但是,为了更好地针对网络设备的结构功能等具体信息对网络系统中各网元进行有效管理,许多设备厂商根据自身设备的特点及管理要求定义了自己的私有MIB ,将原有的标准MIB II 进行了扩展,从而网络设备的可管理性大大增强,更高效地实现了配置、性能、故障、安全和计费这5大要求[1]。
MIB 即管理信息库,是存储被管网元信息的数据库,它采用树状结构,反映了该MIB 树上每一节点中被管资源的状态[2]。
基于工业以太网交换机的SNMP代理实现1引言尹雪,于海(国网电力科学研究院信通所,南京211100)摘要:SNMP(简单网络管理协议)是当今最流行的网络管理协议。
该文以工业以太网交换机为平台,构建了以太网交换机的SNMP网络管理模型,实现了基于以太网交换机的SNMP代理。
读者可以了解到带有网络管理功能的交换机的软硬件体系结构,MIB 库的构建,在Linux下SNMP代理软件的实现方法。
同时,也介绍了在Linux下Netlink socket的应用及设备驱动程序的编写。
关键词:以太网交换机;简单网络管理协议;管理信息库SNMP Agent Realization Based on Industry Ethernet SwitchYIN Xue, YU Hai(Research Institute of Information Technology & Communication, SGEPRI, Nanjing 211100, China)Abstract: SNMP is the most popular network management protocol now. This paper take the industry Ethernet switch as a platform, An Ethernet switch's network management model is constructed based on the SNMP, the SNMP agent is realized on the Ethernet switch. The reader could know the software and hardware architecture of managed switch, how to build MIB and the achieving of the SNMP agent software on Linux platform. At the same time, the application of Netlink socket on Linux, and the writing of Linux device driver are also proposed.Keywords: ethernet switch, SNMP, MIB网络是一个非常复杂的分布式系统,为了对网络资源进行监视、测试、配置、评价和控制,我们需要对网络进行必要的管理,这便是人们熟知的网管的概念。
NET-SNMP代理配置手册中文版译者:ioerr2010年7月19日原文属于windows版net-snmp 5.5.0版自带chm文档中的snmpd.conf部分,如果大家在类unix环境中使用,可能会有区别。
从5月21日开始翻译到现在差不多2个月,校稿一次,实在没有心力校稿第二次了,呵呵。
费了这半天劲希望对大家有所帮助,如果发现翻译有错误欢迎发邮件:ZHL98040011@,我会立即更正,以便大家参考。
大家可以随意转发,但请带上俺的名字ioerr,每当我在别的网站看见我翻译的文档,心中之得意…嘿嘿:D。
但请勿用于商业用途,否则后果自负。
还有下面几个文档在我的博客上(/ioerr),欢迎参考。
MRTG配置参考手册NTOP中文手册openBSD 4.2 packages 和ports系统SNMPD.CONF(5) Net-SNMP SNMPD.CONF(5)名称snmpd.conf - Net-SNMP's snmp代理的配置文件描述Net-SNMP代理使用一个或者更多个配置文件来控制它的运行和提供管理信息。
这些配置文件(snmpd.conf和snmpd.local.conf)位于snmp_config(5)手册页指出的目录中。
snmpconf(是一个perl脚本程序)可以为snmp代理生成最常用的配置文件。
查看snmpconf(1)来获取进一步的详细信息,或者尝试运行命令:snmpconf -g basic_setup这里有大量的指令可以指定,绝多数可以被划入四个大类:* 用户访问控制类* 控制代理提供信息类* 本地系统监控类* 代理功能扩展类有一些指令不能自然的划入这四类中,但是这四类这些指令包括了典型的snmpd.conf 配置文件的主要部分。
全部指令请运行以下命令来获得:snmpd –H代理行为控制虽然绝大多数指令与代理提供的MIB包含的信息有关,但还有一些指令用于控制snmpd代理本身--通常它被认为是一个提供服务的守护进程。
net-snmp配置开发及注意事项分类:网络2010-03-11 13:29 1781人阅读评论(1) 收藏举报一.安装及配置SNMP (win32 环境)1. 下载从下载到最新的 net-snmp (目前最新版本 5.4.1 )net-snmp-5.4.1.zip2. 解压编译解压后,可以看到有一个 win32 目录,里面存放的是和 win32 环境相关的文件,有 3 个 dsw :libsdll.dsw 编译 lib 文件和 dll 文件的工程win32.dsw 编译 lib 文件和工具文件如 snmpget,snmpset 的工程win32sdk.dsw 类似于 win32.dsw ,区别在于:需要安装Platform SDK 。
如果需要 agent 能支持 interfaces 等一些高级功能,必须用此工程编译。
XPSP2 Platform SDK 的下载地址/msdownload/platformsdk/sdkupdate/XPSP2FULLIn stall.htm只需要安装 Core SDK 就可以了,安装完后需要从开始菜单中 Register 一下。
注意编译的顺序,最好先编译 libsdll.dsw ,把 netsnmp.lib ,netsnmpagent.lib , netsnmphelpers.lib , netsnmpmibs.lib ,netsnmptrapd.lib 文件先编译好,再编译 win32sdk.dsw 中的项目。
3. 安装运行 win32 目录下的 install-net-snmp.bat 批处理文件,会把上一步编译生成的文件及相关的头文件等拷贝到 c:/usr 目录。
4. 配置在 c:/usr/etc/snmp 目录添加配置文件 snmpd.conf ,添加如下内容:rocommunity publicrwcommunity private它表示的含义是,启动 agent 服务后,通过 public 共同体是只读的,private 共同体可读也可写。
[转]Linux下NET-SNMP简单例⼦这⾥我们讨论怎么写个简单的应⽤。
它只是简单的接受来⾃远程主机的信息。
下⾯是源代码和makefile* 1) free the response.* 2) close the session.*/makefile:if (response)snmp_free_pdu(response); snmp_close(ss);SOCK_CLEANUP;return (0);} /* main() */⾸先,必须安装net-snmp⼯具,⾥⾯包含有代理软件(在被管理的远端主机上相应我们的请求),管理端(在本地接收信息),和我们开发必须的库和头⽂件。
所以在我们的程序中包含以下头⽂件:#include <net-snmp/net-snmp-config.h>#include <net-snmp/net-snmp-includes.h>下⼀步,我们考虑到版本问题,我们做⼀些代码编译的宏定义,不过我们默认是SNMPv3,第3版本⽐以前的版本复杂,也更安全。
/* change the word "define" to "undef" to try the (insecure) SNMPv1 version */#define DEMO_USE_SNMP_VERSION_3#ifdef DEMO_USE_SNMP_VERSION_3#include "net-snmp/transform_oids.h"const char *our_v3_passphrase = "The Net-SNMP Demo Password";#endif下⼀步定义主函数:main() {第⼀个我们要声明的变量:struct snmp——session 保存远端主机的信息,我们要声明两个,⼀个⽤于填写远端信息,⼀个⽤于库返回的指针;strcut snmp_pdu:⽤于我们要发送给远端主机的结构信息,我们也要声明两个,另⼀个接收返回信息。
基于SNMP的嵌入式Proxy代理的设计与实现马素刚;李宥谋【摘要】许多早期的嵌入式设备通过专用接口(如RS-232)进行管理,不支持网络管理.采用基于简单网络管理协议(SNMP)的Proxy 代理,可以满足嵌入式设备的网络管理需求.对Proxy代理的工作原理进行了说明,阐述了Proxy代理的软硬件设计方法,并将Proxy 代理成功地应用于微波通信设备,为嵌入式设备快速升级提供了一种通用的解决方案.%Most of the early stage embedded devices were using specific interface, e. g. , RS-232 for management, while did not support network management. The Proxy Agent based on simple network management protocol ( SNMP) is able to meet the requirement of network management for embedded devices. The operational principle of Proxy Agent is explained, the design method of the software and hardware are described. The Proxy Agent has been successfully applied for microwave communication device; this provides a general solution for fast upgrading of embedded devices.【期刊名称】《自动化仪表》【年(卷),期】2011(032)011【总页数】3页(P43-45)【关键词】简单网络管理协议;管理信息库;串口通信;监测;实时性【作者】马素刚;李宥谋【作者单位】西安邮电学院计算机学院,陕西西安710121;西安邮电学院计算机学院,陕西西安710121【正文语种】中文【中图分类】TP393+.70 引言随着嵌入式技术与网络通信技术的发展,嵌入式设备不断推陈出新,对设备的网络化也提出了更高的要求。
SNMP代理和Web网管系统的设计与实现步园明【摘要】The scale and the complexity of the network increase continuously and the drawbacks of the traditional network management have become even more obviously.Web-based management shows great vitality by light of its flexibility,ease and cost-effectiveness.It represents the developing direction of the network management.The network management system is implemented which was based on Web technology and supported SNMP protocol.The system drew on the advantages of SNMP,such as simple,easy to use and being widely used.As adopted Web technology,this system was removable and platform-independent.%随着网络规模不断扩大,网络结构日益复杂,传统的网络管理模式的弊端愈加明显,而基于Web的网络管理技术以其灵活性、易操作性和高性价比等特点表现出了强大的生命力,代表了网络管理发展的方向。
设计实现了一个基于Web技术且支持SNMP 协议的网络管理系统。
该系统汲取了SNMP的简单、易用、应用广泛的优点,同时又融入了Web技术,使该系统具有了可移动性和平台独立性等特点。
【期刊名称】《电子设计工程》【年(卷),期】2012(020)002【总页数】4页(P48-50,53)【关键词】网络管理;简单网络管理协议;管理信息库;代理;基于Web的网络管理【作者】步园明【作者单位】江南大学物联网工程学院,江苏无锡214122【正文语种】中文【中图分类】TP393.07SNMP在网络管理领域有着重要地位,但传统的基于SNMP的网络管理多采用C/S结构[1]。
基于NETCONF协议的网管平台中代理端的设计与实现中期报告本篇中期报告主要介绍基于NETCONF协议的网管平台中代理端的设计与实现的进展情况。
一、研究背景为了实现网络设备的统一管理和配置,网络设备管理协议逐渐发展起来。
其中,基于SNMP协议的网管平台是最为常用的一种。
然而,随着网络设备数量的不断增加和网络结构的不断复杂化,SNMP协议已经不再满足快速、高效进行配置和管理的需求。
为此,NETCONF协议应运而生。
NETCONF协议是一种基于XML的网络设备配置协议,它采用SSH 或TLS作为安全传输协议,可以实现网络设备的远程管理和配置。
在NETCONF协议中,设备通过Datacenter提交XML格式的请求消息,然后设备返回XML格式的响应消息,从而实现管理和配置。
NETCONF协议操作具备幂等性和事务特性,支持事务回滚和错误处理机制,大大提高了网络管理的效率和可靠性。
因此,越来越多的网络设备厂商开始广泛采用NETCONF协议进行管理和配置。
二、研究目标本文旨在基于NETCONF协议的网管平台中代理端的设计与实现。
主要目标如下:1. 实现NETCONF协议的代理端,通过SSH或TLS建立安全连接,接收和处理来自Datacenter的XML格式请求消息,返回XML格式的响应消息。
2. 支持NETCONF协议的所有操作,包括读取、修改、创建和删除操作,支持事务回滚和错误处理机制。
3. 开发基于Web的网管平台,实现网络拓扑图的展示、设备的管理和配置,支持多用户管理和权限控制。
三、进展情况目前,本项目已完成代理端的设计与实现,能够支持NETCONF协议的所有操作,并且具备事务回滚和错误处理机制。
代理端采用Java编写,使用Apache Mina实现SSH和TLS的建立和管理,使用OpenYMSG库提供XML解析和生成的功能。
代理端的实现包括以下部分:1. 设备管理模块:根据设备类型和版本号自动加载设备模板,支持设备的添加、修改和删除,支持设备的状态监测和日志记录。
用NET-SNMP软件包开发简单客户端代理1SNMP协议简介作为一个完备的系统,必须有一套反馈机制来调整系统的运行。
简单网络管理协议产生的目的,就是为了使松散的网络更加有效地运行。
它广泛的应用于监测网络的状态、网络设备的运行情况、各种电脑设备以及一些辅助的外围设备,使得网络管理员通过对节点的查询和设置,发现并定位故障,进而采取相应措施维护网络。
网络管理的研究已经发展了许多年,对于日益纷繁的需求,简捷性和扩展性仍是研究的主题。
本文档的目的是关于客户端代理的开发,不是对协议发展的探讨。
本文中协议相关资料可以参考RFC文档:RFC1155:Structure and Identification of Management Information for TCP/IP-basedInternetsRFC1157:SNMPRFC1212:Concise MIB DefinitionsRFC1215:A Convention for Defining TrapsRFC1905: Protocol Operations for SNMPv2RFC2011: SNMPv2 Management Information Base for the Internet Protocol using SMIv2RFC2578: Structure of Management InformationRFC2579: Textual ConventionsRFC2580: Conformance Statements1.1网络管理协议结构SNMP的网络管理模型包括以下关键元素:管理端、代理端、管理信息库、网络管理协议。
它基于tcp/ip 协议,属于应用层协议,通过udp协议通信。
管理端与代理端的通信原语包括:Get,Getnext,Set,Trap。
对应这些命令相应的SNMP结构框架实现如图1所示图1.SNMP实现结构图从上图我们可以看到协议,消息传递方式等。
另外,在udp数据包中,发送信息是按ASN.1自解释方式编码的。
但对于许多小型被监管设备,可能会运行不同协议,或者运行完整代理花费很大,于是产生了代管设备,主代理和子代理的概念。
在小型设备上运行子代理,把数据发给主代理来完成snmp协议的通信。
1.2管理信息库SNMP以MIB(管理信息结构)为基础来描述被监管资源,由此建立的数据集和称之为MIB库。
它是一种树型结构的数据库,被监管的对象都处于叶子节点上。
每个被监管对象都由一个唯一的对象标识符来识别。
对象信息的存储结构由MIB定义的简单变量和表来构造,它一般包含描述名(对象标识符)、数据类型、读写规则、功能描述、状态。
MIB的定义可以查询RFC1155,它定义了四种基本数据类型:INTEGER,OCTET STRING,OBJECT IDENTIFIER和NULL。
由这四种基本类型通过SEQUENCE构造列和表,以及新类型如:NetworkAddress、IpAddress、Counter、Gauge、TimeTicks、Opaque等,以及宏定义。
当然,根据需要还可以构造自己的数据类型。
1.3SNMP的版本目前SNMP有三个版本snmpV1、snmpV2、snmpV3。
针对原始的V1版,93版的v2加入了安全机制,但用户对其并不感兴趣,在96版的v2中又删除了安全机制,99年开始酝酿的v3版开始提出一个snmp的统一架构,采用User-based 安全模型和View-based访问控制模型提供SNMP网络管理的安全性。
安全机制是SNMPv3的最具特色的内容。
2SNMP开发软件包目前,开发SNMP的软件包有许多可以选择如SNMP++、AGENT++、NET-SNMP等。
这里我们选用的是NET-SNMP。
首先它是一个开源软件,其次基于C语言开发,便于移植。
ucd-snmp源自于卡耐基.梅隆大学的SNMP软件包CMU snmp 2.1.2.1, 由加州大学Davis分校(University of California at Davis)开发与维护, 所以命名为ucd-snmp。
2000年11月ucd-snmp项目转到由SourceForge()管理, 并更名为net-snmp。
2.1NET-SNMP简介和安装net-snmp早先是在Unix平台下开发的。
现可以移植到:* HP-UX (10.20 to 9.01 and 11.0)* Ultrix (4.5 to 4.2)* Solaris SPARC/ULTRA (2.8 to 2.3), Intel (2.9) and SunOS (4.1.4 to 4.1.2)* OSF (4.0, 3.2)* NetBSD (1.5alpha to 1.0)* FreeBSD (4.1 to 2.2)* BSDi (4.0.1 to 2.1)* Linux (kernels 2.4 to 1.3)* AIX (4.1.5, 3.2.5)* OpenBSD (2.8, 2.6)* Irix (6.5 to 5.1)* OS X (10.1.1 and 10.1.2)* Dynix/PTX 4.4* QNX 6.2.1A* Windows等多个平台。
Net-snmp是一个代理端软件,但也提供管理端的查询工具。
安装有两种方式:一是直接安装的二进制包,二是需要编译的源代码。
我们在windows 平台上安装的二进制包,在虚拟Unix平台CygWin上编译安装的源代码。
在CygWin中,按照常规的configure, make ,make install三个步骤就可成功编译安装源代码。
在windows上的二进制包的安装就非常简单了,只需按提示就可完成。
源代码和二进制包可从网站下载,本文中所用的是net-snmp5.2.1.2的版本。
之所以要先安装一个可运行的net-snmp系统,是因为我们开发程序运行环境的配置文件,是按照默认安装路径内部设定搜索的;另外,还可以利用其提供的配置工具来生成配置文件,利用提供的查询工具来测试程序。
2.2NET-SNMP代理的配置运行net-snmp之前先要进行环境设置,否则无法查询到结果。
环境配置文件由snmpconf命令交互生成。
运行snmpconf后,提示有三个配置文件:snmpd.conf,snmptraps.conf,snmp.conf。
其中,snmpd.conf用来配置代理和管理端通信时的参数,只需设置两个参数就可正常运行程序了,一是community name,有只读rocommunity和读写rwcommunity之分,相当于访问账号,这里设rocommunity为public;另一个是访问端口,设为snmp协议默认的161端口。
Snmp.conf是与mib库设置相关的配置文件。
Snmptraps.conf用来设置代理陷阱,本文没有讨论陷阱。
配置文件可以放在三个地方,一是盘符根目录下,二是~\usr\etc\snmp目录下,三是~\usr\snmp\persist,按标准路径最好是第二种方式。
另外,snmpconf和mib2c工具都是基于perl脚本的,在windows下需要安装perl才能运行。
按照帮助文档的提示,下载ActivePerl安装。
并按照帮助文档中perl的安装要求,下载在win32环境下所需的其他组件,配置并测试perl模块,使snmpconf和mib2c能正常运行。
2.3NET-SNMP工具的使用当环境设置好后,运行snmpd.exe,即snmp代理进程,就可以使用管理工具查询其中的信息了。
Net-snmp提供的查询工具有很多,这里只介绍常用的几个,而且大部分查询命令的格式都大同小异。
这里以.dod.internet.mgmt.mib-2.system为例,其Oid为:.1.3.6.1.2.1.1。
结构如下:………system .1.3.6.1.2.1.1|——sysDescr .1.3.6.1.2.1.1.1|——sysObjectID .1.3.6.1.2.1.1.2……1) snmpget.exe——snmpget [OPTIONS] AGENT OID [OID]...用来查询叶子节点实例:snmpget –v2c –c public localhost .1.3.6.1.2.1.1.5.0-v2c:使用的是2c的snmp版本,可选1|2c|3-c public:community 名为publiclocalhost: 代理的地址,这里因为代理运行在本机上,所以可用localhost.1.3…….0:这里查询的是.dod.internet.mgmt.mib-2.system.sysName,其Oid为.1.3.6.1.2.1.1.5,使用这个命令使叶子节点要在后面加.0。
2) snmpgetnext.exe——snmpgetnext [OPTIONS] AGENT OID [OID]...通过父节点查询叶子节点实例:snmpgetnext –v2c –c public localhost .1.3.6.1.2.1.1这个命令假设不知道叶子节点,但知道父节点,则可遍历到第一个叶子节点。
此例结果等同于上一个例子。
Oid也可输入.1.3.6.1.2,因为它是按字典顺序遍历的。
3) snmptable.exe——snmptable [OPTIONS] AGENT TABLE-OID 用来查询表对象实例:snmptable –v2c –c public localhost .1.3.6.1.2.1.4.20这个命令查询表对象,本例中查询的是.dod.internet.mgmt.mib-2.ip.ipAddrTable4)snmpset.exe——snmpset [OPTIONS] AGENT OID TYPE VALUE [OID TYPE VALUE]...修改数据实例:snmpset –v2c –c public localhost .1.3.6.1.2.1.4.21.1.3.x i 99x:在这里是索引值,表示表项中某一列的第几个数据,根据要求设定i: 这里是列数据类型,包括i: INTEGER, u: unsigned INTEGER, t:TIMETICKS,a: IPADDRESS o: OBJID, s: STRING, x: HEX STRING,d: DECIMAL STRING, b: BITS U: unsigned int64,I: signed int64, F: float, D: double5) mib2c 用来把mib库文件编译成.c和.h模版。