專利名稱:基于二級(jí)會(huì)話查詢功能的過濾分流裝置及其方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)據(jù)包的過濾分流,尤其涉及一種基于會(huì)話業(yè)務(wù)的FPGA架構(gòu)過濾分流裝置及其方法。
背景技術(shù):
最近幾年,我國(guó)在骨干網(wǎng)和城域網(wǎng)方面的建設(shè)發(fā)展速度很快,幾乎所有區(qū)域骨干網(wǎng)的帶寬都達(dá)到了 IOG (Gigabit,千兆位),部分骨干網(wǎng)的帶寬已經(jīng)升級(jí)或正在升級(jí)到40G甚至100G。同時(shí),我國(guó)在互聯(lián)網(wǎng)特別是移動(dòng)互聯(lián)網(wǎng)方面的建設(shè)也有明顯的加速趨勢(shì),移動(dòng)互聯(lián)網(wǎng)的Gn、Gi等接口帶寬也已經(jīng)或正在從GE (Gigabit Ethernet,千兆以太網(wǎng))向IOGE升級(jí)。
網(wǎng)絡(luò)帶寬的高速增長(zhǎng)也帶動(dòng)了數(shù)據(jù)處理業(yè)務(wù)需求的增長(zhǎng),特別地,對(duì)IP(International Protocol,網(wǎng)際協(xié)議)數(shù)據(jù)包會(huì)話業(yè)務(wù)的精確識(shí)別和過濾功能亦成為其中之關(guān)鍵需求。目前許多相關(guān)業(yè)務(wù),包括防火墻、虛擬專用網(wǎng)絡(luò)(VPN,Virtual PrivateNetwork)、網(wǎng)絡(luò)安全等,均要求所采用的過濾分流設(shè)備具備對(duì)會(huì)話業(yè)務(wù)的處理能力。
現(xiàn)有過濾分流設(shè)備的核心架構(gòu)主要以NPU (Network Processing Unit,網(wǎng)絡(luò)處理器)和FPGA (Field-Programmable Gate Array,現(xiàn)場(chǎng)可編程邏輯門陣列)兩類為主,NPU架構(gòu)的優(yōu)點(diǎn)在于其配置的靈活性,而FPGA架構(gòu)的優(yōu)點(diǎn)在于其強(qiáng)大的并行處理能力帶來的性能優(yōu)勢(shì)。
無論是在NPU架構(gòu)還是FPGA架構(gòu)下,均需要通過建立和查詢會(huì)話表來完成對(duì)會(huì)話業(yè)務(wù)的識(shí)別、過濾、轉(zhuǎn)發(fā)等處理。會(huì)話表的建立、查詢等過程非常復(fù)雜,且對(duì)會(huì)話表項(xiàng)的數(shù)量和會(huì)話查詢效率等方面均有很高的要求。通常情況下,會(huì)話表存放在過濾分流設(shè)備的高速內(nèi)存單元中,如何在有限的存儲(chǔ)空間中存放數(shù)量龐大的會(huì)話表項(xiàng),并且使得查詢效率盡可能高,是會(huì)話表結(jié)構(gòu)設(shè)計(jì)中面臨的主要問題。
現(xiàn)有技術(shù)中常見的會(huì)話表通常包括會(huì)話規(guī)則索引和會(huì)話規(guī)則表項(xiàng)兩個(gè)部分,會(huì)話規(guī)則索引一般由從數(shù)據(jù)包中提取的會(huì)話特征經(jīng)過特定運(yùn)算生成,用于在查詢過程中對(duì)會(huì)話規(guī)則表項(xiàng)的快速定位。常用的運(yùn)算方法包括Hash (哈希,也稱為散列)運(yùn)算等算法。會(huì)話規(guī)則表項(xiàng)的內(nèi)容一般包括數(shù)據(jù)包的完整會(huì)話特征,例如五元組信息(源IP、目的IP、源端口號(hào)、目的端口號(hào)、協(xié)議類型)等,用于對(duì)會(huì)話規(guī)則表項(xiàng)的匹配檢查。根據(jù)實(shí)際業(yè)務(wù)需求的不同,會(huì)話規(guī)則表項(xiàng)存放的內(nèi)容也會(huì)有所不同,比如還可以包括統(tǒng)計(jì)信息、控制信息等內(nèi)容。
在NPU架構(gòu)下的會(huì)話表結(jié)構(gòu)設(shè)計(jì)中,考慮到NPU對(duì)高速內(nèi)存空間的申請(qǐng)、使用和釋放的靈活性,會(huì)話規(guī)則表項(xiàng)一般會(huì)以鏈表的方式存放在高速內(nèi)存中,在查詢過程中NPU對(duì)會(huì)話規(guī)則表項(xiàng)依次讀取并逐個(gè)進(jìn)行匹配檢查,因此在會(huì)話規(guī)則表項(xiàng)中通常還包括下一級(jí)鏈表地址。
現(xiàn)有技術(shù)中常見的NPU架構(gòu)會(huì)話表設(shè)計(jì)如圖3所示。
在FPGA架構(gòu)下的會(huì)話表結(jié)構(gòu)設(shè)計(jì)中,為了充分利用FPGA在并行處理能力方面的優(yōu)勢(shì),通常會(huì)將每個(gè)會(huì)話規(guī)則索引對(duì)應(yīng)的會(huì)話規(guī)則表項(xiàng)數(shù)量設(shè)置為相同值,在查詢過程中,F(xiàn)PGA將同時(shí)讀取會(huì)話規(guī)則索引所對(duì)應(yīng)的多個(gè)會(huì)話規(guī)則表項(xiàng),并且獨(dú)立地對(duì)這些會(huì)話規(guī)則表項(xiàng)完成匹配檢查,這樣可以減少對(duì)高速內(nèi)存的讀寫次數(shù),提高會(huì)話查詢效率。但另一方面,每個(gè)會(huì)話規(guī)則索引所對(duì)應(yīng)的會(huì)話規(guī)則表項(xiàng)并非全部有效,存在一部分會(huì)話規(guī)則表項(xiàng)為空的情況,因此會(huì)浪費(fèi)一些存儲(chǔ)資源。
現(xiàn)有技術(shù)中常見的FPGA架構(gòu)會(huì)話表設(shè)計(jì)如圖4所示。
申請(qǐng)?zhí)?00910137700.4的中國(guó)發(fā)明專利,申請(qǐng)公開一種基于流表的數(shù)據(jù)包處理方法、裝置和網(wǎng)絡(luò)系統(tǒng),采用對(duì)會(huì)話特征進(jìn)行二次哈希運(yùn)算,并建立臨時(shí)流表且以二次哈希值來完成匹配檢查的方法來對(duì)數(shù)據(jù)包進(jìn)行處理,減少CPU的資源消耗和節(jié)省存儲(chǔ)空間。
在對(duì)現(xiàn)有的基于FPGA架構(gòu)的過濾分流裝置的研究和實(shí)現(xiàn)中,本發(fā)明的發(fā)明人發(fā)現(xiàn),會(huì)話表結(jié)構(gòu)設(shè)計(jì)同樣面臨如何節(jié)省內(nèi)存空間、提高會(huì)話查詢效率的問題。由于在不同的部署環(huán)境下,業(yè)務(wù)需求和網(wǎng)絡(luò)特性各不相同,即使在接入數(shù)據(jù)流量較大的情況下,依舊會(huì)出現(xiàn)相當(dāng)比例的會(huì)話規(guī)則索引所對(duì)應(yīng)的有效會(huì)話規(guī)則表項(xiàng)數(shù)量較少,甚至不存在有效會(huì)話規(guī)則表項(xiàng)的現(xiàn)象,但受限于會(huì)話表結(jié)構(gòu)設(shè)計(jì),這部分空置的會(huì)話規(guī)則表項(xiàng)依舊在高速內(nèi)存中占用了大量的存儲(chǔ)空間,導(dǎo)致較大的存儲(chǔ)資源浪費(fèi)。發(fā)明內(nèi)容
本發(fā)明解決的問題是,在寬帶業(yè)務(wù)和安全保障業(yè)務(wù)復(fù)雜化、精細(xì)化的大趨勢(shì)下,提供一種基于二級(jí)會(huì)話查詢功能的過濾分流裝置,該裝置能滿足對(duì)會(huì)話業(yè)務(wù)的精確識(shí)別和過濾需求。其所采用的二級(jí)會(huì)話查詢方法亦能提高存儲(chǔ)空間的使用效率,解決現(xiàn)有技術(shù)中存在的存儲(chǔ)資源浪費(fèi)問題。
為解決上述問題,本發(fā)明提供一種支持二級(jí)會(huì)話查詢功能的過濾分流裝置,包括: I管理單元,向用戶提供界面以制定業(yè)務(wù)對(duì)應(yīng)的會(huì)話規(guī)則策略,完成會(huì)話表的初始化,輸出所述會(huì)話規(guī)則策略至?xí)捯?guī)則策略庫單元;所述會(huì)話規(guī)則策略包括一級(jí)會(huì)話規(guī)則策略和二級(jí)會(huì)話規(guī)則策略。管理單元根據(jù)會(huì)話規(guī)則策略自動(dòng)生成一級(jí)會(huì)話規(guī)則策略和二級(jí)會(huì)話規(guī)則策略。
2會(huì)話規(guī)則策略庫單元,包括一級(jí)會(huì)話規(guī)則策略庫單元和二級(jí)會(huì)話規(guī)則策略庫單元,根據(jù)所述會(huì)話規(guī)則策略形成一級(jí)會(huì)話規(guī)則策略庫單元和二級(jí)會(huì)話規(guī)則策略庫單元; 3—級(jí)會(huì)話規(guī)則策略庫單元,將所述一級(jí)會(huì)話規(guī)則策略導(dǎo)入一級(jí)會(huì)話表; 4二級(jí)會(huì)話規(guī)則策略庫單元,將所述二級(jí)會(huì)話規(guī)則策略導(dǎo)入二級(jí)會(huì)話表; 5特征提取單元,接收數(shù)據(jù)包,提取所述數(shù)據(jù)包中的會(huì)話特征,對(duì)所述會(huì)話特征進(jìn)行Hash運(yùn)算,并生成會(huì)話查詢索引,輸出所述會(huì)話特征和會(huì)話查詢索引至查詢匹配單元; 6查詢匹配單元,使用輸入的會(huì)話查詢索引在會(huì)話表中進(jìn)行查詢,獲得會(huì)話查詢結(jié)果;使用輸入的會(huì)話特征對(duì)會(huì)話查詢結(jié)果進(jìn)行匹配檢查,并根據(jù)會(huì)話查詢結(jié)果和匹配檢查結(jié)果生成轉(zhuǎn)發(fā)行為,將轉(zhuǎn)發(fā)行為輸出至轉(zhuǎn)發(fā)單元; 7轉(zhuǎn)發(fā)單元,使用輸入的轉(zhuǎn)發(fā)行為對(duì)數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā),根據(jù)轉(zhuǎn)發(fā)行為將數(shù)據(jù)包丟棄或者發(fā)送至用戶;所述會(huì)話表包括一級(jí)會(huì)話表和二級(jí)會(huì)話表。
所述一級(jí)會(huì)話規(guī)則策略包括一級(jí)會(huì)話規(guī)則索引和一級(jí)會(huì)話查詢結(jié)果。
所述一級(jí)會(huì)話規(guī)則索引,是在制定會(huì)話規(guī)則策略時(shí),使用會(huì)話特征,即五元組信息(源IP、目的IP、源端口號(hào)、目的端口號(hào)、協(xié)議類型),經(jīng)過Hash運(yùn)算得到的結(jié)果。
所述一級(jí)會(huì)話查詢結(jié)果包括一級(jí)會(huì)話匹配標(biāo)志和二級(jí)會(huì)話查詢索引。
所述二級(jí)會(huì)話規(guī)則策略包括二級(jí)會(huì)話規(guī)則索引和二級(jí)會(huì)話查詢結(jié)果。
所述二級(jí)會(huì)話查詢結(jié)果,包括一個(gè)或多個(gè)二級(jí)會(huì)話規(guī)則表項(xiàng)。
所述二級(jí)會(huì)話規(guī)則表項(xiàng),包括會(huì)話規(guī)則特征和規(guī)則轉(zhuǎn)發(fā)行為。
所述會(huì)話查詢結(jié)果,即指二級(jí)會(huì)話查詢結(jié)果。
所述轉(zhuǎn)發(fā)行為包括默認(rèn)轉(zhuǎn)發(fā)行為和規(guī)則轉(zhuǎn)發(fā)行為。
所述默認(rèn)轉(zhuǎn)發(fā)行為和規(guī)則轉(zhuǎn)發(fā)行為,包括丟棄、向指定的一個(gè)端口轉(zhuǎn)發(fā)或向指定的多個(gè)端口轉(zhuǎn)發(fā)。
本發(fā)明還提供一種支持二級(jí)會(huì)話查詢功能的過濾分流方法,包括如下步驟:初始化會(huì)話表;制定各業(yè)務(wù)對(duì)應(yīng)的會(huì)話規(guī)則策略;根據(jù)所述會(huì)話規(guī)則策略形成會(huì)話規(guī)則策略庫單元,并將會(huì)話規(guī)則策略導(dǎo)入會(huì)話表;接收數(shù)據(jù)包,從所述數(shù)據(jù)包中提取會(huì)話特征,并根據(jù)該會(huì)話特征生成會(huì)話查詢索引;使用會(huì)話查詢索引在所述一級(jí)會(huì)話表中進(jìn)行查詢,獲得一級(jí)會(huì)話查詢結(jié)果;對(duì)一級(jí)會(huì)話查詢結(jié)果進(jìn)行匹配檢查;使用二級(jí)會(huì)話查詢索引在所述二級(jí)會(huì)話表中進(jìn)行查詢,獲得會(huì)話查詢結(jié)果;對(duì)會(huì)話查詢結(jié)果進(jìn)行匹配檢查,并生成轉(zhuǎn)發(fā)行為;將數(shù)據(jù)包根據(jù)轉(zhuǎn)發(fā)行為進(jìn)行轉(zhuǎn)發(fā)。
所述查詢匹配單元在所述會(huì)話表中進(jìn)行查詢時(shí),首先,在所述一級(jí)會(huì)話表中進(jìn)行查詢,獲得一級(jí)會(huì)話查詢結(jié)果。對(duì)一級(jí)會(huì)話查詢結(jié)果中的一級(jí)會(huì)話匹配標(biāo)志進(jìn)行匹配檢查;若匹配檢查未通過,則結(jié)束本次查詢,將轉(zhuǎn)發(fā)行為設(shè)置為默認(rèn)轉(zhuǎn)發(fā)行為并輸出至轉(zhuǎn)發(fā)單元;若匹配檢查通過,則使用在一級(jí)會(huì)話查詢結(jié)果中提取的二級(jí)會(huì)話查詢索引繼續(xù)在二級(jí)會(huì)話表中進(jìn)行查詢,獲得會(huì)話查詢結(jié)果。之后,對(duì)會(huì)話查詢結(jié)果中的所有二級(jí)會(huì)話規(guī)則表項(xiàng)進(jìn)行匹配檢查,將輸入的會(huì)話特征逐一與二級(jí)會(huì)話規(guī)則表項(xiàng)中的會(huì)話規(guī)則特征進(jìn)行比較,兩者相同表明匹配,反之亦然。若所有二級(jí)會(huì)話規(guī)則表項(xiàng)的匹配檢查均未通過,則將轉(zhuǎn)發(fā)行為設(shè)置為默認(rèn)轉(zhuǎn)發(fā)行為,并輸出至轉(zhuǎn)發(fā)單元。若其中一個(gè)二級(jí)會(huì)話規(guī)則表項(xiàng)匹配通過,則提取該二級(jí)會(huì)話規(guī)則表項(xiàng)中的規(guī)則轉(zhuǎn)發(fā)行為,并將轉(zhuǎn)發(fā)行為設(shè)置為所提取的規(guī)則轉(zhuǎn)發(fā)行為,然后輸出至轉(zhuǎn)發(fā)單元。
本發(fā)明在所述二級(jí)會(huì)話查詢方法和裝置中采用的會(huì)話表包括:一級(jí)會(huì)話表和二級(jí)會(huì)話表。
一級(jí)會(huì)話表由一級(jí)會(huì)話表子單元構(gòu)成,一級(jí)會(huì)話表子單元包括:一級(jí)會(huì)話規(guī)則索弓丨,用于在一級(jí)會(huì)話表查詢時(shí)對(duì)一級(jí)會(huì)話規(guī)則表項(xiàng)快速定位,是在制定會(huì)話規(guī)則策略時(shí),使用會(huì)話特征,即五元組信息(源IP、目的IP、源端口號(hào)、目的端口號(hào)、協(xié)議類型),經(jīng)過Hash運(yùn)算得到的結(jié)果。
一級(jí)會(huì)話規(guī)則表項(xiàng),用于一級(jí)會(huì)話匹配檢查和提取二級(jí)會(huì)話表查詢所需的查詢索引值,包括一級(jí)會(huì)話匹配標(biāo)志和二級(jí)會(huì)話查詢索引。在本發(fā)明中,一級(jí)會(huì)話規(guī)則表項(xiàng)可以包括,但不限于一級(jí)會(huì)話匹配標(biāo)志和二級(jí)會(huì)話查詢索引。
一級(jí)會(huì)話匹配標(biāo)志:用于匹配檢查,一般值為I標(biāo)識(shí)匹配有效,值為O標(biāo)識(shí)匹配無效。
二級(jí)會(huì)話查詢索引:在導(dǎo)入會(huì)話規(guī)則策略時(shí),根據(jù)高速內(nèi)存的存儲(chǔ)空間使用情況,自動(dòng)分配未被占用存儲(chǔ)空間,并以所分配的存儲(chǔ)空間地址作為二級(jí)會(huì)話查詢索引值。
二級(jí)會(huì)話表由二級(jí)會(huì)話表子單元構(gòu)成,二級(jí)會(huì)話表子單元包括: 二級(jí)會(huì)話規(guī)則索引,用于在二級(jí)會(huì)話表查詢時(shí)對(duì)二級(jí)會(huì)話規(guī)則表項(xiàng)快速定位,是在制定會(huì)話規(guī)則策略時(shí),根據(jù)高速內(nèi)存單元的存儲(chǔ)空間使用情況靈活分配所得,與一級(jí)會(huì)話表子單元中的二級(jí)會(huì)話查詢索引一一對(duì)應(yīng)。
二級(jí)會(huì)話規(guī)則表項(xiàng),用于二級(jí)會(huì)話匹配檢查和提取規(guī)則轉(zhuǎn)發(fā)行為,包括會(huì)話規(guī)則特征和規(guī)則轉(zhuǎn)發(fā)行為。在本發(fā)明中,二級(jí)會(huì)話規(guī)則表項(xiàng)可以包括,但不限于會(huì)話規(guī)則特征和規(guī)則轉(zhuǎn)發(fā)行為。
會(huì)話規(guī)則特征:會(huì)話規(guī)則策略所對(duì)應(yīng)的五元組信息,包括源IP、目的IP、源端口、目的端口、協(xié)議類型 規(guī)則轉(zhuǎn)發(fā)行為:匹配本會(huì)話規(guī)則策略的數(shù)據(jù)包所對(duì)應(yīng)的轉(zhuǎn)發(fā)行為。
在初始化會(huì)話表時(shí),在高速內(nèi)存中為一級(jí)會(huì)話表中的所有一級(jí)會(huì)話規(guī)則表項(xiàng)分配存儲(chǔ)空間,且將所有一級(jí)會(huì)話規(guī)則表項(xiàng)中的一級(jí)會(huì)話匹配標(biāo)志設(shè)置為無效。但是,暫時(shí)不為二級(jí)會(huì)話表項(xiàng)分配存儲(chǔ)空間。
在將會(huì)話規(guī)則策略導(dǎo)入會(huì)話表的過程中,根據(jù)一級(jí)會(huì)話規(guī)則策略更新一級(jí)會(huì)話規(guī)則表項(xiàng),包括修改所述一級(jí)會(huì)話規(guī)則表項(xiàng)中的一級(jí)會(huì)話匹配標(biāo)志和二級(jí)會(huì)話查詢索引。同時(shí),根據(jù)二級(jí)會(huì)話規(guī)則策略添加二級(jí)會(huì)話規(guī)則索引和二級(jí)會(huì)話規(guī)則表項(xiàng)。特別地,在所述導(dǎo)入會(huì)話規(guī)則策略的過程中,只有在一級(jí)會(huì)話匹配標(biāo)志有效時(shí),才為其所在一級(jí)會(huì)話規(guī)則表項(xiàng)對(duì)應(yīng)的二級(jí)會(huì)話規(guī)則表項(xiàng)分配存儲(chǔ)空間,并完成二級(jí)會(huì)話規(guī)則策略的導(dǎo)入,否則不分配存儲(chǔ)空間。這樣可以大幅節(jié)省高速內(nèi)存的存儲(chǔ)空間。
與現(xiàn)有技術(shù)相比,本發(fā)明提供一種支持二級(jí)會(huì)話查詢功能的過濾分流裝置和方法,能有效地對(duì)屬于同一會(huì)話業(yè)務(wù)的數(shù)據(jù)包進(jìn)行精確識(shí)別和過濾,并能夠?qū)儆谕粫?huì)話業(yè)務(wù)的所有數(shù)據(jù)包按相同的轉(zhuǎn)發(fā)行為進(jìn)行轉(zhuǎn)發(fā),有效解決了后端用戶基于會(huì)話進(jìn)行數(shù)據(jù)深度分析的需求,極大方便了后端用戶的業(yè)務(wù)處理。
同時(shí),本發(fā)明提供的二級(jí)會(huì)話查詢方法,能夠?yàn)槿萘肯鄬?duì)有限的高速內(nèi)存單元節(jié)省大量存儲(chǔ)空間,因此可以存放更多的會(huì)話規(guī)則表項(xiàng),并且支持快速、可控的會(huì)話查詢過程。經(jīng)統(tǒng)計(jì),在每秒千萬級(jí)會(huì)話數(shù)量的網(wǎng)絡(luò)環(huán)境中,采用常見的會(huì)話表結(jié)構(gòu)設(shè)計(jì)時(shí),往往會(huì)出現(xiàn)50%以上的會(huì)話規(guī)則索引對(duì)應(yīng)的會(huì)話規(guī)則表項(xiàng)為空的現(xiàn)象,但這部分空置的會(huì)話規(guī)則表項(xiàng)仍舊會(huì)占用高速內(nèi)存的存儲(chǔ)空間。而采用本發(fā)明的會(huì)話表結(jié)構(gòu)設(shè)計(jì)后,在一級(jí)會(huì)話表中已經(jīng)對(duì)這些會(huì)話規(guī)則索引作了標(biāo)識(shí),因此在二級(jí)會(huì)話表中無需再為這些空置的會(huì)話規(guī)則表項(xiàng)分配額外的存儲(chǔ)空間。考慮到實(shí)際部署環(huán)境下不同的網(wǎng)絡(luò)特性,以及一級(jí)會(huì)話表所需占用的存儲(chǔ)空間,實(shí)際可節(jié)省的存儲(chǔ)空間范圍大約在30%~50%左右。這些節(jié)省下來的存儲(chǔ)空間,可以用于優(yōu)化會(huì)話表結(jié)構(gòu)以及增加會(huì)話規(guī)則表項(xiàng)數(shù)量。而本方法在設(shè)計(jì)上的靈活性和可擴(kuò)展性亦可以極大滿足日益復(fù)雜的業(yè)務(wù)需求。
圖1是本發(fā)明支持二級(jí)會(huì)話查詢功能的過濾分流裝置的結(jié)構(gòu)圖。
圖2是本發(fā)明支持二級(jí)會(huì)話查詢功能的過濾分流方法的流程圖。
圖3是現(xiàn)有技術(shù)中NPU架構(gòu)會(huì)話表結(jié)構(gòu)示意圖。
圖4是現(xiàn)有技術(shù)中FPGA架構(gòu)會(huì)話表結(jié)構(gòu)示意圖。
圖5是本發(fā)明所述會(huì)話表結(jié)構(gòu)示意圖。
圖6是本發(fā)明實(shí)施例中一級(jí)會(huì)話表和二級(jí)會(huì)話表示意圖。
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明。在下列描述中,不詳細(xì)描述公知的功能和結(jié)構(gòu),因?yàn)樗鼈儠?huì)使本發(fā)明由于不必要的細(xì)節(jié)而混亂。
如圖1所示,本發(fā)明提供一種基于二級(jí)會(huì)話查詢功能的過濾分流裝置。包括:管理單元1、會(huì)話規(guī)則策略庫單元2、一級(jí)會(huì)話規(guī)則策略庫單元3、二級(jí)會(huì)話規(guī)則策略庫單元4、特征提取單元5、查詢匹配單元6、轉(zhuǎn)發(fā)單元7。
管理單元1:向用戶提供界面以制定業(yè)務(wù)對(duì)應(yīng)的會(huì)話規(guī)則策略,完成會(huì)話表的初始化,輸出所述會(huì)話規(guī)則策略至?xí)捯?guī)則策略庫單元2 ; 具體地,管理單元I提供給用戶以良好的讀寫和管理界面,用戶根據(jù)業(yè)務(wù)需求建立不同業(yè)務(wù)對(duì)應(yīng)的會(huì)話規(guī)則策略。管理單元I首先完成會(huì)話表的初始化工作。在會(huì)話規(guī)則策略制定后,管理單元I將用戶建立的會(huì)話規(guī)則策略導(dǎo)入高速內(nèi)存中的會(huì)話規(guī)則策略庫單元2。
特別地,管理單元I將會(huì)話規(guī)則策略拆分為一級(jí)會(huì)話規(guī)則策略和二級(jí)會(huì)話規(guī)則策略,并分別導(dǎo)入高速內(nèi)存中的一級(jí)會(huì)話規(guī)則策略庫單元3和二級(jí)會(huì)話規(guī)則策略庫單元4。
會(huì)話規(guī)則策略庫單元2:在高速內(nèi)存中儲(chǔ)存用戶制定的會(huì)話規(guī)則策略,會(huì)話規(guī)則策略庫單元2包括一級(jí)會(huì)話規(guī)則策略庫單元3和二級(jí)會(huì)話規(guī)則策略庫單元4兩個(gè)部分。
一級(jí)會(huì)話規(guī)則策略庫單元3:將一級(jí)會(huì)話規(guī)則策略導(dǎo)入高速內(nèi)存中,并更新一級(jí)會(huì)話表,修改一級(jí)會(huì)話規(guī)則表項(xiàng)。不同的一級(jí)會(huì)話規(guī)則策略被分配在不同的內(nèi)存空間,形成相互獨(dú)立的一級(jí)會(huì)話規(guī)則表項(xiàng)。每個(gè)一級(jí)會(huì)話規(guī)則表項(xiàng)包括一級(jí)會(huì)話規(guī)則索引、一級(jí)會(huì)話匹配標(biāo)志和二級(jí)會(huì)話查詢索引。所述一級(jí)會(huì)話規(guī)則索引是在用戶制定的會(huì)話規(guī)則策略中,使用會(huì)話特征,即五元組信息,經(jīng)過Hash運(yùn)算得到的結(jié)果。所述一級(jí)會(huì)話匹配標(biāo)志用于標(biāo)識(shí)當(dāng)前一級(jí)會(huì)話規(guī)則表項(xiàng)是否有效。所述二級(jí)會(huì)話查詢索引用于二級(jí)會(huì)話表查詢。
二級(jí)會(huì)話規(guī)則策略庫單元4:將二級(jí)會(huì)話規(guī)則策略導(dǎo)入高速內(nèi)存中,并更新二級(jí)會(huì)話表,添加二級(jí)會(huì)話規(guī)則索引和二級(jí)會(huì)話規(guī)則表項(xiàng)。不同的二級(jí)會(huì)話規(guī)則策略被分配在不同的內(nèi)存空間,形成相互獨(dú)立的二級(jí)會(huì)話規(guī)則表項(xiàng)。每個(gè)二級(jí)會(huì)話規(guī)則表項(xiàng)包括二級(jí)會(huì)話規(guī)則索引、會(huì)話規(guī)則特征和規(guī)則轉(zhuǎn)發(fā)行為。所述二級(jí)會(huì)話規(guī)則索引是根據(jù)高速內(nèi)存單元的存儲(chǔ)空間使用情況靈活分配的一個(gè)查詢索引值。會(huì)話規(guī)則特征是指符合所述會(huì)話規(guī)則策略的數(shù)據(jù)包所應(yīng)具備的會(huì)話特征,用于匹配檢查。規(guī)則轉(zhuǎn)發(fā)行為是指符合所述會(huì)話規(guī)則策略的數(shù)據(jù)包被丟棄或從指定的一個(gè)或多個(gè)輸出端口發(fā)送的行為。
特征提取單元5:接收原始數(shù)據(jù)包,對(duì)每個(gè)接收的原始數(shù)據(jù)包提取會(huì)話特征,由所述會(huì)話特征生成會(huì)話查詢索引,并將所述會(huì)話特征和會(huì)話查詢索引輸出至查詢匹配單元6。
具體地,由硬件接口芯片完成各種物理接口的數(shù)據(jù)包接入,將網(wǎng)絡(luò)路由器獲取的原始數(shù)據(jù)包輸出至特征提取單元5。特征提取單元5接收原始數(shù)據(jù)包,進(jìn)行會(huì)話特征分析,提取包括源IP、目的IP、源端口號(hào)、目的端口號(hào)、協(xié)議類型的五元組信息,即會(huì)話特征。使用預(yù)先設(shè)定的Hash算法,對(duì)所提取的會(huì)話特征進(jìn)行Hash運(yùn)算得到會(huì)話查詢索引。
查詢匹配單元6:使用輸入的會(huì)話查詢索引在會(huì)話表中進(jìn)行查詢,獲得會(huì)話查詢結(jié)果;使用輸入的會(huì)話特征對(duì)會(huì)話查詢結(jié)果進(jìn)行匹配檢查,并根據(jù)會(huì)話查詢結(jié)果和匹配檢查結(jié)果生成轉(zhuǎn)發(fā)行為,將轉(zhuǎn)發(fā)行為輸出至轉(zhuǎn)發(fā)單元。
首先,將會(huì)話查詢索引在一級(jí)會(huì)話規(guī)則策略庫單元3中逐一與一級(jí)會(huì)話表中的一級(jí)會(huì)話規(guī)則索引進(jìn)行比較,找到與會(huì)話查詢索引相同的一級(jí)會(huì)話規(guī)則索引,并將其對(duì)應(yīng)的一級(jí)會(huì)話規(guī)則表項(xiàng)作為一級(jí)會(huì)話查詢結(jié)果。提取所述一級(jí)會(huì)話規(guī)則表項(xiàng)的一級(jí)會(huì)話匹配標(biāo)志和二級(jí)會(huì)話查詢索引。對(duì)所述一級(jí)會(huì)話規(guī)則表項(xiàng)進(jìn)行匹配檢查,若所述一級(jí)會(huì)話匹配標(biāo)志的值為無效,則將轉(zhuǎn)發(fā)行為設(shè)置為默認(rèn)轉(zhuǎn)發(fā)行為并輸出至轉(zhuǎn)發(fā)單元,結(jié)束本次查詢。
若所述一級(jí)會(huì)話匹配標(biāo)志的值為有效,則繼續(xù)本次查詢。使用所提取的二級(jí)會(huì)話查詢索引在二級(jí)會(huì)話表中進(jìn)行查詢,將所述二級(jí)會(huì)話查詢索引逐一與二級(jí)會(huì)話表中的二級(jí)會(huì)話規(guī)則索引進(jìn)行比較,找到與所述二級(jí)會(huì)話查詢索引相同的二級(jí)會(huì)話規(guī)則索引,并提取其對(duì)應(yīng)的所有二級(jí)會(huì)話規(guī)則表項(xiàng)作為二級(jí)會(huì)話查詢結(jié)果。提取所述一個(gè)或多個(gè)二級(jí)會(huì)話規(guī)則表項(xiàng)的會(huì)話規(guī)則特征和規(guī)則轉(zhuǎn)發(fā)行為。將輸入的會(huì)話特征逐一與所提取的會(huì)話規(guī)則特征進(jìn)行比較。若所有提取的會(huì)話規(guī)則特征均與輸入的會(huì)話特征不同,則匹配檢查未通過將轉(zhuǎn)發(fā)行為設(shè)置為默認(rèn)轉(zhuǎn)發(fā)行為,并輸出至轉(zhuǎn)發(fā)單元7。若其中一個(gè)會(huì)話規(guī)則特征與輸入的會(huì)話特征相同,則將轉(zhuǎn)發(fā)行為設(shè)為該會(huì)話規(guī)則特征所對(duì)應(yīng)的二級(jí)會(huì)話規(guī)則表項(xiàng)中的規(guī)則轉(zhuǎn)發(fā)行為,并輸出至轉(zhuǎn)發(fā)單元。
轉(zhuǎn)發(fā)單元7:使用輸入的轉(zhuǎn)發(fā)行為對(duì)數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)行為可以是默認(rèn)轉(zhuǎn)發(fā)行為,也可以是規(guī)則轉(zhuǎn)發(fā)行為,默認(rèn)轉(zhuǎn)發(fā)行為和規(guī)則轉(zhuǎn)發(fā)行為均可以設(shè)置為丟棄、向指定的一個(gè)端口轉(zhuǎn)發(fā)或向指定的多個(gè)端口轉(zhuǎn)發(fā)。
下面結(jié)合圖1對(duì)支持二級(jí)會(huì)話查詢功能的過濾分流裝置作示例性說明。
本過濾分流裝置為用戶提供一個(gè)管理網(wǎng)口,并為用戶分配一個(gè)管理帳號(hào),用戶使用管理帳號(hào)通過網(wǎng)絡(luò)SSH (Secure Shell)遠(yuǎn)程登錄進(jìn)入管理單元1,管理單元I向用戶提供讀寫和管理界面。進(jìn)入管理單元I后,用戶擁有相應(yīng)的權(quán)限,包括配置輸入端口的參數(shù),如CRC (Cyclic Redundancy Check,循環(huán)冗余校驗(yàn))、擾碼等參數(shù);查看輸入輸出端口的狀態(tài)和流量統(tǒng)計(jì)信息;配置會(huì)話規(guī)則策略,添加、刪除、查看會(huì)話規(guī)則。
會(huì)話規(guī)則策略的格式如下所示:
權(quán)利要求
1.一種基于二級(jí)會(huì)話查詢功能的過濾分流裝置,其特征在于,包括如下單元: 管理單元,是向用戶提供界面以制定業(yè)務(wù)對(duì)應(yīng)的會(huì)話規(guī)則策略,完成會(huì)話表的初始化,輸出所述會(huì)話規(guī)則策略至?xí)捯?guī)則策略庫單元; 會(huì)話規(guī)則策略庫單元,是根據(jù)所述會(huì)話規(guī)則策略形成一級(jí)會(huì)話規(guī)則策略單元和二級(jí)會(huì)話規(guī)則策略庫單元; 所述的一級(jí)會(huì)話規(guī)則策略庫單元,是將所述一級(jí)會(huì)話規(guī)則策略導(dǎo)入一級(jí)會(huì)話表; 所述的二級(jí)會(huì)話規(guī)則策略庫單元,是將所述二級(jí)會(huì)話規(guī)則策略導(dǎo)入二級(jí)會(huì)話表; 特征提取單元,是接收數(shù)據(jù)包,提取所述數(shù)據(jù)包中的會(huì)話特征,對(duì)所述會(huì)話特征進(jìn)行Hash運(yùn)算,并生成會(huì)話查詢索引,輸出所述會(huì)話特征和會(huì)話查詢索引至查詢匹配單元; 查詢匹配單元,是使用輸入的會(huì)話查詢索引在會(huì)話表中進(jìn)行查詢,獲得會(huì)話查詢結(jié)果;使用輸入的會(huì)話特征對(duì)會(huì)話查詢結(jié)果進(jìn)行匹配檢查,并根據(jù)會(huì)話查詢結(jié)果和匹配檢查結(jié)果生成轉(zhuǎn)發(fā)行為,將轉(zhuǎn)發(fā)行為輸出至轉(zhuǎn)發(fā)單元; 轉(zhuǎn)發(fā)單元,是使用輸入的轉(zhuǎn)發(fā)行為對(duì)數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā),根據(jù)轉(zhuǎn)發(fā)行為將數(shù)據(jù)包丟棄或者發(fā)送至用戶。
2.根據(jù)權(quán)利要求1所述的過濾分流裝置,其特征在于,所述一級(jí)會(huì)話規(guī)則策略包括一級(jí)會(huì)話規(guī)則索引和一級(jí)會(huì)話查詢結(jié)果;所述一級(jí)會(huì)話查詢結(jié)果包括一級(jí)會(huì)話匹配標(biāo)志和二級(jí)會(huì)話查詢索引。
3.根據(jù)權(quán)利要求2所述的過濾分流裝置,其特征在于,所述二級(jí)會(huì)話規(guī)則策略包括二級(jí)會(huì)話規(guī)則索引和二級(jí)會(huì)話查詢結(jié)果;所述二級(jí)會(huì)話查詢結(jié)果包括一個(gè)或多個(gè)二級(jí)會(huì)話規(guī)則表項(xiàng);所述二級(jí)會(huì)話規(guī)則表項(xiàng)包括會(huì)話規(guī)則特征和規(guī)則轉(zhuǎn)發(fā)行為。
4.一種如權(quán)利要求1所述過濾分流裝置基于二級(jí)會(huì)話查詢的過濾分流方法,其特征在于,包括如下步驟: · 1.初始化會(huì)話表; ·2.制定各業(yè)務(wù)的會(huì)話規(guī)則策略; ·3.根據(jù)所述會(huì)話規(guī)則策略制定會(huì)話規(guī)則策略庫單元,并將會(huì)話規(guī)則策略導(dǎo)入會(huì)話表; ·4.接收數(shù)據(jù)包,提取會(huì)話特征,并生成會(huì)話查詢索引;. 5.使用會(huì)話查詢索引在所述一級(jí)會(huì)話表中進(jìn)行查詢,獲得一級(jí)會(huì)話查詢結(jié)果;. 6.對(duì)一級(jí)會(huì)話查詢結(jié)果進(jìn)行匹配檢查;. 7.使用二級(jí)會(huì)話查詢索引在所述二級(jí)會(huì)話表中進(jìn)行查詢,獲得會(huì)話查詢結(jié)果;.8.對(duì)會(huì)話查詢結(jié)果進(jìn)行匹配檢查,并生成轉(zhuǎn)發(fā)行為;.9.將數(shù)據(jù)包根據(jù)轉(zhuǎn)發(fā)行為進(jìn)行轉(zhuǎn)發(fā)。
5.根據(jù)權(quán)利要求4所述的過濾分流方法,其特征在于,所述查詢匹配單元在所述一級(jí)會(huì)話表中進(jìn)行查詢,獲得一級(jí)會(huì)話查詢結(jié)果,對(duì)一級(jí)會(huì)話查詢結(jié)果進(jìn)行匹配檢查;根據(jù)一級(jí)會(huì)話查詢結(jié)果的匹配檢查結(jié)果決定是否繼續(xù)在二級(jí)會(huì)話表中進(jìn)行查詢。
6.根據(jù)權(quán)利要求5所述的過濾分流方法,其特征在于,所述查詢匹配單元在所述二級(jí)會(huì)話表中進(jìn)行查詢,獲得二級(jí)會(huì)話查詢結(jié)果,對(duì)二級(jí)會(huì)話查詢結(jié)果中的所有二級(jí)會(huì)話規(guī)則表項(xiàng)進(jìn)行匹配檢查,根據(jù)匹配檢查的結(jié)果生成轉(zhuǎn)發(fā)行為。
7.根據(jù)權(quán)利要求4所述的過濾分流方法,其特征在于,所述會(huì)話表包括一級(jí)會(huì)話表和二級(jí)會(huì)話表;所述一級(jí)會(huì)話表包括一級(jí)會(huì)話子單元,所述一級(jí)會(huì)話子單元包括一級(jí)會(huì)話規(guī)則索引、一級(jí)會(huì)話匹配標(biāo)志和二級(jí)會(huì)話查詢索引;所述二級(jí)會(huì)話表包括二級(jí)會(huì)話子單元,所述二級(jí)會(huì)話子單元包括二級(jí)會(huì)話規(guī)則索引、會(huì)話規(guī)則特征、規(guī)則轉(zhuǎn)發(fā)行為。
8.根據(jù)權(quán)利要求4所述的過濾分流方法,其特征在于,在初始化會(huì)話表時(shí),在高速內(nèi)存中為一級(jí)會(huì)話表中的所有一級(jí)會(huì)話規(guī)則表項(xiàng)分配存儲(chǔ)空間,且將所有一級(jí)會(huì)話規(guī)則表項(xiàng)中的一級(jí)會(huì)話匹配標(biāo)志設(shè)置為無效,暫時(shí)不為二級(jí)會(huì)話規(guī)則表項(xiàng)分配存儲(chǔ)空間。
9.根據(jù)權(quán)利要求4所述的過濾分流方法,其特征在于,在將會(huì)話規(guī)則策略導(dǎo)入會(huì)話表的過程中,更新一級(jí)會(huì)話規(guī)則表項(xiàng)。
10.根據(jù)權(quán)利要求4所述的過濾分流方法,其特征在于,在一級(jí)會(huì)話規(guī)則表項(xiàng)中的一級(jí)會(huì)話匹配標(biāo)志為有效時(shí),為其二級(jí)會(huì)話查詢索引對(duì)應(yīng)的二級(jí)會(huì)話規(guī)則表項(xiàng)分配存儲(chǔ)空間,并添加二 級(jí)會(huì)話規(guī)則表項(xiàng)。
全文摘要
本發(fā)明涉及一種數(shù)據(jù)包的過濾分流,尤其是基于二級(jí)會(huì)話查詢功能的過濾分流裝置及其方法。提取輸入原始數(shù)據(jù)包的會(huì)話特征,通過查詢匹配單元在會(huì)話表中進(jìn)行查詢,依次在一級(jí)會(huì)話表和二級(jí)會(huì)話表中查詢,獲得會(huì)話查詢結(jié)果并進(jìn)行匹配檢查,根據(jù)匹配檢查的結(jié)果生成轉(zhuǎn)發(fā)行為,最后由轉(zhuǎn)發(fā)單元將原始數(shù)據(jù)包輸出至用戶。所述過濾分流裝置能夠滿足會(huì)話業(yè)務(wù)的精確識(shí)別和過濾需求。同時(shí),采用的二級(jí)會(huì)話查詢方法也能有效解決基于FPGA架構(gòu)的會(huì)話表結(jié)構(gòu)設(shè)計(jì)中存在的高速內(nèi)存存儲(chǔ)空間浪費(fèi)的問題,因此可以節(jié)約存儲(chǔ)空間,提高會(huì)話表容量和會(huì)話查詢效率。
文檔編號(hào)H04L12/70GK103179109SQ20131004092
公開日2013年6月26日 申請(qǐng)日期2013年2月4日 優(yōu)先權(quán)日2013年2月4日
發(fā)明者王驍 申請(qǐng)人:上海恒為信息科技有限公司