基于vc++的网络管理的一点心得
2005-04-26 11:13
288 查看
我是在windows network下做网管的,使用vc++做开发,经过这个几个月工作,
终于找到了门,呵呵。
建议
第一点,网络管理理论知识一定要有,书和RFC。
第二点,把精华区看看。还有友情连接,特别是snmplink这个网站,你在那会发现很多东西。
第三点,作工程的话一定要有编程功底的(这是我欠缺的,为此付出很大代价)
明确两个概念MIB 和 MIB的实现,MIB说白了就是一个文本,给人看得东西,
MIB的实现过程就是编写Agent的过程。一开始我老把MIB理解成一个数据库,
也许它可以作为一个数据库的定义,但是实现时不一定有实际的数据库。
Agent开发
第一步是mib设计(如果你是要实现已有的MIB那么这步就用不到了)
要写出一个mib文档,你要知道SMI,下面的RFC是你需要了解的:
SMIv1
• RFC 1155 - Structure of Management Information
• RFC 1212 - Concise MIB Definitions
SMIv2
• RFC 2578 - Structure of Management Information
• RFC 2579 - Textual Conventions
• RFC 2580 - Conformance Statements
把MIB II(RFC1213)作为例子看一下,定义一个MIB大体的结构,
开始你的MIB设计时,首先确定你要将那些被管对象纳入管理信息库。
结构安排好,具体到各个对象的定义,就是宏的运用:
SMI v1
OBJECTS-TYPE RFC1155
TRAP-TYPE RFC1215
SMI v2
OBJECT-IDENTITY OBJECT-TYPE MODULE-IDENTITY NOTIFICATION-TYPE RFC2578
TEXTUAL-CONVENTION RFC2579
OBJECT-GROUP NOTIFICATION-GROUP MODULE-COMPLIANCE AGENT-COMPABILITIES RFC2580
值得一提的是RFC2580中的这几个宏,主要完成Mib一致性的定义,表明MIB实现时
必须实现的管理对象,这个在SMIv2中必须完成。
还有在一个MIB中不能混用v1和v2,只能用其中一个的格式定义。
最终结果是你写出那个asn.1的文档来。
这一步使用一个记事本就可以,当然也有可视化的mib designer,比如Nudesign Tools,
MG-SOFT BROWER都提供。但是没有注册的话前者设计mib最多只能包含20个节点,后者
不能显示asn.1的文档。在snmplink你还可以找到一些设计工具。
第二步,就是选开发包了,
Windows下适合c++语言的开发包:
M$自身提供一组称为WinSNMP的API(在MSDN里以此为关键字可以找到),而且M$提供
基于Agent Service的SNMP Extension Agent开发。
我使用的开发包是免费的snmp++ agent++(http://www.agentpp.com/),其实就是两个类库,
刚接触感觉比较简单,但是帮助文档太少。
一般与它一起提起的还有一个net-snmp(http://net-snmp.sourceforge.net/ 访问需要国外的代理)
如果有银子,当然可以使用那些比较牛的东东,我接触过得有SNMP Research's EMANATE® Tool Kit
和HP Openview.
当你的开发包定下来,你的mib编译工具也就定了,对于agent++就是agentgen
编译工具的用处就是将你写的asn.1的mib文件编译成你使用的程序语言,
而且是针对你的开发包的。
我用的agentgen(standard,AgentPro要银子的)就最后生成的就是.cpp和.h的文件。
agentgen的用法很简单,自带的manual足够了。
第三步就是你如何编程了,简单的说就是让这个Agent响应get set操作,发发Trap。
在这时用到的理论知识应该是:PDU的格式,SNMP原语和原语操作的过程。
SNMP v1(RFC1157) SNMP v2(RFC1905)
关于snmp++ agent++精华区都有文章,
帮主echrisma 的《hp snmp++攻略》,snmptxy的《agent++在VC下的编译》
在看看它的help,example,特别是后者,上手是不太困难的。
然后就是具体问题具体分析啦。post上来。
如果你上新闻组的话可以定comp.protocols.snmp,Frank Fock就是那个写
Agent++的家伙这个组出没。
终于找到了门,呵呵。
建议
第一点,网络管理理论知识一定要有,书和RFC。
第二点,把精华区看看。还有友情连接,特别是snmplink这个网站,你在那会发现很多东西。
第三点,作工程的话一定要有编程功底的(这是我欠缺的,为此付出很大代价)
明确两个概念MIB 和 MIB的实现,MIB说白了就是一个文本,给人看得东西,
MIB的实现过程就是编写Agent的过程。一开始我老把MIB理解成一个数据库,
也许它可以作为一个数据库的定义,但是实现时不一定有实际的数据库。
Agent开发
第一步是mib设计(如果你是要实现已有的MIB那么这步就用不到了)
要写出一个mib文档,你要知道SMI,下面的RFC是你需要了解的:
SMIv1
• RFC 1155 - Structure of Management Information
• RFC 1212 - Concise MIB Definitions
SMIv2
• RFC 2578 - Structure of Management Information
• RFC 2579 - Textual Conventions
• RFC 2580 - Conformance Statements
把MIB II(RFC1213)作为例子看一下,定义一个MIB大体的结构,
开始你的MIB设计时,首先确定你要将那些被管对象纳入管理信息库。
结构安排好,具体到各个对象的定义,就是宏的运用:
SMI v1
OBJECTS-TYPE RFC1155
TRAP-TYPE RFC1215
SMI v2
OBJECT-IDENTITY OBJECT-TYPE MODULE-IDENTITY NOTIFICATION-TYPE RFC2578
TEXTUAL-CONVENTION RFC2579
OBJECT-GROUP NOTIFICATION-GROUP MODULE-COMPLIANCE AGENT-COMPABILITIES RFC2580
值得一提的是RFC2580中的这几个宏,主要完成Mib一致性的定义,表明MIB实现时
必须实现的管理对象,这个在SMIv2中必须完成。
还有在一个MIB中不能混用v1和v2,只能用其中一个的格式定义。
最终结果是你写出那个asn.1的文档来。
这一步使用一个记事本就可以,当然也有可视化的mib designer,比如Nudesign Tools,
MG-SOFT BROWER都提供。但是没有注册的话前者设计mib最多只能包含20个节点,后者
不能显示asn.1的文档。在snmplink你还可以找到一些设计工具。
第二步,就是选开发包了,
Windows下适合c++语言的开发包:
M$自身提供一组称为WinSNMP的API(在MSDN里以此为关键字可以找到),而且M$提供
基于Agent Service的SNMP Extension Agent开发。
我使用的开发包是免费的snmp++ agent++(http://www.agentpp.com/),其实就是两个类库,
刚接触感觉比较简单,但是帮助文档太少。
一般与它一起提起的还有一个net-snmp(http://net-snmp.sourceforge.net/ 访问需要国外的代理)
如果有银子,当然可以使用那些比较牛的东东,我接触过得有SNMP Research's EMANATE® Tool Kit
和HP Openview.
当你的开发包定下来,你的mib编译工具也就定了,对于agent++就是agentgen
编译工具的用处就是将你写的asn.1的mib文件编译成你使用的程序语言,
而且是针对你的开发包的。
我用的agentgen(standard,AgentPro要银子的)就最后生成的就是.cpp和.h的文件。
agentgen的用法很简单,自带的manual足够了。
第三步就是你如何编程了,简单的说就是让这个Agent响应get set操作,发发Trap。
在这时用到的理论知识应该是:PDU的格式,SNMP原语和原语操作的过程。
SNMP v1(RFC1157) SNMP v2(RFC1905)
关于snmp++ agent++精华区都有文章,
帮主echrisma 的《hp snmp++攻略》,snmptxy的《agent++在VC下的编译》
在看看它的help,example,特别是后者,上手是不太困难的。
然后就是具体问题具体分析啦。post上来。
如果你上新闻组的话可以定comp.protocols.snmp,Frank Fock就是那个写
Agent++的家伙这个组出没。
相关文章推荐
- 基于vc++的网络管理的一点心得
- 基于vc++的网络管理的一点心得
- 从事网络管理工作的一点心得
- 一点感慨:作网络通信,其实就是在作内存(缓冲区)管理
- VC++网络安全编程范例(9)-基于OPENSSL实现对称算法与BASE64编码
- 基于NVIDIA显卡的硬编解码的一点心得 (完结)
- 基于 Linux 系统的Nagios网络管理模块的实现
- 对网络库libpcap的一点心得
- 初学者学习VC++的一点心得
- 基于SOAP的xml网络交互心得
- 调试VC++程序的一点小心得
- Linux网络管理之二:基于用户级别的samba服务器配置 推荐
- 基于JRobin的网络监控管理
- 基于Winpcap的Windows网络抓包与还原心得
- 一点一点做网站开发--基于KIS的数据库项目管理(PHP系统二次开发) 上
- 关于网络安装linux系统(无盘工作站)的一点心得
- VC中数字格式化为字符串的一点心得
- Amf3+socket开发网络游戏或应用的一点研究心得
- MySql管理的一点心得