宋翠
摘 要:本文主要針對目前比較常用的網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)算法,進(jìn)行了較深入的理論分析和研究。分析了拓?fù)浒l(fā)現(xiàn)在網(wǎng)絡(luò)管理中的重要性,并總結(jié)出各算法的優(yōu)缺點,并提出可以根據(jù)應(yīng)用的實際環(huán)境,將多種拓?fù)浒l(fā)現(xiàn)算法融合,揚(yáng)長避短,從而達(dá)到更佳的發(fā)現(xiàn)效果。
關(guān)鍵詞:網(wǎng)絡(luò)管理;SNMP;拓?fù)浒l(fā)現(xiàn)
一、基于SNMP協(xié)議的拓?fù)浒l(fā)現(xiàn)算法
該方法是通過標(biāo)準(zhǔn)的SNMP協(xié)議來實現(xiàn)的,由一個指定的或默認(rèn)的路由器開始,通過讀取該路由器的IP路由表,獲取到下一跳路由器的IP地址信息。依據(jù)此法,采用廣度優(yōu)先遍歷或深度優(yōu)先遍歷對整個網(wǎng)絡(luò)內(nèi)的路由器進(jìn)行遍歷,可依次向下發(fā)現(xiàn)網(wǎng)絡(luò)中的路由器。將目的IP地址和子網(wǎng)掩碼進(jìn)行“與”運(yùn)算,從而得到網(wǎng)絡(luò)地址,再通過路由類型的判斷,來確定所連接的子網(wǎng)類型,從而確定網(wǎng)絡(luò)中各設(shè)備的互連情況,構(gòu)建整個網(wǎng)絡(luò)的拓?fù)鋱D。因此,該算法簡單易行,發(fā)現(xiàn)網(wǎng)絡(luò)設(shè)備的效率高,網(wǎng)絡(luò)與系統(tǒng)開銷小。
其不足是:要求待發(fā)現(xiàn)的網(wǎng)絡(luò)內(nèi)的設(shè)備必須支持SNMP協(xié)議,否則無法發(fā)現(xiàn)。同時,出于對網(wǎng)絡(luò)安全方面的考慮,在訪問管理信息庫時需要密碼,即共同體的值,若是不知道該值,就無法訪問網(wǎng)絡(luò)設(shè)備,也就無法獲得網(wǎng)絡(luò)連接的信息。
二、基于ICMP協(xié)議的拓?fù)浒l(fā)現(xiàn)算法
首先給定一個IP地址范圍,對該范圍內(nèi)的所有IP發(fā)起ping命令,將ping通的活動IP地址記錄到IP地址表中。然后從該表中提取一個IP地址,對該地址進(jìn)行TraceRoute操作,將途經(jīng)的路由器記錄到路由器隊列中。重復(fù)上述操作,直至指定范圍內(nèi)的所有IP地址都操作完畢為止。接下來再對IP地址表中的每個IP地址發(fā)送子網(wǎng)掩碼請求,從應(yīng)答的報文中獲取該IP地址所對應(yīng)的子網(wǎng)掩碼,確定其網(wǎng)絡(luò)地址,并加入子網(wǎng)隊列。將所得結(jié)果進(jìn)行分析對照,合并歸屬于同一路由器的不同地址,從而得到網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。此算法理論簡單,操作方便,適用性較強(qiáng),不僅能發(fā)現(xiàn)拓?fù)?,又能檢測網(wǎng)絡(luò)設(shè)備和主機(jī)的存活性。
它的不足是:ping命令只能測試源與目的地之間的連通性,而途中經(jīng)歷了哪些設(shè)備卻無法確定。使用TraceRoute命令,盡管能探測出途中經(jīng)過的路由器,但此命令卻不能直觀地反映網(wǎng)絡(luò)設(shè)備間的連接關(guān)系。由于給定的IP地址是個范圍,不夠準(zhǔn)確,里面可能含有不存在的地址,在對每個IP都進(jìn)行ping和TraceRoute操作時,就增加了系統(tǒng)開銷,浪費(fèi)了帶寬,因此該方法效率不高。此外,如果防火墻處于開啟狀態(tài),ICMP包則是無法通過,也就無法準(zhǔn)確發(fā)現(xiàn)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。
三、基于RIP協(xié)議的拓?fù)浒l(fā)現(xiàn)算法
RIP協(xié)議是小型網(wǎng)絡(luò)中常用的距離矢量路由協(xié)議,以跳數(shù)作為路徑的度量標(biāo)準(zhǔn),最大跳數(shù)為15跳,16跳則認(rèn)為網(wǎng)絡(luò)不可達(dá)。RIP協(xié)議分為RIPv1和RIPv2,其中RIPv2支持VLSM及CIDR技術(shù)。在發(fā)送路由更新時,將整張路由表發(fā)送給直連鄰居。接收到鄰居的路由更新時,同自己路的由表進(jìn)行對照,將表中不存在的路由添加進(jìn)來,對于表中已存在的路由比較一下哪個更優(yōu),則采用哪個。啟用RIPv2的路由器在網(wǎng)絡(luò)拓?fù)錄]發(fā)生變化時,默認(rèn)每隔30秒鐘就發(fā)送一次更新,即周期性更新;當(dāng)拓?fù)浒l(fā)生變化時,則立即發(fā)送更新即觸發(fā)更新。若路由條目在180秒內(nèi)無更新收到,則該路由被標(biāo)記為無效,若在240秒內(nèi)還沒收到更新,則從將該路由條目從路由表中刪除。因此可以通過RIP協(xié)議與路由器交互,獲取相應(yīng)路由表信息,分析并從中提取出網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。
該算法的優(yōu)點是速度快、性能高且發(fā)現(xiàn)結(jié)構(gòu)較準(zhǔn)確。但對此協(xié)議數(shù)據(jù)單元的解析難度較大,同時要求被檢測網(wǎng)絡(luò)內(nèi)的路由器都得使用RIP協(xié)議。此外,由于RIP最大跳數(shù)為15跳,這就決定了它搜索的范圍較小,因此這種算法的實用性也變得越來越小。
四、基于OSPF協(xié)議的拓?fù)浒l(fā)現(xiàn)算法
OSPF開放最短路徑優(yōu)先協(xié)議,是最為典型的鏈路狀態(tài)路由協(xié)議,其通用性高,功能強(qiáng)。OSPF作為一種內(nèi)部網(wǎng)關(guān)協(xié)議,用于在同一AS自治域系統(tǒng)中的路由器之間交換路由信息。其原理是,運(yùn)行OSPF協(xié)議的每臺路由器都知道自己直連的網(wǎng)絡(luò),向網(wǎng)絡(luò)中直連鄰居發(fā)送Hello數(shù)據(jù)包,確認(rèn)鄰居是否存在。然后將所創(chuàng)建鏈路狀態(tài)數(shù)據(jù)包LSP泛洪到其所有的鄰居,鄰居則將收到的LSP存放到數(shù)據(jù)庫中。每臺路由器都依據(jù)自己數(shù)據(jù)庫中的信息去構(gòu)建一個完整的最短路徑優(yōu)先樹SPF樹,并根據(jù)SPF算法計算通向所有目的網(wǎng)絡(luò)的最佳路徑,將其添加到路由表中。當(dāng)網(wǎng)絡(luò)結(jié)構(gòu)發(fā)生變化時,立即發(fā)送鏈路狀態(tài)通告LSA,運(yùn)行路由算法,重新計算路由。因此,網(wǎng)絡(luò)內(nèi)的每臺路由器都擁有一致的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),所不同的是每個路由器的拓?fù)浣Y(jié)構(gòu)都是以自己為根節(jié)點的樹結(jié)構(gòu)。
基于OSPF協(xié)議的發(fā)現(xiàn)算法就是獲取網(wǎng)絡(luò)內(nèi)的一臺路由器的LSA數(shù)據(jù)庫,并實時獲取LSA同步網(wǎng)絡(luò)拓?fù)涞男畔?,其?yōu)點是效率高、速度快、準(zhǔn)確。由于OSPF協(xié)議較復(fù)雜,實現(xiàn)難度較大,并且要求網(wǎng)絡(luò)內(nèi)的路由器都得啟用OSPF協(xié)議。此外,它采用的SPF算法非常復(fù)雜,對硬件設(shè)備的要求也較高,計算路由時開銷大。
綜上所述,當(dāng)前網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的算法有很多,各有優(yōu)缺點及適用范圍。在實際應(yīng)用中,可基于上述拓?fù)浒l(fā)現(xiàn)算法,并結(jié)合實際研究、應(yīng)用的環(huán)境,將兩種或多種拓?fù)浒l(fā)現(xiàn)算法融為一體,揚(yáng)長避短,從而演化出一種更為優(yōu)化、更為適用的網(wǎng)拓?fù)浒l(fā)現(xiàn)算法。