在基于Linux的嵌入式系统中,MIB文件中指定的每个OID的SNMP MIB OID值和accsess类型在哪里存储? (如网络设备,机顶盒,机器控制,工业自动化)应该有内部数据库来存储所有这些OID MIB值,名称,内部访问类型。
答案 0 :(得分:1)
通常有许多方法可以存储数据并由snmp代理访问:
1)代理的内部存储器,通常仅用于配置和监控代理本身
2)代理执行系统调用以查询本地设备/软件以查找所需的信息。 EG,当您从HOST-RESOURCES-MIB请求机器的正常运行时间时,代理将通过询问内核(通过API或通过/ proc文件系统或......)来确定
3)代理通过类似RPC的机制与其他东西进行通信。一种这样的机制是AgentX协议,它是子代理协议的主代理,子协议协议是用于本地系统的SNMP的子集。子代理向主代理注册,表明他们希望为MIB树的某些部分提供服务。
基本上,代理商自己知道数据的情况非常罕见。它几乎总是要在系统上询问其他信息以便报告。
答案 1 :(得分:0)
一般来说,对于基于net-snmp的代理,对象定义用于生成最终构建并链接到SNMP代理snmpd的C源文件。我没有阅读net-snmp的所有源代码,但我怀疑是否使用了内部数据库。