2014-01-06 105 views
0

我正在使用snmp來發現網絡中的設備的網絡發現程序。我的程序將router-ip作爲輸入,掃描iprotetable(iprouttenext hop),以確定是否有其他路由器連接到它。對於非路由器設備(如交換機),算法會掃描路由器的arptable(ipnettomediatable),但無法找到連接的交換機,除非我從交換機ping到路由器。有什麼方法可以確定直接連接到路由器的設備..?snmp網絡發現識別連接到路由器的設備的MAC地址

回答

2

獲取連接到路由器或交換機的設備不是那麼容易。交換機通常會維護一個MAC轉發數據庫,​​用於存儲在哪個交換機端口上可以看到哪個MAC地址。該表可以通過使用網橋MIB輕鬆讀取。不幸的是,有幾個問題需要注意:

  1. 這些條目再次消失,當交換機的設備已關閉或根本不通信。通常情況下,MAC轉發表中的條目在5分鐘左右後纔會老化。
  2. 在交換機端口上看到MAC地址的事實並不意味着具有該mac地址的設備直接連接到該端口。其間可能有任何其他交換機,路由器或集線器。

一些像思科或惠普這樣的製造商使用自己的協議來確定網絡拓撲。有幾種協議(該區域通常也可通過SNMP MIB獲得):

  1. CDP(思科發現協議):這是思科開發的專有協議,用於公開網絡拓撲信息。一些供應商使用該技術並在其產品中實施該協議。
  2. LLDP(鏈路層發現協議):一種類似於CDP的標準,但不支付思科許可費:-)
  3. 還有更多。我知道Extreme Networks有自己的協議,我非常肯定其他廠商也有它們。

這些協議的問題是當你有一個混合的環境。思科交換機談論CDP不理解Extremen Network的協議,反之亦然。

如果您的目標是查找IP地址,那麼您可以使用路由器的ARP緩存。掃描交換機的ARP緩存沒有意義,因爲它們在第2層上運行。

相關問題