偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

通過(guò)ucd-snmp完成SNMP Agent的源碼

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
在學(xué)習(xí)SNMP中,我們知道它的代理形式是非常重要的。所以我們今天就著重講解一下用ucd-snmp來(lái)完成SNMP Agent的過(guò)程。

對(duì)于snmp少不了ucd-snmp的使用。所以我們一再介紹了相關(guān)的源碼的內(nèi)容。那么接下來(lái)我們主要介紹了一下相關(guān)協(xié)議的開源開發(fā)內(nèi)容,并且討論采用開放源碼的ucd-snmp 4.2.1軟件包開發(fā)自己的SNMP Agent,不涉及SNMP協(xié)議包的組包、解析等問(wèn)題。本文從以下部分進(jìn)行介紹:

一:ucd-snmp 4.2.1簡(jiǎn)介及SNMP Agent開發(fā)步驟

二:MIB庫(kù)模塊設(shè)計(jì)及代碼轉(zhuǎn)換

三:SNMP Agent功能擴(kuò)展方式

四:uCLinux系統(tǒng)上SNMP Agent的實(shí)現(xiàn)

五:創(chuàng)建SNMP Agent配置文件snmpd.conf

一:ucd-snmp 4.2.1簡(jiǎn)介及SNMP Agent開發(fā)步驟

ucd-snmp 4.2.1開源軟件包支持SNMPv1 (RFCs 1155-1157)、SNMPv2c(RFCs 1901-1908)、SNMPv3 (RFCs 2271-2275)三種SNMP協(xié)議版本,其由以下內(nèi)容組成:

可擴(kuò)展的SNMP Agent程序(snmpd);

SNMP Agent和管理程序開發(fā)庫(kù);

用于檢索或設(shè)置SNMP Agent端變量的工具程序(snmpget, snmpset, snmptable, snmpwalk等);

用于生成或處理SNMP陷阱的工具程序(snmptrapd和snmptrap);

基于Tk/perl的MIB瀏覽器(tkmib)

SNMP Agent的開發(fā)一般采用以下步驟:

MIB庫(kù)模塊設(shè)計(jì)。

MIB庫(kù)模塊轉(zhuǎn)換為C語(yǔ)言代碼。

轉(zhuǎn)換后的C語(yǔ)言代碼添加到ucd-snmp源碼包,實(shí)現(xiàn)SNMP Agent的功能擴(kuò)展。#p#

二:MIB庫(kù)模塊設(shè)計(jì)及代碼轉(zhuǎn)換

在SNMPAgent開發(fā)中,首先要定義出MIB庫(kù)模塊,這樣,SNMP管理端軟件才能通過(guò)該MIB庫(kù)模塊實(shí)現(xiàn)對(duì)相應(yīng)設(shè)備的管理。MIB庫(kù)模塊定義的語(yǔ)法,可以參照SNMP 協(xié)議中的SMI描述部分,本文使用MG-SOFT公司的“Visual MIBBuilder"可視化設(shè)計(jì)軟件完成MIB庫(kù)模塊的定義。MIB庫(kù)模塊定義后,需要在代理程序中增加與所定義的MIB庫(kù)模塊相對(duì)應(yīng)的源代碼,這里就要使用MIB2C工具程序把MIB庫(kù)模塊文件轉(zhuǎn)換成C源代碼。

MIB2C是ucd-snmp 4.2.1軟件包中的工具程序,該工具程序需要SNMPperl擴(kuò)展模塊支持。按以下步驟進(jìn)行轉(zhuǎn)換,首先將設(shè)計(jì)好的MIB庫(kù)模塊定義文件拷貝到ucd-snmp源代碼的mibs目錄(如/usr/local/share/snmp/mibs),然后運(yùn)行MIB2C命令(假定MIB庫(kù)模塊為modulename)。

/usr/local/bin/mib2c modulename

此時(shí),MIB2C會(huì)在當(dāng)前目錄下生成兩個(gè)C源文件:modulename.h 和modulename.c,這兩個(gè)文件是根據(jù)所設(shè)計(jì)的MIB庫(kù)模塊轉(zhuǎn)換而成的,也是需要加入到ucd-snmp軟件包實(shí)現(xiàn)SNMP Agent功能擴(kuò)展的源代碼。

#p#三:SNMP Agent功能擴(kuò)展方式

SNMP Agent功能擴(kuò)展即snmpd功能擴(kuò)展,假定ucd-snmp源代碼存放在/usr/local/src/目錄下,下面是實(shí)現(xiàn)snmpd功能擴(kuò)展的兩種方式:

靜態(tài)鏈接方式

先將生成的兩個(gè)文件, modulename.h和modulename.c,拷貝到ucd-snmp源代碼的/usr/local/src/ucd-snmp-4.2.1/agent/mibgroup目錄,然后,在ucd-snmp 4.2.1目錄下(/usr/local/src/ucd-snmp-4.2.1)執(zhí)行以下命令生成snmpd。

# ./configure -with-mib-modules="modulename"
# make
# make install 

共享鏈接庫(kù)方式

首先, 在任一目錄(如/usr/local/temp)編譯生成共享鏈接庫(kù)。將兩個(gè)源文件, modulename.h和modulename.c拷貝到此目錄下,執(zhí)行如下命令生成共享鏈接庫(kù):

