我正在尝试获取连接到我的Cisco(Catalyst 2960)交换机的设备的列表。最好通过SNMP。这是我已经完成的事情:

我能够从交换机中检索ARP表(通过SNMP遍历交换机上的OID 1.3.6.1.2.1.4.22.1.2)。但是,这并不反映IP的“活动”集,因为当设备离线时ARP不会更新。换句话说,当我重新启动设备并获取一个新的IP地址(动态)时,即使该IP当前不在网络上,我最终也会在ARP表中列出该旧IP地址。

我是否可以通过交换机找到该“活动”列表,最好避免使用ARP表?

PS我无法连续ping设备以确定它们的状态,我正在非常低的带宽条件下工作。

评论

有什么答案对您有帮助吗?如果是这样,您应该接受答案,这样问题就不会永远弹出来寻找答案。或者,您可以发布并接受自己的答案。

#1 楼

是从交换机上的SVI(低带宽)到子网的广播ping,并使用show mac address-table dynamic排除了问题吗?

some-switch#show mac address-table dynamic
          Mac Address Table
-------------------------------------------

Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
   1    000f.257b.ba3b    DYNAMIC     Gi1/0/49
   1    0011.254f.a5be    DYNAMIC     Gi1/0/49
  56    0000.0c57.aa00    DYNAMIC     Gi1/0/49
  56    0004.0ff4.8cf4    DYNAMIC     Gi1/0/49
  56    0004.0af4.c8fb    DYNAMIC     Gi1/0/5


使用您的ARP表将mac-address映射到IP地址。

可以使用SNMP进行此操作,但是如果您需要知道每个mac-address在哪个端口上,那会有些痛苦...使用dot1dTpFdbAddress要获取mac地址,请先将dot1dBasePortIfIndex映射到接口ifIndex,然后将ifNameifIndex映射到您将认识的名称。

评论


您能否在第一个解决方案上进行更多扩展?我怎样才能做到这一点? ...此外,dot1dTpFdbAddress和dot1dBasePortIfIndex不返回任何内容:/

– AJ J.
2013年6月24日18:37



我假设您知道如何从CLI显示mac-address表...有关ping的信息,如果您的子网是172.16.1.0/24,则该子网的广播ping会ping的172.16.1.255 ...关于snmp ,我说这很痛苦:-)...您确定使用snmpbulkwalk -v 2c -m BRIDGE-MIB -c @ dot1dTpFdbAddress吗?换句话说,如果您的社区是“ PUBLIC”,而您正在轮询Vlan 501,则使用社区“ PUBLIC @ 501”对BRIDGE-MIB进行轮询

–迈克·彭宁顿
2013年6月24日18:58



注意:任何受远程保护的设备都不会响应广播ping。

–瑞奇
2013年6月24日19:06

@RickyBeam,这就是为什么我说他需要在连接了SVI的交换机上执行此操作的原因……我也意识到Windows默认情况下不应答ping……所以这总比没有好,但是公认不是100%解决方案...我们正在处理此问题中的一些次优约束

–迈克·彭宁顿
2013年6月24日19:14



@AJJ。默认情况下,mac-address表具有五分钟的缓存时间,这些设备的断开连接是否少于五分钟?如果需要实时信息,则需要检查ifOperStatus,这意味着我在答案中提到的复杂的MIB值映射练习。如果所有这些机器都使用DHCP,则可以按照下面GeneralNetworkError的建议考虑使用DHCP监听

–迈克·彭宁顿
2013年6月25日14:06

#2 楼

如果您只想使用动态地址来标识客户端,则可以同时为L3 IP和L2 MAC地址进行DHCP侦听。这用于安全性来阻止恶意DHCP服务器,并且仅允许使用提供和请求的有效DHCP地址(即,实际上正在使用)的交换机端口接收数据包。

为您的全局启用dhcp监听您要监视的VLAN

ip dhcp snooping vlan 10,20,30,40,50
no ip dhcp snooping information option
no ip dhcp snooping verify mac-address
ip dhcp snooping


请确保使用以下方法标识信任的接口,这些接口在其后有DHCP服务器:

interface xy/z
 ip dhcp snooping trust


IP-MAC地址的示例绑定表:

s-oc2-3h-s1#sh ip dhcp snooping binding
MacAddress          IpAddress        Lease(sec)  Type           VLAN  Interface
------------------  ---------------  ----------  -------------  ----  --------------------
B4:B5:2F:DB:85:C6   172.17.3.29      254427      dhcp-snooping   30    FastEthernet1/0/30
3C:07:54:3F:91:CB   172.17.3.26      224542      dhcp-snooping   30    FastEthernet2/0/42
6C:62:6D:77:95:1A   172.17.3.37      256986      dhcp-snooping   30    FastEthernet1/0/17
B4:B5:2F:2D:27:37   172.17.3.22      149352      dhcp-snooping   30    FastEthernet2/0/30
B4:B5:2F:DB:85:C2   172.17.3.18      207629      dhcp-snooping   30    FastEthernet1/0/16
...



请参阅ciscoDhcpSnoopingMIB以获取对这些对象的SNMP访问。 OID 1.3.6.1.4.1.9.9.380

#3 楼

如果IP是动态的,那么您应该具有dhcp日志来获取mac-ip对。
然后使用SNMP,您可以尝试了解所拥有的设备类型。
但请记住,您必须在工作站上配置并允许使用snmp。
如果您正在谈论Windows机器,那么使用Powershell来获取有关工作站的信息会更容易。
也可以尝试使用nmap扫描整个子网。并获得有关其居民的更多信息。

评论


如何获取DHCP日志?

– AJ J.
13年6月24日在20:41

这取决于您的dhcp服务器供应商...

–罗马人Fomicevs
2013年6月25日下午6:10

#4 楼

这可能会破坏您对带宽的要求,但是您可以使用snmp发现软件,例如“ the dude”。您需要适当地设置社区和私有VLAN,以使snmp流量返回到服务器。
如果您对此解决方案感兴趣,我可以为您提供有关所需VLAN和SW设置的更多详细信息。

评论


我认为“花花公子”只是在您的帖子中修正了一些拼写错误:-)...当我从HTC发布帖子时,这在我身上经常发生...您是否在使用手机?

–迈克·彭宁顿
13年6月28日在9:29