SNMP_MIB功能开发步骤_liujun

合集下载

snmp使用哪几种操作_snmp怎么使用_snmp的使用教程

snmp使用哪几种操作_snmp怎么使用_snmp的使用教程

snmp使用哪几种操作_snmp怎么使用_snmp的使用教程一、SNMP概述SNMP 的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。

随后,人们对SGMP 进行了很大的修改,特别是加入了符合Internet 定义的SMI 和MIB 体系结构,改进后的协议就是著名的SNMP。

SNMP 的目标是管理互联网Internet 上众多厂家生产的软硬件平台,因此SNMP 受Internet 标准网络管理框架的影响也很大。

现在SNMP 已经出到第三个版本的协议,其功能较以前已经大大地加强和改进了。

SNMP 的体系结构是围绕着以下四个概念和目标进行设计的:(1)保持管理代理(Agent)的软件成本尽可能低;(2)最大限度地保持远程管理的功能,以便充分利用Internet 的网络资源;(3)体系结构必须有扩充的余地;(4)保持SNMP 的独立性,不依赖于具体的计算机、网关和网络传输协议。

在最近的改进中,又加入了保证SNMP 体系本身安全性的目标。

二、snmp使用哪几种操作1)get-request操作:从代理进程处提取一个或多个参数值。

2)get-next-request操作:从代理进程处提取一个或多个参数的下一个参数值。

3)set-request操作:设置代理进程的一个或多个参数值。

4)response操作:返回的一个或多个参数值。

这个操作是由代理进程发出的。

它是前面3中操作的响应操作。

5)trap操作:代理进程主动发出的报文,通知管理进程有某些事情发生。

请求标识符字段,是为了和Response报文对应起来的;用于确定Response是针对哪个Get 操作的。

三、snmp怎么使用_snmp的使用教程1、安装SNMP 服务1)打开Windows 组件向导。

2)在组件中,单击管理和监视工具(但是请不要选中或清除其复选框),然后单击详细信息。

3)选中简单网络管理协议复选框,然后单击确定。

基于SNMP_MIB的网络数据获取系统设计与实现

基于SNMP_MIB的网络数据获取系统设计与实现

转基于SNMP/MIB的网络数据获取系统设计与实现(一)一,简单网络管理协议SNMP及相关理论介绍1,简单网络管理协议SNMP(1),什么是网络管理网络管理分为两类。

第一类是网络应用程序、用户帐号(例如文件的使用)和存取权限(许可)的管理。

它们都是与软件有关的网络管理问题。

这里不作讨论。

网络管理的第二类是由构成网络的硬件所组成。

这一类包括工作站、服务器、网卡、路由器、网桥和集线器等等。

通常情况下这些设备都离你所在的地方很远。

正是由于这个原因,如果当设备有问题发生时网络管理员可以自动地被通知的话,那么一切事情都好办。

但是你的路由器不会象你的用户那样,当有一个应用程序问题发生时就可以打电话通知你,而当路由器拥挤时它并不能够通知你。

为了解决这个问题,厂商们已经在一些设备中设立了网络管理的功能,这样你就可以远程地询问它们的状态,同样能够让它们在有一种特定类型的事件发生时能够向你发出警告。

这些设备通常被称为"智能"设备。

网络管理通常被分为四类:被管理节点(或设备):即你想要监视的设备代理:用来跟踪被管理设备状态的特殊软件或固件(firware)网络管理工作站:与在不同的被管理节点中的代理通信,并且显示这些代理状态的中心设备网络管理协议:被网络管理工作站和大理用来交换信息的协议当设计和构造网络管理的基础结构时,你需要记住下列两条网络管理的原则:1.由于管理信息而带来的通信量不应明显的增加网络的通信量。

2.被管理设备上的协议代理不应明显得增加系统处理的额外开销,以致于该设备的主要功能都被削弱了。

(2),SNMP的背景美国国防部设计了世界上头几个包交换网之一的ARPANET,在70年代,TCP/IP协议族正式被定为军方通信标准,随着此协议的广泛使用,网络管理成了一件大事。

