IP網(wǎng)絡(luò)拓?fù)渥詣影l(fā)現(xiàn)_第1頁
IP網(wǎng)絡(luò)拓?fù)渥詣影l(fā)現(xiàn)_第2頁
IP網(wǎng)絡(luò)拓?fù)渥詣影l(fā)現(xiàn)_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、IP網(wǎng)絡(luò)拓?fù)渥詣影l(fā)現(xiàn)目匕方交通大學(xué)馬文彬張慧勇自從20世紀(jì)90年代以來,越來越多的企業(yè)及個人在加入Internet網(wǎng),使網(wǎng)絡(luò)規(guī)模持續(xù)擴(kuò) 大。為了適應(yīng)越來越多的流量,新節(jié)點、新鏈路不斷的被引進(jìn)到網(wǎng)絡(luò)上,從而使手工維護(hù)很難跟 上網(wǎng)絡(luò)的變化,給網(wǎng)絡(luò)管理帶來困難。網(wǎng)絡(luò)由一起工作的大量實體構(gòu)成,向用戶提供某種服務(wù)。這些實體功能由硬件和軟件執(zhí)行, 一些出現(xiàn)在真實網(wǎng)絡(luò)中實體的例子有路由器、服務(wù)器、普通主機(jī)、鏈路等,所有這些都影響著網(wǎng) 絡(luò)運(yùn)行的方式及提供給最終用戶的服務(wù)質(zhì)量。例如,如果一個應(yīng)用服務(wù)器(Web Server )出現(xiàn)宕 機(jī)而從網(wǎng)絡(luò)上剝離下來,那么用戶將得不到他們所期望的服務(wù)(瀏覽網(wǎng)頁)。提到拓?fù)浒l(fā)

2、現(xiàn),一 般是指發(fā)現(xiàn)完成最終用戶服務(wù)所涉及到的所有實體,不僅要發(fā)現(xiàn)實體,而且要發(fā)現(xiàn)實體在網(wǎng)絡(luò)中 所起的作用及實體間互相連接的方式。網(wǎng)絡(luò)拓?fù)鋵W(wǎng)絡(luò)管理、網(wǎng)絡(luò)規(guī)劃非常有用。例如,網(wǎng)絡(luò)故障、流量瓶頸等重要信息能直接顯 示在網(wǎng)絡(luò)拓?fù)渖希@樣網(wǎng)絡(luò)管理員對當(dāng)前的網(wǎng)絡(luò)狀況就有一個清楚的認(rèn)識,對哪里發(fā)生了故障一 目了然。如果網(wǎng)絡(luò)拓?fù)渖巷@示一條鏈路總處于滿負(fù)荷傳輸狀態(tài),那么擴(kuò)大該條鏈路的容量對提高 網(wǎng)絡(luò)性能將有很大幫助。此外,網(wǎng)絡(luò)拓?fù)鋵W(wǎng)絡(luò)仿真也十分重要,要仿真能否在現(xiàn)有網(wǎng)絡(luò)上新開 放一種應(yīng)用,必須首先有正確的網(wǎng)絡(luò)拓?fù)?。獲得網(wǎng)絡(luò)拓?fù)涞淖詈唵蔚姆椒^于讓管理員根據(jù)實際網(wǎng)絡(luò)手工繪出其拓?fù)?,但現(xiàn)在網(wǎng)絡(luò)越 來越復(fù)雜,越

