趙燦明 紀詩厚 石 滾 田 野
1(國網安徽省電力公司蕪湖供電公司信通公司 安徽 蕪湖 241000)2(中國科學技術大學計算機科學與技術學院 安徽 合肥 230027)
?
面向以太網的網絡故障自動實時發現與定位方法
趙燦明1紀詩厚1石滾2田野2
1(國網安徽省電力公司蕪湖供電公司信通公司安徽 蕪湖 241000)2(中國科學技術大學計算機科學與技術學院安徽 合肥 230027)
在網絡應用已完全融入日常生產生活的今天,人們需要穩定、可靠的計算機網絡,高效、準確地發現和定位網絡故障,是提高網絡可靠性的重要手段?,F有的網絡故障自動發現方法往往需要修改節點代碼、控制節點行為來實現故障檢測,而交換機等以太網設備通常并不具有可修改性。針對以太網故障的自動發現與定位問題,基于目前標準化交換機支持的簡單網絡管理協議SNMP(Simple Network Management Protocol)協議和管理信息庫MIB-2(Management Information Base)提出了“設備狀態一致性檢測算法”、“設備擁塞異常檢測算法”等針對不同故障的檢測算法。實驗結果表明該故障檢測算法對發現和定位以太網故障具有較高的效率和準確率?;谒岢龅墓收蠙z測算法,該設計實現了一個故障發現與定位系統,并成功地在蕪湖市國家電網計算機網絡中部署運用。
網絡故障故障定位與檢測管理信息庫(MIB)
隨著越來越多的互聯網應用融入人們的日常生活,人們對網絡的用戶體驗要求越來越高。使網絡保持實時暢通是保證用戶體驗的前提,因此必須及時地檢測并排除網絡故障,網絡故障的檢測與排除是網絡管理工作中很重要的一部分。如何高效準確地檢測網絡故障成為近年來網絡故障研究中的一個熱點和難點。
目前,關于網絡故障檢測算法的研究已有較多成果。Katzela等[1]提出了基于網絡中通信實體間的網絡依賴圖進行網絡故障檢測和定位。Kandula等[2]提出了基于系統和程序產生的日志信息,模塊依賴圖和歷史診斷結果來定位和診斷企業網絡故障,并研發出一個稱為NetMedic的故障檢測系統。McCann[3]提出通過依賴圖診斷網絡系統故障,主要包括網絡協議棧故障診斷和網絡流故障診斷。雖然依賴圖對故障的定位和檢測具有較高的準確率,但是建立一個系統或網絡的依賴圖要求對該系統或網絡很熟悉才能建立比較準確的依賴圖,且隨著網絡拓撲的變化,網絡依賴圖也需要變化,但是保持網絡依賴圖的實時性也較難。Steinder等[4]提出了一種概率事件驅動故障定位技術,該技術使用概率癥狀故障地圖作為故障傳播模型,通過更新癥狀-解釋變量,來確定可能出現該癥狀的集合。同時Steinder等[5]提出了通過貝葉斯推理技術以及系統的結構狀態信息來定位網絡故障。上述兩個故障定位算法雖然模擬實驗結果表明具有較高的準確率,但是算法比較復雜,工程實現具有一定的難度。蔣康明等[6]提出了基于主動探測的故障檢測探測選擇(PSFD)算法和故障定位探測選擇(IFL)算法。其中的PSFD算法是在已有的貪婪算法上做了改進,IFL算法將現有的2種故障定位探測選擇算法相結合,但算法的工程實用性難以保證。
同時對網絡故障管理系統研發的相關研究也較多。馬秀麗等[7]將開源規則引擎Drools應用于網絡故障管理系統中。該系統采用數據挖掘的方法獲取相關性規則,并分類存儲在規則庫中,然后通過規則引擎提供的API創建規則引擎對象,并加載規則庫,自動實現對告警實例的相關性分析處理。王偉等[8]提出了一種基于專家系統的網絡故障管理系統結構。把事件關聯和數據挖掘應用于網絡故障管理,設計出了一個完整的基于規則的網絡故障管理系統模型,它能夠同時支持對關聯規則和序列模式的推理[9]。結合專家系統的知識庫和推理機,設計故障過濾和故障診斷模型[10]。Kompella等[11]提出基于風險模型和故障排除系統來定位網絡故障。Zhang等[12]提出基于加權二分圖的模型來定位網絡故障。Feng等[13]將概率模型用于網絡故障定位。然而,基于數據挖掘和概率模型研發的系統其準確率較難保證,且需要積累海量的網絡設備日志進行分析,還有不同的廠商生產的網絡設備的日志內容、格式不一樣,有些網絡設備甚至不產生日志。因此如果網絡中新增加了不同廠商不同類型的網絡設備,該設備的故障檢測的實時性較難保證,同時不產生日志的網絡設備的故障較難檢測。
還有一些企業同時也開發了商用網絡故障管理系統。如ManageEngine的OpManager系統[14],這是一款端到端的綜合網絡管理軟件,可對企業網絡內的網絡設備、服務器、主機、WAN鏈路、應用及服務等IT基礎設施實現全方位、可視化、統一集中監控和管理。IBM的Netcool Network Management系統[15]是一款具有拓撲發現、檢測網絡故障、配置網絡等功能的系統?;萜盏腛penView系統[16]是一款具有拓撲發現和故障管理等功能的系統。
本文基于目前標準化交換機支持的SNMP和MIB-2,提出了以太網故障檢測方法。該方法通過查詢MIB-2中的相關變量和簡單計算即可檢測與定位以太網的一般性故障:鏈路擁塞、設備異常、設備狀態不一致等,且實驗結果表明該方法具有較高的效率和準確率。然后基于本文的故障檢測方法設計和實現了以太網故障檢測系統,并成功部署到蕪湖市國家電網計算機網絡中。
1.1MIB變量說明
SNMP是一個用于IP網絡設備管理標準的互聯網協議。目前支持SNMP的網絡設備包括:路由器、交換機、服務器、工作站、調制解調器、打印機等[23]。SNMP作為一個網絡設備管理協議并沒有定義哪些信息是網絡設備應提供用于管理的,而MIB說明了設備管理的數據結構,使用對象標識符OID(Object Identifier)來唯一標識每個變量,這些變量可以通過SNMP協議來讀取和賦值。本文使用的MIB變量如表1所示。