在80年代未和90年代初,网络迅速发展,许多子网数目的增多使监视网络活动成为一种必须。

在网络管理的初期,对网络的管理停留在使用ICMP和PING的基础上,但是随着网络内主机数据的不断增多,这种简单的工具已经不可能完成网络管理的工作了。

SNMP+MIB完整手册

SNMP+MIB完整手册

SNMP MIB完整手册/art/201007/209214.htmSNMP MIB是SNMP协议软件中主要的一个模块。那么MIB的主要功能就是管理信息库。那么一些常用的代码编辑,我们在前面的文章也有一些涉及。但是不少朋友还是对于SNMP MIB不理解。为此,我们整理了下面的文章帮助大家来学习这部分内容。最近要做一些服务器和设备的监控, 自带的cacti模板已不能满足需求, 经过一天调试, 目前已实现了bind9 mysql bind等数据流量的分析(其实也就是用脚本取数据,最后用rrdtool 画图出来), 但学习的过程中, 发现不大了解SNMP MIB概念, google了一下,下面的文章应该能解答一部分与我有同样问题的朋友们(我简单进行了排版整理)SNMP协议详解简单网络管理协议(SNMP:Simple Network Management Protocol)是由互联网工程任务组(IETF:Internet Engineering Task Force )定义的一套网络管理协议。该协议基于简单网关监视协议(SGMP:Simple Gateway Monitor Protocol)。利用SNMP,一个管理工作站可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。虽然SNMP开始是面向基于IP的网络管理,但作为一个工业标准也被成功用于电话网络管理。1. SNMP基本原理SNMP采用了Client/Server模型的特殊形式:代理/管理站模型。对网络的管理与维护是通过管理工作站与SNMP代理间的交互工作完成的。每个SNMP从代理负责回答SNMP管理工作站(主代理)关于SNMP MIB定义信息的各种查询。下图是NMS公司网络产品中SNMP 协议的实现模型。SNMP协议的实现模型SNMP代理和管理站通过SNMP协议中的标准消息进行通信,每个消息都是一个单独的数据报。SNMP使用UDP(用户数据报协议)作为第四层协议(传输协议),进行无连接操作。SNMP消息报文包含两个部分:SNMP报头和协议数据单元PDU。数据报结构如下图:数据报结构版本识别符(version identifier):确保SNMP代理使用相同的协议,每个SNMP代理都直接抛弃与自己协议版本不同的数据报。团体名(Community Name):用于SNMP从代理对SNMP 管理站进行认证;如果网络配置成要求验证时,SNMP从代理将对团体名和管理站的IP地址进行认证,如果失败,SNMP从代理将向管理站发送一个认证失败的Trap消息。协议数据单元(PDU):其中PDU指明了SNMP的消息类型及其相关参数。2. 管理信息库MIBIETF规定的管理信息库MIB(由中定义了可访问的网络设备及其属性,由对象识别符(OID:Object Identifier)唯一指定。MIB是一个树形结构,SNMP协议消息通过遍历SNMP MIB 树形目录中的节点来访问网络中的设备。下图给出了NMS系统中SNMP可访问网络设备的对象识别树(OID:Object Identifier)结构。给出了对一个DS1线路状态进行查询的OID设置例子。SNMP可访问网络设备的对象识别树(OID:Object Identifier)结构3. SNMP的五种消息类型SNMP中定义了五种消息类型:Get-Request、Get-Response、Get-Next-Request、Set-Request 、Trap(1)Get-Request 、Get-Next-Request与Get-ResponseSNMP管理站用Get-Request消息从拥有SNMP代理的网络设备中检索信息,而SNMP 代理则用Get-Response消息响应。Get-Next-Request用于和Get-Request组合起来查询特定的表对象中的列元素。如:首先通过下面的原语获得所要查询的设备的接口数:{iso org(3) dod(6) internet(1) mgmt(2) mib(1) interfaces(2) ifNumber(2)}后再通过下面的原语,进行查询(其中第一次用Get-Request,其后用Get-Next-Request):{iso org(3) dod(6) internet(1) mgmt(2) mib(1) interfaces(2) ifTable(2)}(2)Set-RequestSNMP管理站用Set-Request 可以对网络设备进行远程配置(包括设备名、设备属性、删除设备或使某一个设备属性有效/无效等)。(3)TrapSNMP代理使用Trap向SNMP管理站发送非请求消息,一般用于描述某一事件的发生。SNMP管理信息库MIB管理信息库SNMP MIB指明了网络元素所维持的变量(即能够被管理进程查询和设置的信息)。MIB给出了一个网络中所有可能的被管理对象的集合的数据结构。SNMP的管理信息库采用和域名系统DNS相似的树型结构,它的根在最上面,根没有名字。下图画的是管理信息库的一部分,它又称为对象命名(objectnamingtree)。对象命名(objectnamingtree)SNMP MIB管理信息库的对象命名举例对象命名树的顶级对象有三个,即ISO、ITU-T和这两个组织的联合体。在ISO的下面有4个结点,其中的饿一个(标号3)是被标识的组织。在其下面有一个美国国防部(Department of Defense)的子树(标号是6),再下面就是Internet(标号是1)。在只讨论Internet中的对象时,可只画出Internet以下的子树(图中带阴影的虚线方框),并在Internet结点旁边标注上{1.3.6.1}即可。在Internet结点下面的第二个结点是mgmt(管理),标号是2。再下面是管理信息库,原先的结点名是mib。1991年定义了新的版本MIB-II,故结点名现改为mib-2,其标识为{1.3.6.1.2.1},或{Internet(1) .2.1}。这种标识为对象标识符。最初的结点mib将其所管理的信息分为8个类别,见表1。现在de mib-2所包含的信息类别已超过40个。表1 最初的结点mib管理的信息类别应当指出,SNMP MIB的定义与具体的网络管理协议无关,这对于厂商和用户都有利。厂商可以在产品(如路由器)中包含SNMP代理软件,并保证在定义新的MIB项目后该软件仍遵守标准。用户可以使用同一网络管理客户软件来管理具有不同版本的MIB的多个路由器。当然,一个没有新的MIB项目的路由器不能提供这些项目的信息。这里要提一下SNMP MIB中的对象{1.3.6.1.4.1},即enterprises(企业),其所属结点数已超过3000。例如IBM为11.3.6.1.4.1.2},Cisco为{1.3.6.1.4.1.9},Novell为{1.3.6.1.4.1.23}等。世界上任何一个公司、学校只要用电子邮件发往iana-mib@进行申请即可获得一个结点名。这样各厂家就可以定义自己的产品的被管理对象名,使它能用SNMP进行管理。。

