【发布时间】:2019-04-08 21:20:42
【问题描述】:
观察为 Microsoft snmp 代理和在交换机中运行的代理填充 SNMP 获取响应值的方式。
我正在尝试查询一些对象 ID。我在单个请求 pdu 消息中发送对所有对象 ID 的请求。
Windows SNMP 代理中的行为:
在请求的对象 id 中,如果代理中不存在任何对象 id,则整个响应消息设置为错误代码“noSuchObject”,并且所有请求的对象 id 值都返回 null,即使有一些有效的对象 ID 存在于代理中。
虽然我们尝试从运行在 cisco 交换机中的代理获取相同的 oid 列表,但错误代码是为特定的变量绑定设置的,它会返回所有其他存在的 oid 的值。
请Wireshark log (windows agent and cisco switch)refer 随附的 windows 代理和 cisco 代理的wireshark 快照。
RFC https://www.rfc-editor.org/rfc/rfc3416#section-4.2.1 提到在特定场景响应变量绑定的值字段应设置为“noSuchInstance”
附加信息:
微软操作系统:Windows server 2016
问题:
1.为什么微软会有这种行为?
2。是否有任何 Microsoft 论坛可以为此获得进一步的支持?
3.有针对此问题的现有解决方案或解决方法吗?
【问题讨论】:
-
SNMP 是“供应商特定行为”的领地,因此看到某个代理的工作方式与另一个代理不同也就不足为奇了。您的脚本/代码必须适应这种差异。微软很久没有更新他们的 SNMP 代理(例如不支持 v3),他们今天强调了很多 WMI(旧)和 PowerShell(新)。