張文川
(蘭州石化職業(yè)技術(shù)學(xué)院,甘肅 蘭州 730060)
在計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)迅速發(fā)展趨勢(shì)下,其在逐步影響與改變著人們的日常生產(chǎn)生活。所以人們迫切要求穩(wěn)定性與可靠性較高的網(wǎng)絡(luò)環(huán)境,以供給更為優(yōu)質(zhì)、高效的網(wǎng)絡(luò)服務(wù)。然而隨著網(wǎng)絡(luò)規(guī)模擴(kuò)大,網(wǎng)絡(luò)也越來越復(fù)雜,結(jié)構(gòu)也愈發(fā)多元化,網(wǎng)絡(luò)故障狀況也隨之增多,而受制于網(wǎng)絡(luò)故障傳播性、時(shí)間性、相關(guān)性等,導(dǎo)致故障診斷倍受阻礙,由此引發(fā)的損失也越發(fā)不可估量。為確保網(wǎng)絡(luò)通暢,提供更良好的服務(wù),需及時(shí)發(fā)現(xiàn)網(wǎng)絡(luò)潛藏隱患,并快速準(zhǔn)確定位、診斷故障,以迅速排除故障,恢復(fù)網(wǎng)絡(luò)性能。所以提升網(wǎng)絡(luò)自診斷能力,實(shí)現(xiàn)故障快速診斷與恢復(fù),保障網(wǎng)絡(luò)穩(wěn)定可靠非常關(guān)鍵[1-2]。網(wǎng)絡(luò)自診斷需以網(wǎng)絡(luò)管理為載體,IETF 于1990年提出了SNMP協(xié)議(簡單網(wǎng)絡(luò)管理協(xié)議),獲得網(wǎng)絡(luò)設(shè)備廠家大力支持,以此發(fā)展為了因特網(wǎng)正式標(biāo)準(zhǔn)。SNMP 協(xié)議可管控大多數(shù)與Internet 標(biāo)準(zhǔn)相符的設(shè)備,基于定義新MIB 對(duì)象,可簡單擴(kuò)展管理范圍,且具備健壯性,管理人員工作不受管理設(shè)備故障影響。通過逐步優(yōu)化與完善,SNMP 協(xié)議組與規(guī)范,可由設(shè)備采集網(wǎng)絡(luò)管理信息,以實(shí)現(xiàn)網(wǎng)絡(luò)自診斷。當(dāng)前市場上最普遍的SNMP產(chǎn)品有IBM的Net View、HP的Open View,以及Cisco、Protean、Hughes 等等,但其共性在于計(jì)算機(jī)網(wǎng)絡(luò)故障自診斷功能單一化,無法滿足實(shí)際應(yīng)用需求。據(jù)此,本文基于SNMP協(xié)議設(shè)計(jì)了計(jì)算機(jī)網(wǎng)絡(luò)自診斷系統(tǒng)。
SNMP可支持網(wǎng)絡(luò)管理系統(tǒng),負(fù)責(zé)監(jiān)測網(wǎng)絡(luò)連接設(shè)備的異常狀況。SNMP 管理模型由管理代理、網(wǎng)絡(luò)管理協(xié)議、管理信息庫MIB、管理工作共同構(gòu)成。SNMP管理模型中網(wǎng)絡(luò)管理站負(fù)責(zé)連接網(wǎng)絡(luò)管理人員與系統(tǒng)接口,這就要求其必須具備獨(dú)立的可數(shù)據(jù)分析與故障排查的應(yīng)用軟件;可監(jiān)控網(wǎng)絡(luò),有效控制網(wǎng)絡(luò)接口;可轉(zhuǎn)變網(wǎng)絡(luò)監(jiān)控管理人員命令為網(wǎng)絡(luò)各個(gè)模塊監(jiān)控;需保障可由網(wǎng)絡(luò)被管理實(shí)體MIB 中獲得有效信息數(shù)據(jù)庫[3]。
基于信息流向,計(jì)算機(jī)網(wǎng)絡(luò)自診斷系統(tǒng)劃分為信息采集層、信息處理層、信息管理層三層次,具體[4]如圖1所示。
圖1 系統(tǒng)整體框架
3.1.1 采集層分析
采集層負(fù)責(zé)采集原始數(shù)據(jù),由數(shù)據(jù)采集模塊與管理設(shè)備群構(gòu)成。其中,采集模塊基于主動(dòng)傳輸SNMP報(bào)文與ICMP報(bào)文,被動(dòng)接受Trap報(bào)文,盡量獲取設(shè)備相關(guān)信息。所采集信息傳送于告警檢測模塊加以處理分析。
3.1.2 處理層分析
處理層為計(jì)算機(jī)網(wǎng)絡(luò)自診斷系統(tǒng)核心組成部分,包含告警檢測、故障定位、故障診斷。其中,告警檢測是故障定位、故障診斷的前提條件,系統(tǒng)可檢測的告警類型越多,則可診斷的故障類型越多,應(yīng)用價(jià)值越大;通過接收數(shù)據(jù)采集模塊所采集原始數(shù)據(jù)信息,基于檢測算法或規(guī)則,明確告警是否需要觸發(fā)。故障定位即通過所觀察到的故障現(xiàn)象推理實(shí)際故障源;以因果圖故障定位算法與告警序列相結(jié)合的方式進(jìn)行故障源定位。故障診斷則基于明確故障源,尋找故障成因,以助于排除故障;接收告警與故障源定位結(jié)果,以最終診斷分析故障。
3.1.3 管理層分析
管理層為人機(jī)交互的重要接口,為故障診斷提供支持功能,即設(shè)備管理、故障定位管理,并提供后臺(tái)數(shù)據(jù)庫相關(guān)功能[5-6]。
計(jì)算機(jī)網(wǎng)絡(luò)自診斷系統(tǒng)想要及時(shí)發(fā)現(xiàn)故障并作出正確診斷,需配置管理設(shè)備,即添加設(shè)備,其將接受系統(tǒng)故障實(shí)時(shí)監(jiān)測。在此基礎(chǔ)上獲取網(wǎng)絡(luò)狀態(tài)信息,即設(shè)備運(yùn)行狀態(tài)與網(wǎng)絡(luò)性能參數(shù),其是網(wǎng)絡(luò)故障診斷的重要基礎(chǔ)。對(duì)網(wǎng)絡(luò)運(yùn)行是否正常進(jìn)行分析檢測,據(jù)此結(jié)果明確觸發(fā)告警的必要性。在系統(tǒng)出現(xiàn)告警時(shí),便代表著計(jì)算機(jī)網(wǎng)絡(luò)很有可能出現(xiàn)故障,以定位故障源,并作出診斷分析?;谝陨戏治?,計(jì)算機(jī)網(wǎng)絡(luò)自診斷系統(tǒng)功能[7]具體如圖2所示。
圖2 系統(tǒng)功能
告警為網(wǎng)絡(luò)故障外在特征表現(xiàn),而定位故障需先檢測告警信息。當(dāng)前,告警信息檢測基于數(shù)據(jù)采集方式劃分為主動(dòng)式、被動(dòng)式、混合式三種檢測方式。其中,主動(dòng)式檢測即系統(tǒng)自動(dòng)探測計(jì)算機(jī)網(wǎng)絡(luò)狀況,以采集告警信息;被動(dòng)式檢測即等待故障設(shè)備或由于受其他故障設(shè)備影響出現(xiàn)故障的設(shè)備主動(dòng)上報(bào)故障告警信息;混合式檢測即結(jié)合主動(dòng)式檢測與被動(dòng)式檢測,以檢測告警信息。本文網(wǎng)絡(luò)告警信息檢測方式為基于SNMP 的Trap 被動(dòng)式檢測;Polling 輪詢主動(dòng)式檢測;基于ICMP報(bào)文的Ping主動(dòng)式檢測。
告警間的因果關(guān)聯(lián)關(guān)系可通過有向圖表征,其節(jié)點(diǎn)代表告警,弧代表告警間的因果關(guān)聯(lián)關(guān)系。就關(guān)聯(lián)關(guān)系而言,在因與果代表的告警同時(shí)出現(xiàn)的時(shí)候,則關(guān)聯(lián)結(jié)果的告警極可能是受關(guān)聯(lián)原因告警影響所產(chǎn)生的?;诟婢蚬麍D與告警序列的故障定位算法[8]為:
輸入:T時(shí)間之內(nèi)的告警序列AS=(c1,c2,c3,…,cm);節(jié)點(diǎn)集合為ANU,節(jié)點(diǎn)關(guān)系集合為ANRU;輸出:故障源集合為S。
首先,對(duì)比AS與ANU,如果AS的ce在ANU內(nèi)不存在,那么告警所代表故障為獨(dú)立的,添加于故障源集合。相反判斷ce是否存在在臨時(shí)故障集合,如果不存在,則添加于臨時(shí)故障集合內(nèi)。(比較計(jì)算機(jī)網(wǎng)絡(luò)告警序列與既有因果圖告警節(jié)點(diǎn),如果告警不存在在既有因果圖內(nèi),則此節(jié)點(diǎn)可能是獨(dú)立故障源或新故障)。
其次,詳細(xì)檢查ANU組合節(jié)點(diǎn)cf,如果屬于AS一些節(jié)點(diǎn)組合,則將其添加于臨時(shí)故障集合。(添加告警序列中在因果圖中存在的節(jié)點(diǎn)于臨時(shí)故障集合內(nèi),為檢測組合告警,把在因果圖及告警序列中同時(shí)存在的組合節(jié)點(diǎn)也添加于臨時(shí)故障集合)。
再次,就ANRU內(nèi)各條關(guān)系ce→cg,如果二者都存在于臨時(shí)故障集合,那么將集合內(nèi)的cg設(shè)置非故障源標(biāo)志。(檢測因果圖的每條邊,如果邊的頭節(jié)點(diǎn)與尾節(jié)點(diǎn)都存在于臨時(shí)故障集合中,則尾節(jié)點(diǎn)是由頭節(jié)點(diǎn)所引發(fā)的,所以將尾節(jié)點(diǎn)設(shè)置非故障源標(biāo)志)。
最后,就臨時(shí)故障集合的所有告警節(jié)點(diǎn)而言,如果沒有設(shè)置非故障源標(biāo)志,便將其添加于故障源集合。(刪除臨時(shí)故障集合內(nèi)組合節(jié)點(diǎn)與非故障源標(biāo)志節(jié)點(diǎn),剩下節(jié)點(diǎn)則為故障源節(jié)點(diǎn))。
基于規(guī)則庫的故障診斷方法,就是以規(guī)則為載體的推理。基于規(guī)則推理的結(jié)構(gòu)示意圖[9]具體如圖3所示。
圖3 規(guī)則推理結(jié)構(gòu)示意圖
推理結(jié)構(gòu)包含工作內(nèi)存、推理引擎、規(guī)則庫。其中,工作內(nèi)存,負(fù)責(zé)載入故障信息、現(xiàn)象、類型等基礎(chǔ)信息,并規(guī)范化處理信息,于規(guī)則庫中提取信息的條件標(biāo)識(shí);推理引擎負(fù)責(zé)由工作內(nèi)存獲得條件標(biāo)識(shí)之后,基于正向推理方式將其與規(guī)則庫的規(guī)則條件相匹配,條件滿足,則利用此規(guī)則,并提取規(guī)則結(jié)論項(xiàng),以當(dāng)作后續(xù)推理?xiàng)l件,然后進(jìn)入后續(xù)推理環(huán)節(jié)。系統(tǒng)中反復(fù)推理即獲取結(jié)論相應(yīng)條件標(biāo)識(shí),并以此繼續(xù)推理,直到獲取故障結(jié)論。若規(guī)則結(jié)論不存在相應(yīng)條件標(biāo)識(shí),則結(jié)束推理。
計(jì)算機(jī)網(wǎng)絡(luò)自診斷系統(tǒng)運(yùn)行流程[10]具體如圖4所示。
圖4 系統(tǒng)運(yùn)行流程示意圖
系統(tǒng)啟動(dòng)之后,會(huì)自動(dòng)加載管理設(shè)備相關(guān)信息。如果需進(jìn)行信息添加、修改、刪除,則進(jìn)入設(shè)備管理階段?;趯?shí)際情況實(shí)施因果圖管理,若網(wǎng)絡(luò)設(shè)備構(gòu)成的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)未變化,且已存在告警因果圖,則進(jìn)行因果圖加載,否則重新輸入告警關(guān)聯(lián)關(guān)系,以生成因果圖,并加以保存。在此基礎(chǔ)上,啟動(dòng)數(shù)據(jù)采集功能模塊,將所采集數(shù)據(jù)信息輸入告警檢測功能模塊,所觸發(fā)告警便添加于告警列表內(nèi)。故障定位功能模塊則以列表的告警序列為輸入,通過因果圖推導(dǎo)故障源。故障定位的故障信息與部分告警信息,流入診斷功能模塊,以診斷并給定故障成因。
為測試系統(tǒng)實(shí)效性,構(gòu)建了虛擬網(wǎng)絡(luò)環(huán)境進(jìn)行驗(yàn)證[11],具體如圖5所示。
圖5 虛擬網(wǎng)絡(luò)環(huán)境
基于計(jì)算機(jī)網(wǎng)絡(luò)自診斷系統(tǒng)監(jiān)測所構(gòu)建虛擬網(wǎng)絡(luò),啟動(dòng)數(shù)據(jù)采集功能模塊采集網(wǎng)絡(luò)狀態(tài)信息,通過告警檢測功能模塊的檢測算法與規(guī)則實(shí)現(xiàn)告警與觸發(fā),并自動(dòng)面向告警序列完成故障定位與診斷。以虛擬網(wǎng)絡(luò)環(huán)境模擬各種故障狀況,以驗(yàn)證系統(tǒng)各功能模塊準(zhǔn)確性與方法實(shí)效性。
由圖5 可知,計(jì)算機(jī)網(wǎng)絡(luò)自診斷系統(tǒng)、服務(wù)器a、交換機(jī)a、路由器接口共同構(gòu)成可子網(wǎng)。而路由器a、b、c之間彼此連接,形成了虛擬網(wǎng)絡(luò)的核心網(wǎng)絡(luò)。整個(gè)網(wǎng)絡(luò)設(shè)備都支持SNMP協(xié)議,且開啟SNMP Service,設(shè)定管理站端口為161。所有網(wǎng)絡(luò)設(shè)備都接受計(jì)算機(jī)網(wǎng)絡(luò)自診斷系統(tǒng)的實(shí)時(shí)監(jiān)測與診斷。
6.2.1 設(shè)備管理分析
將虛擬網(wǎng)絡(luò)環(huán)境中的全部設(shè)備添加于計(jì)算機(jī)網(wǎng)絡(luò)自診斷系統(tǒng),其中監(jiān)測設(shè)備具體如圖6所示。
圖6 監(jiān)測設(shè)備
其中,Route代表路由器;Server代表服務(wù)器;Switch代表交換機(jī)。
6.2.2 因果圖管理分析
就新構(gòu)建網(wǎng)絡(luò)而言,需生成因果圖。基于網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)分析,可獲得具體告警關(guān)聯(lián)關(guān)系,即:
啟動(dòng)新建因果圖對(duì)話框,輸入關(guān)聯(lián)關(guān)系界面具體如圖7所示。
圖7 關(guān)聯(lián)關(guān)系輸入界面
在完成輸入之后,系統(tǒng)自動(dòng)調(diào)取因果圖生成算法,以生成圖ANU 與ANRU,基于設(shè)置格式儲(chǔ)存于文件內(nèi),并載入因果圖于內(nèi)存中,同時(shí)啟動(dòng)自動(dòng)故障定位功能。
6.2.3 故障模擬驗(yàn)證分析
首先,數(shù)據(jù)采集與告警檢測功能模塊啟動(dòng)。其次,單項(xiàng)無響應(yīng)故障模擬機(jī)(交換機(jī)a)停止運(yùn)行,系統(tǒng)所檢測的告警序列具體如圖8所示。
圖8 故障告警檢測結(jié)果示意圖
交換機(jī)a中斷運(yùn)行之后,系統(tǒng)和其他設(shè)備之間的通信隨之中斷,告警檢測功能模塊接收數(shù)據(jù)采集功能模塊傳輸?shù)脑O(shè)備無響應(yīng)消息,然后于列表中給定告警信息?;诜治?,理論層面應(yīng)檢測到11個(gè)告警,而實(shí)際所接收到11個(gè)告警,告警檢測結(jié)果與模擬告警一致。
基于故障定位功能模塊面向告警序列定位故障,以獲取故障源,具體如圖9所示。
圖9 故障定位結(jié)果示意圖
基于分析,故障定位結(jié)果與模擬故障相同。
再次,多項(xiàng)無響應(yīng)故障模擬(路由器d與服務(wù)器c)停止運(yùn)行,系統(tǒng)所檢測告警序列具體如圖10所示。
圖10 故障告警檢測結(jié)果示意圖
路由器d 與服務(wù)器c 中斷之后,計(jì)算機(jī)網(wǎng)絡(luò)自診斷系統(tǒng)與服務(wù)器d、PC2、服務(wù)器b、服務(wù)器c之間的通信也隨之處于中斷狀態(tài)?;诜治?,理論層面應(yīng)檢測到4 個(gè)告警,而實(shí)際所接收到4個(gè)告警,告警檢測結(jié)果與模擬告警相一致。
基于故障定位功能模塊面向告警序列定位故障,以獲取故障源,具體如圖11所示。
圖11 故障定位結(jié)果示意圖
基于分析,故障定位結(jié)果與模擬故障相同。
然后,Trap故障告警檢測,模擬設(shè)備面向系統(tǒng)傳輸Trap報(bào)文,系統(tǒng)可有效捕捉解析報(bào)文,觸發(fā)告警。Trap是被管理設(shè)備主動(dòng)面向管理系統(tǒng)傳輸?shù)?,上?bào)自身錯(cuò)誤狀況的報(bào)文,因此系統(tǒng)自動(dòng)將Trap 告警認(rèn)定為直接故障,融入故障信息列表,具體如圖12所示。
圖12 Trap故障告警檢測結(jié)果示意圖
最后,Polling 輪詢故障告警檢測。輪詢程序面向設(shè)備開展MIB掃描,所檢測故障具體如圖13所示。
圖13 Polling輪詢故障告警檢測結(jié)果示意圖
設(shè)備接口異常關(guān)閉,即接口運(yùn)行狀態(tài)與設(shè)定狀態(tài)存在偏差,這主要是由于接口發(fā)生硬件故障,已損壞。
6.2.4 故障診斷驗(yàn)證分析
由故障信息列表中選擇故障進(jìn)行診斷驗(yàn)證。通過故障診斷模塊以故障信息為輸入,基于規(guī)則庫相關(guān)規(guī)則正向推理,以診斷故障成因。以故障1 為例進(jìn)行診斷,結(jié)果具體如圖14所示。
圖14 故障診斷結(jié)果示意圖
以故障15為例進(jìn)行診斷,結(jié)果具體如圖15所示。
圖15 故障診斷結(jié)果示意圖
綜上,通過系統(tǒng)驗(yàn)證,可清楚了解到計(jì)算機(jī)網(wǎng)絡(luò)自診斷系統(tǒng)可及時(shí)檢測告警,準(zhǔn)確定位故障源、診斷故障,并給定故障成因。此外系統(tǒng)故障診斷支持功能的有效實(shí)現(xiàn),在很大程度上為故障定位與故障診斷奠定了有力支持[12]。
綜上所述,及時(shí)準(zhǔn)確發(fā)現(xiàn)計(jì)算機(jī)網(wǎng)絡(luò)潛藏隱患,在故障出現(xiàn)時(shí),快速定位、診斷故障,以高效排除故障,對(duì)于提高計(jì)算機(jī)網(wǎng)絡(luò)健壯性具有十分重要的現(xiàn)實(shí)意義。因此,本文基于SNMP 協(xié)議設(shè)計(jì)了計(jì)算機(jī)網(wǎng)絡(luò)自診斷系統(tǒng)。通過系統(tǒng)設(shè)計(jì)與驗(yàn)證,結(jié)果表明,系統(tǒng)可及時(shí)檢測告警,準(zhǔn)確定位故障源、診斷故障,并給定故障成因,這就說明系統(tǒng)具備優(yōu)秀的網(wǎng)絡(luò)自診斷能力,且告警檢測技術(shù)、故障定位算法、故障診斷方法有效且實(shí)用。