網路拓撲發現

網路拓撲發現

網路層拓撲發現的原理是結合ICMP和ARP以及SNMP,對指定的網路進行活動設備的檢查,得到所有的活動設備,然後通過SNMP取得設備的基本信息,根據基本信息確定設備的類型,再根據設備的類型取得相應設備的詳細信息。

概述,拓撲發現原理,網路層的拓撲發現,鏈路層的拓撲發現,路由層的拓撲發現,目前Java技術實現的拓撲發現產品,

概述

隨著資訊時代的到來,對計算機網路的依賴使得計算機網路本身運行的可靠性變得至關重要,對網路管理也就有了更高的要求。
按照OSI的定義,網路管理主要包括五個功能域:故障管理、配置管理、性能管理、安全管理和計費管理。在五大功能域中,配置管理是基礎,它的主要功能包括發現網路的拓撲結構、監視和管理網路設備的配置情況。其它的各項功能都以已知網路的拓撲結構為基礎。
網路拓撲發現的主要目的是獲取和維護網路節點的存在信息和它們之間的連線關係信息,並在此基礎上繪製出整個網路拓撲圖。網路管理人員在拓撲圖的基礎上對故障節點進行快速定位。

拓撲發現原理

網路拓撲自動發現的方法很多,但歸結起來主要有以下三種:基於SNMP的網路拓撲發現方法;基於通用協定的網路拓撲發現方法;基於路由協定的網路拓撲發現方法。

網路層的拓撲發現

網路層拓撲發現的步驟如下:
首先通過默認網關路由器獲取存在的子網列表,然後通過ICMP Ping或路由器中的ARP信息遍歷指定子網中所有的活動設備,並用系統團體名庫去找到設備的團體名,如果找到則用SNMP協定獲取設備的基本信息,並判斷出設備的類型(路由器/交換機/防火牆/UPS/主機等),並在此基礎上獲取相應設備的詳細信息。如果沒有找到設備的團體名,則默認此設備為主機
如何找到默認的路由網關呢?查找拓撲發現程式所在計算機的SNMP MIBII中的ipRouteTable,如果發現ipRouteDest值為0.0.0.0的記錄,則說明程式所在的計算機設定了默認網關,ipRouteNextHop值即為默認網關的地址。然後檢查默認網關的ipForwarding值。如果為1,則表明該默認網關確實是路由設備,否則不是。
如何取得存在的子網列表呢?遍歷路由器MIBII的IP管理組中管理對象ipRouteDest下的所有對象,以每個路由目的網路號為索引,查詢ipRouteType欄位的值。若該值為3(direct)表明為直接路由,若該值為4(indirect)則為間接路由。間接路由表明要通往目的網路或目的主機還要經過其它路由器,而直接路由表明與目的網路或目的主機直接相連,這樣就可以得到與路由器直接相連的網路號。再根據網路號中的每條記錄查詢其路由掩碼(ipRouteMask)。根據取得路由掩碼,就可以確定每一個存在的網路子網的IP位址範圍。
如何發現其它的路由設備?查找默認路由網關MIBII的IP管理組路由表中類型為間接路由的路由表項,得到路由的下一跳地址(ipRouteNextHop)。遍歷下一跳地址給出的路由設備,就可以得到更大的網路拓撲。
如何發現網路層設備的連線關係?子網與路由器的連線關係遍歷每個路由器下包含的子網來確定,主機與子網的關係可以通過主機IP與子網掩碼來確定。

鏈路層的拓撲發現

