通用的拓撲鏈接準確發(fā)現(xiàn)方法
【專利摘要】本發(fā)明提供了一種通用的拓撲鏈接準確發(fā)現(xiàn)方法,包括:1)用戶錄入鏈接發(fā)現(xiàn)所需的信息;2)發(fā)現(xiàn)設(shè)備,并將設(shè)備進行分類緩存;3)、通過STP協(xié)議將所有交換機設(shè)備構(gòu)建成森林結(jié)構(gòu),并設(shè)置好森林中的交換機的上行端口和下行端口;4)、遍歷森林中的每棵樹進行二層交換機的鏈接分析,鏈接分析包括交換機到交換機、交換機到主機、交換機到路由器之間的鏈接;5)、計算三層交換機到主機之間的鏈接;6)、計算路由器到路由器之間的鏈接。不僅通用性強,而且準確性提高,尤其適合于二層及三層拓撲鏈接發(fā)現(xiàn)。
【專利說明】通用的拓撲鏈接準確發(fā)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及IT運維領(lǐng)域,尤其涉及一種通用的拓撲鏈接準確發(fā)現(xiàn)方法。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)規(guī)模日益擴大,企業(yè)的網(wǎng)絡(luò)環(huán)境也越來越復(fù)雜,網(wǎng)絡(luò)設(shè)備也越來越多,對網(wǎng)絡(luò)管理也就有了更高的要求。
[0003]網(wǎng)絡(luò)拓撲發(fā)現(xiàn)的主要目的是獲取和維護網(wǎng)絡(luò)節(jié)點的存在信息和它們之間的鏈接關(guān)系信息,并在此基礎(chǔ)上繪制出整個網(wǎng)絡(luò)拓撲圖。網(wǎng)絡(luò)管理人員在拓撲圖的基礎(chǔ)上對故障節(jié)點進行快速定位?,F(xiàn)有的拓撲鏈接發(fā)現(xiàn)方法準確度不夠、通用性不強。
【發(fā)明內(nèi)容】
[0004]本發(fā)明中提供了一種通用的拓撲鏈接準確發(fā)現(xiàn)方法,不僅通用性強,而且準確性提高,該方法主要是基于SNMP的網(wǎng)絡(luò)拓撲發(fā)現(xiàn)方法,尤其適合于二層及三層拓撲鏈接發(fā)現(xiàn)。
[0005]本發(fā)明的目的通過如下方案實現(xiàn):通用的拓撲鏈接準確發(fā)現(xiàn)方法,包括以下步驟:。
[0006]步驟1、配置需要發(fā)現(xiàn)的子網(wǎng)以及SNMP的相關(guān)配置信息;
配置子網(wǎng)的目的是確定要發(fā)現(xiàn)的網(wǎng)絡(luò)范圍,SNMP信息包括版本、團體字等。
[0007]步驟2、通過SNMP協(xié)議獲取子網(wǎng)中所有的網(wǎng)絡(luò)設(shè)備的信息,并將這些設(shè)備按類型進行分類緩存;
設(shè)備按路由器、交換機、防火墻、主機進行分類;網(wǎng)絡(luò)設(shè)備的信息包括端口信息表(IfTable)、IP 地址表(IpAddrTable)、IpRouteTable (路由表)、ARP 緩存表(IpNetToMediaTable)、地址轉(zhuǎn)發(fā)表(DotIdTpFdbTable)、端口對應(yīng)表(BasePort)。
[0008]步驟3、將步驟2獲取的各個交換機設(shè)備端口的MAC進行分類緩存;
由于交換機端口可以學習MAC地址并將其放在交換機內(nèi)部地址中,所以交換機上面會有連接在該交換機上所有設(shè)備的MAC,因此在該方法中將每個交換機每個端口學習到的MAC分為三類:路由器MAC、交換機MAC、主機MAC,將每個端口上的所有MAC與步驟2得到的所有設(shè)備進行匹配,按匹配到的設(shè)備的類型來放在對應(yīng)的列表中。
[0009]步驟4、通過STP協(xié)議將所有交換機設(shè)備構(gòu)建成森林結(jié)構(gòu),并設(shè)置森林中的交換機的上行端口和下行端口;
O使用STP協(xié)議從所有交換機中找到若干個樹根,樹根即其中一個交換機,即根交換機;基于這些樹根構(gòu)建成為根交換機到根交換機的樹,將這些樹加入到森林中;
2)遍歷其他交換機,非根交換機,針對交換機的每個端口,只要交換機MAC列表中有根交換機的MAC就是上行端口,否則就是下行端口 ;將這些設(shè)置好上行、下行端口的交換機構(gòu)建成樹并加入到森林 中;
3)從剩余的交換機中找到三層交換機來用相同的方式構(gòu)建樹;4)如果還有交換機不包含在已構(gòu)建的任何樹中,則取出剩余交換機中的第一個開始,依次按照相同的方法構(gòu)建樹,直到所有交換機都放在森林中。
[0010]步驟5、對步驟4中構(gòu)建的森林中的每棵樹進行二層交換機的鏈接分析;
鏈接分析包括交換機到交換機、交換機到主機、交換機到路由器之間的鏈接:
O交換機到交換機的鏈接分為兩步:
a、是從每棵樹的葉子節(jié)點開始,計算出每個葉子節(jié)點與其父節(jié)點之間的鏈接,計算完成后,就將該葉子節(jié)點從樹中刪除,并放到一個專門存放葉子節(jié)點的列表中;完成上一過程后,葉子節(jié)點的父節(jié)點將會成為新的葉子節(jié)點,使用遞歸依次計算出整棵樹的鏈接情況;
b、遍歷所有交換機列表,依次取出一個交換機,記為交換機A,從交換機A的STP端口表中依次取出MAC地址,只要能通過MAC地址從緩存中找到指定交換機B,則交換機A和B之間就存在鏈接,端口可以依據(jù)BasePort表獲??;
2)交換機到主機的鏈接,從上一步中得到的所有葉子交換機中去發(fā)現(xiàn);
從步驟3中得到的交換機端口 MAC地址分類中取出主機MAC列表,按MAC地址從步驟2中獲取到的所有主機中只要能找到主機,則說明該交換機的該端口就與主機之間存在一條鏈接;按照該方法依次遍歷完所有交換機的端口就能找到所有交換機到主機的連接;
3)交換機到路由器的鏈接與交換機到主機的鏈接發(fā)現(xiàn)方法類似,只是路由器可能有多個IP指向一個端口,故需要注意鏈接的重復(fù)。
[0011]步驟6、計算三層交換機到主機之間的鏈接;
從步驟2中取出所有的三層交換機,遍歷每個三層交換機的地址轉(zhuǎn)發(fā)表(DotldTpFdbTable),判斷地址轉(zhuǎn)發(fā)表中的MAC是否能從步驟2中緩存的主機列表找到主機,來判斷該三層交換機與主機之間存在鏈接。
[0012]步驟7、計算路由器到路由器之間的鏈接;
每個路由器都有路由表(IpRouteTable),遍歷路由表中的每一個下一跳,根據(jù)下一跳的IP查找路由器,只要能找到路由器,則可以根據(jù)IP地址表找到對應(yīng)端口,從而確定這兩個路由器之間存在鏈接;遍歷步驟2中獲取到的所有路由器,則可以完成所有路由器之間的鏈接。
[0013]步驟8、以上所有步驟發(fā)現(xiàn)的鏈接都需要進行緩存,并進行重復(fù)的鏈接過濾。
[0014]上述方法中的各個步驟不能交換,必須按照先后順序進行。
[0015]應(yīng)用上述方法,可以準確的發(fā)現(xiàn)整個網(wǎng)絡(luò)中二層設(shè)備、三層設(shè)備之間的鏈接,其中步驟2需要去掃描整個網(wǎng)絡(luò)中的設(shè)備,就需要進行很多次通信,所有會是最消耗性能和時間的步驟,可以采用多線程等方式降低資源利用。
[0016]綜上所述,由于采用了上述技術(shù)方案,本發(fā)明的有益效果是:可以自動的發(fā)現(xiàn)網(wǎng)絡(luò)中的拓撲鏈接,對于網(wǎng)絡(luò)管理會變得更簡單,從而節(jié)省大量的管理資源;又能更及時、準確的了解各類設(shè)備的運行狀況,從而進行管理和維護,有效地保證了各類設(shè)備的正常運行,降低維護成本。
【專利附圖】
【附圖說明】
[0017]圖1是鏈接發(fā)現(xiàn)的主要流程圖;
圖2是交換機之間的鏈接發(fā)現(xiàn)的流程圖;圖3是路由器之間的鏈接發(fā)現(xiàn)的流程圖。
【具體實施方式】
[0018]本說明書中公開的所有特征,或公開的所有方法或過程中的步驟,不可以以任何方式組合。本說明書(包括任何附加權(quán)利要求、摘要和附圖)中公開的任一特征,除非特別敘述,均可被其他等效或具有類似目的的替代特征加以替換。即,除非特別敘述,每個特征只是一系列等效或類似特征中的一個例子而已。
[0019]如圖1所示,拓撲鏈接發(fā)現(xiàn)方法的整體步驟為:
1)用戶錄入鏈接發(fā)現(xiàn)所需 的信息;信息包括:SNMP的相關(guān)信息以及需要發(fā)現(xiàn)鏈接的子網(wǎng)信息;
2)發(fā)現(xiàn)設(shè)備,并將設(shè)備進行分類緩存,需要發(fā)現(xiàn)的設(shè)備包括路由器、交換機、主機等;
3)、通過STP協(xié)議將所有交換機設(shè)備構(gòu)建成森林結(jié)構(gòu),并設(shè)置好森林中的交換機的上行端口和下行端口;
4)、遍歷森林中的每棵樹進行二層交換機的鏈接分析,鏈接分析包括交換機到交換機、交換機到主機、交換機到路由器之間的鏈接;
5)、計算三層交換機到主機之間的鏈接;
6)、計算路由器到路由器之間的鏈接。
[0020]關(guān)于本發(fā)明中,交換機到交換機的鏈接發(fā)現(xiàn)部分流程如圖2所示,遍歷緩存的所有交換機,依次取出一個交換機,記為交換機A。遍歷交換機A的STP端口表,從端口表中依次取出MAC地址,判斷能否通過MAC地址從緩存的交換機列表中找到指定的交換機B,只要交換機B存在,則從交換機B的BasePort表中得到連接的目的端口,同時也從交換機A中找到對應(yīng)的源端口號,結(jié)束這兩個設(shè)備之間的鏈接并保存。所有交換機遍歷結(jié)束則完成交換機與交換機之間的鏈接。
[0021]關(guān)于本發(fā)明中,路由器到路由器的鏈接發(fā)現(xiàn)部分流程如圖3所示,遍歷緩存的路由器列表,依次得到一個路由器A,取出路由器A的路由表,遍歷路由器的所有下一跳,如果能根據(jù)下一跳IP找到一個指定的路由器B,則得到路由器A和路由器B之間的鏈接關(guān)系。對于路由器B,也需要用遞歸的方式遍歷其路由表,直到所有鏈接關(guān)系發(fā)現(xiàn)完畢。
[0022]本發(fā)明并不局限于前述的【具體實施方式】。本發(fā)明擴展到任何在本說明書中披露的新特征或任何新的組合,以及披露的任一新的方法或過程的步驟或任何新的組合。
【權(quán)利要求】
1.通用的拓撲鏈接準確發(fā)現(xiàn)方法,其特征在于該方法包括以下步驟: 1)、配置需要發(fā)現(xiàn)的子網(wǎng)以及SNMP的相關(guān)配置信息; 2)、通過SNMP協(xié)議獲取子網(wǎng)中所有的網(wǎng)絡(luò)設(shè)備的信息,將這些設(shè)備按類型進行分類緩存; 3)將步驟2獲取的所有交換機設(shè)備端口學習的MAC地址進行分類并放在各個分類的列表中; 4)、通過STP協(xié)議將所有交換機設(shè)備構(gòu)建成森林結(jié)構(gòu),并設(shè)置好森林中的交換機的上行端口和下行端口; 5)、對步驟4中構(gòu)建的森林中的每棵樹進行二層交換機的鏈接分析;鏈接分析包括交換機到交換機、交換機到主機、交換機到路由器之間的鏈接; 6)、計算三層交換機到主機之間的鏈接; 7)、計算路由器到路由器之間的鏈接。
2.根據(jù)權(quán)利要求1所述的通用的拓撲鏈接準確發(fā)現(xiàn)方法,其特征在于:步驟2)發(fā)現(xiàn)設(shè)備是基于步驟I)所配置的SNMP信息以及需要發(fā)現(xiàn)鏈接的子網(wǎng)范圍。
3.根據(jù)權(quán)利要求1所述的通用的拓撲鏈接準確發(fā)現(xiàn)方法,其特征在于:步驟4)是基于STP協(xié)議進行森林構(gòu)建。
4.根據(jù)權(quán)利要求1所述的通用的拓撲鏈接準確發(fā)現(xiàn)方法,其特征在于:步驟6)中三層交換機到主機之間的鏈接發(fā)現(xiàn) 是基于地址轉(zhuǎn)發(fā)表協(xié)議的。
5.根據(jù)權(quán)利要求1所述的通用的拓撲鏈接準確發(fā)現(xiàn)方法,其特征在于:步驟7)中路由器之間的鏈接發(fā)現(xiàn)是基于路由表協(xié)議的。
6.根據(jù)權(quán)利要求1所述的通用的拓撲鏈接準確發(fā)現(xiàn)方法,其特征在于:步驟2)采用多線程方式。
【文檔編號】H04L12/757GK103905221SQ201210570904
【公開日】2014年7月2日 申請日期:2012年12月26日 優(yōu)先權(quán)日:2012年12月26日
【發(fā)明者】代銀玉 申請人:成都勤智數(shù)碼科技股份有限公司