snmp mib的用法

snmp mib的用法

snmp mib的用法SNMP(Simple Network Management Protocol)MIB (Management Information Base)是用于管理网络设备的一种标准协议。

MIB是一种数据库,其中包含了关于网络设备的信息,例如设备的配置、性能统计和状态信息等。

SNMP协议通过MIB来管理网络设备,允许网络管理员监控和控制网络设备。

首先,让我们来看一下SNMP MIB的结构。

SNMP MIB由一组层次结构的对象标识符(OID)组成,每个OID对应一个特定的管理信息。

这些OID按照树状结构进行组织,类似于文件系统中的目录结构,使得管理者可以轻松地定位到所需的信息。

SNMP MIB的用法主要包括以下几个方面:1. 监控,通过SNMP MIB,网络管理员可以监控网络设备的性能和状态信息。

例如,可以使用MIB中的OID来查询设备的CPU利用率、内存使用情况、接口流量等信息。

2. 配置,SNMP MIB也可以用于配置网络设备。

管理员可以使用MIB中的OID来修改设备的配置参数,例如修改路由器的路由表、配置交换机的VLAN等。

3. 告警,通过监控MIB中的特定OID,管理员可以设置告警规则,当设备的某些指标超出预设的阈值时,系统可以自动发送告警通知,以便及时采取措施。

4. 故障诊断,当网络设备出现故障时,管理员可以通过查询MIB中的信息来进行故障诊断,找出故障的原因和位置。

5. 性能优化,通过分析MIB中的性能数据,管理员可以对网络设备进行性能优化,提高网络的稳定性和性能。

