如何利用snmp協議發現大型復雜環境的網絡拓撲(建議開發自動化工具的朋友可以看一下)
本功能模塊主要是實現網絡環境下網絡拓撲的自適應和自發現
主要分為三部分:
網絡層拓撲發現
鏈路層拓撲發現
主機層拓撲發現
網絡拓撲發現
網絡拓撲發現的主要目的是獲取和維護網絡節點的存在信息和它們之間的連接關系信息,並在此基礎上繪制出整個網絡拓撲圖。網絡管理人員在拓撲圖的基礎上對故障節點進行快速定位。
二層網絡拓撲即OSI參考模型中第二層的網絡拓撲,稱為鏈路層網絡拓撲。網絡拓撲發現是網絡管理的基本工作,從底層看是交換機之間的連接關系。只有物理拓撲才能準確地定位網絡中的故障,精確地測定某個位置的性能和狀態。
三層網絡拓撲
三層網絡拓撲是OSI參考模型中的第三層,它描述的是路由器、子網之間的連接關系。
OID
對象標識(Object identifier-OID)為每一個對象分配一個唯一的表示號。
SNMP
SNMP 是用於在 IP 網絡管理網絡節點的一種標準協議。SNMP 使網絡管理員能夠管理網絡效能,發現並解決網絡問題以及規劃網絡增長。通過 SNMP 接收隨機消息,網絡管理系統獲知網絡出現問題。
基於二/三層網絡拓撲發現方法 (網絡層和鏈路層拓撲發現)
第一步:生成3層網絡層網絡拓撲
本算法采集設備信息,可以通過SNMP采集或者登錄設備采集,優先選擇SNMP采集(表
列出了用SNMP采集所需信息的OID點)。當設備不支持SNMP采集時,登錄設備采集。
路由表中的每個條目都包含ipRouteDest、ipRouteIfIndex、ipRouteNextHop、ipRouteType和ipRouteMask這幾項。其中,ipRouteDest表示路由的目的地址,ipRouteMask表示路由目標地址的子網掩碼,將ipRouteDest和ipRouteMask按位與可以得到路由目標地址所在的子網;ipRoutelflndex表示路由本地接口的索引值,三層設備將目的地址為ipRouteDest的IP包通過該接口轉發;ipRouteType表示了路由的類型,當路由類型值為3(direct)時,說明三層設備直接連接到路由目的地址所在子網,當路由類型值為4 (indirect)時,說明三層設備不直接連接到路由目的地址所在子網,必須再經過其它三層設備,即為路由表中的ipRouteNextHop,此時三層設備通過本地接口ipRoutelflndex與下一跳三層設備直接連接。
以cisco 3750 (10.95.32.10)核心交換機為例:
ipRouteDest OID
1.3.6.1.2.1.4.22 ARP表
1.3.6.1.2.1.4.20 IP地址表
1.3.6.1.2.1.4.24 IP路由表
路由表中的每個條目都包含ipRouteDest、ipRouteIfIndex、ipRouteNextHop、ipRouteType和ipRouteMask這幾項。其中,ipRouteDest表示路由的目的地址,ipRouteMask表示路由目標地址的子網掩碼,將ipRouteDest和ipRouteMask按位與可以得到路由目標地址所在的子網;ipRoutelflndex表示路由本地接口的索引值,三層設備將目的地址為ipRouteDest的IP包通過該接口轉發;ipRouteType表示了路由的類型,當路由類型值為3(direct)時,說明三層設備直接連接到路由目的地址所在子網,當路由類型值為4 (indirect)時,說明三層設備不直接連接到路由目的地址所在子網,必須再經過其它三層設備,即為路由表中的ipRouteNextHop,此時三層設備通過本地接口ipRoutelflndex與下一跳三層設備直接連接。
第二步:生成2層鏈路層網絡拓撲
通過第一步,計算得到3層網絡拓撲,所有接口分成兩大類:
點對點網絡,兩個接口直接互連;
多點對多點網絡,三層在同一網段,需要在這一步得到互連關系。
2層網絡拓撲的計算,依據設備的MAC地址,路由器檢查ARP表,交換機檢查MAC地址
基於SNMP協議算法采集設備信息,可以通過SNMP采集或者登錄設備采集,優先選擇SNMP采集。當設備不支持SNMP采集時,登錄設備采集。采集所有設備的接口IP地址、掩碼等信息:
舉例接口信息采集:
[root@localhost ~]# snmpwalk -v 2c -c 1qaz@WSX@ 100.100.100.1 1.3.6.1.2.1.31.1.1.1
ifName ifDescr ifOperStatus
在我的實際環境中,用戶通過接入交換機接入網絡,接入交換機通過匯聚交換機和路由器相連,因此,如果某臺交換機的地址轉發表中只有一個端口含有其它交換機的mac,那麽這臺交換機一定是接入交換機,那個端口一定是上行端口。可以通過這個條件將交換機分成接入交換機和匯聚交換機兩個組,先判斷接入交換機與匯聚交換機的連接情況,在判斷匯聚交換機與匯聚交換機的連接情況,可以減少對比次數。
通過SNMP采集或者登錄設備采集,可以采集到路由器的ARP表或交換機的MAC地址表。得到以下表格,含義是某個設備的MAC地址,出現在另一個設備的某個接口上,示意如下。
從設備2層連接關系表得到直接連接關系表,可以用“去除末端法”。定義:“末端設備”,在設備2層連接關系表中,只有一個接口與表中其他設備相連的設備,稱為“末端設備”。
定理2:在設備2層連接關系表中,如果設備甲是“末端設備”,而且設備乙的某個接口,只與設備甲相連,不與其他設備相連,則設備乙與設備甲直接相連。
操作方法流程圖:
得到設備2層直接連接關系表
如何利用snmp協議發現大型復雜環境的網絡拓撲(建議開發自動化工具的朋友可以看一下)