表1 MIB變量說明
1.2以太網故障發現與發現方法
首先形式化描述由以太網拓撲發現子系統獲得的目標網絡拓撲結構(以太網拓撲發現系統是基于文獻[17]中的算法研發的)。對于發現的目標網絡拓撲結構,用圖G=(V,E)表示,其中u∈V表示圖中的一個節點,代表拓撲上的一臺交換機,ui表示交換機u的第i個端口。e=(ui,vj)∈E表示圖中的一條邊,代表拓撲中連接交換機u的ui端口和交換機v的vj端口的一條鏈路。所有的交換機和鏈路構成目標網絡鏈路層拓撲G=(V,E)。
1.2.1 設備狀態一致性檢測算法
以太網交換機狀態一致性檢測算法如算法1所示。目標網絡中交換機狀態一致性檢測主要包括:
? 交換機端口狀態檢測:對目標網絡中的所有交換機,對該交換機出現在拓撲中的所有端口,查詢其ifOperStatus值為1,表明端口正在工作;否則,報警。
? 交換機STP協議版本一致性檢測:對目標網絡中的所有交換機,查詢其dot1dStpProtocolSpecification取值應一致;否則,報警。
? 交換機工作方式一致性檢測:對目標網絡中的所有交換機,獲取其dot1dTpPortTable全為空,或者其dot1dSrPortTable全為空;否則,報警。
? 交換機源路由協議版本一致性檢測:如果網絡中所有交換機工作于源路由模式,則查詢所有交換機的dot1dSrBridgeLfMode取值應一致;否則,報警。

