【问题标题】:How to pull MAC addresses per vlan using SNMPv3 from cisco switch?如何使用 SNMPv3 从思科交换机提取每个 VLAN 的 MAC 地址?
【发布时间】:2019-07-16 22:36:51
【问题描述】:

我想提取交换机知道的所有 MAC 地址。我在 SNMPv2 中找到了

这个命令在 linux 终端上是成功的

snmpwalk -v2c  -c SNMPCommunity@10 10.10.10.10 .1.3.6.1.2.1.17.4.3.1.1

此命令需要插入“@10”,但我不知道在哪里。

snmpwalk -v3  -l authPriv -u username -a SHA -A authpriv  -x DES -X authkey 10.10.10.10 .1.3.6.1.2.1.17.4.3.1.1

上述命令仅从 VLAN1 中提取 MAC 地址。我尝试了 username@10 - 但后来我得到了错误的用户名

大图。我正在尝试使用 pysnmp 使用 python 脚本来拉取它们。除了最后一部分,我一切正常。

【问题讨论】:

  • 我越来越近了。我在 cisco 配置中添加了“snmp-server group snmpgroupname v3 auth context vlan-match prefix”。现在我可以从“snmpwalk -v 3 -l authPriv -u testUser -a MD5 -A testv3 -x 3DES -X testpriv3DES –n vlan-10 ”得到一个 vlan mac 返回 - 我的问题得到了回答,但我无法让 pysnmp 传递上下文名称。也许这是一个不同的问题。
  • 您的问题被标记为 pysnmp,但您的示例适用于命令行中的 Net-SNMP。您实际使用的是哪个?
  • 哎呀。我无法在评论框中发布 pysnmp 代码(太长),但我已经在这里交叉发布了问题 github.com/etingof/pysnmp/issues/284
  • 构造然后发布minimal reproducible example。并将其放在问题中,而不是在 cmets 中。
  • @Dwight,我正在尝试做同样的事情,但添加 Contextname 并没有返回任何内容,你是如何完成的?

标签: snmp cisco pysnmp vlan


【解决方案1】:

要使用非默认 SNMP 上下文名称获取 pysnmp,只需将 ContextName 对象形式的上下文名称作为 contextData 参数传递给 nextCmd()

from pysnmp.hlapi import *

errorIndication, errorStatus, errorIndex, varBinds = next(
    getCmd(SnmpEngine(),
           UsmUserData('usr-md5-des', 'authkey1', 'privkey1'),
           UdpTransportTarget(('demo.snmplabs.com', 161)),
           ContextData(contextName='vlan-10'),
           ObjectType(ObjectIdentity('1.3.6.1.2.1.17.4.3.1.1')))
)

【讨论】:

  • 这不起作用,但确实如此-感谢您的帮助ContextData(contextName='vlan-10')
猜你喜欢
  • 2015-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-25
相关资源
最近更新 更多