專利名稱::一種訪問控制列表的分類匹配方法
技術領域:
:本發(fā)明涉及一種網(wǎng)絡訪問控制技術,具體涉及一種訪問控制列表的分類匹配方法。
背景技術:
:自從因特網(wǎng)(Internet)面世以來,其迅猛增長的勢頭就從未停止,目前它已成為世界上規(guī)模最大、擁有用戶和資源最多的一個重要的超大型計算機網(wǎng)絡。因特網(wǎng)的商業(yè)化使得基于網(wǎng)絡的應用越來越多,特別是由于寬帶多媒體業(yè)務日益普及,用戶對因特網(wǎng)的要求也不再僅僅滿足于簡單的文件傳輸,而是要去網(wǎng)絡提供更加安全、快速和多樣化的服務。在現(xiàn)代網(wǎng)絡設備中,報文過濾已經(jīng)成為最常用的功能之一,如防火墻的安全控制策略,路由器的訪問列表都是網(wǎng)絡安全最基本的保障手段。但是現(xiàn)代網(wǎng)絡也同樣對轉發(fā)的性能有著越來越高的要求,尤其是核心網(wǎng)設備和匯聚接入設備。在硬件轉發(fā)能力不斷提升的情況下,報文過濾在時間上的消耗,開始成為影響整機轉發(fā)能力的瓶頸。尤其當控制策略的數(shù)量巨大的時候,傳統(tǒng)的查詢方式,幾乎帶來災難性的結果。有些對規(guī)則過濾的實現(xiàn)使用了狀態(tài)機制,并使用hashtable來進行查找。雖然比簡單的鏈表管理快了很多,但是在流量數(shù)目巨大的情況下,由于hash沖突的存在,其下降的幅度也相當明顯。即使增加表項容量,也并不能很好的改善沖突率,同時也增加了內存消耗。其次,對于規(guī)則控制這樣一種可以不斷復雜化的過濾方式,如果要靠狀態(tài)來完全區(qū)分不同的兩條流,它所需要比對的域的數(shù)量在每次查詢操作中都對查詢速度有著舉足輕重的作用,那么當訪問列表要控制的區(qū)域不僅僅是地址,端口,協(xié)議時,消耗就變大了。
發(fā)明內容本發(fā)明針對現(xiàn)有報文過濾在時間上的消耗大的問題,而提供一種訪問列表的分類匹配方法,該方法加速大規(guī)模訪問列表的查詢速度,并使得查詢時間不受規(guī)則數(shù)量的影響。為了達到上述目的,本發(fā)明采用如下的技術方案一種訪問列表的分類匹配方法,該方法包括如下步驟(1)將訪問規(guī)則的每個域在訪問控制列表里的每種值或范圍都設定一個對應到規(guī)則列表的bitmap,其中每一個bit都代表以該bit在bitmap里的位置為索引,對應到訪問控制列表里的相應訪問規(guī)則在該域上設定的值是否在該bitmap所代表的范圍內;(2)根據(jù)經(jīng)過的報文需要被控制的信息,得到在訪問規(guī)則的每個域中對應報文相關信息的bitmap,并將得到的所有bitmap進行與操作,得到表示報文與所有訪問控制列表之間的匹配關系的bitmap。在本發(fā)明的優(yōu)選實例中,當訪問規(guī)則數(shù)量很多時,將每個域的每種取值對應到訪問控制列表的bitmap進行排列組合,形成了多級索引表項。進一步的,在已經(jīng)配置的訪問規(guī)則所設定的范圍之外再增加一個單獨索引表項。3根據(jù)上述技術方案形成的本發(fā)明針對靜態(tài)配置好的安全策略,訪問列表等具有很好效果。相比之前以簡單鏈表形式構造的訪問列表,本發(fā)明在規(guī)則數(shù)量巨大的時候,有著轉發(fā)性能方面本質上的提高。實驗的數(shù)據(jù)表明,10條以內的規(guī)則數(shù)目,普通的鏈表存儲查詢會快些,但之后隨著規(guī)則數(shù)的逐步增加,普通的鏈表管理將使整機性能急劇下降,達到500條以后,完全可以做為不宜于實際使用來定性。但使用本發(fā)明提供的分類匹配方法,下降幅度始終在10幾條普通鏈表規(guī)則時的數(shù)值。以下結合附圖和具體實施方式來進一步說明本發(fā)明。圖1為等價集合示意圖。圖2為分類匹配示意圖。具體實施例方式為了使本發(fā)明實現(xiàn)的技術手段、創(chuàng)作特征、達成目的與功效易于明白了解,下面結合具體圖示,進一步闡述本發(fā)明。為加速大規(guī)模訪問控制列表的查詢速度,并使其不受規(guī)則數(shù)量的影響,本發(fā)明采用一種訪問控制列表的分類匹配方法,該方法的實現(xiàn)機理如下(1)對于一條訪問規(guī)則,不去具體的分類其域的含義,即不考慮域的類型是ip地址或是協(xié)議號,只是作為數(shù)據(jù)流中某個位置的期望值。由于所有訪問規(guī)則所能設定的域的數(shù)量是相同的,所以本發(fā)明為每個域在訪問控制列表里所有可能的不同值或范圍都設定一個bitmap,其中每一個bit都代表以這個bit在bitmap里的位置為索引,對應到規(guī)則列表里的那個規(guī)則在這個域上設定的值是否在這個bitmap所代表的范圍內。(2)當一條流或是一個報文經(jīng)過,根據(jù)報文里的需要被控制的信息,得到在每個域中對應報文相關信息的bitmap。其中,有多少個域就能得到多少個bitmap,將得到的所有bitmap進行與操作,得到新的bitmap就是該報文與所有訪問列表之間的匹配關系。Bit1就表示匹配這個規(guī)則,因為所有的域對應的報文信息都落在這個規(guī)則為每個域設定的范圍內。Bit0就是不匹配,原因可能是沒有一個域匹配,也可能是不全部匹配。而最高位bit1在查詢結果bitmap里的位置作為索引,所對應的控制列表規(guī)則的所指定的匹配后行為,就是這次查詢所要執(zhí)行的最后行為,最常見的就是允許報文通過或拒絕報文通過。進一步的,當訪問規(guī)則數(shù)量很多時,bitmap的長度會很長,這樣增加了bitmap與操作的次數(shù),無法實現(xiàn)恒定的查詢速度。為此,本發(fā)明又將每個域的每種取值對應到訪問控制列表的bitmap進行排列組合,組合出來的結果也是幾種bitmap,形成了多級索引表項。這樣兩兩組合,也可以三三組合,一次組合所使用的上級表項越多,那么生成最終表項時所經(jīng)歷的表的層次就越少。也就是最終的查詢越快。但由于排列組合的基數(shù)更大,將導致空間的消耗更大。最終表項里為了查詢的便利,在建立這個表時,不再記錄與操作得到的bitmap,而是直接將第一個為1的bit代表的規(guī)則所設定的操作類型直接記錄下來?;谏鲜霰眄椷M行查詢的時候,根據(jù)報文里的信息,順著表的層次,最終的結果必然是匹配到最終表項里的某一項,執(zhí)行其規(guī)則。再進一步的,由于訪問規(guī)則的覆蓋是有范圍,所以每條流可能找不到匹配的表項。為此,本發(fā)明為所有在已經(jīng)配置的規(guī)則所設定的范圍之外再增加一個單獨索引表項來記錄(就是指所有規(guī)則都不匹配時,最后有個默認的denyall規(guī)則)。所謂的獨立表項是指在所有acl規(guī)則都不匹配時,默認再最后有一個denyall的動作,這個denyall同樣做為一條規(guī)則參與到表項的建立,當它之前的所有規(guī)則都無法匹配,那么最后必然匹配上這條。所以當所有規(guī)則都不匹配時,就必然落到這個特殊表項,而這個表項的行為,可以根據(jù)實際情況來決定?;谏鲜龇桨?,其實施如下如表1所示,本實施例中涉及四元組匹配(含范圍匹配),src_ip,dest_ip,L4_protocol,dest_port;規(guī)貝Ij數(shù)5條。表權利要求1.一種訪問列表的分類匹配方法,其特征在于,該方法包括如下步驟(1)將訪問規(guī)則的每個域在訪問控制列表里的每種值或范圍都設定一個對應到規(guī)則列表的bitmap,其中每一個bit都代表以該bit在bitmap里的位置為索引,對應到訪問控制列表里的相應訪問規(guī)則在該域上設定的值是否在該bitmap所代表的范圍內;(2)根據(jù)經(jīng)過的報文需要被控制的信息,得到在訪問規(guī)則的每個域中對應報文相關信息的bitmap,并將得到的所有bitmap進行與操作,得到表示報文與所有訪問控制列表之間的匹配關系的bitmap。2.根據(jù)權利要求1所述的一種訪問列表的分類匹配方法,其特征在于,當訪問規(guī)則數(shù)量多于一條時,將每個域的每種取值對應到訪問控制列表的bitmap進行排列組合,形成了多級索引表項。3.根據(jù)權利要求2所述的一種訪問列表的分類匹配方法,其特征在于,在已經(jīng)配置的訪問規(guī)則所設定的范圍之外再增加一個單獨索引表項。全文摘要本發(fā)明公開了一種訪問列表的分類匹配方法,該方法包括如下步驟(1)將訪問規(guī)則的每個域在訪問控制列表里的每種值或范圍都設定一個對應到規(guī)則列表的bitmap,其中每一個bit都代表以該bit在bitmap里的位置為索引,對應到訪問控制列表里的相應訪問規(guī)則在該域上設定的值是否在該bitmap所代表的范圍內;(2)根據(jù)經(jīng)過的報文需要被控制的信息,得到在訪問規(guī)則的每個域中對應報文相關信息的bitmap,并將得到的所有bitmap進行與操作,得到表示報文與所有訪問控制列表之間的匹配關系的bitmap。本發(fā)明能夠加速大規(guī)模訪問列表的查詢速度,并使得查詢時間不受規(guī)則數(shù)量的影響。文檔編號H04L12/56GK102571531SQ201010591480公開日2012年7月11日申請日期2010年12月16日優(yōu)先權日2010年12月16日發(fā)明者傅鑫泉,彭雙庭,方昊,汪革申請人:上海博達數(shù)據(jù)通信有限公司