我想从交换机切换到已在Ubuntu Server 12.04 LTS上设置的syslog-ng服务器的ARP表。我已经阅读了有关SNMP的信息,并且我知道服务器将充当管理器,而交换机将充当代理。我有关于MIB包含位置的详细信息,我必须使用以下命令
snmpwalk -v2c -c <community> <SwitchIP> .1.3.6.1.2.1.17.4.3.1.2
我希望将生成的arp表定向到我的服务器。
我的问题是我不知道确切在哪里运行命令,或将输出保存到文件中。
我想从交换机切换到已在Ubuntu Server 12.04 LTS上设置的syslog-ng服务器的ARP表。我已经阅读了有关SNMP的信息,并且我知道服务器将充当管理器,而交换机将充当代理。我有关于MIB包含位置的详细信息,我必须使用以下命令
snmpwalk -v2c -c <community> <SwitchIP> .1.3.6.1.2.1.17.4.3.1.2
我希望将生成的arp表定向到我的服务器。
我的问题是我不知道确切在哪里运行命令,或将输出保存到文件中。
Answers:
似乎有些混乱……您正在询问ARP表,并且您正在使用OID .1.3.6.1.2.1.17.4.3.1.2;但是,该OID实际上是用于交换机中的mac地址表的。
我假设您知道如何登录到Ubuntu服务器,并且NET-SNMP已安装...请让我知道您是否需要执行此操作的指针(有关在Linux中加载MIB的提示,请参阅此问题)。我的一些示例假定服务器上已加载了MIB ... -m <mib-name>如果未在本地加载MIB,则只需删除命令中的选项。
对于这个答案的长度,我预先表示歉意。我希望使用SNMP进行轮询不会那么复杂...
如果您确实要从交换机中获取mac-address表,请记住您必须更改用于轮询的社区字符串...它的形式应为<commity@vlan>...轮询的每个VLAN需要一个不同的社区。
在下面的示例中,在172.16.1.210处的交换机配置为snmp-server community public ro,并且我使用来自BRIDGE-MIB的dot1dTpFdbPort轮询vlan-10中的mac地址表。
[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 ~]$
在上面的输出中,52是的值dot1dBasePort,这是MIB用于索引dot1dTp表的数字。要将其转换为普通的接口名称,必须将其映射到ifName ... BRIDGE-MIB使用dot1dBasePortIfIndex来实现 ...
[mpenning@tsunami ~]$ snmpbulkwalk -v 2c -c public@10 -m BRIDGE-MIB 172.16.1.210 \
  .1.3.6.1.2.1.17.1.4.1.2
BRIDGE-MIB::dot1dBasePortIfIndex.52 = INTEGER: 10048
[mpenning@tsunami ~]$
[mpenning@tsunami ~]$ snmpget -v 2c -c public 172.16.1.210 ifName.10048
IF-MIB::ifName.10048 = STRING: Fa0/48
[mpenning@tsunami ~]$
因此,我们知道该交换机上的所有mac地址都是通过vlan-10中的FastEthernet 0/48获悉的。
如果你不知道哪个VLAN来调查一个开关,你可以从这些信息.1.3.6.1.4.1.9.9.46.1.3.1.1.2,这是vtpVlanState在CISCO-VTP-MIB ...
[mpenning@tsunami ~]$ snmpbulkwalk -v 2c -c public -OXsq -m CISCO-VTP-MIB 172.16.1.210 \
   .1.3.6.1.4.1.9.9.46.1.3.1.1.2
vtpVlanState[1][1] operational
vtpVlanState[1][10] operational
vtpVlanState[1][1002] operational
vtpVlanState[1][1003] operational
vtpVlanState[1][1004] operational
vtpVlanState[1][1005] operational
[mpenning@tsunami ~]$
请记住,VLAN 1002-1005是您不应该轮询的内部Cisco Vlan 。
如果您确实要从交换机获取ARP表,则需要轮询atPhysAddress ...
[mpenning@tsunami ~]$ snmpbulkwalk -v 2c -c public -OXsq  172.16.1.210 \
  .1.3.6.1.2.1.3.1.1.2
atPhysAddress[10][1.172.16.1.5] "80 EE 73 2F 0B 40 "
atPhysAddress[10][1.172.16.1.25] "38 EA A7 6D 2E 8E "
atPhysAddress[10][1.172.16.1.32] "BC 51 FE 50 16 F8 "
atPhysAddress[10][1.172.16.1.200] "00 06 53 FE 39 E0 "
atPhysAddress[10][1.172.16.1.210] "00 18 BA 51 5B 41 "
[mpenning@tsunami ~]$
我们正在研究超出此站点正常范围的区域,但是要将上面的ARP表保存到中的文件中/tmp/S01_ARP.txt,您将> /tmp/S01_ARP.txt在snmpbulkwalk上面添加末尾...
[mpenning@tsunami ~]$ snmpbulkwalk -v 2c -c public -OXsq  172.16.1.210 \
      .1.3.6.1.2.1.3.1.1.2 > /tmp/S01_ARP.txt
[mpenning@tsunami ~]$ cat /tmp/S01_ARP.txt
atPhysAddress[10][1.172.16.1.5] "80 EE 73 2F 0B 40 "
atPhysAddress[10][1.172.16.1.25] "38 EA A7 6D 2E 8E "
atPhysAddress[10][1.172.16.1.32] "BC 51 FE 50 16 F8 "
atPhysAddress[10][1.172.16.1.200] "00 06 53 FE 39 E0 "
atPhysAddress[10][1.172.16.1.210] "00 18 BA 51 5B 41 "
[mpenning@tsunami ~]$
如上所示,您可以cat在linux中使用它来获取文本文件的所有输出。注意:一些linux发行版(ahem ... CentOS)/tmp每月清理一次目录。您应该HOME在Linux中使用目录来存储文件。我不记得Ubuntu会被清理掉/tmp,但是为了安全起见,我会避免在这里存放东西。
如果尚未在Ubuntu计算机上加载所有Cisco的MIB,则应避免-m <mib-name>在snmpbulkwalk命令中使用标志。加载MIB允许您使用OID名称而不是长点号进行轮询...
如果您对上面的SNMP命令的CLI有疑问,我会在交换机中包含一些show命令。
S01#sh ver | i IOS
Cisco IOS Software, C3560 Software (C3560-IPBASEK9-M), Version 12.2(37)SE, RELEASE SOFTWARE (fc2)
S01#
S01#sh mac address-table dynamic
          Mac Address Table
-------------------------------------------
Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
  10    0006.53fe.39e0    DYNAMIC     Fa0/48
  10    001d.a1cd.5346    DYNAMIC     Fa0/48
  10    0030.1bbc.a7d7    DYNAMIC     Fa0/48
  10    0080.c800.0000    DYNAMIC     Fa0/48
  10    38ea.a76d.2e8e    DYNAMIC     Fa0/48
  10    80ee.732f.0b40    DYNAMIC     Fa0/48
Total Mac Addresses for this criterion: 6
S01#
S01#sh arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  172.16.1.210            -   0018.ba51.5b41  ARPA   Vlan10
Internet  172.16.1.200            0   0006.53fe.39e0  ARPA   Vlan10
Internet  172.16.1.32             0   bc51.fe50.16f8  ARPA   Vlan10
Internet  172.16.1.25             0   38ea.a76d.2e8e  ARPA   Vlan10
Internet  172.16.1.5              1   80ee.732f.0b40  ARPA   Vlan10
S01#
man snmpcmd您是否在Linux主机上并安装了Net-SNMP。否则,您可以在以下位置