首页 > 解决方案 > 如何使用 SNMPv3 从思科交换机提取每个 VLAN 的 MAC 地址?

问题描述

我想提取交换机知道的所有 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 脚本来拉取它们。除了最后一部分,我一切正常。

标签: snmpciscopysnmpvlan

解决方案


要使用非默认 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')))
)

推荐阅读