3、來越龐大,并一直在膨脹,而且實體在網(wǎng)絡(luò)中擔(dān)負(fù)的功能也越來越復(fù)雜,要跟蹤這 樣一個網(wǎng)絡(luò)需要花費(fèi)很多時間或精力,而且網(wǎng)絡(luò)一旦有所改變所有工作必須重做。網(wǎng)絡(luò)拓?fù)渥詣?發(fā)現(xiàn)正是基于這個原因發(fā)展起來的,本文對能用于拓?fù)浒l(fā)現(xiàn)的一些常用的工具和技術(shù)作了簡要的 介紹,并基于筆者的實踐提供了一個簡單的算法實現(xiàn),該算法主要針對同一個管理機(jī)構(gòu)下的IP 網(wǎng)絡(luò)的拓?fù)渥詣影l(fā)現(xiàn),更復(fù)雜的拓?fù)浒l(fā)現(xiàn)算法可在此基礎(chǔ)上進(jìn)一步擴(kuò)展。一、用于拓?fù)浒l(fā)現(xiàn)的工具PingPing命令是IP網(wǎng)上最古老的一種工具,用來監(jiān)測網(wǎng)絡(luò)節(jié)點是否活著,或用于監(jiān)測到網(wǎng)絡(luò)節(jié) 點間的往返時延(RTT)。通常Ping只涉及網(wǎng)絡(luò)上的源和目的兩節(jié)點,而忽略網(wǎng)絡(luò)細(xì)節(jié)。另外

4、我 們可以使用廣播Ping,其Ping的地址不是一個單一的地址,而是子網(wǎng)的廣播地址,所有位于該 子網(wǎng)的主機(jī)均對此Ping包進(jìn)行響應(yīng),從而一次就可得到子網(wǎng)內(nèi)的全部活動主機(jī)。使用Ping的最大問題是,當(dāng)Ping 一個活著的主機(jī)時,其往返時延往往在幾十毫秒左右,但 Ping 一個不存在的或宕著的主機(jī),一般比較常用的超時通常為20秒,再加上為了減少丟包對測 量結(jié)果的影響而采取發(fā)23個Ping包,這樣對這類主機(jī)的監(jiān)測代價就非常大。這個問題最直接 的解決方案是減少超時值,但是必須注意不要小于網(wǎng)絡(luò)實際的往返時延。通過精心設(shè)計超時和重 發(fā)策略(隨著跳數(shù)的增多,超時相應(yīng)增大),可以有效減少等待時間同時又減少誤判

5、。使用廣播Ping的問題是,現(xiàn)在實際網(wǎng)絡(luò)中廣播Ping很少得到完全支持,部分網(wǎng)絡(luò)由路由器 代替子網(wǎng)內(nèi)的主機(jī)響應(yīng)。在另外一些網(wǎng)絡(luò)中主機(jī)根本就不對廣播Ping進(jìn)行響應(yīng),甚至路由器根 本不轉(zhuǎn)發(fā)能引起廣播的包。這是基于網(wǎng)絡(luò)安全的考慮,因為可以利用這個特性進(jìn)行拒絕服務(wù)攻擊, 例如向幾個大的子網(wǎng)進(jìn)行廣播Ping,并把源地址設(shè)置為受害者的地址,這樣受害者就會淹沒于 大量ICMP Ping的響應(yīng)包,從而拒絕提供任何服務(wù)。對該問題的一個解決方案是設(shè)計一個專門的 Broadcast Ping程序,其內(nèi)部實現(xiàn)是直接將子網(wǎng)的廣播地址轉(zhuǎn)變?yōu)槎鄠€主機(jī)地址,然后啟動多 個線程或進(jìn)程來分別向主機(jī)發(fā)送Ping包,從而獲取子網(wǎng)內(nèi)

6、的全部主機(jī)地址。Tracerou teTraceroute命令是TCP/IP家族內(nèi)另一個比較早的工具,它可用來發(fā)現(xiàn)測試點和目標(biāo)主機(jī)之 間的路由器。路由器在轉(zhuǎn)發(fā)包之前總是將其TTL值減1,如果TTL降為0,則路由器向源地址發(fā) 送TTL-Expired ICMP消息。Traceroute實現(xiàn)的原理就是應(yīng)用路由器的這個特性,通過發(fā)送TTL 逐漸增大的探測包,由測試點到目標(biāo)間這條路經(jīng)上所有的路由器依次向測試點發(fā)送TTL-Expired ICMP包,從而發(fā)現(xiàn)所有路由器。因為幾乎所有的路由器設(shè)計時都實現(xiàn)了發(fā)送TTL-Expired ICMP 消息的功能,所以大多數(shù)情況下Traceroute的結(jié)果是準(zhǔn)確可信

