全书一共17章,分为4个部分:基础篇(1-6)介绍了网络管理框架、简单网络管理协议、抽象语法标记、管理信息结构、管理信息库、传输编码,以及Net-SNMP的概念、特点、工具集、mib2c、安全机制、TRAPs、支持的开发模式;实战篇(7-10)详细讲解了Net-SNMP的功能和使用、管理端的应用开发,以及2个综合性的案例;高级篇(11-14)讲解了代码的重构与优化、测试与调试、免维护的思路等;原理篇介绍了SNMP的体系结构、SNMP的原语、以及Net-SNMP的源代码分析。
封面图
目录
- 前言
- 第一部分基础篇
- 第1章网络管理2
- 1.1网络管理2
- 1.1.1网络管理的需求3
- 1.1.2网络管理标准4
- 1.2网络管理框架6
- 1.2.1网络管理模型6
- 1.2.2网络管理模式与技术9
- 1.2.3网络管理功能11
- 1.3简单网络管理协议13
- 1.3.1SNMP的发展历史14
- 1.3.2SNMP的框架组成15
- 1.3.3SNMP的功能17
- 1.3.4实现版本22
- 1.4小结24
- 第2章抽象语法标记26
- 2.1ASN.1概述26
- 2.2BNF基础28
- 2.3ASN.1基础30
- 2.3.1ASN.1的基础符号30
- 2.3.2定义方法33
- 2.4ASN.1标签类34
- 2.5数据类型35
- 2.5.1简单数据类型36
- 2.5.2构造数据类型39
- 2.5.3其他类型40
- 2.5.4子类型40
- 2.5.5标签类型定义41
- 2.6模块定义42
- 2.7宏定义43
- 2.8例子44
- 2.9小结46
- 第3章管理信息结构SMI47
- 3.1SMI概述47
- 3.2组织结构48
- 3.2.1OID树49
- 3.2.2节点信息50
- 3.3数据类型51
- 3.3.1基础数据类型51
- 3.3.2自定义数据类型52
- 3.3.3子类型53
- 3.4宏55
- 3.4.1OBJECT-TYPE55
- 3.4.2TRAP58
- 3.4.3MODULE-IDENTITY60
- 3.4.4OBJECT-IDENTITY61
- 3.4.5一致性陈述61
- 3.4.6文本约定64
- 3.5小结68
- 第4章管理信息库MIB70
- 4.1MIB概述70
- 4.2标准MIB简介72
- 4.3MIB结构75
- 4.4MIB中的管理对象76
- 4.4.1标量和表格对象77
- 4.4.2TRAP定义81
- 4.5MIB的编写方法82
- 4.5.1编写建议83
- 4.5.2MIB的编写和编译工具86
- 4.5.3常见错误91
- 4.6小结93
- 第5章BER传输编码95
- 5.1BER概述96
- 5.2BER详解97
- 5.2.1Tag编码97
- 5.2.2长度编码99
- 5.2.3值编码100
- 5.3实例分析103
- 5.3.1报文解析103
- 5.3.2抓包示例106
- 5.4小结108
- 第6章Net-SNMP基础110
- 6.1Net-SNMP概述110
- 6.1.1Net-SNMP的由来111
- 6.1.2Net-SNMP的特点112
- 6.1.3Net-SNMP重要组件114
- 6.2Net-SNMP安全模型114
- 6.2.1USM115
- 6.2.2VACM115
- 6.2.3TSM116
- 6.2.4基于SSH的安全传输机制117
- 6.2.5如何选择安全机制117
- 6.3命令工具集118
- 6.3.1协议操作工具120
- 6.3.2信息收集与查看工具125
- 6.3.3配置工具129
- 6.3.4权限配置工具131
- 6.3.5mib2c代码生成工具135
- 6.4开发模式138
- 6.4.1开发语言139
- 6.4.2开发模式139
- 6.4.3选择开发模式140
- 6.5小结141
- 第二部分实战篇
- 第7章使用Net-SNMP监测系统144
- 7.1系统搭建145
- 7.1.1conf igure详解146
- 7.1.2编译安装151
- 7.2配置文件详解153
- 7.2.1snmpd.conf详解154
- 7.2.2snmp.conf详解170
- 7.2.3snmptrapd.conf详解172
- 7.3企业级系统监测案例175
- 7.3.1系统监测需求176
- 7.3.2监测方案177
- 7.3.3工具简介与配置179
- 7.3.4Net-SNMP监测示例183
- 7.3.5系统集成193
- 7.4小结200
- 第8章管理端应用开发202
- 8.1开发方法与流程202
- 8.1.1通信流程203
- 8.1.2主要的数据结构204
- 8.1.3主要的API208
- 8.1.4程序示例213
- 8.1.5同步与异步218
- 8.2管理端应用开发需求与方案219
- 8.3链表模块222
- 8.4辅助模块223
- 8.5主程序实现224
- 8.5.1程序框架224
- 8.5.2设计与开发225
- 8.5.3代码清单228
- 8.5.4编译与运行245
- 8.6完善与优化249
- 8.6.1实现守护进程249
- 8.6.2数据保存251
- 8.6.3绑定多个OID251
- 8.6.4读取MIB文件251
- 8.7小结252
- 第9章SNMP代理开发实战253
- 9.1SNMP代理开发流程与方法254
- 9.2mib2c生成代码框架详解256
- 9.2.1标量代码框架256
- 9.2.2表格代码框架iterate269
- 9.2.3Trap/Information框架275
- 9.3代理开发需求与方案277
- 9.3.1开发需求278
- 9.3.2实现方案279
- 9.4开发MIB281
- 9.5进程间通信之共享内存282
- 9.5.1数据模型282
- 9.5.2共享内存编程实践284
- 9.5.3通信接口287
- 9.6模拟业务进程292
- 9.7代理程序实现293
- 9.7.1参数类数据实现293
- 9.7.2实时类数据实现295
- 9.7.3Trap实现299
- 9.7.4配置与编译302
- 9.8集成测试303
- 9.8.1实时数据测试304
- 9.8.2参数数据测试304
- 9.8.3告警数据测试305
- 9.9优化与完善306
- 9.9.1数据字典的优化306
- 9.9.2告警完善306
- 9.9.3共享内存接口的优化307
- 9.9.4框架优化307
- 9.9.5双索引实现方法307
- 9.10小结308
- 第10章使用Python开发SNMP应用程序309
- 10.1Python开发SNMP应用程序介绍310
- 10.1.1Python简介310
- 10.1.2Python模块简介311
- 10.1.3安装模块311
- 10.2Python模块中重要的类312
- 10.2.1变量绑定312
- 10.2.2会话类314
- 10.3API使用介绍315
- 10.4实战—Python版本的NMS317
- 10.4.1query模块317
- 10.4.2nmsapp主模块318
- 10.4.3运行情况322
- 10.5小结323
- 第11章使用Perl开发SNMP应用程序324
- 11.1Perl开发SNMP应用程序介绍324
- 11.1.1Perl简介325
- 11.1.2Perl模块简介325
- 11.1.3安装模块327
- 11.2Perl模块功能详解328
- 11.2.1NetSNMP::ASN328
- 11.2.2NetSNMP::OID329
- 11.2.3AnyData::SNMP330
- 11.2.4NetSNMP::agent330
- 11.2.5SNMP332
- 11.3管理端应用框架336
- 11.4代理框架337
- 11.5实战—监控MySQL339
- 11.5.1MySQL信息查看:SHOW GLOBAL STATUS340
- 11.5.2自动生成MIB 341
- 11.5.3代理实现342
- 11.5.4运行情况348
- 11.6小结348
- 第三部分高级篇
- 第12章代理的重构与优化352
- 12.1为什么要重构353
- 12.1.1回顾代理开发的艰辛353
- 12.1.2维护代理的漫漫长路354
- 12.2代理重构简述356
- 12.3重构代理模板框架358
- 12.3.1分析代码框架358
- 12.3.2old-api框架重构实例360
- 12.3.3iterate框架重构方向368
- 12.4代理免维护思路370
- 12.4.1MIB自动化370
- 12.4.2深处探究371
- 12.5小结373
- 第13章mib2c晋级之自定义代码框架374
- 13.1mib2c配置文件语法375
- 13.1.1从例子开始375
- 13.1.2指令376
- 13.1.3变量378
- 13.1.4子程序380
- 13.2配置文件分析示例380
- 13.2.1生成h文件381
- 13.2.2生成c文件382
- 13.3定制配置文件实例—自定义代码框架383
- 13.3.1定制h文件配置文件384
- 13.3.2定制c文件配置文件386
- 13.3.3集成388
- 13.4小结389
- 第14章Net-SNMP代理开发高级技术集锦390
- 14.1代理高级功能391
- 14.1.1动态表391
- 14.1.2上下文392
- 14.1.3持久数据395
- 14.1.4数据同步398
- 14.2子代理399
- 14.2.1配置AgentX401
- 14.2.2开发子代理示例402
- 14.2.3编译与运行404
- 14.2.4分布式监控示例405
- 14.3动态加载模式406
- 14.3.1加载共享对象407
- 14.3.2开发共享对象示例408
- 14.3.3编译与运行409
- 14.4小结409
- 第15章代理测试与调试410
- 15.1代理测试方法与技术411
- 15.1.1使用MG Soft MIBbrowser测试412
- 15.1.2使用iReasoning测试414
- 15.1.3编写脚本测试415
- 15.2程序调试方法概述416
- 15.3Net-SNMP原生调试方法417
- 15.3.1token调试机制417
- 15.3.2日志419
- 15.3.3打印原始数据报420
- 15.4GDB调试方法与技术421
- 15.4.1调试前的准备422
- 15.4.2调试过程与指令423
- 15.4.3GDB脚本调试技术432
- 15.5辅助调试工具介绍435
- 15.5.1tcpdump435
- 15.5.2nm438
- 15.5.3objdump441
- 15.5.4strace442
- 15.6小结446