史春光, 劉 波, 彭進霖,2, 常麗萍
(1. 太原衛星發射中心 技術部, 山西 太原 030027; 2. 北京跟蹤與通信技術研究所, 北京 100094)
?
基于多Agent的分布式IP網故障診斷系統設計與實現
史春光1, 劉 波1, 彭進霖1,2, 常麗萍1
(1. 太原衛星發射中心 技術部, 山西 太原 030027; 2. 北京跟蹤與通信技術研究所, 北京 100094)
為便于及時定位并排除典型網絡故障,以數據包分析為基礎,基于多Agent系統,設計實現了一種便于擴展的分布式IP網故障診斷系統。該系統采用網絡端口鏡像的方式進行數據采集,采用伯克利數據包過濾器(BPF)包過濾機制進行數據包過濾,基于專家系統進行典型網絡故障診斷。此外,系統采用三元組〈實體,屬性,規則集〉進行知識表示,用支持度表示規則出現的頻率。實際應用表明,該系統可有效地幫助網絡維護人員及時了解網絡狀態,快速、準確地診斷典型網絡故障。
故障診斷;多Agent系統;專家系統
中心通信網自IP化改造以來,發揮著重要的業務承載作用。隨著IP技術在中心各業務系統的推廣應用和中心信息化建設的不斷深入,中心IP網的規模不斷擴大、應用業務逐漸增多。基于TCP/IP協議棧設計的網絡,考慮網絡的開放性較多,具有流量突發性大、安全性不強、可靠性不高等缺點,使得難以對其進行維護管理。如何使網絡在出現故障之后能迅速、準確地定位并排除故障,對網絡維護人員來說是個很大的挑戰。
目前,中心針對IP網絡的管理軟件主要有華為公司的iManager U2000網管系統、威睿GenieATM6000網絡流量檢測分析系統等,這些商用軟件在日常網絡維護中對設備管理、流量監測分析起到了一定的作用,但不能針對網絡中具體的業務(如圖像、數據等)進行分析統計,同時也不具備網絡故障診斷的功能。
文獻[1]針對IP網建設和使用中遇到的網絡問題,從TCP/IP 網絡原理和IP網的結構模型出發,總結出網絡分層模型分析法、網絡連接結構分析法和網絡檢測分析法相結合的故障排查策略;文獻[2]針對噪聲和動態網絡,研究了基于主動探測的故障診斷方法,提出了基于貝葉斯模型的故障診斷算法。與上述文獻不同,本文將專家系統引入到IP網故障診斷中來,設計并實現了一種分布式IP網故障診斷系統。在IP網故障診斷專家系統中,本文提出采用三元組〈實體,屬性,規則集〉進行知識表示,進一步提出用支持度表示規則出現的頻率。
1.1 系統體系架構
系統以數據包分析為基礎,基于多Agent系統搭建了一種便于擴展的分布式架構。該系統采用網絡端口鏡像的方式進行數據采集,通過比對同一數據流發端、收端數據包分析結果,輔以ping、tracert等工具,定位測控設備發送數據、網絡傳輸、數據中心接收數據異常等故障位置,在此基礎上通過基于案例的專家系統進行典型故障診斷。系統分為部署在各個遠端測站節點上的數據采集端服務,以及部署于中心節點的數據中心端服務。其中,數據采集端分為數據采集、數據處理2個層次;數據中心端分為數據采集、數據處理和數據應用3個層次。數據采集端服務和數據中心端服務通過Agent通信交換消息并傳輸數據。系統總體架構如圖1所示。

圖1 系統體系架構
各層次實現的功能主要包括:(1) 數據采集層負責各節點數據的采集和預處理;(2) 數據處理層負責將采集來的數據進行數據處理和數據存儲,為上層應用提供強大的數據分析和統計信息;(3) 數據應用層利用數據處理層的數據分析和統計信息進行網絡性能監測、故障診斷等,并將結果以Web圖形界面形式呈現給用戶。
1.2 系統功能模塊
系統功能模塊如圖2所示。其中,數據采集端服務包括數據包捕獲、存儲和分析模塊,完成對發端數據的采集、分析(如重包、丟包、亂序等的檢測);數據中心端服務包括收端數據的捕獲、存儲、分析模塊,以及對收發兩端分析結果比對、網絡性能監測、故障診斷等模塊,完成對同一數據流發端、收端數據分析結果的比對和網絡性能監測等,在此基礎上基于專家系統進行典型網絡故障診斷。