总之,SNMP MIB是管理网络设备的重要工具,通过合理利用MIB中的信息,可以帮助管理员更好地监控、配置和优化网络设备,保障网络的正常运行。

MIB浏览与SNMP操作

MIB浏览与SNMP操作

MIB浏览与SNMP操作MIB浏览与SNMP操作是指使用管理信息库(MIB)和简单网络管理协议(SNMP)来监控和管理网络设备的过程。

MIB是一种描述网络设备的数据结构和属性的标准格式,SNMP是一种网络协议,用于收集和管理网络设备的信息。

一旦了解了MIB树的结构,就可以使用SNMP操作来监控和管理网络设备。

SNMP操作包括读取、写入和修改网络设备的属性值,以及重启设备、收集性能数据等操作。

具体来说,使用SNMP操作可以实现以下功能:1.获取设备的属性值:通过SNMP操作可以获取设备的各种属性值,如接口状态、CPU利用率、内存使用情况等。

这些属性值可以帮助管理员了解设备当前的状态和性能。

2.配置设备:通过SNMP操作可以修改设备的配置,比如设置网络接口的IP地址、启用或禁用一些功能等。

这使得管理员可以远程管理设备,而无需直接访问设备。

3.重启设备:通过SNMP操作可以重启设备。

这在一些情况下非常有用,比如设备出现故障或需要应用配置更改时。

4.收集性能数据:通过SNMP操作可以定期收集设备的性能数据,比如带宽利用率、丢包率等。

这些数据可以用于性能监控和故障诊断。

5.发送警报信息:通过SNMP操作可以设置警报规则,当设备达到一些预设的阈值时,可以向管理员发送警报信息。

这使得管理员可以及时采取措施,防止设备故障或网络中断。

总之,MIB浏览与SNMP操作是网络管理中的重要工具,它们可以帮助管理员了解和管理网络设备。

通过浏览MIB树和使用SNMP操作,管理员可以获得设备的详细信息,并对设备进行配置和监控,以确保网络的正常运行。

实验二 SNMP MIB信息的访问

实验二 SNMP MIB信息的访问

实验二SNMP MIB信息的访问一、实验目的本实验的主要目的是学习SNMP服务在主机上的启动与配置,以及用MIB浏览器访问SNMP MIB对象的值,并通过直观的MIB-2树图加深对MIB被管对象的了解。

二、实验内容1、SNMP服务在主机上的启动和配置;2、分析MIB-2树的结构;3、通过get、getNext、set、trap几种操作访问MIB对象的值。

三、实验工具AdventNet MIB浏览器、或iReasoning MIBBroswer或基于UNIX、LINUX/FreeBSD 平台的SNMP命令行工具、或HP Openview自带的MIB浏览工具。

四、实验步骤1、在本地主机上启动SNMP服务并配置共同体。

1)控制面板-〉打开或关闭Windows功能启动(右键列表中或双击打开的对话框中);在SNMP service属性对话框中配置共同体(默认为public);2、启动MIB浏览器,在host框设置被监测主机的IP地址(默认为localhost)、在community框设置被检测主机所配置的SNMP服务的共同体(如public);3、观察左侧结构面板中MIB树图结构;4、访问MIB对象。

在左侧结构面板中选择要访问的MIB对象,单击使其凸显,然后用鼠标单击工具栏中的get按钮和getNext按钮(或菜单栏中Operations下的Get和GetNext,或快捷键Ctrl+G和Ctrl+N)。

5、观察右侧面板中的显示信息。

6、访问MIB书的叶子节点{iso(1)org(3)internet(1)mgmt(2)mib-2(1)ip(4)ipRouteTable(21)}。

单击该叶子节点,使其反白显示。

右键,选择“Table View ”可以获得路由表信息。

五、实验报告1、根据软件左侧MIB导航图画出MIB-2树图(到组),并画出UDP子树(到基本被管对象)。

