SNMP:如何在网络中查找mac地址?

时间:2011-04-22 08:43:55

标签: perl networking snmp

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

  1. @mac搜索
  2. 切换'IP
  3. 社区
  4. 如何才能提供知识产权和社区服务? 我知道这取决于我的网络拓扑结构? 有一个主堆栈3开关(cisco 3750),并在它与其他(2960)链接后,级联。 有人有想法吗?

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

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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