專利名稱:分布式多協(xié)議代理與中心系統(tǒng)消息交換的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域的方法,具體是一種分布式多協(xié)議代理 與中心系統(tǒng)消息交換的方法。
背景技術(shù):
在復(fù)雜的網(wǎng)絡(luò)環(huán)境中,由于應(yīng)用環(huán)境、應(yīng)用目的不同,基于不同的應(yīng)用場(chǎng)景, 網(wǎng)絡(luò)中存在著不同的應(yīng)用層協(xié)議,不同協(xié)議的消息格式是不一樣的,代理基于不 同的協(xié)議分析獲得的內(nèi)容也有所不同,習(xí)慣做法是根據(jù)協(xié)議的不同,自定義代理 與中心的接口,但如果協(xié)議非常復(fù)雜、網(wǎng)絡(luò)中應(yīng)用協(xié)議眾多,這種定義的接口就 會(huì)變得非常復(fù)雜,中心從代理端得到的消息格式也紛繁蕪雜,非常不利于后期信 息的統(tǒng)一處理,不利于有效實(shí)現(xiàn)組織的管理目標(biāo)。還有一種做法是開(kāi)發(fā)中間件, 以完成通信機(jī)制,但這樣做有兩個(gè)問(wèn)題, 一是后期系統(tǒng)開(kāi)發(fā)基于中間件,內(nèi)部的 消息交換機(jī)制被中間件屏蔽,如果中心與代理之間通信產(chǎn)生問(wèn)題,將難以追蹤; 二是這種通信中間件不會(huì)考慮通信兩端或多端之間的管理與協(xié)作問(wèn)題,而在中心 與代理通信架構(gòu)應(yīng)用到具體實(shí)現(xiàn)中,中心需要對(duì)代理實(shí)現(xiàn)管理,中心需要與代理 進(jìn)行通信有效協(xié)作。因而,需要定義消息交互的格式,需要采用有效的機(jī)制來(lái)保 證中心與代理之間通信遵守一定的規(guī)程,通信可靠。XML是SGML (標(biāo)準(zhǔn)通用標(biāo)記 語(yǔ)言)的簡(jiǎn)化版本,是ISO 8879標(biāo)準(zhǔn)對(duì)文本標(biāo)記說(shuō)明進(jìn)行定義的一種語(yǔ)法。作 為一種表示和交換網(wǎng)絡(luò)文檔及數(shù)據(jù)的可擴(kuò)展語(yǔ)言,XML能夠?yàn)椴煌愋偷奈臋n和 應(yīng)用程序定義定制化的標(biāo)記,XML DTD (文檔類型定義)可用來(lái)聲明文檔所用的 標(biāo)記,它包括元素(文檔包括的不同信息部分)、屬性(信息的特征)和內(nèi)容模 型(各部分信息之間的關(guān)系)。
經(jīng)過(guò)對(duì)現(xiàn)有技術(shù)的文獻(xiàn)檢索發(fā)現(xiàn),中國(guó)專利申請(qǐng)?zhí)?00710182031.3,公開(kāi) 號(hào)為CN101159760,專利名稱為《基于XML數(shù)據(jù)交換文件實(shí)現(xiàn)通訊協(xié)議的方 法及系統(tǒng)》,該專利中實(shí)現(xiàn)通訊協(xié)議方法是基于XML進(jìn)行數(shù)據(jù)交換,其具體方法 是通過(guò)建立XML方式表示的指令腳本庫(kù),依據(jù)指令腳本將相應(yīng)數(shù)據(jù)應(yīng)用層發(fā)送的指令打包發(fā)送,對(duì)接收的協(xié)議數(shù)據(jù)進(jìn)行相應(yīng)解包返回給數(shù)據(jù)應(yīng)用層。其不足在于, 該方法及系統(tǒng)在提高協(xié)議解析程序的靈活性、擴(kuò)充及快速實(shí)現(xiàn)協(xié)議方面較有價(jià) 值,但是其在通信的安全性方面功能非常薄弱,因?yàn)橥ㄐ欧街唤馕鼋邮盏降闹噶?但不驗(yàn)證指令是否合法,這容易造成惡意通信方偽造或誤發(fā)合法指令進(jìn)行破壞操 作或誤操作;其在協(xié)議解析程序方面靈活性仍然不足,因?yàn)槠錄](méi)有對(duì)XML格式指 令腳本集進(jìn)行統(tǒng)一格式化,而是定義了有限的指令腳本庫(kù),不利于靈活擴(kuò)展,舉 例來(lái)說(shuō),如果有新的通信需求則需要增加新的指令,且需要完整增加對(duì)該指令的 解析代碼;其在通信雙方或多方協(xié)作方面功能也非常薄弱,也不適合中心與代理 這種架構(gòu)的通信,因?yàn)槠錄](méi)有定義良好的管理協(xié)作機(jī)制,其考慮的是對(duì)等的通信 雙方,沒(méi)有考慮中心與代理的差別,在一對(duì)多、多對(duì)多通信方面也存在問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明針對(duì)上述現(xiàn)有技術(shù)的不足,提供了一種分布式多協(xié)議代理與中心系統(tǒng) 消息交換的方法,代理和中心可以是不同的系統(tǒng),使其去除應(yīng)用協(xié)議與交換消息 之間的耦合度,實(shí)現(xiàn)應(yīng)用協(xié)議與消息之間無(wú)關(guān)性,實(shí)現(xiàn)中心與代理開(kāi)發(fā)語(yǔ)言的無(wú) 關(guān)性,提高中心與代理之間的互操作能力,增強(qiáng)中心與分布式代理通信的安全可 靠性,通過(guò)標(biāo)準(zhǔn)化消息交換格式與消息交換規(guī)程,促進(jìn)網(wǎng)絡(luò)資源信息充分共享, 有效、快捷解決中心與代理架構(gòu)中的通信與協(xié)同工作問(wèn)題。
本發(fā)明是通過(guò)如下技術(shù)方案實(shí)現(xiàn)的,本發(fā)明包括如下步驟 步驟一,由中心與若干個(gè)代理構(gòu)成二級(jí)管理模型,中心分布在骨干節(jié)點(diǎn),代 理包括多種協(xié)議類型的代理,代理分布在網(wǎng)絡(luò)各節(jié)點(diǎn)中采集信息,負(fù)責(zé)采集、打 包對(duì)應(yīng)協(xié)議的數(shù)據(jù),代理將協(xié)議采集數(shù)據(jù)通過(guò)網(wǎng)絡(luò)傳輸上報(bào)給中心,中心進(jìn)行數(shù) 據(jù)處理;
步驟二,中心對(duì)各個(gè)代理進(jìn)行初始化,初始化代理中的配置文件與過(guò)濾規(guī)則 文件,配置文件與過(guò)濾規(guī)則文件均為XML文件;
步驟三,啟動(dòng)代理,代理讀取初始的配置文件與過(guò)濾規(guī)則文件,配置文件與 過(guò)濾規(guī)則文件都遵循統(tǒng)一的消息交換格式,代理向中心發(fā)送同步信息XML文件與 心跳信息XML文件;
步驟四,中心根據(jù)XML解析框架,通過(guò)過(guò)濾規(guī)則文件解析XML格式文件,根 據(jù)代理發(fā)送的XML文件中ID標(biāo)識(shí)與代理的IP地址這兩個(gè)條件進(jìn)行代理驗(yàn)證,驗(yàn)證接入代理的合法性,如果驗(yàn)證通過(guò),中心允許代理接入,進(jìn)入步驟五,中心將 該代理狀態(tài)設(shè)置為在線,中心根據(jù)同步信息XML文件執(zhí)行與代理的同步機(jī)制;如 果驗(yàn)證不能通過(guò),中心拒絕代理連接,所有步驟結(jié)束;
步驟五,如果中心允許代理接入,代理開(kāi)始采集協(xié)議數(shù)據(jù),對(duì)采集到的協(xié)議 數(shù)據(jù)進(jìn)行分析,根據(jù)協(xié)議類型及代理ID標(biāo)識(shí)將數(shù)據(jù)用XML格式文件打包,并將 文件上報(bào)給中心,中心接收、解析XML文件數(shù)據(jù),根據(jù)代理ID標(biāo)識(shí)分析數(shù)據(jù)來(lái) 源的代理,中心將該代理的狀態(tài)設(shè)置為上報(bào)數(shù)據(jù)狀態(tài),并將數(shù)據(jù)存入中心中的數(shù) 據(jù)庫(kù);
步驟六,中心編輯過(guò)濾規(guī)則文件,并發(fā)送給代理以使新的過(guò)濾規(guī)則文件生效;
步驟七,中心向代理發(fā)送配置文件,中心解析代理發(fā)送的同步信息XML文件 信息,其中包含代理配置文件的時(shí)間戳信息,如果該時(shí)間戳信息與中心存儲(chǔ)的代 理配置文件時(shí)間戳信息一致,表明中心中的配置文件與代理中的配置文件一致, 則中心讀取本地相應(yīng)代理配置文件,編輯后下傳輸給代理;如果中心與代理中的 配置文件不一致,則中心生成XML格式的査詢文件,并下發(fā)給代理,代理上報(bào)配 置文件,中心編輯配置文件,下發(fā)給代理,代理重新啟動(dòng)使配置文件生效;
步驟八,代理獲取配置文件中關(guān)于代理給中心上報(bào)數(shù)據(jù)的間隔時(shí)間信息,如 果在間隔時(shí)間內(nèi)沒(méi)有向中心上報(bào)數(shù)據(jù),則代理向中心發(fā)送心跳信息XML文件,中 心在設(shè)定時(shí)間內(nèi)未收到代理心跳信息XML文件或上報(bào)的協(xié)議數(shù)據(jù)XML文件,則中 心端將該代理狀態(tài)設(shè)置為離線。
所述代理,為包含一種或多種協(xié)議類型的代理模塊。
歩驟二中,所述中心對(duì)各個(gè)代理進(jìn)行初始化,具體為中心注冊(cè)維護(hù)代理 ID標(biāo)識(shí)庫(kù),中心啟動(dòng)后讀取代理信息,如果有新的協(xié)議代理需要部署到網(wǎng)絡(luò)中 采集協(xié)議數(shù)據(jù),由中心端給代理分配唯一的ID標(biāo)識(shí)、初始化配置文件(包括IP 地址信息)、過(guò)濾規(guī)則文件,中心記錄代理ID標(biāo)識(shí),保存代理配置文件與過(guò)濾規(guī) 則文件。
所述的中心,包括主用服務(wù)器和若干備用服務(wù)器,在代理配置文件中包括 一個(gè)主用服務(wù)器信息和多個(gè)備用服務(wù)器信息,服務(wù)器信息包括服務(wù)器域名、IP 地址、通訊端口及描述、是否為主用服務(wù)器信息等,代理首先向主用中心服務(wù)器 發(fā)送同歩信息XML文件與心跳信息XML文件,如果代理連續(xù)三次連接不上主用中心服務(wù)器,則選擇連接其它備用中心服務(wù)器,如果連接成功,則將其設(shè)置為主用 中心服務(wù)器。
所述代理配置文件,包括多協(xié)議代理的標(biāo)識(shí)、采集端口、心跳時(shí)間和采樣 保持窗口等內(nèi)容,其中
多協(xié)議代理的標(biāo)識(shí)用以作為中心對(duì)各個(gè)數(shù)據(jù)采集代理進(jìn)行識(shí)別的條件之一, 特別是可以用以限定偽裝的數(shù)據(jù)采集代理對(duì)中心發(fā)起攻擊,提高安全性能;
采集端口指定了代理需要監(jiān)聽(tīng)的網(wǎng)絡(luò)協(xié)議端口;
心跳時(shí)間用以保持代理和中心之間連接;
采樣保持窗口用以設(shè)定一組數(shù)據(jù)在代理中的緩沖時(shí)間,以防止重復(fù)的數(shù)據(jù)在 短時(shí)間內(nèi)上報(bào)給中心,造成中心負(fù)載過(guò)大,影響中心服務(wù)器的性能。
所述過(guò)濾規(guī)則文件,包括網(wǎng)絡(luò)數(shù)據(jù)包的特征量,如源或目的IP,源或目的 端口等,用戶可以根據(jù)設(shè)定的協(xié)議過(guò)濾規(guī)則,去除無(wú)效的數(shù)據(jù)包,提高系統(tǒng)工作 效率。
步驟三中,所述同步信息XML文件,包括代理配置文件和過(guò)濾規(guī)則文件的時(shí) 間戳信息,用來(lái)和中心實(shí)現(xiàn)同步機(jī)制,其只在代理啟動(dòng)并與中心連接后發(fā)送。
步驟三中,所述的消息交換格式,具體為采用XMLDTD定義,以面向?qū)ο?的方式描述中心與代理之間傳遞消息的數(shù)據(jù)模型,用XML文件作為消息交換格式 文件,實(shí)現(xiàn)多協(xié)議格式信息到統(tǒng)一消息格式的映射,另外還預(yù)留了擴(kuò)展框架,可 以擴(kuò)展定義交換消息。
步驟四中,所述的XML解析框架,具體為為減少程序開(kāi)發(fā)量,根據(jù)消息交 換格式XML文件面向?qū)ο蟮奶攸c(diǎn),定義XML解析相關(guān)的規(guī)則文件,方便、快捷實(shí) 現(xiàn)各個(gè)元素的類,由一個(gè)類文件根據(jù)規(guī)則統(tǒng)一解析XML文件,完成XML文件數(shù)據(jù) 到對(duì)象的之后。
步驟四中,所述的代理驗(yàn)證,具體為中心根據(jù)代理發(fā)送的XML文件中ID 標(biāo)識(shí)與代理的IP地址驗(yàn)證代理的合法性,如果代理ID標(biāo)識(shí)在中心ID標(biāo)識(shí)庫(kù)中 存在,且代理通信的IP地址與中心已有該ID標(biāo)識(shí)代理配置文件中IP地址信息 一致,則驗(yàn)證通過(guò),這兩個(gè)條件只要一個(gè)不具備,則驗(yàn)證不通過(guò);
步驟四中,所述的同步機(jī)制,具體為中心根據(jù)同步信息XML文件的內(nèi)容判 斷代理的配置文件以及協(xié)議過(guò)濾規(guī)則文件是否失效,如果配置文件或協(xié)議過(guò)濾規(guī)則文件失效,則中心通過(guò)該已建立起來(lái)的通信連接,將中心默認(rèn)的配置文件或協(xié) 議過(guò)濾規(guī)則文件下發(fā)給代理,如果配置文件未失效,則中心不發(fā)送信息。如果代 理收到的是新的配置文件或協(xié)議過(guò)濾規(guī)則文件,則代理將新接收到的文件替換掉 原有的文件,并重新啟動(dòng)使其生效;
步驟七中,所述査詢文件,包括配置查詢文件和協(xié)議過(guò)濾規(guī)則文件,這兩個(gè) 文件分別代表了兩個(gè)操作對(duì)數(shù)據(jù)采集代理模塊的配置進(jìn)行査詢和對(duì)數(shù)據(jù)采集代 理模塊的協(xié)議過(guò)濾規(guī)則進(jìn)行査詢,具體實(shí)施中,這兩個(gè)査詢操作可以合并在一個(gè) 文件中進(jìn)行表述。
步驟八中,所述設(shè)定的時(shí)間為三倍間隔時(shí)間。
步驟七、八之間相互獨(dú)立,且可以在執(zhí)行完步驟四后的任意時(shí)刻進(jìn)行。
在上述各步驟以及相關(guān)說(shuō)明中所述中心和分布式多協(xié)議代理之間的通信,遵 循統(tǒng)一的XML文件消息交換格式,并采用XML文件解析框架。
本發(fā)明采用XML格式的文件作為代理和中心之間通信的橋梁,XML文件采用 層次繼承結(jié)構(gòu)封裝,有效簡(jiǎn)化了系統(tǒng)的設(shè)計(jì),提高了數(shù)據(jù)解析程序的靈活性,提 高了系統(tǒng)處理數(shù)據(jù)的能力;采用代理驗(yàn)證、代理狀態(tài)監(jiān)測(cè)、代理同步等機(jī)制,保 證了通信的安全性、可靠性;對(duì)于配置以及過(guò)濾規(guī)則文件的上傳和下發(fā),使得協(xié) 議數(shù)據(jù)采集的代理的功能更具靈活性。在代理與中心架構(gòu)基礎(chǔ)上實(shí)現(xiàn)組織目標(biāo)時(shí) 無(wú)需定義復(fù)雜的編程語(yǔ)言開(kāi)發(fā)接口,代理采集的信息可方便、靈活配置,中心對(duì) 代理的也非常容易管理,中心與代理的消息交換與系統(tǒng)無(wú)關(guān),中心與代理可以進(jìn) 行有效協(xié)作,可以簡(jiǎn)化復(fù)雜的邏輯結(jié)構(gòu),大大減少了系統(tǒng)開(kāi)發(fā)人員的工作量。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下有益效果
1、 現(xiàn)有技術(shù)的方法只提供對(duì)等雙方的通信,本發(fā)明提供了一種中心與分布 式代理通信,可以實(shí)現(xiàn)一對(duì)多、多對(duì)多的通信;
2、 現(xiàn)有技術(shù)沒(méi)有考慮通信的安全性,本發(fā)明通過(guò)中心維護(hù)代理唯一 ID標(biāo)識(shí) 的手段,結(jié)合代理的IP地址,對(duì)多協(xié)議信息采集的代理接入合法性進(jìn)行驗(yàn)證, 以確保數(shù)據(jù)來(lái)源的正確性,由于消息交換格式定義的合理性,在代理發(fā)送消息過(guò) 程中也可鑒別代理;
3、 現(xiàn)有技術(shù)沒(méi)有考慮消息交換XML文件格式的統(tǒng)一性,本發(fā)明基于面向?qū)?象的特點(diǎn),采用層次繼承結(jié)構(gòu)封裝數(shù)據(jù),有利于協(xié)議數(shù)據(jù)的擴(kuò)充,采用規(guī)則解析框架解析消息交換格式XML文件,有利于提高解析數(shù)據(jù)的性能,也有利于程序快 速實(shí)現(xiàn);
4、現(xiàn)有技術(shù)沒(méi)有考慮到對(duì)代理的管理,本發(fā)明通過(guò)對(duì)不同過(guò)濾機(jī)制之間的 分解,將不同的過(guò)濾規(guī)則放置于代理協(xié)議數(shù)據(jù)采集以及分析的不同階段,以配置 文件的形式提供,實(shí)現(xiàn)了對(duì)代理的動(dòng)態(tài)配置,也增強(qiáng)了代理與中心的協(xié)作能力, 本發(fā)明還通過(guò)同步機(jī)制、代理狀態(tài)監(jiān)測(cè)進(jìn)一步對(duì)代理實(shí)現(xiàn)有效管理。
圖1是本發(fā)明實(shí)施例中中心與代理組成的模型結(jié)構(gòu)圖。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)本發(fā)明的實(shí)施例作詳細(xì)說(shuō)明本實(shí)施例在以本發(fā)明技術(shù)方案 為前提下進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過(guò)程,但本發(fā)明的保護(hù) 范圍不限于下述的實(shí)施例。
本實(shí)施例包括如下步驟
步驟一,由中心與代理構(gòu)成二級(jí)管理模型,中心服務(wù)器分布在骨干節(jié)點(diǎn),多 協(xié)議代理分布在網(wǎng)絡(luò)各節(jié)點(diǎn)中采集信息,各種協(xié)議類型的代理負(fù)責(zé)采集、打包對(duì) 應(yīng)協(xié)議的數(shù)據(jù),代理將協(xié)議采集數(shù)據(jù)通過(guò)網(wǎng)絡(luò)傳輸上報(bào)給中心,中心進(jìn)行數(shù)據(jù)處 理。
如圖l所示,本實(shí)施例中的中心與代理組成的模型中,管理中心分別與IPSec (Intenet安全)協(xié)議代理、SSL (安全套接層)協(xié)議代理、SNMP (簡(jiǎn)單網(wǎng)絡(luò)管 理)協(xié)議代理、A^MI (Windows管理規(guī)范)協(xié)議代理以及其它協(xié)議的代理相連, 根據(jù)協(xié)議類型的不同有一個(gè)代理可以包含一種或多種協(xié)議類型的代理功能模塊。
步驟二,中心對(duì)各個(gè)代理進(jìn)行初始化,初始化代理的配置文件與過(guò)濾規(guī)則文
件;
所述代理的配置文件,包括多協(xié)議代理的標(biāo)識(shí)、采集端口、心跳時(shí)間和采 樣保持窗口等內(nèi)容,其中
多協(xié)議代理的標(biāo)識(shí)用以作為中心對(duì)各個(gè)數(shù)據(jù)采集代理進(jìn)行識(shí)別的條件之一, 特別是可以用以限定偽裝的數(shù)據(jù)采集代理對(duì)中心發(fā)起攻擊,提高安全性能;
采集端口指定了代理需要監(jiān)聽(tīng)的網(wǎng)絡(luò)協(xié)議端口;
心跳時(shí)間用以保持代理和中心之間連接;采樣保持窗口用以設(shè)定一組數(shù)據(jù)在代理中的緩沖時(shí)間,以防止重復(fù)的數(shù)據(jù)在 短時(shí)間內(nèi)上報(bào)給中心,造成中心負(fù)載過(guò)大,影響中心服務(wù)器的性能。 所述代理的配置文件,具體為 〈!ELEMENT agent-config (update-time, servers, client, global-sets)〉 〈!ELEMENT update—time (#PCDATA)〉 〈!ELEMENT servers (server+)〉 〈!ELEMENT client (interface)〉 《ATTLIST client
ip NMTOKEN REQUIRED id NMTOKEN #REQUIRED 誦e醒TOKEN ^REQUIRED port NMTOKEN鵬QUIRED
>
〈!ELEMENT global-sets (time-interval)〉 〈!ELEMENT interface (#PCDATA)〉
<!ELEMENT server EMPTY〉 〈!ATTLIST server
name麗T0KEN 鵬QUIRED
ip NMTOKEN冊(cè)EQUIRED
port NMTOKEN #FIXED ' 1070'
default (yes I no)瓶EQ證ED
status (0|1)瓶EQUIRED
〉
〈!ELEMENT time-interval (heartbeat, sample)〉 〈!ELEMENT heartbeat (#PCDATA)〉 〈!ELEMENT sample (ffCDATA)〉所述過(guò)濾規(guī)則文件,包括網(wǎng)絡(luò)數(shù)據(jù)包的特征量,如源或目的IP,源或目的 端口等,用戶可以根據(jù)設(shè)定的協(xié)議過(guò)濾規(guī)則,去除無(wú)效的數(shù)據(jù)包,提高系統(tǒng)工作 效率,具體為
<!ELEMENT agent-rule (update-time, localf ilters, filters, auth-arithmetic-m即pings氺)〉
<!ELEMENT localfilters (localfilter+)〉
〈!ELEMENT filters (filter+)〉
〈!ELEMENT localfilter (#PCDATA)>
<!ELEMENT filter (filter-name, init-param)〉
<!ELEMENT filter-name (ttPCDATA)>
<!ELEMENT init-param (param-value氺)〉
<!ELEMENT param-value (ttPCDATA)〉
步驟三,啟動(dòng)代理,代理讀取初始的配置XML文件與過(guò)濾規(guī)則XML文件, 配置文件與過(guò)濾規(guī)則文件都遵循統(tǒng)一的消息交換格式,代理向中心發(fā)送同步信息 XML文件與心跳信息XML文件;
所述的消息交換格式,具體為采用XMLDTD定義,以面向?qū)ο蟮姆绞矫枋?中心與代理之間傳遞消息的數(shù)據(jù)模型,用XML文件作為消息交換格式文件,實(shí)現(xiàn) 多協(xié)議格式信息到統(tǒng)一消息格式的映射,所有消息交換格式文件的最高層類是 agent,每一種類型的消息都是該類的子類,agent中定義了代理的唯一 ID標(biāo)識(shí)、 IP地址及其它描述信息,由中心給代理分配ID,作為代理接入中心的授權(quán)標(biāo)識(shí) 之一。另外,agent中還定義了多種消息類型,包括agent-config (代理配置 消息)、agent-rule (代理規(guī)則消息)、agent-alert (代理告警)、agent-r印ort (代理報(bào)告)、agent-heartbeat (心跳消息)、agent-synch (同步消息),另外 還有査詢、多項(xiàng)擴(kuò)展等類型消息。其中除了 agent-config、 agent-rule直接作 為agent的子類外,為便于消息的格式的統(tǒng) 一 維護(hù),其它類型消息作為 agent-r印orts (報(bào)告消息)的子類,agent-r印orts直接作為agent的子類, 在agent-r印orts中包含了這些消息可以擴(kuò)展,又分別包括各自的子類,以表示 更詳細(xì)的消息。agent-config中,定義了時(shí)間戳、服務(wù)器servers、心跳間隔、信息報(bào)告時(shí)間窗等子類,考慮到服務(wù)器均衡與主備用,servers中包含多項(xiàng) server子類,通過(guò)sever的元素值決定用于主用服務(wù)器還是其它用途。為了便 于代理靈活采集信息,在agent-rule中,定義了代理采集信息的一系列過(guò)濾規(guī) 則,代理根據(jù)過(guò)濾規(guī)則決定采集哪些類型信息、無(wú)需采集哪些信息。alert-r印ort 中根據(jù)子類型含義區(qū)分是報(bào)警還是普通報(bào)告信息,agent-heartbeat是維持代理 與中心正常連接的消息,而agent-synch是為實(shí)現(xiàn)中心與代理消息的一致性,對(duì) 中心和代理重要涉及代理正常運(yùn)行、正常上報(bào)等內(nèi)容、時(shí)間戳進(jìn)行同步處理。另 外還預(yù)留了擴(kuò)展框架,在agent-r印orts中可以擴(kuò)展定義交換消息。中心接收到 代理的信息,鑒別消息格式,如果格式有誤,拒絕處理并指示代理重發(fā),具體如 下
<!ELEMENT agent (agent-config|agent-rule|agent-reports|agent-synch)〉 〈!ATTLIST agent
ip CDATA鵬QUIRED
id CDATA鵬Q證ED
name CDATA REQUIRED
description CDATA ^IMPLIED
xmltype
(agent-conf ig|agent-rule| alert-report|agent-heartbeat|agent-synch|age nt-query Imuti-items) ^REQUIRED 〉
所述同步信息XML文件,包括代理配置文件和過(guò)濾規(guī)則文件的時(shí)間戳信息, 用來(lái)和中心實(shí)現(xiàn)同步機(jī)制,其只在代理啟動(dòng)并與中心連接后發(fā)送,具體為 〈!ELEMENT agent-reports (agent-report承)〉 <!ELEMENT agent-report (system)> 〈!ATTLIST agent-report type (agent-synch)瓶EQUIRED description CDATA #IMPLIED
〉〈!ELEMENT agent-synch (config-file, rule-file)〉
〈!ELEMENT config-file (update-time)〉
〈!ELEMENT rule-file (update-time)〉
所述查詢信息XML文件,具體為
<!ELEMENT agent-reports (agent-report*)>
<!ELEMENT agent-report (config)〉
〈!ATTUST agent-r印ort
type (agent-query) ^REQUIRED
description CDATA ttIMPLIED
>
〈! ELEMENT config (pamm, summary* )〉 〈!ELEMENT param (ttPCDATA)〉 〈!ELEMENT summary (#PCDATA)〉
所述心跳信息XML文件,具體為 〈!ELEMENT agent-reports (agent-report*)〉 <!ELEMENT agent-report (system)〉 〈!ATTLIST agent-report
type (agent-heartbeat)鵬QUIRED
description CDATA WMPLIED
〉
〈!ELEMENT system (setup-time1 , runtime1 )〉
〈!ELEMENT setup-time (ttPCDATA)〉
<!ELEMENT runtime (ttPCDATA)>
步驟四,中心根據(jù)XML解析框架,通過(guò)規(guī)則文件解析XML格式文件,根據(jù)代 理發(fā)送的XML文件中ID標(biāo)識(shí)與代理的IP地址這兩個(gè)條件進(jìn)行代理驗(yàn)證,驗(yàn)證接 入代理的合法性,如果驗(yàn)證通過(guò),中心允許代理接入,進(jìn)入步驟五,中心將該代 理狀態(tài)設(shè)置為在線,中心根據(jù)同步信息XML文件執(zhí)行與代理的同步機(jī)制,如果驗(yàn) 證不能通過(guò),中心拒絕代理連接,所有歩驟結(jié)束;所述的規(guī)則文件具體為:
< xml version二"l.0" 〉 〈digester-rules〉 <pattern value二〃agent〃〉
<object-create-rule classname二〃org. infosec. app. model-Agent〃 /> 〈set-properties-rule〉
〈alias attr-name二〃ip〃 prop-name=〃ip〃 /〉 〈alias attr-name二〃id〃 prop-name二〃id〃 /> 〈alias attr-name二〃name〃 prop-name二〃name〃 /〉 〈alias attr-name二〃description〃 prop-name=〃description〃 /〉 〈alias attr-name二〃xmltype〃 prop-name二〃xmltype〃 /〉 〈/set-properties—rule> 〈pattern value二〃agent-reports〃〉 <object-create-rule classname二〃org. infosec. app. model. XmlAgentReport〃 /〉
〈pattern value二〃agent-r印ort〃〉 〈set-properties-rule〉 <alias attr-name二〃type〃 prop-name二〃type〃 /〉 <alias attr-najne二〃description〃 prop-name=〃description〃 /〉
〈/set-properties_rule>
〈pattern value二〃system〃〉 <object—create—rule
org. infosec. app. model. XmlSystem" /〉
〈set_properties—rule/〉
〈call-method—rule pattern:
setup—time
methodname:
setSetupTime〃 paramcount
"0〃 /〉
〈cal 1—method—rule pattern:
runtime" methodname二"setRunTime
0〃 /〉
<set—next—rule methodname:
setXmlSystem〃 /〉〈/pattern〉 〈/pattern〉
<set_next_rule methodname二〃setAgentR印ort〃 /〉
<pattern value二〃agent-synch〃〉 <object-create-rule classname=〃org. infosec. app. model. XmlAgentFileSync" /〉 〈set-properties-rule/〉
〈cail-method-rule pattern二〃config_file/update-1ime methodname二〃setConfigUpdateTimeStr〃 paramcount=〃0〃 /〉
〈call-method-rule pattern二〃rule-file/update-time〃 methodname二〃setRuleUpdateTimeStr〃 paramcount二〃0〃 /〉
〈set-next-rule methodname二〃setAgentFileSync〃 /〉
〈pattern value=〃agent—rule〃〉
〈object-create-rule classname二〃org. infosec. app. model. XmlAgentRule〃 /〉
〈set-properties-rule/〉
<call-method-rule pattera=〃update-time" methodname二〃setUpateTimeStr〃 paramco皿t二〃0〃 /〉
<set_next—rule methodname二〃setAgentRule〃 /〉
<pattern value二〃agent-config〃〉
〈object-create-rule classname=〃org. infosec. app. model. XmlAgentConfig〃 /〉
〈set-properties_rule/>
〈call-method-rule pattern二〃update-time〃 methodname二〃setUpateTimeStr〃 paramcount二〃0〃 /〉
〈set—next—rule methodname=〃setAgentConfig〃 /〉〈/pattern〉 〈/pattern> 〈/digester-rules〉
步驟五,如果中心允許代理接入,代理開(kāi)始采集協(xié)議數(shù)據(jù),對(duì)采集到的協(xié)議 數(shù)據(jù)進(jìn)行分析,根據(jù)協(xié)議類型及代理ID標(biāo)識(shí)將數(shù)據(jù)用XML格式文件打包,并將 文件上報(bào)給中心,中心接收、解析XML文件數(shù)據(jù),根據(jù)代理ID標(biāo)識(shí)分析數(shù)據(jù)來(lái) 源的代理,中心將該代理的狀態(tài)設(shè)置為上報(bào)數(shù)據(jù)狀態(tài),并將數(shù)據(jù)存入中心中的數(shù) 據(jù)庫(kù);
步驟六,中心編輯過(guò)濾規(guī)則XML文件,并發(fā)送給代理以使新的過(guò)濾規(guī)則XML 文件生效;
步驟七,中心向代理發(fā)送配置XML文件,中心解析代理發(fā)送的同步信息XML 文件信息,其中包含代理配置文件的時(shí)間戳信息,如果該時(shí)間戳信息與中心存儲(chǔ) 的代理配置文件時(shí)間戳信息一致,表明中心中的配置文件與代理中的配置文件一 致,則中心讀取本地相應(yīng)代理配置文件,編輯后下傳輸給代理;如果中心與代理 中的配置文件不一致,則中心生成XML格式的査詢文件,并下發(fā)給代理,代理上 報(bào)配置文件,中心編輯配置文件,下發(fā)給代理,代理重新啟動(dòng)使配置文件生效;
步驟八,代理獲取配置文件中關(guān)于代理給中心上報(bào)數(shù)據(jù)的間隔時(shí)間信息,如 果在間隔時(shí)間內(nèi)沒(méi)有向中心上報(bào)數(shù)據(jù),則代理向中心發(fā)送心跳信息XML文件,中 心在設(shè)定時(shí)間內(nèi)未收到代理心跳信息XML文件或上報(bào)的協(xié)議數(shù)據(jù)XML文件,則中 心端將該代理狀態(tài)設(shè)置為離線。
本實(shí)施例實(shí)現(xiàn)了應(yīng)用協(xié)議與消息之間無(wú)關(guān)性,實(shí)現(xiàn)中心與代理開(kāi)發(fā)語(yǔ)言的無(wú) 關(guān)性,提高中心與代理之間的互操作能力,增強(qiáng)中心與分布式代理通信的安全性、 可靠性,有效、快捷解決中心與代理架構(gòu)中的通信與協(xié)同工作問(wèn)題。
權(quán)利要求
1. 一種分布式多協(xié)議代理與中心系統(tǒng)消息交換的方法,其特征在于,包括如下步驟步驟一,由中心與若干個(gè)代理構(gòu)成二級(jí)管理模型,中心分布在骨干節(jié)點(diǎn),代理包括多種協(xié)議類型的代理,代理分布在網(wǎng)絡(luò)各節(jié)點(diǎn)中采集信息,負(fù)責(zé)采集、打包對(duì)應(yīng)協(xié)議的數(shù)據(jù),代理將協(xié)議采集數(shù)據(jù)通過(guò)網(wǎng)絡(luò)傳輸上報(bào)給中心,中心進(jìn)行數(shù)據(jù)處理;步驟二,中心對(duì)各個(gè)代理進(jìn)行初始化,初始化代理中的配置文件與過(guò)濾規(guī)則文件,配置文件與過(guò)濾規(guī)則文件均為XML文件;步驟三,啟動(dòng)代理,代理讀取初始的配置文件與過(guò)濾規(guī)則文件,配置文件與過(guò)濾規(guī)則文件都遵循統(tǒng)一的消息交換格式,代理向中心發(fā)送同步信息XML文件與心跳信息XML文件;步驟四,中心根據(jù)XML解析框架,通過(guò)過(guò)濾規(guī)則文件解析XML格式文件,根據(jù)代理發(fā)送的XML文件中ID標(biāo)識(shí)與代理的IP地址這兩個(gè)條件進(jìn)行代理驗(yàn)證,驗(yàn)證接入代理的合法性,如果驗(yàn)證通過(guò),中心允許代理接入,進(jìn)入步驟五,中心將該代理狀態(tài)設(shè)置為在線,中心根據(jù)同步信息XML文件執(zhí)行與代理的同步機(jī)制,如果驗(yàn)證不能通過(guò),中心拒絕代理連接,所有步驟結(jié)束;步驟五,如果中心允許代理接入,代理開(kāi)始采集協(xié)議數(shù)據(jù),對(duì)采集到的協(xié)議數(shù)據(jù)進(jìn)行分析,根據(jù)協(xié)議類型及代理ID標(biāo)識(shí)將數(shù)據(jù)用XML格式文件打包,并將文件上報(bào)給中心,中心接收、解析XML文件數(shù)據(jù),根據(jù)代理ID標(biāo)識(shí)分析數(shù)據(jù)來(lái)源的代理,中心將該代理的狀態(tài)設(shè)置為上報(bào)數(shù)據(jù)狀態(tài),并將數(shù)據(jù)存入中心中的數(shù)據(jù)庫(kù);步驟六,中心編輯過(guò)濾規(guī)則文件,并發(fā)送給代理以使新的過(guò)濾規(guī)則文件生效;步驟七,中心向代理發(fā)送配置文件,中心解析代理發(fā)送的同步信息XML文件信息,其中包含代理配置文件的時(shí)間戳信息,如果該時(shí)間戳信息與中心存儲(chǔ)的代理配置文件時(shí)間戳信息一致,表明中心中的配置文件與代理中的配置文件一致,則中心讀取本地相應(yīng)代理配置文件,編輯后下傳輸給代理;如果中心與代理中的配置文件不一致,則中心生成XML格式的查詢文件,并下發(fā)給代理,代理上報(bào)配置文件,中心編輯配置文件,下發(fā)給代理,代理重新啟動(dòng)使配置文件生效;步驟八,代理獲取配置文件中關(guān)于代理給中心上報(bào)數(shù)據(jù)的間隔時(shí)間信息,如果在間隔時(shí)間內(nèi)沒(méi)有向中心上報(bào)數(shù)據(jù),則代理向中心發(fā)送心跳信息XML文件,中心在設(shè)定時(shí)間內(nèi)未收到代理心跳信息XML文件或上報(bào)的協(xié)議數(shù)據(jù)XML文件,則中心端將該代理狀態(tài)設(shè)置為離線。
2、 根據(jù)權(quán)利要求1所述的分布式多協(xié)議代理與中心系統(tǒng)消息交換的方法, 其特征是,步驟二中,所述中心對(duì)各個(gè)代理進(jìn)行初始化,具體為中心注冊(cè)維護(hù) 代理ID標(biāo)識(shí)庫(kù),中心啟動(dòng)后讀取代理信息,如果有新的協(xié)議代理需要部署到網(wǎng) 絡(luò)中采集協(xié)議數(shù)據(jù),由中心端給代理分配唯一的ID標(biāo)識(shí)、初始化配置文件、過(guò) 濾規(guī)則文件,中心記錄代理ID標(biāo)識(shí),保存代理配置文件與過(guò)濾規(guī)則文件。
3、 根據(jù)權(quán)利要求1所述的分布式多協(xié)議代理與中心系統(tǒng)消息交換的方法, 其特征是,所述的中心,包括主用服務(wù)器和若干備用服務(wù)器,在代理配置文件 中包括一個(gè)主用服務(wù)器信息和多個(gè)備用服務(wù)器信息,服務(wù)器信息包括服務(wù)器域 名、IP地址、通訊端口及描述、是否為主用服務(wù)器信息等,代理首先向主用中 心服務(wù)器發(fā)送同步信息XML文件與心跳信息XML文件,如果代理連續(xù)三次連接不 上主用中心服務(wù)器,則選擇連接其它備用中心服務(wù)器,如果連接成功,則將其設(shè) 置為主用中心服務(wù)器。
4、 根據(jù)權(quán)利要求1所述的分布式多協(xié)議代理與中心系統(tǒng)消息交換的方法, 其特征是,所述代理配置文件,包括多協(xié)議代理的標(biāo)識(shí)、采集端口、心跳時(shí)間和采樣保持窗口等內(nèi)容,其中多協(xié)議代理的標(biāo)識(shí)作為中心對(duì)各個(gè)數(shù)據(jù)采集代理進(jìn)行識(shí)別的條件之一,特別 是用以限定偽裝的數(shù)據(jù)采集代理對(duì)中心發(fā)起攻擊;采集端口指定了代理需要監(jiān)聽(tīng)的網(wǎng)絡(luò)協(xié)議端口;心跳時(shí)間用以保持代理和中心之間連接;采樣保持窗口用以設(shè)定一組數(shù)據(jù)在代理中的緩沖時(shí)間。
5、 根據(jù)權(quán)利要求1所述的分布式多協(xié)議代理與中心系統(tǒng)消息交換的方法, 其特征是,所述過(guò)濾規(guī)則文件,包括網(wǎng)絡(luò)數(shù)據(jù)包的特征量,包括源或目的IP, 源或目的端口。
6、 根據(jù)權(quán)利要求1所述的分布式多協(xié)議代理與中心系統(tǒng)消息交換的方法,其特征是,步驟三中,所述同步信息XML文件,包括代理配置文件和過(guò)濾規(guī)則文 件的時(shí)間戳信息,實(shí)現(xiàn)代理和中心同步機(jī)制,其只在代理啟動(dòng)并與中心連接后發(fā) 送。
7、 根據(jù)權(quán)利要求1所述的分布式多協(xié)議代理與中心系統(tǒng)消息交換的方法, 其特征是,步驟三中,所述的消息交換格式,具體為采用XMLDTD定義,以面 向?qū)ο蟮姆绞矫枋鲋行呐c代理之間傳遞消息的數(shù)據(jù)模型,用XML文件作為消息交 換格式文件,實(shí)現(xiàn)多協(xié)議格式信息到統(tǒng)一消息格式的映射,另外還預(yù)留了擴(kuò)展框 架,可以擴(kuò)展定義交換消息。
8、 根據(jù)權(quán)利要求1所述的分布式多協(xié)議代理與中心系統(tǒng)消息交換的方法, 其特征是,步驟四中,所述的代理驗(yàn)證,具體為中心根據(jù)代理發(fā)送的XML文件 中ID標(biāo)識(shí)與代理的IP地址驗(yàn)證代理的合法性,如果代理ID標(biāo)識(shí)在中心ID標(biāo)識(shí) 庫(kù)中存在,且代理通信的IP地址與中心已有該ID標(biāo)識(shí)代理配置文件中IP地址 信息一致,則驗(yàn)證通過(guò)。
9、 根據(jù)權(quán)利要求1所述的分布式多協(xié)議代理與中心系統(tǒng)消息交換的方法, 其特征是,步驟四中,所述的同步機(jī)制,具體為中心根據(jù)同步信息XML文件的 內(nèi)容判斷代理的配置文件以及協(xié)議過(guò)濾規(guī)則文件是否失效,如果配置文件或協(xié)議 過(guò)濾規(guī)則文件失效,則中心通過(guò)該已建立起來(lái)的通信連接,將中心默認(rèn)的配置文 件或協(xié)議過(guò)濾規(guī)則文件下發(fā)給代理,如果配置文件未失效,則中心不發(fā)送信息, 如果代理收到的是新的配置文件或協(xié)議過(guò)濾規(guī)則文件,則代理將新接收到的文件 替換掉原有的文件,并重新啟動(dòng)使其生效。
10、 根據(jù)權(quán)利要求1所述的分布式多協(xié)議代理與中心系統(tǒng)消息交換的方法, 其特征是,步驟七中,所述査詢文件,包括配置査詢文件和協(xié)議過(guò)濾規(guī)則文件, 這兩個(gè)文件分別代表了兩個(gè)操作對(duì)數(shù)據(jù)采集代理模塊的配置進(jìn)行査詢和對(duì)數(shù)據(jù) 采集代理模塊的協(xié)議過(guò)濾規(guī)則進(jìn)行査詢,具體實(shí)施中,這兩個(gè)查詢操作合并在一個(gè)文件中進(jìn)行表述。
全文摘要
一種計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域的分布式多協(xié)議代理與中心系統(tǒng)消息交換的方法,本發(fā)明中,構(gòu)建了中心與代理的管理模型,代理向中心發(fā)送消息交換格式XML文件,其中包含中心分配給代理的唯一ID標(biāo)識(shí),中心驗(yàn)證代理合法后,代理與中心通過(guò)XML文件交換消息,中心通過(guò)代理發(fā)送的解析XML文件實(shí)時(shí)監(jiān)測(cè)代理的狀態(tài),并后期處理協(xié)議采集數(shù)據(jù),中心通過(guò)同步機(jī)制向代理發(fā)送配置文件、管理文件實(shí)現(xiàn)對(duì)代理的動(dòng)態(tài)管理。本發(fā)明實(shí)現(xiàn)了應(yīng)用協(xié)議與消息之間無(wú)關(guān)性,實(shí)現(xiàn)中心與代理開(kāi)發(fā)語(yǔ)言的無(wú)關(guān)性,提高中心與代理之間的互操作能力,增強(qiáng)中心與分布式代理通信的安全性、可靠性,有效、快捷解決中心與代理架構(gòu)中的通信與協(xié)同工作問(wèn)題。
文檔編號(hào)H04L29/06GK101282333SQ20081003782
公開(kāi)日2008年10月8日 申請(qǐng)日期2008年5月22日 優(yōu)先權(quán)日2008年5月22日
發(fā)明者周志洪, 張?jiān)聡?guó), 李建華, 蔣興浩, 偉 蔡 申請(qǐng)人:上海交通大學(xué)