【问题标题】:SNMP : How to find a mac address in the network?SNMP : 如何在网络中找到 MAC 地址?
【发布时间】:2011-04-22 08:43:55
【问题描述】:

我编写了一个 Perl 脚本来查询网络上的设备(交换机),它用于通过 LAN 查找 MAC 地址。但是,我想改进它,我的意思是,我必须给我的脚本这些参数:

  1. @mac 搜索
  2. 交换机的IP
  3. 社区

我该如何做才能只提供 IP 和社区?
我知道这取决于我的网络拓扑? 有一个主堆栈 3 交换机 (cisco 3750),在它与其他交换机 (2960) 链接后,级联。
有人有想法吗?

编辑:我不想指定开关。 只需给@mac 和社区。

【问题讨论】:

  • 你想要什么改进?请详细说明。

标签: perl networking snmp


【解决方案1】:

您必须解决两个问题...脚本将第一个查询发送到哪里...然后,假设您发现通过该交换机上的端口 1/2/1 学习了一个 mac 地址,并且该端口连接到另一个开关。不知何故,您的脚本必须足够聪明才能查询连接到端口 1/2/1 的交换机。继续使用相同的算法,直到您无法切换到查询。

您的要求是可能的,但它需要您提前提供脚本网络拓扑信息,或者使用 CDP 或 LLDP 动态发现它。 CDP 总是携带邻居的 IP 地址……有时你可以从 LLDP 获得。 CDP 和 LLDP 都有您可以查询的 MIB 对象。

【讨论】:

    【解决方案2】:

    您基本上需要两个脚本。您已经有一个脚本来收集您的数据,但是找到一个 MAC 需要很长时间。大概您有每个交换机及其 IP 地址的完整列表。循环遍历它们,构建 CAM 表的数据库。然后,当您需要搜索 MAC 时,只需查询您预先构建的数据库即可。大约每小时更新一次,你应该保持相当准确的结果。您可以通过并行运行多个 snmp walks 来加快查询多个设备的速度。

    【讨论】:

      猜你喜欢
      • 2013-05-21
      • 1970-01-01
      • 2021-10-25
      • 2015-09-18
      • 1970-01-01
      • 2018-02-12
      • 2015-09-15
      • 2011-07-07
      • 2018-08-13
      相关资源
      最近更新 更多