将 SNMPWALK 输出转换为人类可读的格式

网络工程 思科 cisco催化剂 snmp 管理
2021-07-21 17:15:32

我问的这个问题与我之前问过的一个问题有关,@MikePennington 全面回答了这个问题。当我问这个问题时,我想知道如何从交换机轮询 arp 表,但在他的回答中,他也包括了 mac 地址表。出于好奇,我对 mac 地址表进行了轮询。我使用了命令:

 sudo /usr/bin/snmpbulkwalk -v 2c -c public@1 -OXsq 10.0.0.98 .1.3.6.1.2.1.17.4.3.1.2

在迈克的解决方案中,他有一个清晰的结果如下所示

[mpenning@tsunami ~]$ snmpbulkwalk -v 2c -c public@10 -OXsq \
    172.16.1.210 .1.3.6.1.2.1.17.4.3.1.2 
dot1dTpFdbPort[0:6:53:fe:39:e0] 52 
dot1dTpFdbPort[0:1d:a1:cd:53:46] 52 
dot1dTpFdbPort[0:30:1b:bc:a7:d7] 52
 dot1dTpFdbPort[0:80:c8:0:0:0] 52 
dot1dTpFdbPort[38:ea:a7:6d:2e:8e] 52 
dot1dTpFdbPort[80:ee:73:2f:b:40] 52 
[mpenning@tsunami ~]$

这是一个清晰的解决方案,您可以在其中轻松分辨端口和 Mac 地址。但是,我自己的解决方案以以下形式出现

iso.3.6.1.2.1.17.4.3.1.2.0.20.42.49.139.235 25
iso.3.6.1.2.1.17.4.3.1.2.0.21.23.10.229.224 25
iso.3.6.1.2.1.17.4.3.1.2.28.111.101.71.85.113 25
iso.3.6.1.2.1.17.4.3.1.2.28.111.101.174.157.35 25
iso.3.6.1.2.1.17.4.3.1.2.48.133.169.153.178.62 25
iso.3.6.1.2.1.17.4.3.1.2.60.208.248.182.16.108 25
iso.3.6.1.2.1.17.4.3.1.2.108.240.73.231.208.120 25

我知道端口号是 25,但其他数字是否代表 MAC 地址,如果是,为什么它们与给出的解决方案不同?

任何帮助将不胜感激。我正在轮询 Cisco Catalyst 2960 交换机。

1个回答

我自己的解决方案以

iso.3.6.1.2.1.17.4.3.1.2.0.20.42.49.139.235 25

...其他数字是否代表 MAC 地址,如果是,为什么它们与给出的解决方案不同?

首先,我很抱歉没有包含这个依赖项......

您正在轮询的 MIB 表按值编制索引。在这种情况下,您正在轮询dot1dTpFdbPort如果您没有加载 BRIDGE-MIB,则显示为iso.3.6.1.2.1.17.4.3.1.2)。该 OID 由 mac 地址索引。因此,0.20.42.49.139.235是点分十进制格式的mac地址......

要查看您期望的结果,您需要从 Cisco 的 FTP 站点获取 v2 mib

  • mkdir /usr/share/snmp/mibs/cisco (作为根)
  • cd /usr/share/snmp/mibs/cisco
  • v2.tar.gz您刚刚下载的复制/usr/share/snmp/mibs/cisco/v2.tar.gz
  • tar xvfz v2.tar.gz
  • 编辑/etc/snmp/snmp.conf并使其成为文件中的第一行:mibdirs +/usr/share/snmp/mibs/cisco

假设

  • 您正在使用 NET-SNMP 库进行轮询
  • 您的 NET-SNMP 默认 MIB 加载在 /usr/share/snmp/mibs/
  • 您的 NET-SNMP 配置在 /etc/snmp/snmp.conf