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