拓?fù)浒l(fā)現(xiàn)算法之議

時(shí)間:2022-08-20 05:26:00

導(dǎo)語:拓?fù)浒l(fā)現(xiàn)算法之議一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

拓?fù)浒l(fā)現(xiàn)算法之議

摘要:作為配置管理的核心和資源管理的基礎(chǔ),完整、精確并且具備可視化友好界面的網(wǎng)絡(luò)拓?fù)?/a>是檢測(cè)網(wǎng)絡(luò)故障、分析網(wǎng)絡(luò)性能的基礎(chǔ),介紹了網(wǎng)絡(luò)物理拓?fù)?a href="http://828857.com/lunwen/qtlw/jsj/201108/458767.html" target="_blank">發(fā)現(xiàn)的分類,基于SNMP設(shè)備的MIN-II和Bridge-MIB管理信息庫(kù),分別設(shè)計(jì)了網(wǎng)絡(luò)層拓?fù)浒l(fā)現(xiàn)算法和數(shù)據(jù)鏈路層拓?fù)浒l(fā)現(xiàn)算法,經(jīng)測(cè)試,算法能夠準(zhǔn)確的發(fā)現(xiàn)網(wǎng)絡(luò)層設(shè)備及連接關(guān)系,能夠比較準(zhǔn)確的對(duì)數(shù)據(jù)鏈路層進(jìn)行拓?fù)浒l(fā)現(xiàn)。

關(guān)鍵詞:拓?fù)浒l(fā)現(xiàn)算法;MIB-II;Bridge-MIB;

隨著網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大和網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的日益復(fù)雜,網(wǎng)絡(luò)管理的地位變得越來越重要,有效、可靠的網(wǎng)絡(luò)管理已經(jīng)成為網(wǎng)絡(luò)系統(tǒng)正常運(yùn)行的關(guān)鍵。OSI參考模型網(wǎng)絡(luò)管理標(biāo)準(zhǔn)中定義了網(wǎng)絡(luò)管理的5大功能,分別是故障管理、配置管理、性能管理、安全管理和計(jì)費(fèi)管理[1],其中配置管理是進(jìn)行網(wǎng)絡(luò)管理的前提,其主要功能是網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)和各類設(shè)備的配置信息管理。網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)是網(wǎng)絡(luò)中各節(jié)點(diǎn)之間互聯(lián)關(guān)系的一種表示,拓?fù)浣Y(jié)構(gòu)通常被構(gòu)建成一個(gè)圖形,對(duì)網(wǎng)絡(luò)拓?fù)溥M(jìn)行發(fā)現(xiàn)是對(duì)網(wǎng)絡(luò)管理系統(tǒng)最基本的功能要求,所謂拓?fù)浒l(fā)現(xiàn)是指通過某種算法探測(cè)和識(shí)別特定網(wǎng)絡(luò)中的網(wǎng)絡(luò)元素和各網(wǎng)絡(luò)元素之間連接關(guān)系,并以字符、圖形等方式將拓?fù)溥M(jìn)行顯示。作為配置管理的核心和資源管理的基礎(chǔ),完整、精確并且具備可視化友好界面的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)是檢測(cè)網(wǎng)絡(luò)故障、分析網(wǎng)絡(luò)性能的基礎(chǔ)[2]。

根據(jù)拓?fù)浒l(fā)現(xiàn)算法涉及的TCP/IP網(wǎng)絡(luò)層次,一般可以將網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)分為網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層拓?fù)浒l(fā)現(xiàn)兩個(gè)層次,網(wǎng)絡(luò)層拓?fù)浒l(fā)現(xiàn)主要實(shí)現(xiàn)網(wǎng)絡(luò)層路由設(shè)備的探測(cè)、子網(wǎng)以及連接關(guān)系的發(fā)現(xiàn),數(shù)據(jù)鏈路層拓?fù)浒l(fā)現(xiàn)的主要工作是二層設(shè)備與主機(jī)的探測(cè)及其連接關(guān)系的確定,好的拓?fù)浒l(fā)現(xiàn)算法能夠快速、準(zhǔn)確的發(fā)現(xiàn)網(wǎng)絡(luò)中的三層和二層網(wǎng)絡(luò)設(shè)備,進(jìn)而確定網(wǎng)絡(luò)拓?fù)鋄3],利用SNMP網(wǎng)絡(luò)設(shè)備的MIB-II和Bridge-MIB管理信息庫(kù),是進(jìn)行網(wǎng)絡(luò)物理拓?fù)浒l(fā)現(xiàn)的常見方法,下邊對(duì)基于MIB-II和Bridge-MIB的拓?fù)浒l(fā)現(xiàn)算法進(jìn)行討論。

1網(wǎng)絡(luò)層設(shè)備拓?fù)浒l(fā)現(xiàn)

探測(cè)三層(網(wǎng)絡(luò)層)設(shè)備最基本的方法是獲取網(wǎng)絡(luò)中路由設(shè)備的路由表(RoutingTable),路由表中記錄了目標(biāo)IP地址(ipRouteDest)的下一條地址(ipRouteNextHop)以及數(shù)據(jù)的傳送方向等信息。支持SNMP的設(shè)備會(huì)將自己的路由表放在管理信息庫(kù)(ManagemnetInformationBase,MIB)中,因此,可以通過SNMP獲取遠(yuǎn)端三層設(shè)備的路由表。

根據(jù)三層網(wǎng)絡(luò)設(shè)備SNMP的特點(diǎn),設(shè)計(jì)如下拓?fù)浒l(fā)現(xiàn)算法:

Foreachrouterinrouter_set