2、获取基本信息:2.1System组,获取设备基本信息1. 获取设备描述对象名:对象标识符:实例标识符:R1的值:主机的值:2. 获取设备的名称对象名:对象标识符:实例标识符:R1的值:主机的值:3. 获取设备的联系人信息对象名:对象标识符:实例标识符:R1的值:主机的值:4. 获取设备的位置信息对象名:对象标识符:实例标识符:R1的值:主机的值:6. 获取设备的服务信息对象名:对象标识符:实例标识符:R1的值:提供的服务层次:主机的值:提供的服务层次:2.2 interfaces组,读取接口信息1. 获取各设备的接口数目:对象名:对象标识符:实例标识符:R1的值:R2的值:主机的值:2. 获取设备各接口的基本信息:3. 获取设备各接口的性能参数:使用“ping –t R2的远端接口的IP ”命令测试与R2的连通性,制造接口的通信数据,分别在两个时间点对以下数据进行读取。

SNMP MIB 介绍

SNMP MIB 介绍

SNMP MIB 介紹對MIB檔中一些常見的巨集定義的描述1.DEFINITIONS ::= BEGINSNMP始終使用ASN.1概念中的描述塊(module)來組織ASN.1對象的,ASN.1的描述塊是一些相關描述語句的集合,module的結構如下<<module>> DEFINITIONS ::= BEGIN<<linkage>><<declarations>>END2.<<basetype>> ::= TEXTUAL-CONVENTION定義了對標準資料類型的進行擴展的語法很多MIB定義中都會先定義一些基於標準類型的擴展類型,如:CiFlowDirection ::= TEXTUAL-CONVENTIONSTATUS currentDESCRIPTION"The direction of data flow thru a circuit.transmit(1) - Only transmitted datareceive(2) - Only received databoth(3) - Both transmitted and received data."SYNTAX INTEGER {transmit(1),receive(2),both(3)}CiFlowDirection 是基於INTEGER的枚舉類型3.<<mibname>> MODULE-IDENTITY該定義添加了一個公共的標示段來對整個資訊描述塊進行頂層的文字描述,以加強對管理MIB描述塊的文檔管理和控制,每個MIB定義中都會有該定義。

如:circuitIfMIB MODULE-IDENTITY4.OBJECT-IDENTIFIFIER聲明一個節點如:atmClpTaggingNoScr OBJECT-IDENTITY5.OBJECT-TYPE如:ciCircuitTable OBJECT-TYPESYNTAX SEQUENCE OF CiCircuitEntryMAX-ACCESS not-accessibleSTATUS currentDESCRIPTION"The Circuit Interface Circuit Table."::= { ciObjects 1 }包括了SNMP定義該管理物件的全部資訊,相當於一個範本。

实验一MIB浏览和SNMP的操作

实验一MIB浏览和SNMP的操作

9
Windows中SNMP效劳的测试
在SNMP效劳安装、配置完成并重新启动SNMP效劳后, 管理站就可以向SNMP代理发出请求报文查询信息,并接 收代理的响应报文了。
测试程序:snmputilg.exe或AdventNet SNMP Utilities 等。
可以启动光盘中/support/tools/setup.exe安装此测试程 序。
实验一 MIB浏览和 SNMP操作
主讲人: 杨 战 武 运城学院 计算机科学与技术系
运城学院 计算机科学与技术系
1
Windows中SNMP效劳的安装
1.翻开 “Windows 组件向导〞。 2.在“组件〞中,单击“管理和 监视工具〞〔但是请不要选中或去 除其复选框〕,然后单击“详细信 息〞。 3.选中“简单网络管理协议〞复 选框,然后单击“确定〞。 4.单击“下一步〞。
“开场〞 →“程序〞 →“Windows 2000 Support Tools 〞 →“Tools〞中的“SNMP Query Utility〞启动 snmputilg。
运城学院 计算机科学与技术系
10
Windows中SNMP效劳的测试
运城学院 计算机科学与技术系
11
Windows中SNMP效劳的测试
运城学院 计算机科学与技术系
12
实验要求
1. 两人一组,将计算机配置成管理站和代理。能 够互相浏览对方主机的相关信息。
2. 修改对方主机中某些对象的值。〔要求对象的 存取类型是read-write〕
运城学院 计算机科学与技术系
13
单击“代理〞选项卡可进 展代理配置。其中的联系人、 位置、效劳分别对应系统组 中的3个对象sysContact, sysLocation和sysService。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SNMP MIB 功能开发详细步骤一、定义MIB库文件:可使用adventnet 工具包下的mibedit工具来定义私有MIB库文件。

