gpt4 book ai didi

linux - SNMP 陷阱,所需的 OID : sysuptime and id

转载 作者:可可西里 更新时间:2023-11-01 10:46:55 24 4
gpt4 key购买 nike

我正在尝试了解 SNMP 陷阱的格式。我正在将一段代码从 Windows 移植到发送 SNMP 陷阱的 Linux。 Windows 代码使用内置库(一些函数包括 SnmpStartup、SnmpSetRetransmitMode。可能称为 WinSNMP),因此在移植到 Linux 时无法保留该代码。

我发现了一个名为 SNMP++ 的不错的库,它能够轻松发送 SNMP 陷阱。

据我了解,SNMP 陷阱的前两个变量绑定(bind) (vb) 字段必须符合特定格式。第一个 vb 是系统运行时间(基本上是陷阱的时间戳),它具有众所周知的 OID 1.3.6.1.2.1.1.3.0

第二个vb是陷阱的ID。我在任何地方都找不到关于它的任何文档,但是 SNMP++ 为陷阱的 ID 提供了 1.3.6.1.6.3.1.1.4.1.0 的 OID(它的值是我们的陷阱的 OID正在发送)。它使用 pdu.set_notify_id 函数进行设置。

这是发送陷阱时必须存在的另一个众所周知的 OID 吗? Windows 库根本不使用这个 OID。它将 ID 字段的 OID 设置为我们发送的 OID,因此 OID 及其值设置为同一事物。看起来它是手动完成的,因此原始编码器可能没有很好地理解格式。

那么,哪一个是正确的?

windows:
1.3.6.1.4.1.XXXX.2.1.51 -> 1.3.6.1.4.1.XXXX.2.1.51

SNMP++:
1.3.6.1.6.3.1.1.4.1.0 -> 1.3.6.1.4.1.XXXX.2.1.51

为什么我找不到关于此 1.3.6.1.6.3.1.1.4.1.0 值的任何文档?它似乎不在我读过的任何 RFC 中。谷歌搜索 OID 给出了结果,但他们没有解释它的用途。

最佳答案

对于任何 SNMP 问题,请从 IETF SNMP RFC 文档开始。显然 TRAP v2 必须具有两个对象,如 RFC 3416 第 22 页所述,

https://www.rfc-editor.org/rfc/rfc3416#page-22

我只能说如果 WinSNMP 不符合约定,它不符合标准,应该由 Microsoft 修复。

关于linux - SNMP 陷阱,所需的 OID : sysuptime and id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20549332/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com