当 snmpwalk 从外部服务器通过 IPv6 运行时,IPv6 发送在 pysnmp 中不起作用

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

所以我过去实施的代理面临着这个问题。 当我有 2 台服务器加入集群时,发布服务器无法在 IPv6 上提供轮询服务。在 IPv6 上运行轮询可以在发布者本地进行,但不能在外部进行。它确实在集群中的订阅者服务器外部工作。 这是我的 nmsagent 实现代码。


class SNMPAgent(BaseSNMPAgent):

    SNMP_AGENT_PORT = 1161

    def __init__(self):

        BaseSNMPAgent.__init__(self)

        self._build_transport()
        self._build_access()
        self._build_context()

    def _build_transport(self):
        ''' Open a UDP socket for SNMP requests '''
        
        # UDP over IPv4
        config.addTransport(self._snmp_engine, udp.domainName, udp.UdpTransport().openServerMode((BaseSNMPAgent.SNMP_AGENT_SRC, 
                                                           SNMPAgent.SNMP_AGENT_PORT)))

我需要单独为 IPv6 实现传输吗?有哪些潜在的解决方案可以解决这个问题。 问题是它确实遍历了我的系统 mib 中的第一个对象,但一直循环遍历它,因此 snmpwalk 超时。

ipv6 snmp polling pysnmp snmpwalk
1个回答
0
投票

我需要单独为 IPv6 实现传输吗

是的。官方示例已经说明了,

https://github.com/lextudio/pysnmp/blob/v6.0.9/examples/v3arch/asyncio/agent/cmdrsp/listen-on-ipv4-and-ipv6-interfaces.py

顺便说一句,不确定你从哪里得到的

BaseSNMPAgent
但这不是 PySNMP 的一部分。要使用 PySNMP 创建代理,您应该遵循

https://github.com/lextudio/pysnmp/blob/v6.0.9/tests/agent_context.py

© www.soinside.com 2019 - 2024. All rights reserved.