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