專利名稱::一種加速防火墻過濾規(guī)則匹配的方法及裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及網(wǎng)絡(luò)安全
技術(shù)領(lǐng)域:
,尤其涉及一種加速防火墻過濾規(guī)則匹配的方法及裝置。
背景技術(shù):
:數(shù)據(jù)包過濾系統(tǒng)是防火墻最基本、最重要、也是最核心的部分。防火墻過濾規(guī)則集是指防火墻進行訪問控制時管理員配置的用來限制網(wǎng)絡(luò)中的數(shù)據(jù)包是否可以通過的規(guī)則集合。常見的數(shù)據(jù)包過濾過程一般采用將數(shù)據(jù)包從防火墻過濾規(guī)則集的第一條規(guī)則開始順序匹配的策略,如果某條規(guī)則匹配成功,則執(zhí)行該條規(guī)則相應(yīng)的動作,然后匹配下一個數(shù)據(jù)包。一個防火墻過濾規(guī)則集可能包含幾十條或者更多規(guī)則,但由于規(guī)則之間存在某種關(guān)聯(lián)關(guān)系,所以規(guī)則必須按照某種順序進行排列,這就是防火墻過濾規(guī)則采用順序匹配的原因。但是過濾規(guī)則的順序匹配算法效率太低,從而使防火墻吞吐量急劇下降,嚴重影響了網(wǎng)絡(luò)的性能。隨著網(wǎng)絡(luò)的高速發(fā)展,防火墻的數(shù)據(jù)包過濾必須不斷地被優(yōu)化來妥善處理網(wǎng)絡(luò)流量的需求和防范攻擊。為了縮短點到點的延遲,就要減少數(shù)據(jù)包匹配的時間。因此,高效且易于實現(xiàn)的過濾策略的優(yōu)化主要是加快該策略中的數(shù)據(jù)包過濾規(guī)則匹配的速度。在過濾策略里,數(shù)據(jù)包過濾的主要任務(wù)是基于一組規(guī)則描繪的過濾策略來對數(shù)據(jù)包進行分類。過濾數(shù)據(jù)包使用的信息常常包含在數(shù)據(jù)包的包頭里,通常為傳輸協(xié)議、源IP地址、源端口號、目的IP地址和目的端口號。每一個過濾規(guī)則就是數(shù)據(jù)包包頭的一個數(shù)組值。如果每一個數(shù)據(jù)包的包頭匹配相應(yīng)的某一個規(guī)則,那么,我們就說該數(shù)據(jù)包匹配這個規(guī)則。在防火墻中,如果一個數(shù)據(jù)包匹配一個規(guī)則的話,就要執(zhí)行一些相關(guān)的動作。這些動作將指示是否去拒絕或是接受數(shù)據(jù)包到一個特定接口。如果一個數(shù)據(jù)包沒有和一個過濾策略中的任何一個規(guī)則匹配成功,那么就要按照默認規(guī)則將該包丟棄,一般的默認規(guī)則(過濾策略中的最后一個規(guī)則)是拒絕。很多學者和研究人員對防火墻過濾策略的優(yōu)化問題提出了很多有用的解決方法,目前普遍使用的過濾規(guī)則匹配的方法是數(shù)據(jù)包按照過濾規(guī)則的優(yōu)先級順序進行匹配,以首次匹配到的規(guī)則為準?,F(xiàn)有技術(shù)中使用的過濾規(guī)則匹配方式是輪循方式,例如,一個過濾策略中有1000條過濾規(guī)則時,每一個數(shù)據(jù)包的包頭依次和這1000條規(guī)則進行比較直到找到一條完全匹配的規(guī)則??梢园l(fā)現(xiàn)采用現(xiàn)有技術(shù)中的過濾規(guī)則匹配的方法對數(shù)據(jù)包進行過濾時,隨著過濾規(guī)則的增多,防火墻中的性能下降非常明顯。
發(fā)明內(nèi)容本發(fā)明提供一種加速防火墻過濾規(guī)則匹配的方法及裝置,用以解決現(xiàn)有技術(shù)中防火墻對數(shù)據(jù)包進行過濾規(guī)則匹配時,若過濾規(guī)則較多,則防火墻的性能下降明顯的問題。本發(fā)明所述技術(shù)方案如下—種加速防火墻過濾規(guī)則匹配的方法,包括步驟A、將預先選定的防火墻過濾規(guī)則集的屬性項的屬性信息構(gòu)建為線性分布的屬性4區(qū)間,將構(gòu)建的屬性區(qū)間與相應(yīng)屬性項的屬性信息中包含該屬性區(qū)間的過濾規(guī)則相關(guān)聯(lián);B、進行數(shù)據(jù)包過濾時,查詢所述數(shù)據(jù)包中所述選定屬性項的屬性信息,從構(gòu)建的屬性區(qū)間中搜索所述查詢到的屬性信息歸屬的區(qū)間,利用搜索到的區(qū)間關(guān)聯(lián)的過濾規(guī)則構(gòu)建與各選定屬性項一一對應(yīng)的規(guī)則集合;C、獲取所述構(gòu)建出的與各選定屬性項一一對應(yīng)的規(guī)則集合的交集,將其添加到匹配規(guī)則集合中;D、按照所述匹配規(guī)則集合中過濾規(guī)則的優(yōu)先級高低依次對所述數(shù)據(jù)包進行規(guī)則匹配,直到找出完全匹配的規(guī)則。較佳地,所述屬性項為源地址或者目的地址或者源端口號或者目的端口號或者傳輸協(xié)議。較佳地,所述步驟B與步驟C之間還包括將所述防火墻過濾規(guī)則集中對某一選定屬性項無任何要求的過濾規(guī)則添加到構(gòu)建出的與該屬性項一一對應(yīng)的規(guī)則集合中的步驟。較佳地,所述步驟D中還包括按照所述找出的完全匹配的規(guī)則對應(yīng)的動作對所述數(shù)據(jù)包進行相應(yīng)的處理的步驟。較佳地,所述屬性項對應(yīng)的線性分布的屬性區(qū)間按照屬性項的屬性信息的大小順序線性排列,與一個屬性項對應(yīng)的任意兩個線性分布的屬性區(qū)間之間不存在交集。—種加速防火墻過濾規(guī)則匹配的裝置,包括屬性區(qū)間構(gòu)建模塊、數(shù)據(jù)包屬性查詢模塊、屬性區(qū)間搜索模塊、屬性項規(guī)則集合形成模塊、匹配規(guī)則集合形成模塊及規(guī)則匹配模塊,其中,屬性區(qū)間構(gòu)建模塊,用于將預先選定的防火墻過濾規(guī)則集的屬性項的屬性信息構(gòu)建為線性分布的屬性區(qū)間,以及將構(gòu)建的屬性區(qū)間與相應(yīng)屬性項的屬性信息中包含該屬性區(qū)間的過濾規(guī)則相關(guān)聯(lián);數(shù)據(jù)包屬性查詢模塊,在進行數(shù)據(jù)包過濾時,用于查詢所述數(shù)據(jù)包中所述選定屬性項的屬性信息;屬性區(qū)間搜索模塊,用于從所述構(gòu)建的屬性區(qū)間中搜索所述查詢到的屬性信息歸屬的區(qū)間;屬性項規(guī)則集合形成模塊,用于利用搜索到的區(qū)間關(guān)聯(lián)的過濾規(guī)則構(gòu)建與各選定屬性項一一對應(yīng)的規(guī)則集合;匹配規(guī)則集合形成模塊,用于獲取所述構(gòu)建出的與各選定屬性項一一對應(yīng)的規(guī)則集合的交集,將其添加到匹配規(guī)則集合中;規(guī)則匹配模塊,用于按照所述匹配規(guī)則集合中過濾規(guī)則的優(yōu)先級高低依次對所述數(shù)據(jù)包進行規(guī)則匹配,直到找出完全匹配的規(guī)則。較佳地,所述屬性項為源地址或者目的地址或者源端口號或者目的端口號或者傳輸協(xié)議。較佳地,所述屬性項規(guī)則集合形成模塊還用于將所述防火墻過濾規(guī)則集中對某一選定屬性項無任何要求的過濾規(guī)則添加到構(gòu)建出的與該屬性項一一對應(yīng)的規(guī)則集合中。本發(fā)明有益效果如下現(xiàn)有技術(shù)中防火墻對數(shù)據(jù)包進行過濾時采用順序遍歷過濾規(guī)則的方式進行規(guī)則匹配,其效率很低,而當防火墻在過濾數(shù)據(jù)包時采用本發(fā)明所述的線性分布檢索方式進行過濾規(guī)則匹配時,可以縮小匹配規(guī)則集合,大幅度提高規(guī)則匹配效率。圖1為本發(fā)明所述加速防火墻過濾規(guī)則匹配的方法的流程圖;圖2為本發(fā)明所述加速防火墻過濾規(guī)則匹配的裝置的結(jié)構(gòu)框圖。具體實施例方式下面將結(jié)合各個附圖對本發(fā)明的具體實現(xiàn)過程予以說明。請參閱圖l,該圖為本發(fā)明所述加速防火墻過濾規(guī)則匹配的方法的流程圖,其主要包括步驟步驟10、將預先選定的防火墻過濾規(guī)則集的屬性項的屬性信息構(gòu)建為線性分布的屬性區(qū)間;所述屬性項為源地址或者目的地址或者源端口號或者目的端口號或者傳輸協(xié)議。所述屬性項對應(yīng)的線性分布的屬性區(qū)間按照屬性項的屬性信息的大小順序線性排列,與一個屬性項對應(yīng)的任意兩個線性分布的屬性區(qū)間之間不存在交集。步驟11、將構(gòu)建的線性分布的屬性區(qū)間與相應(yīng)屬性項的屬性信息中包含該屬性區(qū)間的過濾規(guī)則相關(guān)聯(lián);步驟12、進行數(shù)據(jù)包過濾時,查詢所述數(shù)據(jù)包中所述選定屬性項的屬性信息;步驟13、從構(gòu)建的線性分布的屬性區(qū)間中搜索所述查詢到的屬性信息歸屬的屬性區(qū)間;步驟14、利用搜索到的區(qū)間關(guān)聯(lián)的過濾規(guī)則構(gòu)建與各選定屬性項一一對應(yīng)的規(guī)則隹A.朱口;步驟15、獲取所述構(gòu)建出的與各選定屬性項一一對應(yīng)的規(guī)則集合的交集,將其添加到匹配規(guī)則集合中;步驟16、按照所述匹配規(guī)則集合中過濾規(guī)則的優(yōu)先級高低依次對所述數(shù)據(jù)包進行規(guī)則匹配,直到找出完全匹配的規(guī)則,按照該找出的規(guī)則對應(yīng)的動作對所述數(shù)據(jù)包進行相應(yīng)的處理。進一步地,對于防火墻過濾規(guī)則集中對對某一選定屬性項無任何要求的過濾規(guī)則,本發(fā)明所述方法中將防火墻過濾規(guī)則集中對某一選定屬性項無任何要求的過濾規(guī)則直接添加到步驟14中構(gòu)建出的與該屬性項一一對應(yīng)的規(guī)則集合中,然后再執(zhí)行步驟15,即按照所述匹配規(guī)則集合中過濾規(guī)則的優(yōu)先級高低依次對所述數(shù)據(jù)包進行規(guī)則匹配。下面通過一具體實例對本發(fā)明上述方法予以進一步詳細的闡述。用戶配置的防火墻過濾規(guī)則集如下表,各條過濾規(guī)則的序號就是其優(yōu)先級。<table>tableseeoriginaldocumentpage7</column></row><table>將上述的規(guī)則集中的源地址屬性項及目的地址屬性項分別進行線性化處理。首先,將規(guī)則集中的源地址表示成(ipl,ip2)地址區(qū)間的形式,ipl是開始地址,ip2是結(jié)束地址,然后,根據(jù)ipl的大小進行排序,如果發(fā)現(xiàn)相鄰地址區(qū)間有重復的部分則需要進行拆分,源地址線性化后如下表<table>tableseeoriginaldocumentpage7</column></row><table><table>tableseeoriginaldocumentpage8</column></row><table>拆分舉例規(guī)則3和4源地址存在交集,如上表所示將規(guī)則4中的源地址11.22.3.*拆分成區(qū)間(11.22.3.0,11.22.3.16)禾卩(11.22.3.17,11.22.3.255);規(guī)則6、10、11也都進行了相應(yīng)的拆分。然后,將規(guī)則集中的目的地址表示成(ipl,ip2)地址區(qū)間的形式,ipl是開始地址,ip2是結(jié)束地址,然后,根據(jù)ipl的大小進行排序,如果發(fā)現(xiàn)相鄰地址區(qū)間有重復的部分則需要進行拆分,目的地址線性化后如下表<table>tableseeoriginaldocumentpage8</column></row><table>對于源地址或目的地址中是any,即對源地址或目的地址沒有任何限制的過濾規(guī)則,我們分別建立源地址any鏈表和目的地址any鏈表如下A、源地址any鏈表—(5,13)B、目的地址any鏈表一(1,2,3,4,9,10,13)下面舉例說明如何對數(shù)據(jù)包進行過濾規(guī)則加速匹配—個待過濾的數(shù)據(jù)包的源地址、目的地址、協(xié)議、端口分別是11.22.3.138、11.22.33.23、tcp、80。第一步、根據(jù)源地址11.22.3.138在源地址線性分布中快速索引到表項3,得到了匹配的規(guī)則集合4、10、11;第二步、因為源地址any列表也一定會和此地址匹配,所以源地址匹配的規(guī)則集合變成4、10、11、5、13;第三步、根據(jù)目的地址11.22.33.23在目的地址分布可以快速索引到表項3得到匹配的規(guī)則集合5、7、8;第四步、合并目的地址any鏈表,匹配的規(guī)則集合變成5、7、8、1、2、3、4、9、10、13;第五步,求源地址和目的地址匹配的規(guī)則的交集為4、5、10、13;第六步、按照規(guī)則序號的順序進行其他屬性的匹配可以得到匹配的規(guī)則為4。如果此數(shù)據(jù)包按照現(xiàn)有技術(shù)中順序匹配的方式進行過濾規(guī)則匹配,那么必須和規(guī)則1、2、3依次進行匹配運算,而采用本發(fā)明所述加速防火墻過濾規(guī)則匹配的方法就可以直接和規(guī)則4進行匹配運算,而且隨規(guī)則數(shù)量的增加,這種匹配性能的差異將愈加明顯。相應(yīng)于本發(fā)明上述方法,本發(fā)明進而提供了一種加速防火墻過濾規(guī)則匹配的裝置,請參閱圖2,該圖為本發(fā)明所述加速防火墻過濾規(guī)則匹配的裝置的結(jié)構(gòu)框圖,其主要包括屬性區(qū)間構(gòu)建模塊、數(shù)據(jù)包屬性查詢模塊、屬性區(qū)間搜索模塊、屬性項規(guī)則集合形成模塊、匹配規(guī)則集合形成模塊及規(guī)則匹配模塊,其中,屬性區(qū)間構(gòu)建模塊,用于將預先選定的防火墻過濾規(guī)則集的屬性項的屬性信息構(gòu)建為線性分布的屬性區(qū)間,以及將構(gòu)建的屬性區(qū)間與相應(yīng)屬性項的屬性信息中包含該屬性區(qū)間的過濾規(guī)則相關(guān)聯(lián);所述屬性項為源地址或者目的地址或者源端口號或者目的端口號或者傳輸協(xié)議。數(shù)據(jù)包屬性查詢模塊,在進行數(shù)據(jù)包過濾時,用于查詢所述數(shù)據(jù)包中所述選定屬性項的屬性信息。屬性區(qū)間搜索模塊,用于從所述構(gòu)建的線性分布的屬性區(qū)間中搜索數(shù)據(jù)包屬性查詢模塊查詢到的屬性信息歸屬的屬性區(qū)間,將搜索結(jié)果發(fā)送給屬性項規(guī)則集合形成模塊。屬性項規(guī)則集合形成模塊,用于利用屬性區(qū)間搜索模塊搜索到的屬性區(qū)間關(guān)聯(lián)的過濾規(guī)則構(gòu)建與各選定屬性項一一對應(yīng)的規(guī)則集合;還用于將所述防火墻過濾規(guī)則集中對某一選定屬性項無任何要求的過濾規(guī)則添加到構(gòu)建出的與該屬性項一一對應(yīng)的規(guī)則集合中。匹配規(guī)則集合形成模塊,用于獲取屬性項規(guī)則集合形成模塊構(gòu)建出的與各選定屬性項一一對應(yīng)的規(guī)則集合的交集,將其添加到匹配規(guī)則集合中。規(guī)則匹配模塊,用于按照所述匹配規(guī)則集合中過濾規(guī)則的優(yōu)先級高低依次對所述數(shù)據(jù)包進行規(guī)則匹配,直到找出完全匹配的規(guī)則。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。9權(quán)利要求一種加速防火墻過濾規(guī)則匹配的方法,其特征在于,包括步驟A、將預先選定的防火墻過濾規(guī)則集的屬性項的屬性信息構(gòu)建為線性分布的屬性區(qū)間,將構(gòu)建的屬性區(qū)間與相應(yīng)屬性項的屬性信息中包含該屬性區(qū)間的過濾規(guī)則相關(guān)聯(lián);B、進行數(shù)據(jù)包過濾時,查詢所述數(shù)據(jù)包中所述選定屬性項的屬性信息,從構(gòu)建的屬性區(qū)間中搜索所述查詢到的屬性信息歸屬的區(qū)間,利用搜索到的區(qū)間關(guān)聯(lián)的過濾規(guī)則構(gòu)建與各選定屬性項一一對應(yīng)的規(guī)則集合;C、獲取所述構(gòu)建出的與各選定屬性項一一對應(yīng)的規(guī)則集合的交集,將其添加到匹配規(guī)則集合中;D、按照所述匹配規(guī)則集合中過濾規(guī)則的優(yōu)先級高低依次對所述數(shù)據(jù)包進行規(guī)則匹配,直到找出完全匹配的規(guī)則。2.如權(quán)利要求1所述的方法,其特征在于,所述屬性項為源地址或者目的地址或者源端口號或者目的端口號或者傳輸協(xié)議。3.如權(quán)利要求1或2所述的方法,其特征在于,所述步驟B與步驟C之間還包括將所述防火墻過濾規(guī)則集中對某一選定屬性項無任何要求的過濾規(guī)則添加到構(gòu)建出的與該屬性項一一對應(yīng)的規(guī)則集合中的步驟。4.如權(quán)利要求1或2所述的方法,其特征在于,所述步驟D中還包括按照所述找出的完全匹配的規(guī)則對應(yīng)的動作對所述數(shù)據(jù)包進行相應(yīng)的處理的步驟。5.如權(quán)利要求1所述的方法,其特征在于,所述屬性項對應(yīng)的線性分布的屬性區(qū)間按照屬性項的屬性信息的大小順序線性排列,與一個屬性項對應(yīng)的任意兩個線性分布的屬性區(qū)間之間不存在交集。6.—種加速防火墻過濾規(guī)則匹配的裝置,其特征在于,包括屬性區(qū)間構(gòu)建模塊、數(shù)據(jù)包屬性查詢模塊、屬性區(qū)間搜索模塊、屬性項規(guī)則集合形成模塊、匹配規(guī)則集合形成模塊及規(guī)則匹配模塊,其中,屬性區(qū)間構(gòu)建模塊,用于將預先選定的防火墻過濾規(guī)則集的屬性項的屬性信息構(gòu)建為線性分布的屬性區(qū)間,以及將構(gòu)建的屬性區(qū)間與相應(yīng)屬性項的屬性信息中包含該屬性區(qū)間的過濾規(guī)則相關(guān)聯(lián);數(shù)據(jù)包屬性查詢模塊,在進行數(shù)據(jù)包過濾時,用于查詢所述數(shù)據(jù)包中所述選定屬性項的屬性信息;屬性區(qū)間搜索模塊,用于從所述構(gòu)建的屬性區(qū)間中搜索所述查詢到的屬性信息歸屬的區(qū)間;屬性項規(guī)則集合形成模塊,用于利用搜索到的區(qū)間關(guān)聯(lián)的過濾規(guī)則構(gòu)建與各選定屬性項一一對應(yīng)的規(guī)則集合;匹配規(guī)則集合形成模塊,用于獲取所述構(gòu)建出的與各選定屬性項一一對應(yīng)的規(guī)則集合的交集,將其添加到匹配規(guī)則集合中;規(guī)則匹配模塊,用于按照所述匹配規(guī)則集合中過濾規(guī)則的優(yōu)先級高低依次對所述數(shù)據(jù)包進行規(guī)則匹配,直到找出完全匹配的規(guī)則。7.如權(quán)利要求6所述的裝置,其特征在于,所述屬性項為源地址或者目的地址或者源端口號或者目的端口號或者傳輸協(xié)議。8.如權(quán)利要求6或7所述的裝置,其特征在于,所述屬性項規(guī)則集合形成模塊還用于將所述防火墻過濾規(guī)則集中對某一選定屬性項無任何要求的過濾規(guī)則添加到構(gòu)建出的與該屬性項一一對應(yīng)的規(guī)則集合中。全文摘要本發(fā)明公開了一種加速防火墻過濾規(guī)則匹配的方法及裝置,包括將預先選定的防火墻過濾規(guī)則集的屬性項的屬性信息構(gòu)建為線性分布的屬性區(qū)間,將構(gòu)建的屬性區(qū)間與相應(yīng)屬性項的屬性信息中包含該屬性區(qū)間的過濾規(guī)則相關(guān)聯(lián);進行數(shù)據(jù)包過濾時,查詢數(shù)據(jù)包中所述選定屬性項的屬性信息,從構(gòu)建的屬性區(qū)間中搜索所述查詢到的屬性信息歸屬的區(qū)間,利用搜索到的區(qū)間關(guān)聯(lián)的過濾規(guī)則構(gòu)建與各選定屬性項一一對應(yīng)的規(guī)則集合;獲取所述構(gòu)建出的與各選定屬性項一一對應(yīng)的規(guī)則集合的交集,將其添加到匹配規(guī)則集合中;按照所述匹配規(guī)則集合中過濾規(guī)則的優(yōu)先級高低依次對所述數(shù)據(jù)包進行規(guī)則匹配,直到找出完全匹配的規(guī)則。本發(fā)明能夠提高防火墻的過濾規(guī)則匹配效率。文檔編號H04L29/06GK101753542SQ20081022796公開日2010年6月23日申請日期2008年12月3日優(yōu)先權(quán)日2008年12月3日發(fā)明者陳強申請人:北京天融信網(wǎng)絡(luò)安全技術(shù)有限公司