查看源代码 SNMP 简介
SNMP 开发工具包包含以下部分
- 一个可扩展的多语言 SNMP 代理,它理解 SNMPv1 (RFC1157)、SNMPv2c (RFC1901, 1905, 1906 和 1907)、SNMPv3 (RFC2271, 2272, 2273, 2274 和 2275) 或这些协议的任何组合。
- 一个多语言 SNMP 管理器。
- 一个 MIB 编译器,它理解 SMIv1 (RFC1155, 1212 和 1215) 和 SMIv2 (RFC1902, 1903 和 1904)。
SNMP 开发工具为快速的代理/管理器原型设计和构建提供了一个环境。提供以下信息后,此工具用于设置一个正在运行的多语言 SNMP 代理/管理器
- 以抽象语法表示法一 (ASN.1) 描述的管理信息库 (MIB)
- 用 Erlang 编写的 MIB 中被管理对象的检测函数。
使用可扩展(代理/管理器)工具包的优点是可以从程序员那里删除类型检查、访问权限、协议数据单元 (PDU)、编码、解码和陷阱分发等细节,程序员只需编写实现 MIB 的检测函数即可。 `get-next` 函数只需要为表实现,而不是为全局命名树中的每个变量实现。此信息可以从 ASN.1 文件中推断出来。
范围和目的
本手册介绍了 SNMP 开发工具,它是 Erlang/开放电信平台开发环境的一个组件。假定读者熟悉 Erlang 开发环境,该环境在单独的用户指南中进行了描述。
先决条件
要理解 SNMP 用户指南中的内容,需要以下先决条件
- 简单网络管理协议版本 1 (SNMPv1) 的基础知识
- 基于社区的简单网络管理协议版本 2 (SNMPv2c) 的基础知识
- 简单网络管理协议版本 3 (SNMPv3) 的基础知识
- 使用 SMIv1 和 SMIv2 定义 MIB 的知识
- 熟悉 Erlang 系统和 Erlang 编程
该工具需要 Erlang 4.7 或更高版本。
定义
以下定义在 SNMP 用户指南中使用。
MIB - 管理信息的概念存储库称为管理信息库 (MIB)。它不保存任何数据,仅定义可以访问哪些数据。MIB 的定义是被管理对象集合的描述。
SMI - MIB 以抽象语法表示法一 (ASN.1) 语言的改编子集指定。此改编子集称为管理信息结构 (SMI)。
ASN.1 - ASN.1 在 SNMP 中以两种不同的方式使用。SMI 基于 ASN.1,并且协议中的消息通过使用 ASN.1 定义。
被管理对象 - 要管理的资源由位于 MIB 中的被管理对象表示。在 SNMP MIB 中,被管理对象是
- 标量变量,每个上下文只有一个实例。它们具有单个值,而不是像向量或结构那样的多个值。
- 表,可以动态增长。
- 表元素,这是一种特殊的标量变量。
操作 - SNMP 依赖于三个基本操作:get(对象)、set(对象、值)和 get-next(对象)。
检测函数 - 每个被管理对象都关联一个检测函数。这是实际实现操作的函数,当它收到管理站的请求时,代理将调用它。
管理器 - 管理器生成命令并接收来自代理的通知。系统中通常只有少数几个管理器。
代理 - 代理响应来自管理器的命令,并向管理器发送通知。一个系统中可能有许多代理。
关于本手册
除了本简介章节外,SNMP 用户指南还包含以下章节
- 第 2 章:“功能描述”描述了 SNMP 开发工具包的功能和操作。它包括有关子代理和 MIB 加载、内部 MIB 和陷阱的主题。
- 第 3 章:“MIB 编译器”描述了 MIB 编译器的功能和操作。
- 第 4 章:“运行应用程序”描述了如何启动和配置应用程序。还包括有关如何调试应用程序的主题。
- 第 5 章:“代理配置文件定义”是一个参考章节,其中包含有关代理配置文件的更详细信息。
- 第 6 章:“管理器配置文件定义”是一个参考章节,其中包含有关管理器配置文件的更详细信息。
- 第 7 章:“代理实现示例”描述了如何使用 SNMP 开发工具包实现 MIB。包括实现示例。
- 第 8 章:“检测函数”描述了如何在 Erlang 中为不同的操作定义检测函数。
- 第 9 章:“检测函数定义”是一个参考章节,其中包含有关检测函数的更详细信息。
- 第 10 章:“代理网络接口定义”是一个参考章节,详细描述了代理网络接口函数。
- 第 11 章:“管理器网络接口定义”是一个参考章节,详细描述了管理器网络接口函数。
- 第 12 章:“高级代理主题”描述了子代理、代理语义、审计跟踪日志记录以及分布式表的考虑。
- 附录 A 描述了将 SNMPv2 转换为 SNMPv1 错误消息的过程。
- 附录 B 包含 RFC1903 中关于 `
RowStatus
` 的文本。
在哪里找到更多信息
有关 SNMP 和 Erlang/OTP 开发系统的更多信息,请参阅以下文档
- Marshall T. Rose (1991), "The Simple Book - An Introduction to Internet Management", Prentice-Hall
- Evan McGinnis 和 David Perkins (1997), "Understanding SNMP MIBs", Prentice-Hall
- RFC1155, 1157, 1212 和 1215 (SNMPv1)
- RFC1901-1907 (SNMPv2c)
- RFC1908, 2089 (SNMPv1 和 SNMPv2 之间的共存)
- RFC2271, RFC2273 (SNMP std MIBs)
- Mnesia 用户指南
- Erlang 4.4 扩展用户指南
- 参考手册
- Erlang 嵌入式系统用户指南
- 系统体系结构支持库 (SASL) 用户指南
- 安装指南
- Asn1 用户指南
- Erlang 并发编程,第二版 (1996),Prentice-Hall,ISBN 0-13-508301-X。