本發(fā)明屬于網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及到一種網(wǎng)絡(luò)中物理環(huán)路故障診斷方法。
背景技術(shù):
由于當(dāng)今網(wǎng)絡(luò)技術(shù)高速發(fā)展,人們對(duì)網(wǎng)絡(luò)的依賴程度越來越高,因此網(wǎng)絡(luò)故障對(duì)人們的生活和工作就帶來了極大的影響。網(wǎng)絡(luò)高速發(fā)展,導(dǎo)致網(wǎng)絡(luò)中出現(xiàn)的問題多種多樣,故障排查及定位給絡(luò)運(yùn)維人員帶來了很大的困擾,光靠人力來排查這些問題,會(huì)花費(fèi)這些工作者極大的時(shí)間和精力。
物理環(huán)路是一種常見的網(wǎng)絡(luò)問題,是由于施工的疏忽,導(dǎo)致網(wǎng)絡(luò)設(shè)備配置錯(cuò)誤或者連線錯(cuò)誤,產(chǎn)生了鏈路冗余。
物理環(huán)路形成的原因有多種,如在不同交換機(jī)間互連形成物理環(huán)路或在制作網(wǎng)線時(shí)由于接線短路形成物理環(huán)路,還可能是因?yàn)樵谧鲐?fù)載均衡時(shí),由于配置了一端的交換機(jī),另一端的交換機(jī)或服務(wù)器沒有配置,形成物理環(huán)路,或者在同一臺(tái)交換機(jī)上,直接將網(wǎng)線連接到同一個(gè)vlan的兩個(gè)端口,形成物理環(huán)路。
目前,物理環(huán)路故障難以定位及排查,給網(wǎng)絡(luò)維護(hù)人員帶來很大的困擾。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是能快速的檢測(cè)出網(wǎng)絡(luò)中發(fā)生物理環(huán)路故障,并給出診斷結(jié)果,明確顯示發(fā)生故障的物理設(shè)備。
為解決上述問題,本發(fā)明提供了一種網(wǎng)絡(luò)中物理環(huán)路故障診斷方法,包括如下步驟:
步驟一:預(yù)先創(chuàng)建物理環(huán)路檢查表、信息數(shù)組。
所述物理環(huán)路檢查表用于存儲(chǔ)被捕獲數(shù)據(jù)包的關(guān)鍵詞及對(duì)應(yīng)條目信息、根據(jù)關(guān)鍵詞進(jìn)行數(shù)據(jù)包查詢,所述條目信息包括第一次捕獲時(shí)間、捕獲次數(shù)。
所述信息數(shù)組用于按照時(shí)間先后順序存儲(chǔ)與物理環(huán)路檢查表中各個(gè)關(guān)鍵詞一一對(duì)應(yīng)的關(guān)鍵詞,用于對(duì)物理環(huán)路檢查表中的信息順序進(jìn)行管理。
步驟二:利用網(wǎng)絡(luò)抓包軟件進(jìn)行網(wǎng)絡(luò)抓包。
步驟三:根據(jù)物理環(huán)路檢查表定義的關(guān)鍵詞獲取被捕獲數(shù)據(jù)包的對(duì)應(yīng)信息,并在物理環(huán)路檢查表中進(jìn)行查找匹配,如果沒有匹配成功,則進(jìn)行步驟四~步驟五,否則跳轉(zhuǎn)到步驟六。
步驟四:判斷物理環(huán)路檢查表的存儲(chǔ)條目是否達(dá)到存儲(chǔ)上限,如未達(dá)到,則直接執(zhí)行步驟五,否則根據(jù)信息數(shù)組中排序最靠前的關(guān)鍵詞查找到物理環(huán)路檢查表中對(duì)應(yīng)的關(guān)鍵詞及條目,并移除,且信息數(shù)組也刪除掉對(duì)應(yīng)關(guān)鍵詞,然后再執(zhí)行步驟五;
步驟五:被抓取數(shù)據(jù)包的關(guān)鍵詞對(duì)應(yīng)內(nèi)容加入到物理環(huán)路檢查表及信息數(shù)組,條目信息對(duì)應(yīng)內(nèi)容也存儲(chǔ)到物理環(huán)路檢查表,條目信息包括捕獲次數(shù)及第一次捕獲時(shí)間,所述捕獲次數(shù)的值能夠在遞增,取值為該數(shù)據(jù)包被捕獲次數(shù)。
步驟六:根據(jù)被捕獲數(shù)據(jù)包捕獲次數(shù)、捕獲時(shí)間與第一次捕獲時(shí)間的差值進(jìn)行物理環(huán)路故障判斷。
步驟七:重復(fù)進(jìn)行步驟二-步驟六,直到完成預(yù)定的抓包任務(wù)。
進(jìn)一步的,步驟六的具體步驟為:
步驟6.1:用當(dāng)前數(shù)據(jù)包的捕獲時(shí)間減去第一次捕獲時(shí)間,如果差值符合預(yù)定的時(shí)間閾值,則進(jìn)行步驟6.2。
步驟6.2:將捕獲次數(shù)與預(yù)先定義的捕獲次數(shù)閾值相比較,如果大于或者等于捕獲次數(shù)閾值,則進(jìn)行步驟6.3,否則不進(jìn)行。
步驟6.3:記錄到達(dá)捕獲次數(shù)閾值時(shí)被捕獲數(shù)據(jù)包到達(dá)的物理設(shè)備,及該數(shù)據(jù)包相關(guān)信息。
進(jìn)一步的,步驟六還包括步驟6.4:將被捕獲數(shù)據(jù)包對(duì)應(yīng)的物理環(huán)路故障信息予以顯示。
進(jìn)一步的,步驟6.4中,物理環(huán)路故障信息包括被捕獲數(shù)據(jù)包到達(dá)的物理設(shè)備的名稱、數(shù)據(jù)包的源ip地址、源物理地址、目標(biāo)ip地址、目標(biāo)物理地址。
進(jìn)一步的,關(guān)鍵詞包括數(shù)據(jù)包的源物理地址、目的物理地址、源ipv4地址、目的ipv4地址,ipid、上層協(xié)議、生存時(shí)間。
進(jìn)一步的,步驟6.1中所述時(shí)間閾值為1ms。
進(jìn)一步的,步驟6.2中所述捕獲次數(shù)閾值為10次。
本發(fā)明的有益效果為:
本發(fā)明提供了一種可快速察覺物理環(huán)路故障的方法,并且能迅速定位涉及的物理設(shè)備,所有步驟可自動(dòng)完成,且可實(shí)現(xiàn)檢測(cè)結(jié)果的呈現(xiàn),無需運(yùn)維人員進(jìn)行人工檢查,效率極高、定位準(zhǔn)確、節(jié)約人力物理,具有良好的應(yīng)用前景。
附圖說明
圖1是本發(fā)明所述方法的時(shí)序圖。
具體實(shí)施方式
如圖1所示為本發(fā)明的流程圖。需要說明的是,圖1中的querykey、ipphysitemmap、ipphysitemrecordinfo、ipphysitemmanager分別為后述的查詢關(guān)鍵詞、物理環(huán)路檢查表、條目信息、信息數(shù)組。
本發(fā)明所述網(wǎng)絡(luò)中物理環(huán)路故障診斷方法包括如下步驟:
步驟一:預(yù)先創(chuàng)建物理環(huán)路檢查表(圖1中)、信息數(shù)組。
下面分別物理環(huán)路檢查表及信息數(shù)組進(jìn)行介紹。
1.物理環(huán)路檢查表。
所述物理環(huán)路檢查表用于存儲(chǔ)被捕獲網(wǎng)絡(luò)數(shù)據(jù)包的關(guān)鍵詞及對(duì)應(yīng)條目信息、根據(jù)關(guān)鍵詞進(jìn)行數(shù)據(jù)包查詢,所述條目信息包括第一次捕獲時(shí)間、捕獲次數(shù)。
該表的關(guān)鍵詞包括以下信息:
源物理地址:srcmac;
目的物理地址:dstmac;
源ipv4地址:srcip;
目的ip地址:dstip;
ip標(biāo)志:ipid;
上層協(xié)議:ipprotocol;
生存時(shí)間:ttl;
前兩點(diǎn)信息來自于數(shù)據(jù)包的物理頭部、后五點(diǎn)信息來自于數(shù)據(jù)包的ipv4頭部。
對(duì)應(yīng)的條目信息包括:
捕獲次數(shù):capturecount;
第一次捕獲時(shí)間:firstcapturetime。
需要說明的是捕獲次數(shù)是一個(gè)變量,相同數(shù)據(jù)包每被捕獲一次,捕獲次數(shù)就自動(dòng)加1。
物理環(huán)路檢查表有數(shù)據(jù)容納上限,本實(shí)施例設(shè)置上限為10萬條,具體數(shù)值可以根據(jù)使用者檢測(cè)設(shè)備硬件條件來增減;
示例:以std的hash_map來舉例為:
stdext::hash_map<key,ipphysitemrecordinfo>
ipphysitemmap
2.信息數(shù)組
所述信息數(shù)組用于按照時(shí)間先后順序存儲(chǔ)與物理環(huán)路檢查表中各個(gè)關(guān)鍵詞一一對(duì)應(yīng)的關(guān)鍵詞,用于對(duì)物理環(huán)路檢查表中的信息順序進(jìn)行管理。
信息數(shù)組的條目數(shù)量應(yīng)與物理環(huán)路檢查表?xiàng)l目大小一致,當(dāng)物理環(huán)路檢查表中存入新的關(guān)鍵詞及條目信息時(shí),信息數(shù)組應(yīng)該也增加相應(yīng)的關(guān)鍵詞,刪除亦然。
創(chuàng)建信息數(shù)組的原因是因?yàn)槲锢憝h(huán)路檢查表是個(gè)無序的表,信息數(shù)組中的關(guān)鍵詞是按照時(shí)間順序排列的,當(dāng)需要對(duì)物理環(huán)路檢查表中的存儲(chǔ)項(xiàng)進(jìn)行移除的時(shí)候,就從信息數(shù)組中取出時(shí)間排序第一的關(guān)鍵詞,并在物理環(huán)路檢查表中查找到對(duì)應(yīng)的關(guān)鍵詞,將對(duì)應(yīng)內(nèi)容進(jìn)行移除。
當(dāng)然,物理環(huán)路檢查表也可以為有序的表,但是性能不如無序表。
步驟二:利用網(wǎng)絡(luò)抓包軟件進(jìn)行網(wǎng)絡(luò)抓包。
網(wǎng)絡(luò)抓包軟件采用的是現(xiàn)有的、成熟的網(wǎng)絡(luò)抓包工具,本發(fā)明并不限定使用某種或者某個(gè)公司的網(wǎng)絡(luò)抓包工具,只要能實(shí)現(xiàn)抓包即可。
步驟三:根據(jù)物理環(huán)路檢查表定義的關(guān)鍵詞獲取被捕獲數(shù)據(jù)包的對(duì)應(yīng)信息,并在物理環(huán)路檢查表中進(jìn)行查找匹配,如果沒有匹配成功,則進(jìn)行步驟四,否則直接跳轉(zhuǎn)到步驟六。
被捕獲數(shù)據(jù)包的對(duì)應(yīng)信息構(gòu)成了查詢關(guān)鍵詞。
步驟四:判斷物理環(huán)路檢查表的存儲(chǔ)條目是否達(dá)到存儲(chǔ)上限,如未達(dá)到,則直接執(zhí)行步驟五,否則根據(jù)信息數(shù)組中排序最靠前的關(guān)鍵詞查找到物理環(huán)路檢查表中對(duì)應(yīng)的關(guān)鍵詞及條目,并移除,且信息數(shù)組也刪除掉對(duì)應(yīng)關(guān)鍵詞,然后再執(zhí)行步驟五;
步驟五:被抓取數(shù)據(jù)包的關(guān)鍵詞對(duì)應(yīng)內(nèi)容加入到物理環(huán)路檢查表及信息數(shù)組,條目信息對(duì)應(yīng)內(nèi)容也存儲(chǔ)到物理環(huán)路檢查表。如前所述,條目信息包括捕獲次數(shù)及第一次捕獲時(shí)間,所述捕獲次數(shù)的值能夠在遞增,取值為該數(shù)據(jù)包被捕獲次數(shù)。
在此需要說明的是,被捕獲數(shù)據(jù)包相關(guān)信息第一次被存儲(chǔ)到物理環(huán)路檢查表及信息數(shù)組時(shí)就被記錄了第一次捕獲時(shí)間,捕獲次數(shù)的值初始化為1,以后再被捕獲時(shí),第一次捕獲時(shí)間不變,捕獲次數(shù)的值自增。
步驟六:根據(jù)被捕獲數(shù)據(jù)包捕獲次數(shù)、捕獲時(shí)間與第一次捕獲時(shí)間的差值進(jìn)行物理環(huán)路故障判斷。
具體步驟為:
步驟6.1:用當(dāng)前數(shù)據(jù)包的捕獲時(shí)間減去第一次捕獲時(shí)間,如果差值符合預(yù)定的時(shí)間閾值,則進(jìn)行步驟6.2。
時(shí)間閾值可以自定,本實(shí)施例為1ms。
步驟6.2:將捕獲次數(shù)與預(yù)先定義的捕獲次數(shù)閾值相比較,如果大于或者等于捕獲次數(shù)閾值,則進(jìn)行步驟6.3,否則不進(jìn)行。
捕獲次數(shù)閾值可以自定,本實(shí)施例為10次。
步驟6.3:記錄到達(dá)捕獲次數(shù)閾值時(shí)被捕獲數(shù)據(jù)包到達(dá)的物理設(shè)備,及該數(shù)據(jù)包相關(guān)信息。
上述的相關(guān)信息一般就是被捕獲數(shù)據(jù)包到達(dá)的物理設(shè)備的名稱、數(shù)據(jù)包的源ip地址、源物理地址、目標(biāo)ip地址、目標(biāo)物理地址、數(shù)據(jù)包數(shù)(被診斷為物理環(huán)路故障時(shí)指該數(shù)據(jù)包總抓取次數(shù))、采樣時(shí)間(距離第一次被抓取時(shí)的時(shí)間間隔)。
優(yōu)選的,還包括步驟6.4:將被捕獲數(shù)據(jù)包對(duì)應(yīng)的物理環(huán)路故障信息予以顯示。
物理環(huán)路故障信息包括被捕獲數(shù)據(jù)包到達(dá)的物理設(shè)備的名稱、數(shù)據(jù)包的源ip地址、源物理地址、目標(biāo)ip地址、目標(biāo)物理地址、故障嚴(yán)重程度(可以用不同顏色表示不同嚴(yán)重程度)、故障類型、故障層別(如,數(shù)據(jù)鏈路層)、事件描述(如,物理環(huán)路)。
步驟七:重復(fù)進(jìn)行步驟二-步驟六,直到完成預(yù)定的抓包任務(wù)。