2011-04-22 31 views
2

我寫了一個Perl腳本來查詢網絡上的設備(交換機),它用來在局域網上查找一個mac地址。但是,我想改善它,我的意思是,我必須給我的腳本這些參數:SNMP:如何在網絡中找到一個mac地址?

  1. 的@mac搜索
  2. 交換機的IP
  3. 社區

哪有我只是給IP和社區?
我知道這取決於我的網絡拓撲? 有一個主棧3-交換機(cisco 3750),並且在它連接到其他(2960)級聯之後。
任何人有想法?

編輯:我想不指定開關。 只要給@mac和社區。

+0

你想要什麼改進?請詳細說明。 – nIKUNJ 2011-04-22 08:53:22

回答

2

您必須解決兩個問題......腳本將在哪裏發送第一個查詢......然後,假設您發現通過該交換機上的端口1/2/1學習了一個mac地址,並且該端口已連接到另一個交換機。不知何故,您的腳本必須足夠聰明才能查詢連接到端口1/2/1的交換機。繼續使用相同的算法,直到您沒有切換到查詢。

您所要求的是可能的,但它需要您提前提供腳本網絡拓撲信息,或者使用CDP或LLDP動態發現它。 CDP始終攜帶鄰居的IP地址...有時,您可以從LLDP獲取該地址。 CDP和LLDP都有可以查詢的MIB對象。

0

基本上你需要兩個腳本。您已經有一個腳本來收集您的數據,但找到一個MAC需要很長時間。想必你有一個完整的每個交換機的列表,它的IP地址。循環遍歷所有構建CAM表的數據庫。然後,當您需要搜索MAC時,只需查詢您的預建數據庫即可。更新約一個小時左右,你應該保持相當準確的結果。您可以通過並行運行多個snmp步驟來加速查詢多個設備。

相關問題