遠程通信網路拓撲旨在發現網路實體 , 並獲取實體間的連線關係。
基本介紹
- 中文名:遠程通信網路拓撲
- 本質:發現網路實體
遠程通訊網路拓撲發現的思路及實現步驟,SNMP 代理髮現,拓撲相關信息探測,RT 遠程 網路拓撲發現算法,RT算法描述,
遠程通訊網路拓撲發現的思路及實現步驟
對於利用 SNM P 進行網路拓撲發現的算法而言, 傳統的方式是先找一個種子, 以此為起點取得種子的路由表, 從路由表中獲取其他種子的路由信息 , 將其他種子路由加入路由鍊表後進行廣度或深度優先遍歷。而對於發現大型異構 IP網路而言 , 目標內支持 SNMP 的設備是未知的 。因此 , 首先對目標網段地址進行掃描 , 以發現其中開放 SNMP 的設備 , 即SNMP 代理 ; 再探測得到 SNMP 代理的 IP 表和 route 表 ; 最後對結果進行綜合分析 。整個過程包括以下三個步驟 :
SNMP 代理髮現
SNMP 代理髮現的基本思想是向目標網段的每個地址的161 連線埠傳送 SNMP 的 GetRequest 報文 , 若收到 SNMP 的GetRequest 報文 , 則此網路設備的 SNMP 服務可用 , 將其加入代理鍊表 。為了提高效率 , 在報文 構 造 時 封 裝 變 量 如下 :sysDescr (設備描述 ) ; sysName (設備名稱 ) ; sysServices(服務類型 ) ; ifNumber ( 設備接口數) ; ipForwarding (設備轉發類型 ) ; ipAdEnt A ddr ( 接口IP位址 ); ipAdEnt NetM ask( 接口子網掩碼)。其原因如下 :
其原因如下:
1)對於判斷網路設備是否為路由器而言,ipForwarding 等於1是必須的條件,但是只有這一個不夠充分。如普通裝上Windows 2000的PC和配置為代理伺服器的PC其ipForwarding 也是1,所以加入 ifnumber 值大於1加以確認。但對於配置為代理伺服器的PC而言,其ipForwarding等於1,且ifnumber值大於1,此時再加入sysServices 進一步確認。若是主機則其 sysServices 為72。
2)實際網路環境下,當一個路由器的多個接口地址都處於同一個探測範圍時,則該路由器會有多個接口地址對探測報文進行回應。為了避免將這些別名地址作為不同的路由器進行重複探測,要對同一路由的多個回應地址進行歸併操作。此時引入 sysdescr、sysname 和 ifnumber 對路由器進行歸併。
3)相同的設備在預設條件下使用時,sysdescr、sysname和 ifnumber 這三項都是相同的,所以在路由器歸併時還需要加上 ipadentaddr 和 ipadentnetMask,根據 IP 地址表第一項的配置是否相同來判斷是否是同一個路由器。在探測過程中通過對以上參數的判斷,可以得到不重複的代理,並且可以區分設備是轉發設備還是非轉發設備,為進一步探測和分析奠定了基礎。
拓撲相關信息探測
獲得拓撲信息主要是通過讀取網路設備的路由表,需要讀取的關鍵信息如下,對這些關鍵信息的使用將在拓撲相關信息分析中進行說明:
對於IP位址表來說,需要取得的數據為:ipadentIfIndex(接口索引);ipadentaddr;ipadentnetMask。
對於IP路由表來說,需要取得的數據為:ipRouteIfIndex(接口索引);ipRoutetype (路由類類型); ipRoutenext~op(接口的下一跳 IP 地址);ipRoutedest (目的 IP 地址)。
在實際網路環境中,轉發設備的 IP 地址表和 IP 路由表往往很大,多至幾百上千條記錄,為了提高后期分析的效率,取路由表的時候要對冗餘條目及無用條目進行過濾。具體有以下幾種情況:
1)在分析過程中ipRoutetype為3(direct)或4(indirect)是有用的數據,但ipRoutetype 也可能被設定成1 (other)或 2(invaiid)。因此,在取數據時,要對此類無用數據進行過濾。
2)環回地址在分析過程中也是無效的,例 如ipadentnetMask 或ipRoutedes為127.0.0.0 或 127.0. 0. 1,此類地址需要在探測時進行過濾。
3)還有一些根據其所在子網地址明顯能夠發現是無用的條目,例如ipadentaddr或ipRouteMask為 0.0.0.0。
RT 遠程 網路拓撲發現算法
RT 遠程網路拓撲發現算法目的在於更準確地發現遠程網路中實體節點的連線關係,包括獲得路由器接口之間,以及路由器接口同子網之間的連線關係。本算法一方面利用 SNMP、Traceroute 技術對遠程網路中的實體進行信息收集 ,另一方面通過別名探測及子網掩碼分析技術對阻塞路由器進行重點探測分析,從而得到一個比較完整、準確的網路拓撲圖。下文以 c 類地址 來描述算法流程,子網掩碼值最小為 255.255.255.0。
RT算法描述
1) 利用 SNMP對遠程目標網路內的路由器進行廣度優先搜尋,可以獲得實體信息並記錄信息;將不能利用 SNMP獲得的轉發實體(阻塞路由器 )IP 地址匯總執行下一步。
2) 確定活動主機,記錄IP位址;
3 ) 利用別名探子獲得 阻塞路由器各接口IP位址對;
4 ) 從 3 )的結果分析出同屬於阻塞路由器的各個接口IP位址;
5) 將同一個路由器的不同別名構成一個鍊表,將此鍊表作為節點存為一個路由器鍊表。
6 ) 若鍊表為空,從鍊表中提取包含一個路 由器各個別名的節點轉到10 ),否則轉到7)。
7 ) 若沒有進行子網分析的路由器別名IP轉10),否則輪尋路由器別名節點中的未經子網分析的別名IP。
8 ) 根據已知多個IP位址分析子網掩碼分析出包含路由器別名lP地址的子網掩碼與子網號,保存結果;轉 9)。
9 ) 在節點中查找沒有進行子網掩碼分析的路由器別名IP 地址;找到則轉 7 ) ;否則轉 6 )。
10) 判斷阻塞路由器與其他路由器的連線關係,驗證阻塞路由器的別名對應子網掩碼.