{

ifrouterexsits(interfacetable){next;}

getipRouteTable;

getipAddrTableaddtointerface_table;

ForeachentryinipRouteTable

{

if(ipRouteType=indirect)

{

swapipRoutDestwithitsinterfaceifexsits(nterface_table);

if(ipRouteDestnot_in(router_set)

{

AddRoutertorouterset;

}

Addrouter->ipRouteDesttoedge_set;

}

}}

算法通過遍歷和分析三層設(shè)備的MIB,確定設(shè)備類型和設(shè)備間的連接關(guān)系,最后確定三層設(shè)備網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),使用該算法對(duì)某網(wǎng)絡(luò)中運(yùn)行拓?fù)浒l(fā)現(xiàn),結(jié)果如圖1所示。

2數(shù)據(jù)鏈路層設(shè)備拓?fù)浒l(fā)現(xiàn)

二層(數(shù)據(jù)鏈路層)設(shè)備的探測(cè)是在三層設(shè)備探測(cè)的基礎(chǔ)上增加路由器到交換機(jī)、交換機(jī)到交換機(jī)、交換機(jī)到主機(jī)之間的連接關(guān)系。網(wǎng)絡(luò)中的交換機(jī)同時(shí)負(fù)責(zé)維護(hù)自己的生成樹狀態(tài)表(SpanningTreeProtocol,STP)和MAC地址轉(zhuǎn)發(fā)表(ForwardData-Base,F(xiàn)DB),并保存在標(biāo)準(zhǔn)SNMPv2-SMI(StructureofManagementInformation,管理信息結(jié)構(gòu))中。

二層網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的復(fù)雜性在于以太網(wǎng)交換機(jī)等設(shè)備的透明性。鄰居設(shè)備交換信息主要通過生成樹協(xié)議(SpanningTreeProtocol,STP)實(shí)現(xiàn)。交換機(jī)保留MAC地址和接口狀態(tài)(網(wǎng)內(nèi)主機(jī)的MAC地址與交換機(jī)端口的對(duì)應(yīng)關(guān)系)的主要載體是MAC轉(zhuǎn)發(fā)表(FDB),F(xiàn)DB可以通過SNMP的Bridge-MIB來訪問??梢院?jiǎn)單的通過Bridge-MIB計(jì)算得出設(shè)備之間的物理連接的關(guān)系,但由于Bridge-MIB存在時(shí)間老化、某些二層設(shè)備未配置管理IP導(dǎo)致網(wǎng)管無法訪問以及設(shè)備學(xué)習(xí)不全等情況,導(dǎo)致很難通過計(jì)算得到一張精確的拓?fù)浣Y(jié)構(gòu),這些問題需要采用特有的算法、特定技術(shù)來解決[4]。根據(jù)數(shù)據(jù)鏈路層網(wǎng)絡(luò)設(shè)備MIB-II及Bridge-MIB的特點(diǎn),基本算法描述如下:

Foreachswitchinswitch_set

{

getdot1dTpFdbTable;

ifipAddisaswitch&isonlyiponthatport

{

drawedgebetweenthem;

}

}

由于二層網(wǎng)絡(luò)中還存在著啞設(shè)備、集線器等不可網(wǎng)管的設(shè)備,因此該算法對(duì)設(shè)備的發(fā)現(xiàn)還不夠完整,還需使用直接連接定理和間接連接定理進(jìn)行優(yōu)化,算法如下:

ForeachSinST

{

Foreach''''x''''inPT(S)

{

ForeachEiinPAT(S,PT)

{

ForeachEkinPAT(S,PT)otherthanEi

{

If(EkdisconnectsSandEi)

{//(S)x-a(Ei)b-y(Ek)

deleteEkfromSandSfromEk;

deletePAT(Ek,y'''')fromPAT(S,x);

deletePAT(s.x'''')fromPAT(Ek,y);

applysameproceduretoallentriesinPAT(Ek,y'''')andPAT(S,x'''');

}

}

}

}}

拓?fù)浒l(fā)現(xiàn)結(jié)果如圖2所示。

3結(jié)束語

文章對(duì)基于SNMP的TCP/IP網(wǎng)絡(luò)層拓?fù)浒l(fā)現(xiàn)和數(shù)據(jù)鏈路層拓?fù)浒l(fā)現(xiàn)算法進(jìn)行研究。根據(jù)網(wǎng)絡(luò)設(shè)備MIB-II和Bridge-MIB管理信息庫(kù)的特點(diǎn),分別設(shè)計(jì)了網(wǎng)絡(luò)層拓?fù)浒l(fā)現(xiàn)和數(shù)據(jù)鏈路層拓?fù)浒l(fā)現(xiàn)算法。在校園網(wǎng)環(huán)境下對(duì)算法進(jìn)行驗(yàn)證,經(jīng)驗(yàn)證,算法能夠準(zhǔn)確的發(fā)現(xiàn)網(wǎng)絡(luò)層設(shè)備及其之間的連接關(guān)系,但是對(duì)于數(shù)據(jù)鏈路層設(shè)備和連接關(guān)系的發(fā)現(xiàn)還不夠準(zhǔn)確,這是由于由于二層是設(shè)備的Bridge-MIB存在時(shí)間老化、啞設(shè)備以及設(shè)備學(xué)習(xí)不全等原因?qū)е碌?,要?jì)算得到精確的拓?fù)浣Y(jié)構(gòu),還需要整合多種拓?fù)浒l(fā)現(xiàn)工具并對(duì)算法進(jìn)行進(jìn)一步優(yōu)化[5],這也是需要進(jìn)一步研究的方向。