如何使用 SNMP 代理回复 snmp 请求?

How to reply to an snmp request with an SNMP agent?

所以我的问题是 SNMP 代理在解码 oid 后如何检索信息?

例如,一个简单的 snmp 请求将是 snmp-get 发送的 oid 将是 1.3.6.1.2.1.1.1 这将转换为 "so.org.dod.internet.mgmt.mib-2.system.sysDescr" ,这将是对全名和版本的请求识别系统的硬件类型、软件操作系统和网络软件。

在知道它需要什么之后,SNMP 代理如何编写响应?它会查询其他内容吗?如果它确实查询系统,它如何查询它..

最好的办法是阅读并理解标题为

的标准RFC 3411
                 An Architecture for Describing
Simple Network Management Protocol (SNMP) Management Frameworks

特别是第 3.1.3.2 节“SNMP 代理”,其中显示了代理的体系结构。您问的是“MIB 工具”框,在第 3.3 节中有进一步的详细说明。

该标准随后在每个 SNMP 框架中以不同方式实现,通常是通过对每个已注册 MIB object 的回调。您编译要在代理中处理的 MIB,它会生成回调的存根,然后您填写这些存根以按所需格式检索每个 object 和 return 的信息。