算法1 狀態一致性檢測算法Input:switchsetdetectedbyEthernetTopologyDiscoverySystem(ETDS)SDefine:flag=false1. foreachswitchsinSandeachportpofs:2. ifp.ifOperStatus==1:continue//檢測交換機端口狀態3. else:producewarning//交換機端口不工作,報警4. flag=checkwhetherallswitches’dot1dStpProtocolSpecificationinSissame//檢測交換機STP協議版本5. ifflag==false:producewarning//交換機STP協議版本不一致,報警 //交換機工作方式//一致性檢測6. flag=checkwhetherallswitches’dot1dTpPortTableordot1dSrPortTableinSisempty7. ifflag==false:producewarning//交換機工作方式不一致,報警 //如果交換機工作于源路由模式檢測源路由協議是否一致8. flag=checkwhetherallswitches’dot1dSrBridgeLfModeinSissame9. ifflag==false:producewarning//交換機源路由協議不一致,報警
1.2.2 設備擁塞異常檢測算法
以太網中交換機擁塞異常檢測算法如算法2所示。以太網故障檢測系統周期地對網絡中所有交換機的每個端口,計算由于擁塞導致的報文丟棄率。本文僅考慮交換機工作于透明網橋模式下(交換機工作于源路由網橋模式下的算法類似)。在某個時刻t,查詢交換機每個端口的dot1dTpPortOutFrames(本文以下使用TpPOF表示)變量和交換機的dot1dBasePortDelay
ExceededDiscards(本文以下使用BPDED表示)變量。計算(t,t+1)時段,交換機傳輸和丟棄的報文幀數。如果在連續K段時段中,有L段時段discard(t,t+1)/transport(t,t+1)大于某個閾值delta,則報警。傳輸和丟棄幀數的計算公式如下:



算法2 設備擁塞異常檢測算法Input:switchsetdetectedbyEthernetTopologyDiscoverySystem(ETDS)S,K,L,t,deltaDefine:transport(t,t+1)=0,discard(t,t+1)=0,count=0,i=01. foreachswitchsinS:2. count=0,i=03. whilei
1.2.3鏈路丟包異常檢測與定位算法
以太網中鏈路丟包異常檢測與定位算法如算法3所示。以太網故障檢測系統周期性地對拓撲中每一條鏈路(ui,vj),計算鏈路在兩個方向的丟包率。本文以下僅考慮交換機工作于透明網橋模式下(交換機工作于源路由網橋模式下的算法類似)。在時刻t,查詢端口ui和vj的TpPOF和dot1dTpPortInFrames[21](本文以下使用TpPIF表示)變量。分別計算(t,t+1)時段,鏈路(ui,vj)不同方向的丟包率。如果在連續K段時段中,有L段時段lossu(v(t,t+1)或lossv(u(t,t+1)大于某個閾值delta,則報警。丟包率的計算公式如下:
u→v方向上的丟包率lossu(v(t,t+1)
v→u方向上的丟包率lossv(u(t,t+1)

算法3 鏈路丟包異常檢測與定位算法Input:topologydetectedbyEthernetTopologyDiscoverySystem(ETDS)topo,K,L,t,deltaDefine:lossu(v(t,t+1)=0.0,lossv(u(t,t+1)=0.0,count1=0,count2=0,i=0,switchportui,vj1. foreachedge(ui,vj)intopo:2. count1=0,count2=0,i=03. whilei
1.2.4DoS攻擊檢測算法
以太網上常見的DoS攻擊是攻擊者通過構造偽裝源MAC地址不同的以太幀,使得交換機在其轉發表中存儲大量的無意義地址轉發條目,并換出真正有用的地址轉發條目,從而達到癱瘓網絡的目的。以太網故障檢測系統周期性地,對網絡中每臺交換機,計算其換出的地址轉發條目。在時刻t,查詢交換機的dot1dTpLearnedEntryDiscards變量。計算(t,t+1)時段,換出的轉發條目數量。如果在連續K段時段中,有L段時段discardentry(t,t+1)>0,則報警。換出的地址轉發表條目計算公式如下:
discardentry(t,t+1)=dot1dTpLearnedEntryDiscardst+1-
dot1dTpLearnedEntryDiscardst
1.2.5地址轉發表正確性檢測算法
隨機選取一個MAC地址s,s未綁定在網絡中任何設備上。構造以s為源地址,以網絡中待檢測設備u為目的地址的以太網幀,在網絡中傳輸。若交換機v位于從檢測系統到待檢測設備u的路徑上,則以s查詢v的dot1dTpFdbTable轉發表變量,應存在條目(s,vi,learned)條目,其中vi是v接收探測報文的端口,表明v已經學習了s的轉發條目;否則,報警。
1.3ns-3 模擬實驗
本文使用ns-3[22]進行模擬實驗,模擬網絡中包括45臺交換機和60臺主機。交換機狀態一致性錯誤模擬是通過給每臺交換機定義一組變量且這組變量的初始值都相同,然后隨機選擇一組交換機不定時改變這組交換機的初始值,實驗過程中本文將時間間隔設為1~15秒。同時每隔interval1秒檢測所有交換機的這組變量,實驗中將interval1設為5秒,如果發現某臺交換機異常則報警。表2展示的是模擬4種交換機狀態一致性錯誤各500次,程序檢測的結果,實驗結果表明算法2檢測交換機狀態一致性錯誤具有較高的準確率。

表2 交換機狀態一致性錯誤檢測模擬結果
基于上面的拓撲,本文選取拓撲中的25條鏈路(由30臺交換機組成),將這25條鏈路分為5組,并將這5組鏈路的丟包率分別設為3%、5%、8%、12%、15%。然后主機間以一定的速率sendrate在覆蓋這25條鏈路的路徑上轉發一定數目的報文。每臺交換機的每個端口定義兩個變量sh_rec_packets和ac_rec_packets分別用于統計應當接收和實際接收的報文數。實驗中,本文定義報警閾值delta=0.1、L=1。同時每隔interval2秒檢測這30臺交換機的所有端口的sh_rec_packets和ac_rec_packets,并根據算法2和算法3檢測交換機故障和端口故障。圖1展示的是sendrate分別為10 packets/s和30 packets/s,interval2=2秒時,連續發送100秒,30臺交換機丟包率超過delta的次數(交換機按sendrate=10 packets/s時產生的報警數排序)。實驗結果表明,交換機轉發流量越大,越容易丟包,這與實際情況是一致的。當sendrate=30 packets/s,25條鏈路兩個端口產生的報警數如圖2所示。從圖2可以觀察到有些鏈路兩個端口的報警數相差較大,這是由于在實驗過程中,我們故意增加一些交換機的負荷,使其處理報文的能力下降造成的。在實際情況下,如果兩臺直連交換機性能相同,但是一臺交換機丟包率明顯大于另外一臺交換機,應該查詢丟包率較大的交換機判斷其是否出現了故障。

圖1 鏈路流量與交換機報警次數的關系

圖2 25條鏈路兩端口報警次數比較
同樣使用上面的拓撲,為模擬DoS攻擊,每臺交換機定義兩個變量learn_table_size和discard_entry分別用于表示轉發表的大小和因超過轉發表的容量被丟棄的表項數,同時定時檢測discard_entry。然后使拓撲中的主機以不同的速率發送源MAC地址不同的報文。表3展示的是當learn_table_size=500時,主機以不同速率連續發送60秒報文,10臺邊緣交換機(即與主機直連的交換機)平均丟棄的表項數。實驗結果表明邊緣交換機丟棄的轉發表的表項數和該交換機每秒收到的源MAC地址不同的報文數目正相關。同時可以發現當主機的發送速率為60 packets/s時,邊緣交換機丟棄的表項數與交換機應該接收到的源MAC地址不同的報文數目相差較大,這是因為在模擬拓撲中我們發現邊緣交換機每秒能正確處理的報文數目大概為50個。

表3 交換機DoS攻擊檢測模擬結果
基于上面的拓撲,與模擬DoS攻擊檢測一樣,在模擬交換機地址轉發表正確性檢測時,本文仍將轉發表的大小learn_table_size設為500。然后使主機以不同的速率發送報文,以檢測10臺邊緣交換機的轉發表的正確性,實驗結果如表4所示。實驗結果表明當交換機超負荷時,轉發表的準確率較低。

表4 交換機地址轉發表正確性檢測模擬結果
2.1系統概述
以太網故障檢測子系統架構如圖3所示。該系統依賴以太網拓撲發現子系統獲取的目標網絡拓撲結構,通過SNMP通信模塊周期性地查詢目標以太網絡上交換機的MIB管理變量,執行相應的故障檢測算法,發現目標網絡中交換機與鏈路故障,生成日志,并向網絡管理員發送報警信息。

圖3 以太網故障檢測子系統架構
以太網故障檢測子系統包含5個關鍵模塊:
? 狀態一致性檢測模塊:檢測目標網絡中所有交換機及其端口的工作模式是否正確,網絡鏈路兩端的端口工作模式是否一致,發現異常時報警。
? 端口擁塞異常檢測模塊:周期性檢測目標網絡中交換機端口的擁塞情況,發現交換機擁塞異常時報警。
? 鏈路丟包異常檢測模塊:周期性檢測目標網絡中鏈路的丟包事件,發現鏈路丟包率異常時報警。
? DoS攻擊檢測模塊:周期性檢測目標網絡中交換機地址轉發表的溢出情況,發現地址轉發表溢出異常時報警。
? 轉發表正確性檢測模塊:檢測目標網絡中交換機能否正確構造地址轉發表,發現地址轉發表異常時報警。
這樣的系統架構設計使得系統的各個模塊的耦合度較低,具有較好的擴展性和可移植性。
2.2對實際運行網絡的故障發現與定位
我們將所提出的故障檢測方法應用到對蕪湖市國家電網公司計算機網絡中。蕪湖市國家電網的內部以太網覆蓋安徽省蕪湖市的所有電網網點,骨干網絡由40多臺交換機組成,為整個城市的供電管理提供了通信基礎設施?;诒疚奶岢龅囊蕴W故障檢測方法、系統架構和10個測量agent,我們開發了以太網故障檢測子系統,并集成到公司的網絡管理綜合系統中。故障檢測子系統的功能界面如圖4所示。我們統計該模塊連續運行50天檢測到的各種故障結果。其中交換機狀態一致性錯誤檢測結果如表5所示。STP協議版本不一致錯誤檢測到3次是由于在實驗期間,公司由于業務需要,新增了3臺交換機,這三臺交換機的STP協議的版本均高于目前網絡中交換機運行的STP協議版本。公司網絡中所有交換機都工作于透明網橋模式下,表4中的交換機工作方式不一致錯誤以及交換機源路由協議版本不一致錯誤是我們人為修改交換機配置造成的。

圖4 以太網故障檢測子系統界面

錯誤類型端口不工作STP協議版本不一致工作方式不一致源路由協議版本不一致檢測到的次數8332020
實驗期間我們研發的系統檢測到交換機擁塞異常10次,鏈路擁塞異常16次,DoS攻擊100次(均是我們每天人為偽造2次DoS攻擊的結果),我們人為發送100個MAC地址不同的報文,發現報文所經過鏈路上的交換機轉發表均能正確學習到。同時我們統計所有故障發生到檢測到的時間間隔,發現所有故障平均的檢測時間位54秒。實驗結果表明,我們研發的以太網故障檢測系統能較快較準確地發現和定位以太網故障。
基于目前標準化交換機支持的SNMP和MIB-2,本文提出了以太網故障檢測方法,并基于該方法研發了以太網故障檢測系統。模擬實驗結果和對實際運行網絡的故障檢測結果表明該方法能較高效、較準確地發現和定位以太網故障,因此該方法具有較好的適用性和較高的工程應用價值。
[1] Katzela I,Schwart M.Schemes for fault Identification in network communications [J].IEEE/ACM Transactions on Networking,1995,3(6):753-763.
[2] Kandula S,Mahajan R,Verkaik P,et al.Detailed diagnosis in enterprise networks [C]// Proc.of ACM International Conference on the applications,technologies,architectures,and protocols for computer communication’09,2009.
[3] McCann J N.Automating performance diagnosis in networked Systems [D].Prince George`s County,State of Maryland:School of Computer Science,University of Maryland,2010.
[4] Steinder M,Sethi A S.Probabilistic fault diagnosis in communication systems through incremental hypothesis updating [J].Computer Networks,2004,45(4):537-562.
[5] Steinder M,Sethi A S.Probabilistic fault localization in communication systems using belief networks [J].IEEE/ACM Transactions on Networking,2004,12(5):809-822.
[6] 蔣康明,林斌,喬焰.基于主動探測的高效故障檢測與定位方法[J].北京郵電大學學報,2012,35(1):36-40.
[7] 馬秀麗,王紅霞,張凌云.Drools在網絡故障管理系統中的應用[J].計算機工程與設計,2009,30(8):1859-1862.
[8] 王偉,蘆東昕,唐英.基于專家系統的網絡故障管理系統的設計[J].計算機工程與設計,2005,26(11):3031-3033.
[9] 岳海濤.基于事件關聯和數據挖掘的網絡故障管理技術的研究[D].長沙:中南大學計算機學院,2010.
[10] 趙永杰.基于事件機制的網絡故障管理系統的研究[D].西安:西安電子科技大學計算機學院,2008.
[11] Kompella R R,Yates J,Greenberg A,et al.IP fault localization via risk modeling [C]// Proc.of Symposium on Network System Design and Implementation’05,2005.
[12] Zhang C,Liao J X,Li T H,et al.Probabilistic fault localization with sliding windows [J].China Science Information Science,2012,55(5):1186-1200.
[13] Feng M,Gupta R.Learning universal probabilistic models for fault localization [C]//Proc.of ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering’10,2010.
[14] ManageEngine OpManager System [EB/OL].[2014-04].http://www.manageengine.com/network-monitoring/network-fault-mana-gement.html.
[15] IBM Netcool Network Management System [EB/OL].[2011-07].http://www-03.ibm.com/software/products/en/netcool-network-management.
[16] HP OpenView System [EB/OL].[2013-08].http://h71000.www7.hp.com/.
[17] Breitbart Y,Garofalakis M,Jai B,et al.Topology discovery in heterogeneous IP networks:the NetInventory system [J].IEEE/ACM Transactions on Networking,2004,12(3):401-414.
[18] McCloghrie K,Rose M.Management Information Base for Network Management of TCP/IP-based internets.IETF RFC 1156 [EB/OL].[1990-05].https://www.ietf.org/rfc/rfc1156.txt.
[19] Decker E,Langille P,Rijsinghani A,et al.Management information base for network management of TCP/IP-based internets.IETF RFC 1286 [EB/OL].[1991-10].https://www.ietf.org/rfc/rfc1286.txt.
[20] Decker E,McCloghrie K,Langille P,et al.Definitions of managed objects for source routing bridges.IETF RFC 1525 [EB/OL].[1993-09].https://www.ietf.org/rfc/rfc1525.txt.
[21] Decker E,Langille P,Rijsinghani A,et al.Definitions of managed objects for bridges.IETF RFC 1493 [EB/OL].[1993-07].https://www.ietf.org/rfc/rfc1493.txt.
[22] ns-3 main page [EB/OL].[2011-08].http://www.nsnam.org/.
[23] SNMP wiki [EB/OL].[2015-4-28].http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol#cite_note-ESNMP-1.
AN ETHERNET-ORIENTED METHOD FOR AUTOMATIC REAL-TIME NETWORK FAULTS DETECTION AND LOCALISATION
Zhao Canming1Ji Shihou1Shi Gun2Tian Ye2
1(Information and Telecommunication Branch,State Grid Wuhu Power Supply Company,Wuhu 241000,Anhui,China)2(SchoolofComputerScienceandTechnology,UniversityofScienceandTechnologyofChina,Hefei230027,Anhui,China)
Nowadays the network applications have been fully integrated into people’s daily life,the people require a stable and reliable computer network.To efficiently and accurately identify and locate network faults is the important means for improving networks reliability.However existing automatic network faults detection methods usually need to modify nodes code or control nodes behaviour to realise the faults detection,but the switches and other Ethernet devices are not modifiable typically.In this paper,in light of automatic Ethernet faults detection and localisation issue,we proposed based on SNMP and MIB-2 which supporting the standardised switches the “device status consistency detection algorithm”,“device congestion anomaly detection algorithm” and other detection algorithms aimed at different Ethernet faults.Experimental results indicate that these algorithms could identify and locate Ethernet faults with high efficiency and accuracy.Based on these proposed algorithms we design and implement a detection and localisation system for Ethernet faults,and it is successfully deployed in computer networks of State Grid in Wuhu Power Supply Company.
Network faultsFault localisation and detectionManagement information base (MIB)
2015-05-05。國家自然科學基金項目(61202405,61103228)。趙燦明,工程師,主研領域:計算機系統結構。紀詩厚,工程師。石滾,碩士生。田野,副教授。
TP393
A
10.3969/j.issn.1000-386x.2016.09.024