7、的。由于采用逐漸增大TTL值的 方法,每探測一個目標(biāo)需要依次發(fā)送不同TTL值的多個包,因此用Traceroute獲取結(jié)果比Ping 要慢的多??梢栽O(shè)計一種并發(fā)式的Traceroute命令,一次發(fā)送不同TTL值的多個包,從而加速 路由器的發(fā)現(xiàn)速度。DNSIP地址是為網(wǎng)絡(luò)上的路由器或主機(jī)等機(jī)器設(shè)計的,它不符合人類的記憶習(xí)慣,DNS(Domain Name System)就是為了解決這個問題而開發(fā)的。DNS系統(tǒng)主要用于網(wǎng)絡(luò)設(shè)備IP地址到名字的映 射,同時也維護(hù)一些其他信息如設(shè)備的硬件平臺及操作系統(tǒng)等。使用DNS服務(wù)器提供的區(qū)域傳輸功能可以一次獲取域內(nèi)許多主機(jī)和路由器,快捷方便,這是 它的優(yōu)點。但如果

8、主機(jī)的地址通過DHCP獲得,則DNS對此就無能為力,此外,DNS服務(wù)器提供 的信息可能與實際情況不一致,甚至有些DNS服務(wù)器沒有提供區(qū)域傳輸功能。盡管有諸多缺點, DNS在拓?fù)浒l(fā)現(xiàn)中還是很重要的,我們可以把DNS返回的信息作為其他算法的起點;我們還可以 在不知道網(wǎng)絡(luò)具體結(jié)構(gòu)的情況下,使用不同時間返回來的信息直接用來估算網(wǎng)絡(luò)的增長速度。SNMPSNMP (簡單網(wǎng)絡(luò)管理協(xié)議)的基本思想是所有的網(wǎng)絡(luò)設(shè)備維護(hù)一個MIB (管理信息庫)保存 其所有運(yùn)行進(jìn)程的相關(guān)信息,并對管理工作站的查詢進(jìn)行響應(yīng)。SNMP協(xié)議描述了一種從MIB庫 中獲取信息的方法,對設(shè)備唯一的要求是支持SNMP并且MIB中的信息足夠豐富

9、。使用SNMP的最大優(yōu)點是信息自動隨網(wǎng)絡(luò)的狀況更新,這樣通過SNMP獲取的拓?fù)湫畔⒖偸欠?映網(wǎng)絡(luò)最新的狀況。其缺點是并不是所有設(shè)備都支持SNMP協(xié)議,而且除了標(biāo)準(zhǔn)的MIB信息外, 各廠家都為自己的設(shè)備開發(fā)了專門的MIB,如果在拓?fù)渥詣影l(fā)現(xiàn)程序中使用了這些MIB,其處理 上可能不得不隨廠家的不同而作特殊的處理。因此,我們建議盡量使用標(biāo)準(zhǔn)MIB。本文中用到的 MIB組有System組、Interfaces組、IP組,它們均為當(dāng)前MIB-II下的標(biāo)準(zhǔn)組。其它工具或技術(shù)除了上面介紹的幾種常用工具外,我們還可利用節(jié)點的ARP表查詢它直連的設(shè)備,利用路由 協(xié)議(如OSPF、BGP)發(fā)現(xiàn)所有子網(wǎng)或網(wǎng)絡(luò),發(fā)現(xiàn)