二、在linux环境下安装net-snmp 。

安装过程如下:1、解压源码包:tar –zxvf net-snmp-5.6.1.1.tar.gz2、进入解压后的文件目录:cd net-snmp-5.6.1.13、执行文件目录下的configure可执行文件,如果想指定程序包的安装路径,那么您首先建立相应的文件夹来存放安装信息,您可以写成./configure –prefix=/您指定的路径名。

参数—prefix用来告诉系统安装信息存放的路径,如果您没有指定路径,直接执行./configure,那么程序包都会安装在系统默认的目录下,通常为:/usr/local下。

例如:./configure --prefix=/usr/local/snmp //配置指定安装目录,安装过程会询问您以下的信息:注意:以下问题似乎不怎么重要,那好像仅仅是官方想了解使用本软件方的信息,可以直接回车而不用回答,系统会采用默认信息,其中日志文件默认安装在/var/log/snmpd.log.数据存贮目录默认存放在/var/net-snmp下。

default version of-snmp-version(3): 3(在这里版本通常有三种形式:1,2c,3)Systemcontact information(配置该设备的联系信息): heaven(也可以是邮箱地址)System location (该系统设备的地理位置):BEIJING P.R ChinaLocation to write logfile (日志文件位置): /var/log/snmpd.logLocation to Write persistent(数据存储目录): /var/net-snmp4、#make编译源码包文件,通常只需要执行make命令,系统会根据Makefile层层进行编译,第一次编译需要的时间比较长. 如果make 成功的话,那么紧接着安装程序了,这一步一般不会出现错误.#make install5、完成以上步骤后net-snmp的开发环境就搭建好了。

如果不在PC上使用SNMP服务的话是不需要再进一步配置的。

三、生成MIB 源文件(C格式):1、首先需要介绍一下MIB库和C源文件的转换工具命令:Net-snmp安装包提供了mib2c工具,用户可使用该工具将MIB库文件转换成C源码格式。

命令:MIBS=”+param1” mib2c param2 其中param1代表需要被转换的MIB库文件,param2代表希望转换该MIB库文件下的哪一个节点相关数据。

下面以AERODEV-MIB.txt中的portTrunk功能节点为例来介绍整个转换过程。

2、将编辑好的MIB库文件拷贝到linux下net-snmp安装目录中的mibs目录。

在终端下cd 到该目录,然后执行MIBS=”+AERODEV-MIB.txt” mib2cportTrunk命令即可生成portTrunk子树下的非表节点处理源码,再执行MIBS=”+AERODEV-MIB.txt” mib2c portTrkGroupTable即可生成portTrunk子树下的表portTrkGroupTable对应的C源码。

对于非表节点按照提示输入1即可生成该功能对应的源文件portTrunk.c 和portTrunk.h,对于表节点需要按照提示分别输入 2,2,1,2。

3、将生成的源码拷贝到我们的开发源码树下的user/net-snmp/agent/mibgroups/switch/private 目录下。

四、修改相应的C源文件1、修改portTrunk.c和portTrunk.h源文件以实现portTrkEna和trunkType两个读写节点的功能:1)首先介绍一下非表节点C源码中的数据定义和函数功能:oidportTrunk_variables_oid为portTrunk子树根节点的OID值。

Struct variable4 portTrunk_variables[]结构体数组为portTrunk下的节点定义(包括非表节点和表节点的定义)。

因为表节点我们稍后将会采用另外一种方式来处理,所以在此处我们将表节点相应的几个定义删去。

其中包括TRKGRPINDEX、PORTTRUNKGROUPNUMBER、PORTTRUNKGROUPENABLE、PORTTRUNKGROUPMEMBER。

Void init_portTrunk(void)函数为初始化函数,会将相应节点的定义信息注册到agent的OID信息树里。