當我們使用網管管理著很多設備,而且設備之間已經實際配置有許多光連線的時候,比如光連線數超過1000條,如果讓我們在網管上一條一條地通過纖纜連線功能去配置,此時一定會很吃力,這時我們可以在網管上使用拓撲自動發現功能來幫助我們,自動發現設備之間的光連線。
對於交換機、路由器設備,鏈路層拓撲發現的原理是根據交換機的cdp鄰居表、連線埠ifIndex和port對應表、自學習表判斷出各交換機的連線關係,具體的拓撲發現步驟如下:
A、獲取所有路由器的arp表信息,對於主機則通過SendARP或netbios來獲取arp信息。
B、獲取所有交換機的cdp鄰居表、連線埠的ifIndex和port對應表、自學習表。
C、對交換機的互連關係進行判斷,如果某個交換機的某個連線埠學習到了路由器的mac地址,則認為此連線埠為上行連線埠,如果交換機只有一個連線埠有自學習表項,也認為此連線埠是上行連線埠。如果一個交換機的上行連線埠中沒有接其它的交換機則此交換機為根交換機。
D、對於每個交換機,如果它的某個連線埠和其它根上的多個連線埠衝突,通過cdp信息修正2者之間的連線關係,
用①表示鄰居的根交換機,用②表示自己的根交換機,
如果①=②,表示它和它的鄰居已經在同一棵樹上,不處理;
如果是上行連線埠上的鄰居,將①的層次和父親改成self的層次和父親;將①下的所有接點的層次加(self的層次-1)那么多;將self的父親改成鄰居的連線埠,並將self的level增加(鄰居的層次+1)那么多;將self下所有接點的level增加(鄰居的層次+1)那么多。
如果是其他連線埠上的鄰居,將②的層次和父親改成鄰居的層次和父親;將②下的所有接點的層次加(鄰居的層次-1)那么多;將鄰居的父親改成self的連線埠,並將鄰居的level增加(self的層次+1)那么多;將鄰居下所有接點的level增加(self的層次+1)那么多。
E、對每個交換機,如果不是根交換機,則在其上加一個節點表示上行連線埠,並查找該交換機下的主機和UPS。
對於PTN設備,拓撲自動發現功能的核心是LLDP(Link Layer Discovery Protocol),鏈路層發現協定,是數據設備數據鏈路層的功能,協定的作用為使不同及相同廠商的設備能夠在網路中相互發現並互動各自的系統及配置信息,可以實現光連線自動發現。
LLDP的報文結構如下:
在乙太網MAC幀中,使用Type類型欄位為0x88CC來表示LLDP報文具體結構如下:
網路拓撲發現
  • Destination MAC address:目的MAC,為固定的組播MAC 0x0180.C200.000E
  • Source MAC address:源MAC地址,傳送LLDP報文設備的MAC地址
  • Type:類型欄位,為0x88CC,表示LLDP報文
  • LLDP PDU:LLDP數據,以TLV為單位,表示如設備MAC地址等相應信息
  • FCS:Frame Check Sequence,幀校驗序列,實現MAC幀傳送過程中的檢錯及糾錯
TLV(Type、Length、Value),是LLDP報文中最重要的內容,可以有很多種TLV,其中基本TLV如下:
網路拓撲發現
當本端設備連線埠啟用LLDP功能後,如果其模式為收發或只發,並且與對端設備間有連線埠之間的連線,那么它將向對端連線埠傳送LLDP PDU,其中包括本端設備MAC地址、本端連線連線埠等等信息;對端設備接收到該LLDP PDU後,經過相應處理後放入MIB中,比如LLDP.MIB,以供網管系統查詢。網管系統收到發現請求後,查詢設備上存儲的對應光連線信息,根據信息進行拓撲自動發現,自動生成對應網元對應連線埠之間的光纖連線。

路由層的拓撲發現

路由層的拓撲發現原理是TraceRoute所有設備節點,根據返回的路由路徑即可得到相關設備的路由拓撲關係,拓撲發現的步驟如下:
首先找到根節點,如果沒有則生成一個;然後對每一個非路由器設備調用TraceRoute,將device id 為0而又沒有子節點的treenode刪掉,將device type是主機,但有子節點的設備改成路由器。
對於多址路由器的問題,可以通過查看路由器的osid是否一致來確定是否屬於同一個路由器的。

目前Java技術實現的拓撲發現產品

ObjectSNMP是採用Java技術和SNMP技術實現的網路拓撲發現產品,目前的功能如下:
全網設備發現:可以按網路號、IP範圍、多個網路範圍內,自動搜尋發現設備,獲取設備的基本信息、設備類型(交換、路由、路由交換、終端設備、廠商特有類型等)、MAC地址、ARP表、交換機連線埠、路由器接口、路由表、交換機轉發表、主機IP位址等信息。
網路漫遊發現:給定少數幾個已知的網路號、IP範圍,按用戶指定的漫遊深度和漫遊廣度,進行全網漫遊發現。
網路拓撲自動發現:可以發現交換機與交換機、交換機與PC機、交換機與終端設備、交換機與路由器、路由交換機與路由交換機之間 的連線關係。連線關係可以定位到具體的設備連線埠、設備接口上。支持在任意指定的設備之間發現它們的所有連線,在全網範圍內發現連線關係。
ObjectSNMP的物理拓撲自動發現採用了全新的技術:即支持單一Cisco、華為網路,也支持各種廠商設備混合網路。支持模糊連線定位,在數據不全或設備缺失的情況下,儘可能發現連線關係。可在任意的網路環境中工作,不需要用戶對網路做任何假設(如路由器假設、根交換機假設、上/下行連線埠假設、邊緣設備假設等)。

相關詞條

熱門詞條

聯絡我們