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