Unsigned char * var_portTrunk(struct variable *vp,oid*name,size_t *length, int exact, size_t *var_len, WriteMethod** write_method); 函数为模块处理函数。

Vp为请求的结构体指针,name为相应OID的指针,length为OID长度,var_len为参数长度,write_method为节点写函数指针。

该函数中switch(vp->magic)为查询需要操作的节点,对于PORTTRKENA 这个读写节点来说,*write_method = write_portTrkEna为操作函数指针赋值,VAR = VALUE 中的VAR为接收返回值的变量,VALUE为返回值,这两个变量需要自己定义和处理。

Var_portTrkGroupTable 函数为表portTrkGroupTable的处理函数,这里直接删去。

Int write_portTrkEna(…)为节点portTrkEna 的写操作处理函数。

其中RESERVE2 状态中,value接收到的值即为agent收到的write request的修改值。

ACTION状态中需要填入对该节点修改的具体代码,UNDO状态中需要填入对该节点恢复的具体代码。

在ACTION状态中进行操作的时候,需要注意保存该节点的当前值,便于UNDO进行恢复Int write_trunkType(…)为节点trunkType节点的写处理函数。

与portTrkEna节点类似。

2)修改后的代码可参照broadcom/uClinuxv12/user/net-snmp/agent/mibgroup/switch/private下的portTrunk.c和portTrunk.h文件。

其中使用的结构体和函数均可在broadcom/uClinuxv12/user/bcmcfg 下相应功能的源文件中找到。

要使用user/bcmcfg下的函数和数据结构,需要将bcmcfg下的相应C文件生成的.o文件链接成.a库并在net-snmp编译参数中加入相应的头文件引用和库文件引用,目前这个步骤已经完成,具体可参照user/bcmcfg下的makefile文件。

3)代码修改完成后,需要修改user/net-snmp/agent/mibgroup/下的default_modules.h文件,如要加入上面新修改的功能,则需要在default_modules.h文件中添加config_require(switch/private/portTrunk);4)以上步骤均完成后可重新编译源码树,编译完成后的snmpd即可实现对新节点操作功能。

2、修改portTrkGroupTable.c和portTrkGroupTable.h文件以实现端口汇聚表的监控功能。

1)数据结构和函数介绍:Void init_portTrkGroupTable(void)为模块初始化函数,其中调用的initialize_table_portTrkGroupTable(void)为表初始化函数。

表的数据初始化工作应该在这里完成。

struct portTrkGroupTable_entry 为表的链表结构定义。

其中包含了表索引定义和表内容及内容长度定义。

相应的字符串数据的长度需要用户自己调整。

Struct portTrkGroupTable_entry * portTrkGroupTable_head;定义了该表的链表。

整个表的操作实际上就是针对该链表的。

Struct portTrkGroupTable_entry * portTrkGroupTable_createEntry(…)为表的行创建函数。

其中具体的传入参数和数据处理需要用户自己实现。

Void portTrkGroupTable_removeEntry(…)为行删除函数。

在行数确定的情况下无需使用。

Int portTrkGroupTable_handler(…)函数未表的操作函数。

表中数据的读取需要在MODE_GET下实现。

数据的修改需要在MODE_SET_ACTION下实现。

另外MODE_SET_UNDO的处理方式同非表节点。

修改后的代码可参照broadcom/uClinuxv12/user/net-snmp/agent/mibgroup/switch/private下的portTrkGroupTable.c和portTrkGroupTable.h文件。

2)源文件修改完成后,其他的操作同portTrunk.c。

五、已开发的相关私有MIB功能源文件位置均在开发源码树中user/net-snmp/agent/mibgroups/switch/private目录下user/net-snmp/agent/mibgroups/switch/dealport/目录下为不同型号的交换机的OID定义。

六、已开发的公有MIB功能源文件均在源码树user/net-snmp/agent/mibgroups/mibII目录下。

具体可参考user/net-snmp/agent/mibgroups/default_modules.h中相应的内容。

七、RMON对应的MIB源文件均在user/net-snmp/agent/mibgroups/RMON 目录下。

相关文档
最新文档