圖2 系統功能模塊
1.3 系統運行模式
數據采集端以服務形式在后臺運行,運行前需要配置各類參數,包括網卡IP、Agent參數、文件路徑等。系統啟動后,執行數據包捕獲和分析Agent,通過數據包緩存、數據包持久化文件對捕獲的數據包和分析結果進行存儲;執行數據交互的Agent定時將捕獲的數據包分析結果傳送到數據中心端,同時等待數據中心端傳入的交互指令。
數據中心端服務包括數據采集服務、數據分析服務和故障診斷服務三大部分,將數據采集、分析和故障診斷結果通過Web形式展現給用戶,并提供與用戶交互接口。數據中心端服務運行前需要配置各類參數,同時初始化數據庫和數據字典。數據中心端Web UI與數據中心端服務之間使用XML、數據緩存、持久化文件、數據庫接口等交換消息傳遞數據。數據中心端服務與數據采集端服務采用Agent交換消息傳遞數據。
系統運行采用異步結構,即數據采集端和數據中心服務端分別獨立運行。數據采集端可以隨時啟動加入分布式系統與數據中心交換消息傳遞數據。
2.1 數據包捕獲原理
由于以太網共享傳輸介質的特點,同一沖突域中的任何節點都可以捕獲到網絡中傳輸的所有數據包,接收或者丟棄數據包取決于網卡工作模式的設置。一般情況下,網卡可以工作于單播、組播、廣播或混雜4種接收模式[3]。通常情況下,計算機網卡會根據數據包中目標MAC地址進行判斷,若為自己的MAC地址或是廣播MAC地址,則接收該數據包,并提交給上層作進一步處理,否則丟棄該數據包。當網卡設置為混雜接收模式時,則不做任何判斷直接把捕獲到的所有數據包交給上一層作進一步處理。
基于多Agent的分布式IP網故障診斷系統工作時將網卡設置為混雜接收模式,從而能捕獲到網絡中所有數據包。
2.2 數據包捕獲方式
本系統采用網絡端口鏡像的方式通過數據包捕獲工具進行數據采集。
網絡端口鏡像是指將流經指定端口的所有數據都復制到交換機上的另外一個端口,即鏡像端口,計算機通過連接到鏡像端口可以捕獲所需的數據。
為了適應自主可控信息系統建設的發展需要,考慮到可移植的特性,本系統采用Java語言來實現;相應地,采用Jpcap(Java Package for Libpcap)[4]來完成數據包捕獲。Jpcap是一個能夠捕獲、發送網絡數據包的Java類庫包。
2.3 數據包過濾
數據包過濾是指計算機捕獲網絡中的數據包后,根據數據包的源地址、目的地址、端口號等信息組合來過濾數據包,最終只保留用戶感興趣的數據包。本系統采用伯克利數據包過濾器(BPF)[5]包過濾機制對捕獲的數據包進行過濾。
在人工智能領域,Agent是一種具有智能的實體。這種實體可以是軟件、設備或計算機系統等。多Agent系統[6]是一個松散耦合的Agent網絡,多個Agent通過交互、協作進行問題求解(所解問題一般是單個Agent能力或知識所不及的)。本系統中,通過多Agent系統實現分布式IP網故障診斷。
通過對現有開發平臺的分析比較,本系統采用JADE(Java Agent DEvelopment Framework)[7]實現多Agent系統。JADE是用Java語言編寫的一個多Agent系統開發平臺,可以用來開發基于多Agent的應用程序。JADE遵循完全的FIPA(The Foundation for Intelligent Physical Agents)規范,支持多Agent間的協作、移動Agent等。JADE將Agent的活動限定于容器(Container)內。容器提供了Agent的運行環境,同一容器可以容納多個Agent。每個容器都必須向一個主容器(Main Container)注冊。主容器確立了一個Agent平臺,平臺包括:(1) Agent管理系統(Agent Management System,AMS),負責注冊、控制其他Agent的活動及外部應用程序對平臺的利用;(2) 目錄服務器(Directory Facilitator,DF),負責為平臺上的Agent提供黃頁服務;(3) 消息傳送系統,也稱為Agent通信信道(Agent Communication Channel,ACC),控制平臺內或不同平臺之間的消息傳輸。
平臺通過擴展容器跨越多臺網絡設備。JADE為封裝Agent的任務而定義了一種行為(Behaviour)類,行為類中可指定任務執行時應遵循的不同協議,從而實現Agent的協作能力。采用JADE系統,便于利用面向對象技術對系統內的各個功能模塊進行開發。在業務邏輯上,將分布在不同測站的終端聯系在一起,實現數據從采集端到接收端的全過程檢測,為全面了解網絡狀態提供更可靠的手段。
專家系統(Expert System, ES)[8]是一個或一組能在某些特定領域內,應用專家知識和推理方法求解復雜問題的一種智能計算機程序,屬于人工智能的一個發展分支。專家系統的研究目標是模擬人類專家的思維推理過程。
IP網故障診斷專家系統以文本案例為基礎,以知識模板為表達方式,以系統參數為元素,通過邏輯推理實現典型故障診斷,主要包括知識表示和故障診斷推理。其處理流程如圖3所示。

