專利名稱:一種訪問控制列表規(guī)則的配置方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通訊業(yè)務(wù)訪問控制管理領(lǐng)域,特別是一種訪問控制列表(ACL, Access Control List)規(guī)則的配置方法及裝置。
背景技術(shù):
在網(wǎng)絡(luò)技術(shù)快速發(fā)展的今天,網(wǎng)絡(luò)的安全問題也備受關(guān)注,對于承載著各 種網(wǎng)絡(luò)業(yè)務(wù)的網(wǎng)絡(luò)設(shè)備來說,如路由器、交換機等,擁有一個自身安全保護措 施顯得尤為重要,ACL就是常用的安全技術(shù)之一。
ACL的功能是,用來過濾進出網(wǎng)絡(luò)設(shè)備端口的數(shù)據(jù)包。ACL由4艮多條ACL 規(guī)則組成,將數(shù)據(jù)包中相應(yīng)字段的地址與ACL規(guī)則進行匹配,ACL規(guī)則可以 是數(shù)據(jù)包的源地址、目的地址、源端口號、目的端口號等信息,從而達到訪問 控制的目的。
現(xiàn)有技術(shù)中,基于ACL的匹配是精確匹配方式,即將一個地址值配置為一 條ACL規(guī)則,并將數(shù)據(jù)包中相應(yīng)的地址與一條ACL規(guī)則進行匹配,如果二者 匹配一致,則轉(zhuǎn)發(fā)該數(shù)據(jù)包,否則丟棄。例如在一臺交換機的某個端口要將 虛擬局域網(wǎng)(vlan, virtual local area network)地址字4殳vlanl00-vlanl000全部 修改成vlan2000,即依據(jù)ACL將通過該端口的100至1000之間的地址全部修 改成2000,要實現(xiàn)對上述901個地址字段的修改,則在精確匹配方式下,針對 每個vlan地址配置一條ACL規(guī)則,這樣就需要相應(yīng)地配置901條ACL規(guī)則。
基于以上描述可見,在精確匹配方式下,通常需要很多條ACL規(guī)則,從而 占用了很多的硬件資源,也使得每條ACL規(guī)則的利用率比較低。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種ACL規(guī)則的配置方法及裝置,從而達到減少ACL規(guī)則的使用數(shù)量、提高ACL規(guī)則的利用率、節(jié)省硬件資源 的目的。
為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的
本發(fā)明提供了一種ACL規(guī)則的配置方法,該方法包括
將需要匹配的一段地址進行分段,并使所分成的每一個地址段由 一對關(guān)鍵 字表示,將每一對關(guān)^t字對應(yīng)地配置為每一條ACL規(guī)則。
上述方案中,所述將需要匹配的一段地址進行分段,包括確定該地址段 的中心地址,并以該中心地址值為中心,分別向需要匹配的該段地址的兩端, 對該地址段進行分段。
上述方案中,所述中心地址是該段地址上限以內(nèi)最大的2An的值,n為 在對應(yīng)地址段范圍內(nèi)得到最大地址的值。
上述方案中,所述將需要匹配的一段地址進行分段,具體包括以中心地 址為中心,分別向需要匹配的該段地址的兩端分段,所分成的每一個地址段的 大小是能夠分得的最大的2An,其中n取非負(fù)整數(shù);所分成的每一個地址段用 最長前綴匹配算法中的一對關(guān)鍵字prefix和mask的值表示。
上述方案中,所述將每一對關(guān)鍵字對應(yīng)地配置為每一條ACL規(guī)則,包括 以中心地址為中心,分別向需要匹配的該段地址的兩端分^殳,所分成的每一個 地址段的大小是能夠分得的最大的2An,其中n取非負(fù)整數(shù);所分成的每一個 地址段用最長前綴匹配算法中的一對關(guān)鍵字prefix和mask的值表示。
上述方案中,所述將每一對關(guān)鍵字對應(yīng)地配置為每一條ACL規(guī)則之后,進 一步包括基于最長前綴匹配方式依據(jù)配置的ACL規(guī)則對經(jīng)過的數(shù)據(jù)包的地址 進行處理。
本發(fā)明還提供了一種ACL規(guī)則的配置裝置,該裝置包括地址劃分模塊和 匹配配置才莫塊;其中,
地址劃分模塊用于將需要匹配的一段地址進行分段,并使所分成的每一個 地址段由一對關(guān)鍵字表示; 配置模塊用于將每一對關(guān)鍵字對應(yīng)地配置為每一條ACL規(guī)則。上述方案中,所述地址劃分模塊包括中心地址確定模塊和分段;漠塊;其
中,
中心地址確定模塊,用于確定需要匹配的一段地址的中心地址;
分段模塊,用于以中心地址為中心,分別向需要匹配的該段地址的兩端, 對該段地址進行分段。
上述方案中,所述分段模塊具體用于以中心地址為中心,分別向需要匹 配的該段地址的兩端分段,所分成的每一個地址段的大小是能夠分得的最大的 2An,其中n取非負(fù)整數(shù);所分成的每一個地址段用最長前綴匹配算法中的一對 關(guān)4建字prefix和mask的值表示;
所述配置模塊,具體用于將所分成的每一個地址段的關(guān)鍵字prefix和mask 的值對應(yīng)地配置為每一條ACL規(guī)則的地址段。
上迷方案中,該裝置進一步包括匹配模塊,用于基于最長前綴匹配方式 依據(jù)配置的ACL規(guī)則對經(jīng)過的數(shù)據(jù)包的地址進行處理。
本發(fā)明所提供的一種ACL規(guī)則的配置方法及裝置,以最長前綴匹配算法為 基礎(chǔ),將數(shù)據(jù)包中需要匹配的一段地址,以2An為單元分成盡可能大的若干個 地址段,使所分成的每一個地址段由一對關(guān)鍵字prefix和mask的值表示,并將 每一對關(guān)鍵字prefix和mask的值配置為每一條ACL規(guī)則,依據(jù)所配置的ACL 規(guī)則即可對經(jīng)過的數(shù)據(jù)包的地址進行處理,避免了精確匹配方式下, 一個地址 與一條ACL規(guī)則匹配的情況,從而大大減少了 ACL規(guī)則的使用數(shù)量,提高了 ACL規(guī)則的利用率,節(jié)省了硬件資源。
圖1為本發(fā)明中ACL規(guī)則的配置方法流程圖; 圖2為本發(fā)明中ACL規(guī)則的配置裝置結(jié)構(gòu)圖。
具體實施例方式
本發(fā)明的基本思想是,以最長前綴匹配算法為基礎(chǔ),將數(shù)據(jù)包中需要匹配
6的一段地址以2An為單元進行分段,其中n取非負(fù)整數(shù),并使分段后得到的每 一個地址段盡可能的大,使所分成的每一個地址段由一對關(guān)鍵字prefix和mask 的值表示,并將每一對關(guān)鍵字prefix和mask的值配置為每一條ACL規(guī)則的地 址字段,后續(xù)便可以依據(jù)配置的ACL規(guī)則對經(jīng)過的數(shù)據(jù)包的地址進行處理,從 而達到減少ACL規(guī)則的使用數(shù)量、提高ACL規(guī)則的使用效率、節(jié)省硬件資源 的作用。
下面首先介紹一下現(xiàn)有技術(shù)的最長前綴匹配算法
該算法由兩個關(guān)^fc字組成prefix和mask,由這兩個關(guān)4建字可以表示出一 段連續(xù)的地址段。mask的某一位如果是1,則所表示的地址段中相應(yīng)的這一位 與prefix對應(yīng)的這一位的值一致;mask的某一位如果是0,則所表示的地址段 中相應(yīng)的這一4立是任意值,即可以取0或1。例如prefix=0001100100b, mask=1111111100b,這里,mask有2位是0,所以prefix和mask這兩個關(guān)鍵字 所表示的這段地址段就有2A2=4個值,即表示有4個前8位是OOOllOOlb的地 址,換言之表示了從0001100100b到0001100111b的地址段,轉(zhuǎn)換成十進制表 示的地址段為100到103。
基于上述最長前綴匹配算法,本發(fā)明提供了一種ACL規(guī)則的配置方法,如 圖1所示。在本實施例中,ACL規(guī)則的配置方法包括以下步驟
步驟101:確定需要匹配的一段地址;
本步驟中,首先確定需要匹配的一段地址,這里假設(shè)需要對vlan地址字段 的 一段地址進行匹配,該段地址的范圍為100到1000。 步驟102: _沒置匹配方式為最長前綴匹配;
本步驟中,在交換芯片中通過更改ACL的匹配方式,將匹配方式設(shè)置為最 長前綴匹配,即基于ACL的匹配不再釆用精確匹配方式,而是采用最長前綴匹 配,以下步驟都是在最長前綴匹配的方式下對ACL規(guī)則進行配置。
步驟103:確定該賴:地址的中心地址;
本步驟中,以最長前綴匹配算法為J^出,將需要匹配的該段地址100-1000 分成若干個地址段,分段的具體方法如下確定的該段地址的中心地址是該段地址上限以內(nèi)最大的2An的值,其中n 取非負(fù)整數(shù),如0、 1、 2……。例如,該段地址上限是1000,如果n取10,則 2A10=1024超出了 1000,而2A9=512在1000以內(nèi),所以2A9=512就是該段地址 上限1000以內(nèi)最大的2An值,這里n取9,則需要匹配的該段地址的中心地址 的取值為512。
步驟104:以該中心地址為中心,分別向該賴:地址的兩端進行分段; 本步驟中,以中心地址為中心分別向需要匹配的該段地址的兩端對該段地 址進行分段,所分成的每一個地址段的大小即每一個地址段所包含的地址數(shù)目 是可以分得的最大的2An,其中n取非負(fù)整數(shù)。
例如,100-1000的一段地址以中心地址512為中心,分別向需要匹配的該 段地址的兩端100和1000對該,爻地址進行分,史。在100-511之間,共包含412 個地址,如果n取9,則2^=512,已經(jīng)超出了 100-511之間所包含的地址數(shù)目 412;如果n取8,則2A8=256,包含在412以內(nèi),所以在100-511之間最大可 以取2八8=256,因此,該地址l殳包含了 256個地址,所分成的該地址段的范圍 是256-511 ,則在mask值中有8個0,即prefix=0100000000b, mask-l 100000000b, 用二進制表示所分成的地址段范圍是0100000000b-0111111111b;在100-255之 間共包含156個地址,故最大可以取2^=128為一段,所分成的該地址段的范 圍是128-255,在mask值中有7個0,即prefx=0010000000b, mask=l 110000000b, 用二進制表示所分成的地址段范圍是0010000000b-001111111 lb;在512-1000 之間共包含489個地址,故最大可以取2八8=256為一段,所分成的該地址段的 范圍是512-767 ,在mask值中有8個0 ,即prefix=1000000000b , mask-1100000000b , 則用二進表示所分成的該地址段范圍是 lOOOOOOOOOb-lOllllllllb;在768-1000之間共包含233個地址,故最大可以 取2"=128為一^1,所分成的該地址革爻的范圍是768-895,在mask值中有7個 0,即prefix=1100000000b, mask=l 110000000b,用二進制表示所分成的地址賴二 范圍是1100000000b-1101111111b;以此類推,從中心地址512分別向100和 1000對該段地址進行分段,則地址段100-1000的最終分段結(jié)果和所分成的每一
8個;i也址^殳對應(yīng)的prefix和mask <直為
1. 100-103——-—prefix-0001腿00b,mask=:1111111100b
2. 104-111——-—prefix=0001101000b,mask=:1111111000b
3. 112-127————prefix—0001110000b,m3sk=4111110000b
4. 128-255-—畫-——prefix,畫00000b,mask=:1110000000b
5.256-511————prefix=0100000000b,mask=4100000000b
6.512-767-———-prefix-1000000000b,mask=:1100000000b
7. 768-895—-———prefix-1100000000b,mask=:1110000000b
8. 896-959--———prefix—1110000000b ,mask=4111000000b
9. 960-991-—畫畫——prefix=ll 11000000b,mask=:1111100000b
10.992-999————prefix-1111100000b,mask=1111111000b
11.1000 ———誦prefix-1111101000b,mask=1111111111b
這里,在第IO,爻劃分完畢后,只剩下1000 —個地址,所以取2八0=1,對 單個地址1000單獨劃分成一段。
按照上述的分段方法將地址段100-1000 —共分成了 ll個地址段,每一對 關(guān)鍵字prefix和mask的值表示了 一個相應(yīng)的地址段。
上述分段方法,以中心地址為中心分別向該段地址的兩端進行分段,使所 分得的每一個地址段都是最大的2An的值,即n都是取能夠在對應(yīng)地址段范圍 內(nèi)得到最大地址的那個值,所以按照上述方法分段后將會獲得唯一 的 一種分段 結(jié)果,其中,被切分的地址段越是連續(xù),則所分成的段越少,越能節(jié)省所用的 ACL規(guī)則。如果被切分的地址段不連續(xù),也可以采用以上方法進行分段,只是 由單個地址單獨劃分成一段的情況會增加,也就是增加了 ACL規(guī)則的數(shù)量,但 仍然比現(xiàn)有技術(shù)中針對一個地址配置一條ACL規(guī)則的數(shù)量要少。
步驟105:將每一對關(guān)4建字prefix和mask的值配置為一條ACL規(guī)則的地 址字段,后續(xù)處理中,便可以依據(jù)配置的ACL規(guī)則對經(jīng)過的數(shù)據(jù)包的地址進行 處理;
本步驟中,將上述每一對關(guān)鍵字prefix和mask的值配置為一條ACL規(guī)則的地址字段,也就是每一條ACL規(guī)則中對應(yīng)代表了上述所分成的每一個地址 段,由于上述共有11對prefix和mask的值,所以只需配置11條ACL規(guī)則即可。
后續(xù)依據(jù)配置的ACL規(guī)則對經(jīng)過的數(shù)據(jù)包的地址進行處理時,則只需用 11條ACL規(guī)則就可以完成,例如,如果仍然是需要將vlanlOO-vlanlOOO全部修 改成valn2000的動作,則根據(jù)本發(fā)明提供的方案采用ll條ACL規(guī)則代替了精 確匹配方式下的卯l條ACL規(guī)則,極大地減少了 ACL規(guī)則的使用數(shù)量,提高 了 ACL規(guī)則的利用率。
步驟106:將配置好的ACL規(guī)則下發(fā)到交換芯片,使經(jīng)過的數(shù)據(jù)包的地址 與ACL規(guī)則進行匹配。
本步驟中,按照以上方法對ACL規(guī)則進行配置后,將上述ACL規(guī)則下發(fā) 到交換芯片,即將prefix和mask的值寫入相應(yīng)的匹配字段中,則只需下發(fā)11 條ACL規(guī)則即可,大大地節(jié)省了硬件資源。
在將vlanlOO-vlanlOOO全部修改成valn2000的動作中,當(dāng)經(jīng)過的數(shù)據(jù)包的 地址包含在所配置的ACL規(guī)則所表示的地址段以內(nèi)時,則經(jīng)過的數(shù)據(jù)包的地址 與ACL規(guī)則匹配一致,ACL執(zhí)行相應(yīng)的修改動作;例如,當(dāng)經(jīng)過的數(shù)據(jù)包的 地址為125,用二進制表示該地址是0001111101b,由于在所配置的第三條ACL 規(guī)則中,prefix=0001110000b, mask=1111110000b,該條ACL規(guī)則所表示的二 進制地址段范圍是00011 lOOOOb-0001111111b,轉(zhuǎn)換成十進制所表示的地址段范 圍是112-127,因經(jīng)過的數(shù)據(jù)包的地址125在該條ACL規(guī)則所表示的地址段范 圍112-127以內(nèi),所以該地址125與第三條ACL規(guī)則匹配一致,ACL執(zhí)行將 vlanl25修改成vlan2000的動作。
本發(fā)明所提供的方法和系統(tǒng)不僅僅可以用于數(shù)據(jù)包中的vlan地址字段的 ACL規(guī)則的配置,還可以用在數(shù)據(jù)包中的介質(zhì)訪問控制(mac, media access control)地址字段和ip地址字段中,從而減少ACL規(guī)則的使用數(shù)量,提高ACL 規(guī)則的利用率,節(jié)省硬件資源。
基于上述方法,本發(fā)明提供了一種ACL規(guī)則的配置裝置,如圖2所示,該
10裝置包括地址劃分模塊和配置模塊;其中,地址劃分模塊用于將需要匹配的 一段地址進行分段,并使所分成的每一個地址段由一對關(guān)鍵字表示;配置模塊 用于將每一對關(guān)鍵字對應(yīng)地配置為每一條ACL規(guī)則。
其中,地址劃分模塊包括中心地址確定模塊和分段模塊;其中,
中心地址確定模塊,用于確定需要匹配的一段地址的中心地址,該中心地 址是該段地址上限以內(nèi)最大的2An的值,其中n取非負(fù)整數(shù);
分段;漠塊,用于以中心地址為中心,分別向需要匹配的該段地址的兩端, 對該段地址進行分段;
配置才莫塊,具體用于將所分成的每一個地址段的關(guān)4建字prefix和mask的值 對應(yīng)地配置為每一條ACL規(guī)則的地址段。
所述分段模塊具體用于以中心地址為中心,分別向需要匹配的該段地址 的兩端分H所分成的每一個地址段的大小是能夠分得的最大的2An,其中n 取非負(fù)整數(shù);所分成的每一個地址段用最長前綴匹配算法中的一對關(guān)鍵字prefix 和mask的值表示。
所述裝置進一步包括匹配模塊,用于基于最長前綴匹配方式依據(jù)配置的 ACL規(guī)則對經(jīng)過的數(shù)據(jù)包的地址進行處理。
以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范 圍,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng) 包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1、一種ACL規(guī)則的配置方法,其特征在于,該方法包括將需要匹配的一段地址進行分段,并使所分成的每一個地址段由一對關(guān)鍵字表示,將每一對關(guān)鍵字對應(yīng)地配置為每一條ACL規(guī)則。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將需要匹配的一段地址 進行分段,包括確定該地址段的中心地址,并以該中心地址值為中心,分別 向需要匹配的該段地址的兩端,對該地址段進行分段。
3、 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述中心地址是該段地址 上限以內(nèi)最大的2An的值,n為在對應(yīng)地址段范圍內(nèi)得到最大地址的值。
4、 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述將需要匹配的一段地址 進行分段,具體包括以中心地址為中心,分別向需要匹配的該段地址的兩端 分段,所分成的每一個地址段的大小是能夠分得的最大的2An,其中n取非負(fù) 整數(shù);所分成的每一個地址段用最長前綴匹配算法中的一對關(guān)鍵字prefix和 mask的值表示。
5、 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述將每一對關(guān)鍵字對應(yīng)地 配置為每一條ACL規(guī)則,包括以中心地址為中心,分別向需要匹配的該段地 址的兩端分段,所分成的每一個地址段的大小是能夠分得的最大的2An,其中n 取非負(fù)整數(shù);所分成的每一個地址段用最長前綴匹配算法中的一對關(guān)鍵字prefix 和mask的值表示。
6、 根據(jù)權(quán)利要求1至4任一所述的方法,其特征在于,所述將每一對關(guān)鍵 字對應(yīng)地配置為每一條ACL規(guī)則之后,進一步包括基于最長前綴匹配方式依 據(jù)配置的ACL規(guī)則對經(jīng)過的數(shù)據(jù)包的地址進行處理。
7、 一種ACL規(guī)則的配置裝置,其特征在于,該裝置包括地址劃分模塊 和匹配配置;f莫塊;其中,地址劃分模塊用于將需要匹配的一段地址進行分段,并使所分成的每一個 地址段由一對關(guān)鍵字表示;配置模塊用于將每一對關(guān)鍵字對應(yīng)地配置為每一條ACL規(guī)則。
8、 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述地址劃分模塊包括中 心地址確定模塊和分段模塊;其中,中心地址確定才莫塊,用于確定需要匹配的一段地址的中心地址; 分段模塊,用于以中心地址為中心,分別向需要匹配的該段地址的兩端,對該段地址進行分革爻。
9、 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述分段模塊具體用于以中心地址為中心,分別向需要匹配的該段地址 的兩端分段,所分成的每一個地址段的大小是能夠分得的最大的2An,其中n 取非負(fù)整數(shù);所分成的每一個地址段用最長前綴匹配算法中的一對關(guān)鍵字prefix 和mask的值表示;所述配置才莫塊,具體用于將所分成的每一個地址段的關(guān)4建字prefix和mask 的值對應(yīng)地配置為每一條ACL規(guī)則的地址段。
10、 根據(jù)權(quán)利要求7至9任一所述的裝置,其特征在于,該裝置進一步包 括匹配模塊,用于基于最長前綴匹配方式依據(jù)配置的ACL規(guī)則對經(jīng)過的數(shù)據(jù) 包的地址進行處理。
全文摘要
一種訪問控制列表規(guī)則的配置方法及裝置。本發(fā)明公開了一種ACL規(guī)則的配置方法,以最長前綴匹配算法為基礎(chǔ),將數(shù)據(jù)包中所需匹配的一段地址字段,以2^n為單元分成盡可能大的若干個地址段,使所分成的每一個地址段由一對關(guān)鍵字prefix和mask的值表示,并將每一對關(guān)鍵字prefix和mask的值配置為每一條ACL規(guī)則,依據(jù)所配置的ACL規(guī)則即可對經(jīng)過的數(shù)據(jù)包的地址進行處理。本發(fā)明還同時公開了一種ACL規(guī)則的配置裝置,采用本發(fā)明所述的方法及裝置,可以大大減少ACL規(guī)則的使用數(shù)量,提高ACL規(guī)則的使用效率,節(jié)省了硬件資源。
文檔編號H04L12/56GK101667964SQ20091009333
公開日2010年3月10日 申請日期2009年9月18日 優(yōu)先權(quán)日2009年9月18日
發(fā)明者李江衛(wèi), 峰 高 申請人:中興通訊股份有限公司