gcc -g -I/usr/local/include -c -o modulename.o modulename.c 
gcc -g -fPIC -shared -o modulename.so modulename.o 

然后,通過(guò)以下任意一種方式動(dòng)態(tài)加載共享鏈接庫(kù)。

如果代理程序(snmpd)已運(yùn)行,執(zhí)行如下命令:

#snmpset localhost rwnode UCD-DLMOD-MIB::dlmodStatus.1 i create
#snmpset localhost rwnode UCD-DLMOD-MIB::dlmodName.1 s " modulename"
#snmpset localhost rwnode UCD-DLMOD-MIB::dlmodPath.1 s "/usr/local/temp/ modulename.so"
#snmpset localhost rwnode UCD-DLMOD-MIB::dlmodStatus.1 i load 

這樣即可加載剛才生成的共享連接庫(kù),裝載后,可以用工具程序檢索或設(shè)置相應(yīng)的變量。如果代理程序(snmpd)未運(yùn)行,在snmpd.conf配置文件中增加一行:

dlmod modulename /usr/local/temp/modulename.so 

然后重新啟動(dòng)snmpd代理程序, 程序會(huì)自動(dòng)裝載共享庫(kù)。

#p#四:uCLinux系統(tǒng)上SNMP Agent的實(shí)現(xiàn)

考慮到嵌入式設(shè)備應(yīng)用程序自動(dòng)啟動(dòng)的特點(diǎn),一般采用靜態(tài)鏈接方式開發(fā)SNMP Agent。由于uCLinux交叉編譯環(huán)境的特殊性,在uCLinux系統(tǒng)上實(shí)現(xiàn)SNMP Agent需要按以下步驟。

增加新文件及修改Makefile文件:復(fù)制modulename.c和modulename.h到agent/mibgroup/目錄下。

修改agent/Makefile文件: 
  增加"mibgroup/modulename.lo"到LMIBOBJS符號(hào)下。 
  增加"mibgroup/modulename.o"到MIBOBJS符號(hào)下。

修改agent/mibgroup/Makefile文件: 
  增加"modulename.o"到OBJS符號(hào)下。 
  增加"modulename.lo"到LOBJS符號(hào)下。 
  增加"modulename.c"到SRCS符號(hào)下。

修改agent/mibgroup/mib_module_includes.h文件: 
  增加 #include "mibgroup/modulename.h"一行。

修改agent/mibgroup/mib_module_inits.h文件: 
  增加“if (should_init("modulename")) init_ modulename ();"一行。 

#p#重新配置內(nèi)核

要生成SNMP Agent程序snmpd,需要重新配置應(yīng)用程序。切換到uClinux-dist目錄,開始重新配置應(yīng)用程序:

cd ../uClinux-dist 
make menuconfig 

進(jìn)行如下選擇:

Kernel/Library/Defaults Selection: 
(Linux-2.4.x) Kernel Version 
[X] Customize Vendor/User Settings (NEW) 

按Esc后保存。隨后自動(dòng)進(jìn)入 uClinux v3.1.0 Configurationm,選中“Network Application---->"并進(jìn)入下一級(jí)選項(xiàng)菜單,在這里可以配置arp、ifconfig、ping、route和snmpd等應(yīng)用程序,選中ucd-snmpsnmpd一項(xiàng)。

[X] ucd-snmp snmpd 

保存后退出,然后在終端提示符下執(zhí)行命令“make user_only"生成SNMP Agent程序snmpd。#p#

五:創(chuàng)建SNMP Agent配置文件snmpd.conf

snmpd啟動(dòng)時(shí)需要讀取snmpd.conf配置文件,通過(guò)該配置文件,可以控制SNMP管理端對(duì)變量的讀寫屬性,下面是該配置文件的一個(gè)示例:

syslocation Shanghai
syscontact localhost 
sysservices 72
com2sec public default public
com2sec private default private
group public v1 public
group private v1 private
group public v2c public
group private v2c private
group public usm public
group private usm private
view all included .1 80
view system included .1.3.6.1.2.1.1 fe
access public "" any noauth exact all none all
access private "" any noauth exact none all all
trapsink 200.162.162.27

 

責(zé)任編輯:佟健 來(lái)源: 比特網(wǎng)
相關(guān)推薦

2010-07-01 12:38:31

ucd-snmp

2010-07-01 14:53:09

SNMPMIBUCD-SNMP

2010-07-01 13:58:50

UCD-SNMP

2010-07-02 10:18:23

ucd-snmpMIB

2010-07-05 09:37:19

ucd-snmpsnmpd擴(kuò)展

2010-07-09 14:26:10

SNMP Agent

2010-01-08 14:29:58

華為交換機(jī)snmp

2010-07-02 10:39:20

AdventNet S

2010-05-24 18:19:44

SNMP報(bào)文

2011-03-23 12:49:53

NagiosSNMP流量

2011-11-08 21:24:30

SNMP

2010-07-12 16:53:50

啟用2003 SNMP

2010-07-12 17:23:14

2010-06-30 17:34:25

SNMP Trap

2010-07-05 11:35:58

IPX協(xié)議SNMP

2010-06-29 16:53:08

2010-06-29 14:17:22

SNMP協(xié)議

2010-07-05 16:42:39

AdventNet S

2011-03-31 13:40:36

SNMPMRTG安裝

2010-06-30 10:31:34

SNMP MIB
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)