10、所有的路由器,在BGP下還可發(fā)現(xiàn)一條路經(jīng)經(jīng) 過的自治域(Autonomous Systems )。對于非IP網(wǎng)絡(luò),可利用專門的技術(shù)(對IPX網(wǎng)絡(luò)可采用 SAP)發(fā)現(xiàn)網(wǎng)絡(luò)拓?fù)湫畔?。此外,一些廠家專有的技術(shù)如Cisco的CDP (思科發(fā)現(xiàn)協(xié)議,僅用于 Cisco設(shè)備)、Netflow技術(shù)等也可用于拓?fù)浒l(fā)現(xiàn)。二、算法實現(xiàn)在本小節(jié),我們給出一個IP網(wǎng)絡(luò)拓?fù)渥詣影l(fā)現(xiàn)算法,使用的技術(shù)是ICMP(Ping)和SNMPo 本文提供的算法要求輸入SNMP Read-Community,適用于發(fā)現(xiàn)同一個管理機(jī)構(gòu)下的IP網(wǎng)絡(luò)。算 法首先從本地子網(wǎng)開始,通過Ping獲取本地所有活動主機(jī),利用SNMP區(qū)分出普通主機(jī)和路

11、由器, 然后對路由器進(jìn)行查詢,下載路由器的System組、Interfaces組、IP組的信息。獲取路由器直 連的網(wǎng)絡(luò),進(jìn)行下一輪運(yùn)算,直到發(fā)現(xiàn)所有網(wǎng)絡(luò)或到達(dá)指定的深度(跳數(shù))。程序主要涉及四大 模塊:主循環(huán)控制模塊:程序初始化及算法深度控制,到達(dá)指定深度后跳出循環(huán);子網(wǎng)搜索模塊:搜索子網(wǎng)內(nèi)的所有活動主機(jī)和路由器;ICMP模塊:處理ECHO請求及應(yīng)答;SNMP模塊:處理SNMP相關(guān)操作。程序中兩個重要的類為Rou terClass和Net Class。Rou terClass包括兩個指針分別指向 IpList和Net Lis t, IpList存放路由器的IP地址,Ne tList存放路有器連

12、接的網(wǎng)絡(luò)。Net Class 包括兩個指針分別指向Rconnect和Hconnect。本算法使用了兩個集合:臨時網(wǎng)絡(luò)集合,已發(fā)現(xiàn)網(wǎng)絡(luò)集合。臨時網(wǎng)絡(luò)集合用于存放當(dāng)前深度 和下一深度中還沒有被搜索的網(wǎng)絡(luò),對已搜索的網(wǎng)絡(luò)需要添加到已發(fā)現(xiàn)網(wǎng)絡(luò)集合。算法中為了避 免多次發(fā)現(xiàn)同一路由器(因為路由器有多個IP地址),需要遍歷路由器的IPList。程序使用的 主要算法流程如下:子網(wǎng)搜索模塊(1)利用Ping搜索子網(wǎng)內(nèi)所有的活動IP地址。(2)利用SNMP區(qū)分路由器和普通主機(jī),并分別添加到Net Class的Rconnect和Hconnec t。(3)針對每一個路由器,下載有關(guān)MIB變量(System組,Int

13、erfaces組,IP組),對MIB 變量分析,分別寫入Rou terClass的IPList和Net Lis t。(4)為防止路由器被多次發(fā)現(xiàn),要遍歷RouterClass的IPList。(5)將在(3)中發(fā)現(xiàn)的而又沒有搜索的網(wǎng)絡(luò)添加到深度為n+1的臨時網(wǎng)絡(luò)集合中。主循環(huán)控制模塊(1)從深度為n的臨時網(wǎng)絡(luò)集合中抽取一個子網(wǎng)進(jìn)行子網(wǎng)搜索(調(diào)用子網(wǎng)搜索模塊)。(2)將(1)中搜索的網(wǎng)絡(luò)添加到已發(fā)現(xiàn)網(wǎng)絡(luò)集合。(3)重復(fù)進(jìn)行(1)和(2)直到臨時網(wǎng)絡(luò)集合為空。(4)如果n小于指定深度(nN), n加1后跳到1,否則算法停止。本文提供了一個可用于IP網(wǎng)絡(luò)的拓?fù)渥詣影l(fā)現(xiàn)算法。這個算法使用了路由器的MIB信息和 ICMP (Ping)的結(jié)果來產(chǎn)生拓?fù)洹?/p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論