圖3 IP網故障診斷專家系統流程圖
4.1 知識表示
本系統中,知識通過一個三元組〈實體,屬性,規則集〉來表示。從文本到知識的轉換通過案例模板聯系起來。
4.1.1 案例模板
案例模板包括設備、狀態、參數和故障原因。
1) 設備。設備是案例文本中出現的、對案例具有關鍵作用的網絡設備,如主機、交換機、路由器、防火墻、保密機、電源系統和線纜等。根據網絡拓撲情況,設備還可以分為主設備和關聯設備。主設備是案例中出現故障的設備;圍繞主設備的檢測,需要對與主設備物理連接的其他設備進行檢測,這些設備稱為關聯設備。
2) 狀態。狀態是對系統運行情況的一般描述,是設備狀況的定性描述,如主機無法ping通等。狀態無法直接用于計算,因此需要將狀態轉換為參數集合。
3) 參數。參數與設備相關聯。參數集合的選擇由具有專家領域知識的用戶制訂。參數還包括參數值,參數值分為精確型和模糊型。精確型參數如各類統計量、ping命令中的Lost參數等;模糊型參數的值由模糊方法確定,如描述線纜老化狀態可以用新、半新和舊等概念描述。為了便于計算,將新舊程度用[0,1]之間的數字來表示,從而形成量化指標。
4) 故障原因。故障原因與案例對應,表示由〈設備,參數,狀態〉組成的集合與故障原因集合之間的關系。
4.1.2 知識模板
知識模板是案例模版的進一步抽象,由三元組〈實體,屬性,規則集〉組成。
1) 實體。實體對應案例模板中的設備,同時加入設備類的概念,如某鏈路上的華為路由器標識為實體是加入路由器概念,轉換成〈“路由器”,“華為路由器”〉這樣的條目。其目的是提高案例匹配度。
2) 屬性。屬性由參數轉換而來,同時加入實體類概念,即將各個設備的參數加入設備類元素。如系統統計的重包數〈重包:amount〉轉換為〈主機,重包數:amount〉。
3) 規則集。規則集是案例的邏輯表達。通過邏輯運算將實體、屬性和故障原因關聯起來,表示了實體在什么狀況下發生了故障,其故障原因是什么。邏輯運算種類很多,由于系統輸入采用“與關聯”和“或關聯”來表示,因此僅采用“與”和“或”操作。規則集合的邏輯運算,如Rule1:實體1[與/或]實體[2]→{故障原因集合};Rule2:屬性集1[與/或]屬性集[2]→{故障原因集合}。
隨著案例庫的增加,各個規則出現的頻率不同,將規則出現的頻率稱為支持度。其物理含義是:同樣的實體在不同屬性條件下可能會導致不同類型的錯誤,尤其是長鏈規則,即與/或鏈很長的規則。其中有部分鏈頻繁出現,這部分子鏈本身也是一個規則,同時也是支持度很高的規則。一方面,這個規則所導致的故障類型多;另一方面,這類規則導致某些故障的概率很高。系統實現時假定這些規則支持度初始都是1,也就是說具有相同的支持度。隨著案例增加,支持度不斷累加。支持度是進行案例推理的重要指標。
4.2 知識推理
4.2.1 推理過程
推理過程的目標是根據故障現象描述推理出可能的錯誤原因。進行推理前,首先將所掌握的故障信息、數據通過人工輸入產生案例模板,然后系統再將案例模板轉換為知識模板,最后基于知識模板通過知識推理算法推理出可能的故障原因。其本質是,查詢規則庫中規則集合與輸入的知識模板所提取的規則集相匹配的案例中,規則支持度最大的故障原因。
4.2.2 知識推理算法
假設規則庫中存在如下規則:r={r1,r2,r3,…rn},其支持度分別為{sr1,sr2,sr3,…srn}。將待檢測故障中人工輸入的參數映射為規則集R={R1,R2,R3,..Rm}。首先對R中每一個Ri,在r中進行匹配,如果R完全匹配,說明待檢測故障與歷史案例完全匹配,可以直接查詢出可能故障原因;如果不能完全匹配,則表示有規則沒有出現過,可能表示一類新的故障,則選擇支持度最高的規則。當支持度超過一定閾值,則根據這個規則提取可能故障原因;如果最大支持度低于閾值,則表示該故障情況與知識庫中歷史故障案例重合度很低,則無法給出故障原因。
該系統在中心進行了部署應用。在遠端測站部署分布式IP網故障診斷系統(Distributed IP network Fault Diagnosis System, DIFS)客戶端,在中心部署DIFS服務器端。DIFS客戶端通過交換機端口鏡像方式對測站設備發送的數據包進行捕獲、分析,并將分析結果發給中心;同時,在中心通過交換機端口鏡像方式對接收的數據包進行捕獲、分析。通過比對同一數據流發端、收端數據包分析結果,輔以ping、tracert等工具,定位測控設備發送數據、網絡傳輸、數據中心接收數據異常等故障位置,在此基礎上通過基于案例的專家系統進行典型故障診斷。
通過該系統的應用,網絡維護人員可以及時了解網絡數據傳輸質量,監測網絡性能,快速、準確地進行網絡典型故障診斷,為網絡管理提供多層次的決策支持。
網絡故障診斷是網絡管理的重要部分,也是網絡管理領域多年以來的研究熱點。本文以網絡分析為手段,基于多Agent系統,設計實現了一種便于擴展的分布式IP網故障診斷系統。在取得了一些初步研究成果的同時,也得到一些新啟示,將在下一步的工作中展開更深入的研究:(1) IP網故障診斷專家系統的自學習功能還有待進一步加強,后續可以結合神經網絡等技術一起研究;(2) 網絡管理信息庫為網絡管理提供了豐富的網絡狀態信息,下一步在完善專家系統時應綜合考慮各種信息的有效利用。
References)
[1]段慧芬,王華,劉煥敏,等.試驗IP網故障分析策略及方法應用[J].飛行器測控學報,2012,31(4):71-75.
[2]喬焰.基于主動探測的IP網故障診斷與丟包率推理方法[D].北京:北京郵電大學,2012:50-64.
[3]翟光群,胡貴江. 基于Jpcap的數據包捕獲器的設計與實現[J].微計算機信息,2009,25(7-3):197-199.
[4]Jpcap tutorial[EB/OL].(2009-10-22)[2015-10-07].http://netresearch.ics.uci.edu/kfujii/jpcap/doc/tutorial/index.html.
[5]MCCANNE S,JACOBASON V. The BSD packet filter:a new architecture for user-level packet capture[C]//Proceedings of the 1993 Winter USENIX Technical Conference.San Diego:USENIX,1993:1-11.
[6]廉師友.人工智能技術導論[M].3版.西安:西安電子科技大學出版社,2007:261-268.
[7]JADE[EB/OL].(2004-03-17)[2015-10-07].http://jade.tilab.com/.
[8]蔡自興,約翰·德爾金,龔濤.高級專家系統:原理、設計及應用[M].2版.北京:科學出版社,2014:188-224.
(編輯:李江濤)
Design and Implementation of Distributed IP Network Fault Diagnosis System Based on Multi-agent System
SHI Chunguang1, LIU Bo2, PENG Jinlin1,2, CHANG Liping1
(1. Taiyuan Satellite Launch Center, Taiyuan Shanxi 030027, China;2. Beijing Tracking and Telecommunications Technology, Beijing 100094, China)
To locate and eliminate typical network faults in time, the paper designs an expandable distributed IP network fault diagnosis system based on data packet analysis and multi-agent system. The system adopts the method of network port mirroring to collect data, conducts data filtering with Berkeley Packet Filtering (BPF) mechanism, and performs network fault diagnosis based on expert system. In addition, the system uses triple 〈entity, attribute and rule set〉 to realize knowledge representation, and represent the frequency of the rule appearance by support degree. The practical application shows that the system can effectively help network maintenance personnel to know the network status in time and quickly and accurately diagnose typical network faults.
fault diagnosis; multi-agent system; expert system
2016-04-20
史春光(1979—),男,工程師,博士,主要研究方向為通信網絡技術。flyingshicg@126.com
TP393.1
2095-3828(2016)06-0095-05
A DOI 10.3783/j.issn.2095-3828.2016.06.018