自定义 SNMP 陷阱以编辑发件人代理地址

问题描述 投票:0回答:1

我正在尝试发送指定发件人代理 IP 地址的 SNMP 陷阱。 我一直在测试 net-snmp snmptrap 命令及其选项,但我似乎无法修改陷阱本身的发件人地址字段。 我正在寻找类似的东西:

snmptrap -v 2c -c public destination_ip *SOURCE_AGENT_ADDRESS* MIB OID VALUE

如果有人知道是否有任何工具可以做到这一点或者可以推荐一个 python 库,那就太好了。

snmp net-snmp pysnmp
1个回答
1
投票

如果您将 SNMPv1 与

snmptrap
工具一起使用,它应该允许您显式指定代理地址。

如果您使用 SNMPv2c,则 SNMP 数据包中没有专门的代理地址字段。但该标准允许您将代理地址值放入预定义的变量绑定中(也许是

1.3.6.1.6.3.18.1.3.0
)。对于其他旧版 SNMPv1 TRAP PDU 字段,其工作方式相同。

您也应该能够使用 pysnmp 来做到这一点:

from pysnmp.hlapi import *

errorIndication, errorStatus, errorIndex, varBinds = next(
    sendNotification(
        SnmpEngine(),
        CommunityData('public'),
        UdpTransportTarget(('demo.snmplabs.com', 162)),
        ContextData(),
        'trap',
        NotificationType(
            ObjectIdentity('1.3.6.1.4.1.20408.4.1.1.2.0.432'),
        ).addVarBinds(
            # agent uptime
            ('1.3.6.1.2.1.1.3.0', 12345),
            # agent address
            ('1.3.6.1.6.3.18.1.3.0', '127.0.0.1'),
            # enterprise OID
            ('1.3.6.1.6.3.1.1.4.3.0', '1.3.6.1.4.1.20408.4.1.1.2'),
            # user variable-bindings may follow
        )
    )
)
© www.soinside.com 2019 - 2024. All rights reserved.