SNMP 协议基础学习笔记


一、SNMP 简介

简单网络管理协议(SNMP,Simple Network Management Protocol),该协议使用 C/S 模型。

主要功能有监视网络性能、检测分析网络差错和配置网络设备等。

SNMP 结构简单,使用方便,并且能够屏蔽不同设备的物理差异,实现对不同设备的自动化管理,所以得到了广泛的支持和应用,目前大多数网络管理系统和平台都是基于 SNMP 的。

SNMP 非 Trap 报文使用 UDP161 端口,Trap 报文使用 UDP162 端口。


二、SNMP 的组成部分

  1. SNMP 管理站(NMS):可看作 SNMP 客户端程序,安装在管理员的电脑上,用来监控、操作被管理设备。
  2. SNMP 代理:可看作 SNMP 服务器程序,安装在被管理设备上(如服务器、交换机等)。SNMP 代理负责接受、处理来自 SNMP 管理站的请求。当发生一些紧急事件时,SNMP 代理也会立即通知 SNMP 管理站。
  3. 管理信息库(MIB):被管理设备上被管理对象信息数据库(如 IP 地址、端口状态等),每个 SNMP 代理都维护着这样一个数据库。它定义了被管理对象的一系列的属性:对象的名字、对象的访问权限和对象的数据类型等。SNMP 管理站可对该数据库读写进行操作,以实现对设备的管理和监控。


三、SNMP 各版本简介

  • SNMP v1:原始版本,使用了脆弱的团体名(明文)认证方式,非常容易遭到恶意攻击。
  • SNMP v2c:主要扩充了 SNMPv1 的功能,认证方式没有变化(局域网推荐使用)。
  • SNMP v3:使用了基于用户的安全模型(USM),大幅提高了安全性,支持多种认证方式和数据加密。另外也支持基于视图的访问控制模型(VACM),可以灵活控制用户访问 MIB 的范围和权限。

四、MIB 数据库的结构

MIB 是以树状结构进行存储的,树的节点表示被管理对象。

每一个节点的位置都用一串以点分隔开的数字进行编码,这个编码就叫做 OID(对象标识符),同时还对应一个名称。OID 表示从根开始到指定节点的路径。如下图所示:

OID 的标准格式为:.<数字>.<数字>.<数字> ...。(例如:.1.3.6.1.2.1.1.5.0

被管理对象所对应的 OID 和名称由各网络设备厂商和标准化组织制定。


五、SNMP 常见五种 PDU(协议数据单元)

  • Get:获得一个或多个参数值。
  • GetNext:获得一个或多个参数的下一个参数值(可以用来遍历整个 MIB)。
  • Set:设置一个参数值。
  • Response:被管理设备对上述三种操作的响应。
  • Trap:报告被管理设备上的紧急或异常事件。该报文由 SNMP 代理主动发送到 SNMP 管理站上的 UDP162 端口。


六、SNMP 的简单应用

6.1 服务器配置

这里介绍下知名 SNMP 服务器 net-snmp 的基本配置方法。

macOS 的配置方法和 Linux 基本一致,因为 macOS 已经预装了,所以下面的操作均在 Mac 上进行。

配置文件位置:/etc/snmp/snmpd.conf

配置方法如下图所示:

配置完成后,执行以下命令启动服务。

snmpd

然后执行以下命令进行测试:

(获取系统主机名)

snmpget -On -v 2c -c MACBOOK-PRO localhost sysName.0

运行结果:

.1.3.6.1.2.1.1.5.0 = STRING: yuzenandeMBP.lan

其中 .1.3.6.1.2.1.1.5.0 为该节点的数字 OID,STRING 为该节点的数据类型,yuzenandeMBP.lan 为该节点的值。

6.2 网管软件

所有基于 SNMP 的网管软件的原理就是对 MIB 进行读写操作以及接收 Trap。下图是 iReasoning MIB Browser(免费试用)这款网管软件的操作界面。

iReasoning MIB Browser 界面

使用方法也不难,设置好服务器 IP 和验证方式之后,输入 OID 和所做的操作就可以看到信息了。

发表评论

电子邮件地址不会被公开。