SNMP 与帧缓冲设备驱动全解析
1. SNMP 输出特点与版本差异
SNMP 输出采用深度优先遍历方式,这使得阅读起来有些别扭。它会先遍历完每一列,再回到第一行开始下一列的遍历,这是由 OID 的词法排序导致的。例如,由于 ifDescr 是 ifEntry.1,ifType 是 ifEntry.2,所以会先看到所有的 ifDescr 字段,再看到 ifType 字段。
SNMP 主要有三个版本:
-SNMPv1:是最初版本,最为简单,但存在一些缺点:
- 不支持超过 32 位的整数。
- 无法请求批量数据,必须逐个按名称请求对象。
- 没有机制确保陷阱(trap)能到达目的地。
- 安全认证使用社区名,类似于密码,但在网络上明文传输(即未加密)。
-SNMPv2c:解决了 SNMPv1 的前三个问题,引入了 64 位整数、GETBULK 命令和 informs(已确认的陷阱)。不过,在新的安全机制上难以达成一致,仍然依赖社区名进行认证。
-SNMPv3:用更安全的认证和加密机制取代了社区名认证机制,但深入讨论超出了本文范围。
虽然 SNMPv1 已被列为“历史”状态,但许多 IT 组织的应用仍在使用它。为了与这些旧应用兼容,网络设备可能需要支持 SNMPv1。不过,在不久的将来,一些客户可能会希望禁用这些较旧、安全性较低的 SNMP 版本。
2. 通过 MIB 识别设备
通过遍历设备支持的 MIB 通常可以识别设备类型。例如,有一次有人被分配了一个新工