專利名稱:一種保證執(zhí)行正確的方法、裝置和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù),特別是涉及一種保證對(duì)訪問控制列表(ACL)規(guī)則執(zhí)行正確的方法、裝置和系統(tǒng)。
背景技術(shù):
目前,為了使網(wǎng)絡(luò)設(shè)備在接收到報(bào)文時(shí),能夠按照用戶的要求執(zhí)行各種業(yè)務(wù)處理,比如,能夠?qū)邮盏降膱?bào)文進(jìn)行重定向或丟棄所接收到的報(bào)文等,通常需要在網(wǎng)絡(luò)設(shè)備的端口下發(fā)對(duì)應(yīng)的ACL規(guī)則,在ACL規(guī)則中,記錄了各種報(bào)文的業(yè)務(wù)處理要求。當(dāng)網(wǎng)絡(luò)設(shè)備在一個(gè)端口上接收到報(bào)文時(shí),首先將報(bào)文與對(duì)應(yīng)于該端口的ACL規(guī)則進(jìn)行匹配,根據(jù)匹配到的ACL規(guī)則對(duì)報(bào)文進(jìn)行對(duì)應(yīng)的業(yè)務(wù)處理。
在網(wǎng)絡(luò)設(shè)備中,為了記錄向每個(gè)端口下發(fā)的所有ACL規(guī)則,針對(duì)每個(gè)端口設(shè)置了硬件表項(xiàng),包括規(guī)則(RULE)表、掩碼(MASK)表、計(jì)數(shù)器(COUNTER)表和限流(METER)表。其中,MASK表、RULE表、COUNTER表和METER表的具體描述可參見如下表1所示。
表1參見表1,當(dāng)向網(wǎng)絡(luò)設(shè)備的一個(gè)端口下發(fā)ACL規(guī)則時(shí),網(wǎng)絡(luò)設(shè)備將該ACL規(guī)則的內(nèi)容進(jìn)行分解后,分配到對(duì)應(yīng)于該端口的MASK表和RULE表中,如果用戶下發(fā)的動(dòng)作是traffic-statistic或者traffic-limit,則與動(dòng)作相關(guān)的參數(shù)會(huì)保存到對(duì)應(yīng)該端口的COUNTER表和METER表中。
目前,很多網(wǎng)絡(luò)設(shè)備,比如利用Broadcom芯片進(jìn)行報(bào)文處理的網(wǎng)絡(luò)設(shè)備,根據(jù)下發(fā)的ACL規(guī)則設(shè)置硬件表項(xiàng)的原則是如果不同ACL規(guī)則對(duì)應(yīng)同一掩碼,則該不同ACL規(guī)則使用同一個(gè)MASK表項(xiàng),并且在RULE表中將該不同ACL規(guī)則對(duì)應(yīng)的各個(gè)RULE表項(xiàng)放在一起,形成一個(gè)“塊”,而不考慮該不同ACL規(guī)則的下發(fā)次序;如果不同ACL規(guī)則對(duì)應(yīng)不同掩碼,則根據(jù)該不同ACL規(guī)則的下發(fā)次序,依次在MASK表項(xiàng)中建立對(duì)應(yīng)的各個(gè)MASK表項(xiàng),并依次在RULE表中建立對(duì)應(yīng)的各個(gè)RULE表項(xiàng)。比如,用戶向網(wǎng)絡(luò)設(shè)備的端口1依次下發(fā)如下三條ACL規(guī)則rule 1 permit ip source 2.2.11.20rule 2 deny ip source 2.2.11.00.0.0.255rule 3 permit ip source 2.2.11.30其中,首先下發(fā)的rule 1要求轉(zhuǎn)發(fā)源IP地址滿足2.2.11.2/32的報(bào)文,其次下發(fā)的rule 2要求丟棄源IP地址滿足2.2.11.0/24的報(bào)文,最后下發(fā)的rule 3要求轉(zhuǎn)發(fā)源IP地址滿足2.2.11.3/32的報(bào)文。
參見圖1,根據(jù)上述設(shè)置硬件表項(xiàng)的原則,當(dāng)網(wǎng)絡(luò)設(shè)備首先接收到rule 1時(shí),則針對(duì)該rule 1在端口1的MASK表中建立對(duì)應(yīng)的MASK表項(xiàng)1,并針對(duì)該rule 1在端口1的RULE表中建立對(duì)應(yīng)的RULE表項(xiàng)1;當(dāng)網(wǎng)絡(luò)設(shè)備隨后接收到rule 2時(shí),由于rule 2對(duì)應(yīng)的掩碼與rule 1對(duì)應(yīng)的掩碼不同,網(wǎng)絡(luò)設(shè)備則針對(duì)該rule 2在端口1的MASK表中建立對(duì)應(yīng)的MASK表項(xiàng)2,并針對(duì)該rule 2在端口1的RULE表中建立對(duì)應(yīng)的RULE表項(xiàng)2;當(dāng)網(wǎng)絡(luò)設(shè)備最后接收到rule 3時(shí),由于rule 3對(duì)應(yīng)的掩碼與rule 1對(duì)應(yīng)的掩碼相同,網(wǎng)絡(luò)設(shè)備則將rule 3對(duì)應(yīng)的MASK表項(xiàng)設(shè)置為rule 1所對(duì)應(yīng)的MASK表項(xiàng)1,并將針對(duì)該rule3建立的RULE表項(xiàng)3與RULE表項(xiàng)1放在一起,形成一個(gè)“塊”。
在設(shè)置好硬件表項(xiàng)后,當(dāng)網(wǎng)絡(luò)設(shè)備接收到報(bào)文時(shí),則遍歷所有MASK表項(xiàng)和對(duì)應(yīng)的RULE表項(xiàng),為報(bào)文匹配到一系列的動(dòng)作,如果該一系列的動(dòng)作沒有沖突,網(wǎng)絡(luò)設(shè)備則分別執(zhí)行各個(gè)動(dòng)作對(duì)應(yīng)的處理,如果動(dòng)作有沖突,則對(duì)于有沖突的動(dòng)作,只執(zhí)行根據(jù)先建立的MASK表項(xiàng)所匹配到的RULE表項(xiàng)中的動(dòng)作。
目前,用戶所要求的、對(duì)ACL規(guī)則的執(zhí)行原則為先下發(fā)的規(guī)則先生效。對(duì)于依次下發(fā)的rule 1、rule 2和rule 3,由于rule 2中的掩碼長(zhǎng)度較短,只要求滿足一個(gè)IP地址段即可,rule 3中的掩碼長(zhǎng)度較長(zhǎng),要求滿足一個(gè)具體的主機(jī)IP地址,并且,rule 3與rule 2相交,即存在報(bào)文可同時(shí)匹配到rule2和rule 3,而rule 2和rule 3的動(dòng)作又存在沖突,rule 2要求丟棄,rule 3要求轉(zhuǎn)發(fā),按照ACL規(guī)則的執(zhí)行原則,rule 2先下發(fā)應(yīng)該先生效,所以即使可以匹配到rule 3的報(bào)文應(yīng)該首先執(zhí)行rule 2后被執(zhí)行丟棄,而不會(huì)再根據(jù)rule 3執(zhí)行轉(zhuǎn)發(fā)處理。
然而,參見圖1,由于rule 3對(duì)應(yīng)的掩碼與最先下發(fā)的rule 1相同,因此,該rule 3對(duì)應(yīng)的MASK表項(xiàng)和RULE表項(xiàng)均在rule 2對(duì)應(yīng)的MASK表項(xiàng)和RULE表項(xiàng)之前,這樣,當(dāng)網(wǎng)絡(luò)設(shè)備在端口1上接收到可以同時(shí)匹配到rule 3和rule 2的報(bào)文后,由于rule 3和rule 2中的動(dòng)作有沖突,所以只會(huì)執(zhí)行根據(jù)先建立的MASK表項(xiàng)1匹配到的rule 3中的動(dòng)作,即轉(zhuǎn)發(fā)報(bào)文,而不會(huì)執(zhí)行根據(jù)后建立的MASK表項(xiàng)2匹配到的rule 2中的動(dòng)作,即丟棄報(bào)文,這樣,則出現(xiàn)了對(duì)ACL規(guī)則執(zhí)行順序顛倒的問題,也就是說,在實(shí)際的業(yè)務(wù)實(shí)現(xiàn)中,網(wǎng)絡(luò)設(shè)備沒有按照對(duì)ACL規(guī)則的執(zhí)行要求,依次執(zhí)行rule 1、rule2和rule 3對(duì)應(yīng)的業(yè)務(wù)處理。
當(dāng)出現(xiàn)了對(duì)ACL規(guī)則執(zhí)行順序顛倒的問題時(shí),如果執(zhí)行順序顛倒的兩個(gè)ACL規(guī)則之間相交且動(dòng)作存在沖突,比如對(duì)于rule 2和rule 3,rule 2和rule 3相交且動(dòng)作存在沖突,rule 2要求丟棄IP地址滿足2.2.11.3/32規(guī)則的報(bào)文,但rule 3卻要求轉(zhuǎn)發(fā)IP地址滿足2.2.11.3/32規(guī)則的報(bào)文,那么,按照顛倒的順序執(zhí)行該兩個(gè)ACL規(guī)則后,則不能對(duì)報(bào)文進(jìn)行正確的業(yè)務(wù)處理,無法滿足客戶需求。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的第一目的在于提供一種保證執(zhí)行正確的方法,本發(fā)明的第二目的在于提供一種保證執(zhí)行正確的裝置,本發(fā)明的第三目的在于提供一種保證執(zhí)行正確的系統(tǒng),從而保證網(wǎng)絡(luò)設(shè)備能夠正確地執(zhí)行ACL規(guī)則,保證對(duì)報(bào)文進(jìn)行正確的業(yè)務(wù)處理。
為了達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的一種保證執(zhí)行正確的方法,該方法包括將下發(fā)到網(wǎng)絡(luò)設(shè)備任意一個(gè)端口上的所有訪問控制列表ACL規(guī)則進(jìn)行比較,判斷是否存在執(zhí)行順序顛倒的任意兩個(gè)ACL規(guī)則,如果是,則按照先下發(fā)規(guī)則先生效的原則對(duì)該兩個(gè)ACL規(guī)則進(jìn)行調(diào)整;所述網(wǎng)絡(luò)設(shè)備根據(jù)調(diào)整后的所有ACL規(guī)則設(shè)置對(duì)應(yīng)于所述端口的硬件表項(xiàng)。
該方法進(jìn)一步包括在用戶針對(duì)所述端口依次下發(fā)ACL規(guī)則時(shí),根據(jù)下發(fā)的先后順序設(shè)置各個(gè)ACL規(guī)則從高到低的優(yōu)先級(jí),將各個(gè)ACL規(guī)則重新進(jìn)行排序;所述比較為將重新排序后的所有ACL規(guī)則進(jìn)行比較;所述判斷是否存在執(zhí)行順序顛倒的任意兩個(gè)ACL規(guī)則包括在進(jìn)行比較時(shí),判斷對(duì)于任意兩個(gè)ACL規(guī)則,排在前面的ACL規(guī)則的優(yōu)先級(jí)是否小于排在后面的ACL規(guī)則的優(yōu)先級(jí),如果是,則確定存在執(zhí)行順序顛倒的兩個(gè)ACL規(guī)則。
所述將各個(gè)ACL規(guī)則重新進(jìn)行排序的步驟包括按照ACL規(guī)則掩碼長(zhǎng)度從大到小的順序,對(duì)需要下發(fā)到網(wǎng)絡(luò)設(shè)備任意一個(gè)端口上的所有ACL規(guī)則進(jìn)行從前到后的排序。
在判斷出存在執(zhí)行順序顛倒的兩個(gè)ACL規(guī)則后,并在進(jìn)行調(diào)整前,進(jìn)一步包括判斷所述兩個(gè)ACL規(guī)則是否相交且是否存在動(dòng)作沖突,如果均是,則繼續(xù)執(zhí)行所述的按照先下發(fā)規(guī)則先生效的原則對(duì)該兩個(gè)ACL規(guī)則進(jìn)行調(diào)整的步驟。
所述對(duì)兩個(gè)ACL規(guī)則進(jìn)行調(diào)整的步驟包括生成一個(gè)新的ACL規(guī)則,該新規(guī)則的動(dòng)作包括所述兩個(gè)ACL規(guī)則中,需要先生效的ACL規(guī)則中、與需要后生效的ACL規(guī)則相沖突的動(dòng)作,并將新規(guī)則排在所述兩個(gè)ACL規(guī)則的前面。
所生成新規(guī)則的動(dòng)作中包括所述兩個(gè)ACL規(guī)則中,需要先生效的ACL規(guī)則中、與需要后生效的ACL規(guī)則不沖突的動(dòng)作。
在進(jìn)行比較時(shí),進(jìn)一步包括對(duì)于任意兩個(gè)ACL規(guī)則,判斷其中當(dāng)前需要后生效的ACL規(guī)則是否被當(dāng)前需要先生效的ACL規(guī)則所覆蓋,如果是,則刪除該當(dāng)前需要后生效的ACL規(guī)則。
該方法進(jìn)一步包括在用戶針對(duì)所述端口依次下發(fā)ACL規(guī)則時(shí),根據(jù)下發(fā)的先后順序設(shè)置各個(gè)ACL規(guī)則從高到低的優(yōu)先級(jí);所述當(dāng)前需要后生效的ACL規(guī)則為所述兩個(gè)ACL規(guī)則中優(yōu)先級(jí)較低的ACL規(guī)則;所述當(dāng)前需要先生效的ACL規(guī)則為所述兩個(gè)ACL規(guī)則中優(yōu)先級(jí)較高的ACL規(guī)則。
該方法進(jìn)一步包括按照ACL規(guī)則掩碼長(zhǎng)度從大到小的順序,對(duì)需要下發(fā)到網(wǎng)絡(luò)設(shè)備任意一個(gè)端口上的所有ACL規(guī)則進(jìn)行從前到后的排序;所述進(jìn)行比較為在重新排序后的所有ACL規(guī)則中,將每一個(gè)ACL規(guī)則與排在其后的所有ACL規(guī)則分別進(jìn)行比較。
在所述網(wǎng)絡(luò)設(shè)備設(shè)置硬件表項(xiàng)之后,進(jìn)一步包括當(dāng)需要向所述網(wǎng)絡(luò)設(shè)備的所述端口下發(fā)一個(gè)新增ACL規(guī)則時(shí),將該新增ACL規(guī)則與之前下發(fā)的ACL規(guī)則進(jìn)行比較,判斷新增ACL規(guī)則和與其比較的ACL規(guī)則是否會(huì)執(zhí)行順序顛倒,如果是,則按照先下發(fā)規(guī)則先生效的原則對(duì)新增ACL規(guī)則和與其比較的ACL規(guī)則進(jìn)行調(diào)整;所述網(wǎng)絡(luò)設(shè)備根據(jù)所進(jìn)行的調(diào)整,更新對(duì)應(yīng)于所述端口的硬件表項(xiàng)。
在判斷出新增ACL規(guī)則和與其比較的ACL規(guī)則執(zhí)行順序顛倒之后,并在執(zhí)行所述調(diào)整之前,進(jìn)一步包括判斷新增ACL規(guī)則和與其比較的ACL規(guī)則是否相交且是否存在動(dòng)作沖突,如果均是,則繼續(xù)執(zhí)行所述的調(diào)整的步驟。
所述進(jìn)行調(diào)整包括生成一個(gè)新的ACL規(guī)則,該新規(guī)則的動(dòng)作包括新增ACL規(guī)則和與其比較的ACL規(guī)則兩者中,需要先生效的ACL規(guī)則中、與需要后生效的ACL規(guī)則相沖突的動(dòng)作;所述更新對(duì)應(yīng)于所述端口的硬件表項(xiàng)的步驟包括網(wǎng)絡(luò)設(shè)備根據(jù)所生成的新規(guī)則與所述新增ACL規(guī)則,更新對(duì)應(yīng)于所述端口的硬件表項(xiàng)。
由所述網(wǎng)絡(luò)設(shè)備在所述端口上依次接收到各個(gè)ACL規(guī)則后,執(zhí)行所述的比較和調(diào)整的步驟。
在將所有ACL規(guī)則下發(fā)到網(wǎng)絡(luò)設(shè)備的所述端口上之前,由預(yù)先設(shè)置的獨(dú)立于所述網(wǎng)絡(luò)設(shè)備的一個(gè)保證執(zhí)行正確的設(shè)備執(zhí)行所述的比較和調(diào)整的步驟;在執(zhí)行所述調(diào)整之后,并在由所述網(wǎng)絡(luò)設(shè)備設(shè)置硬件表項(xiàng)之前,進(jìn)一步包括所述保證執(zhí)行正確的設(shè)備將調(diào)整后的所有ACL規(guī)則依次下發(fā)到網(wǎng)絡(luò)設(shè)備的所述端口上。
一種保證執(zhí)行正確的裝置,該裝置包括交互單元和調(diào)整單元,其中,交互單元,用于依次接收下發(fā)到網(wǎng)絡(luò)設(shè)備任意一個(gè)端口上的所有ACL規(guī)則;
調(diào)整單元,用于在交互單元接收到需要下發(fā)到網(wǎng)絡(luò)設(shè)備任意一個(gè)端口上的所有ACL規(guī)則時(shí),將所有ACL規(guī)則進(jìn)行比較,判斷是否存在執(zhí)行順序顛倒的任意兩個(gè)ACL規(guī)則,在確定存在后,按照先下發(fā)規(guī)則先生效的原則對(duì)該任意兩個(gè)ACL規(guī)則進(jìn)行調(diào)整。
所述調(diào)整單元進(jìn)一步在確定任意兩個(gè)ACL規(guī)則相交且存在動(dòng)作沖突后,執(zhí)行按照先下發(fā)規(guī)則先生效的原則對(duì)該任意兩個(gè)ACL規(guī)則進(jìn)行調(diào)整。
一種保證執(zhí)行順序正確的系統(tǒng),該系統(tǒng)包括保證執(zhí)行順序正確的裝置和網(wǎng)絡(luò)設(shè)備,其中,保證執(zhí)行順序正確的裝置,將下發(fā)到網(wǎng)絡(luò)設(shè)備任意一個(gè)端口上的所有ACL規(guī)則進(jìn)行比較,判斷是否存在執(zhí)行順序顛倒的任意兩個(gè)ACL規(guī)則,如果是,則按照先下發(fā)規(guī)則先生效的原則對(duì)該任意兩個(gè)ACL規(guī)則進(jìn)行調(diào)整;網(wǎng)絡(luò)設(shè)備,用于根據(jù)調(diào)整后的所有ACL規(guī)則設(shè)置硬件表項(xiàng),并在接收到報(bào)文時(shí),根據(jù)所設(shè)置的硬件表項(xiàng)對(duì)報(bào)文進(jìn)行對(duì)應(yīng)的業(yè)務(wù)處理。
所述保證執(zhí)行順序正確的裝置集成在所述網(wǎng)絡(luò)設(shè)備中;或者,所述保證執(zhí)行順序正確的裝置設(shè)置在獨(dú)立于所述網(wǎng)絡(luò)設(shè)備的一個(gè)設(shè)備中,該保證執(zhí)行順序正確的裝置在進(jìn)行調(diào)整之后,進(jìn)一步將調(diào)整后的所有ACL規(guī)則下發(fā)到所述網(wǎng)絡(luò)設(shè)備的所述端口上。
由此可見,在本發(fā)明中,在將針對(duì)網(wǎng)絡(luò)設(shè)備一個(gè)端口的所有ACL規(guī)則下發(fā)之前,首先對(duì)這些ACL規(guī)則進(jìn)行一系列的比較,當(dāng)比較出任意兩個(gè)ACL規(guī)則的執(zhí)行順序顛倒,并進(jìn)一步確定該兩個(gè)ACL規(guī)則相交且存在動(dòng)作沖突后,按照先下發(fā)規(guī)則先生效的原則,對(duì)該任意兩個(gè)ACL規(guī)則進(jìn)行調(diào)整;將調(diào)整后的所有ACL規(guī)則依次下發(fā)到網(wǎng)絡(luò)設(shè)備的所述端口上,網(wǎng)絡(luò)設(shè)備根據(jù)所接收到的調(diào)整后的ACL規(guī)則執(zhí)行對(duì)應(yīng)的業(yè)務(wù)。因此,本發(fā)明可以保證網(wǎng)絡(luò)設(shè)備能夠正確地執(zhí)行ACL規(guī)則,保證對(duì)報(bào)文進(jìn)行正確的業(yè)務(wù)處理。
圖1是在現(xiàn)有技術(shù)中針對(duì)下發(fā)的三條ACL規(guī)則建立MASK表項(xiàng)和RULE表項(xiàng)的示意圖。
圖2A是在本發(fā)明中保證執(zhí)行正確的裝置的結(jié)構(gòu)示意圖。
圖2B是在本發(fā)明中保證執(zhí)行正確的系統(tǒng)的結(jié)構(gòu)示意圖。
圖3是在本發(fā)明實(shí)施例中保證對(duì)ACL規(guī)則執(zhí)行正確的流程圖。
具體實(shí)施例方式
本發(fā)明提出了一種保證對(duì)ACL規(guī)則執(zhí)行正確的方法,其核心思想是將下發(fā)到網(wǎng)絡(luò)設(shè)備任意一個(gè)端口上的所有ACL規(guī)則進(jìn)行比較,判斷是否存在執(zhí)行順序顛倒的任意兩個(gè)ACL規(guī)則,如果是,則按照先下發(fā)規(guī)則先生效的原則對(duì)該兩個(gè)ACL規(guī)則進(jìn)行調(diào)整;所述網(wǎng)絡(luò)設(shè)備根據(jù)調(diào)整后的所有ACL規(guī)則設(shè)置對(duì)應(yīng)于所述端口的硬件表項(xiàng)。
相應(yīng)的,本發(fā)明還提出了一種保證對(duì)ACL規(guī)則執(zhí)行正確的裝置。圖2A是在本發(fā)明中保證執(zhí)行正確的裝置的結(jié)構(gòu)示意圖。參見圖2A,在本發(fā)明中,保證對(duì)ACL規(guī)則執(zhí)行正確的裝置包括交互單元和調(diào)整單元,其中,交互單元,用于依次接收下發(fā)到網(wǎng)絡(luò)設(shè)備任意一個(gè)端口上的所有ACL規(guī)則;調(diào)整單元,用于在交互單元接收到需要下發(fā)到網(wǎng)絡(luò)設(shè)備任意一個(gè)端口上的所有ACL規(guī)則時(shí),將所有ACL規(guī)則進(jìn)行比較,判斷是否存在執(zhí)行順序顛倒的任意兩個(gè)ACL規(guī)則,在確定存在后,按照先下發(fā)規(guī)則先生效的原則對(duì)該任意兩個(gè)ACL規(guī)則進(jìn)行調(diào)整。
相應(yīng)的,本發(fā)明還提出了一種保證對(duì)ACL規(guī)則執(zhí)行正確的系統(tǒng)。圖2B是在本發(fā)明中保證執(zhí)行正確的系統(tǒng)的結(jié)構(gòu)示意圖。參見圖2B,該系統(tǒng)包括圖2A所示的保證執(zhí)行正確的裝置以及網(wǎng)絡(luò)設(shè)備,其中,保證執(zhí)行正確的裝置,將下發(fā)到網(wǎng)絡(luò)設(shè)備任意一個(gè)端口上的所有ACL規(guī)則進(jìn)行比較,判斷是否存在執(zhí)行順序顛倒的任意兩個(gè)ACL規(guī)則,如果是,則按照先下發(fā)規(guī)則先生效的原則對(duì)該任意兩個(gè)ACL規(guī)則進(jìn)行調(diào)整;網(wǎng)絡(luò)設(shè)備,用于根據(jù)保證執(zhí)行正確的裝置所調(diào)整后的所有ACL規(guī)則,設(shè)置硬件表項(xiàng),并在接收到報(bào)文時(shí),根據(jù)所設(shè)置的硬件表項(xiàng)對(duì)報(bào)文進(jìn)行對(duì)應(yīng)的業(yè)務(wù)處理。
在本發(fā)明中,所述保證執(zhí)行正確的裝置可以集成在所述網(wǎng)絡(luò)設(shè)備中;或者,所述保證執(zhí)行正確的裝置也可以設(shè)置在獨(dú)立于所述網(wǎng)絡(luò)設(shè)備的一個(gè)設(shè)備中,此時(shí),該保證執(zhí)行正確的裝置在進(jìn)行調(diào)整之后,進(jìn)一步將調(diào)整后的所有ACL規(guī)則下發(fā)到所述網(wǎng)絡(luò)設(shè)備的所述端口上。
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述。
圖3是在本發(fā)明實(shí)施例中保證對(duì)ACL規(guī)則執(zhí)行正確的流程圖。參見圖2A、圖2B和圖3,在本實(shí)施例中,保證ACL規(guī)則執(zhí)行正確的過程包括以下步驟步驟301接收用戶下發(fā)的、需要分配到網(wǎng)絡(luò)設(shè)備任意一個(gè)端口上的所有ACL規(guī)則。
為便于描述,在以下過程中,以所針對(duì)的任意一個(gè)端口為網(wǎng)絡(luò)設(shè)備中的端口1為例進(jìn)行說明。
步驟302根據(jù)用戶下發(fā)ACL規(guī)則的順序,為接收到的每個(gè)ACL規(guī)則設(shè)置優(yōu)先級(jí)。
在本步驟中,為每個(gè)ACL規(guī)則設(shè)置優(yōu)先級(jí)是為了在后續(xù)過程中能夠通過該優(yōu)先級(jí)表示用戶所要求的ACL規(guī)則的生效順序。并且,所述的優(yōu)先級(jí)可以為能夠表示生效先后順序的數(shù)值。比如,對(duì)于用戶下發(fā)的第1條ACL規(guī)則,設(shè)置其對(duì)應(yīng)的優(yōu)先級(jí)為最高優(yōu)先級(jí)1,對(duì)于用戶下發(fā)的第2條ACL規(guī)則,設(shè)置其對(duì)應(yīng)的優(yōu)先級(jí)為次高優(yōu)先級(jí)2,對(duì)于用戶下發(fā)的第n條ACL規(guī)則,設(shè)置其對(duì)應(yīng)的優(yōu)先級(jí)為n等。
步驟303按照ACL規(guī)則掩碼長(zhǎng)度從大到小的順序,對(duì)所接收到的所有ACL規(guī)則進(jìn)行從前到后的排序。
這里,對(duì)于掩碼長(zhǎng)度大的ACL規(guī)則,報(bào)文在匹配該ACL規(guī)則時(shí)的匹配長(zhǎng)度也大,即必須滿足較為嚴(yán)格的匹配條件時(shí),才會(huì)執(zhí)行該ACL規(guī)則;而對(duì)于掩碼長(zhǎng)度小的ACL規(guī)則,報(bào)文在匹配該ACL規(guī)則時(shí)的匹配長(zhǎng)度也小,即只需滿足較為寬泛的匹配條件,就可執(zhí)行該ACL規(guī)則。比如,對(duì)于上述的ACL規(guī)則rule 3和rule 2,由于rule 3的掩碼長(zhǎng)度較大,必須滿足一個(gè)具體的IP地址匹配條件后才會(huì)執(zhí)行rule 3,而rule 2的掩碼長(zhǎng)度較小,只需滿足在一個(gè)IP地址段內(nèi)就會(huì)執(zhí)行rule 2。因此可見,掩碼長(zhǎng)度大的ACL規(guī)則存在被掩碼長(zhǎng)度小的ACL規(guī)則所覆蓋的可能,這樣,在本步驟中,將掩碼長(zhǎng)度大的ACL規(guī)則排在前面,掩碼長(zhǎng)度小的ACL規(guī)則排在后面,使得可能被其他ACL規(guī)則所覆蓋的ACL規(guī)則能夠盡可能的先下發(fā)先得到執(zhí)行。
需要說明的是,在本步驟中,如果存在兩個(gè)ACL規(guī)則的掩碼長(zhǎng)度相同,那么,則比較該兩個(gè)ACL規(guī)則的優(yōu)先級(jí),由于優(yōu)先級(jí)高的ACL規(guī)則是用戶先下發(fā)的,所以將優(yōu)先級(jí)高的ACL規(guī)則排在優(yōu)先級(jí)低的ACL規(guī)則之前。
步驟304在排序后的所有ACL規(guī)則中,選擇一個(gè)未被選擇過的ACL規(guī)則。
在本步驟中,較佳地,可以按照從前到后的順序來選擇一個(gè)未被選擇過的ACL規(guī)則。也就是說,通過本步驟的處理過程,首先選擇的可以是排在第一個(gè)的ACL規(guī)則,依此類推,直至選擇排在最后的ACL規(guī)則。
步驟305判斷在當(dāng)前所選的ACL規(guī)則之后的各ACL規(guī)則中,是否存在還未與當(dāng)前所選的ACL規(guī)則進(jìn)行比較的ACL規(guī)則,如果是,則執(zhí)行步驟306,否則,返回執(zhí)行步驟304。
步驟306選擇在當(dāng)前所選的ACL規(guī)則之后且未與當(dāng)前所選的ACL規(guī)則進(jìn)行比較的一個(gè)ACL規(guī)則(稱為當(dāng)前所比較的ACL規(guī)則),判斷當(dāng)前所選的ACL規(guī)則的優(yōu)先級(jí)是否大于或等于當(dāng)前所比較的ACL規(guī)則的優(yōu)先級(jí),如果是,則直接結(jié)束與該當(dāng)前所比較的ACL規(guī)則的比較,返回執(zhí)行步驟305,否則,執(zhí)行步驟307。
這里,由于掩碼長(zhǎng)度大的ACL規(guī)則排在掩碼長(zhǎng)度小的ACL規(guī)則之前,且在本步驟中,當(dāng)前所選的ACL規(guī)則是與排在其后的ACL規(guī)則進(jìn)行比較,因此,當(dāng)前所選的ACL規(guī)則存在被當(dāng)前所比較的ACL規(guī)則所覆蓋的可能性。在此種情況下,如果當(dāng)前所選的ACL規(guī)則的優(yōu)先級(jí)大于或等于當(dāng)前所比較的ACL規(guī)則,則說明當(dāng)前所選的ACL規(guī)則下發(fā)到網(wǎng)絡(luò)設(shè)備的次序先于或等于當(dāng)前所比較的ACL規(guī)則,即使后續(xù)過程可確定兩者存在動(dòng)作沖突,其執(zhí)行也滿足用戶要求,不會(huì)錯(cuò)誤,此時(shí),當(dāng)前所選的ACL規(guī)則可以舉例為上述的rule 1,當(dāng)前所比較的ACL規(guī)則可以舉例為rule 2,因此,直接結(jié)束與當(dāng)前所比較的ACL規(guī)則的比較;相反,如果當(dāng)前所選的ACL規(guī)則的優(yōu)先級(jí)小于當(dāng)前所比較的ACL規(guī)則,則說明,不但存在被覆蓋的可能性,而且當(dāng)前所選的ACL規(guī)則的下發(fā)到網(wǎng)絡(luò)設(shè)備的次序應(yīng)后于當(dāng)前所比較的ACL規(guī)則,此時(shí),當(dāng)前所選的ACL規(guī)則可以舉例為上述的rule 3,當(dāng)前所比較的ACL規(guī)則可以舉例為rule 2,這樣,如果后續(xù)過程可確定該兩者的動(dòng)作存在沖突,則會(huì)存在ACL規(guī)則執(zhí)行錯(cuò)誤的問題,因此,應(yīng)繼續(xù)通過步驟307及其后續(xù)過程進(jìn)一步確定。
步驟307判斷當(dāng)前所選的ACL規(guī)則是否被當(dāng)前所比較的ACL規(guī)則所覆蓋,如果是,則直接刪除當(dāng)前所選的ACL規(guī)則,返回步驟304,否則,執(zhí)行步驟308。
這里,當(dāng)前所選的ACL規(guī)則被當(dāng)前所比較的ACL規(guī)則所覆蓋的情況可以是當(dāng)前所比較的ACL規(guī)則包含了當(dāng)前所選的ACL規(guī)則的全部?jī)?nèi)容,即任何滿足當(dāng)前所選ACL規(guī)則的報(bào)文一定滿足當(dāng)前所比較的ACL規(guī)則;或者,當(dāng)前所比較的ACL規(guī)則與當(dāng)前所選的ACL規(guī)則相同。
執(zhí)行到本步驟,由于當(dāng)前所選的ACL規(guī)則的優(yōu)先級(jí)小于當(dāng)前所比較的ACL規(guī)則的優(yōu)先級(jí),即按照要求,當(dāng)前所比較的ACL規(guī)則應(yīng)先于當(dāng)前所選的ACL規(guī)則而生效,在此種情況下,如果當(dāng)前所選的ACL規(guī)則被當(dāng)前所比較的ACL規(guī)則所覆蓋,那么,當(dāng)前所選的ACL規(guī)則即使下發(fā)到網(wǎng)絡(luò)設(shè)備,也永遠(yuǎn)不會(huì)被執(zhí)行,所以較佳地,可以直接刪除當(dāng)前所選的ACL規(guī)則,當(dāng)然,直接刪除當(dāng)前所選的ACL規(guī)則只是一種較佳地處理方式,在實(shí)際的業(yè)務(wù)實(shí)現(xiàn)中也可以不刪除,而直接下發(fā);
如果當(dāng)前所選的ACL規(guī)則不被當(dāng)前所比較的ACL規(guī)則所覆蓋,則說明仍有可能會(huì)存在ACL規(guī)則執(zhí)行錯(cuò)誤的問題,應(yīng)繼續(xù)通過步驟308及其后續(xù)過程進(jìn)一步確定。
步驟308判斷當(dāng)前所選的ACL規(guī)則與當(dāng)前所比較的ACL規(guī)則是否相交,如果是,則執(zhí)行步驟309,否則,直接結(jié)束與當(dāng)前所比較的ACL規(guī)則的比較,返回執(zhí)行步驟305。
這里,所述的當(dāng)前所選的ACL規(guī)則與當(dāng)前所比較的ACL規(guī)則相交的情況可以是當(dāng)前所選的ACL規(guī)則與當(dāng)前所比較的ACL規(guī)則具有一部分相同的內(nèi)容和一部分不同的內(nèi)容,即存在報(bào)文可同時(shí)匹配到當(dāng)前所選的ACL規(guī)則與當(dāng)前所比較的ACL規(guī)則,同時(shí)也存在報(bào)文只滿足其中一個(gè)規(guī)則。比如,上述rule 2和rule 3,由于rule 3中的IP地址為rule 2IP地址段中的一個(gè),所以rule 2和rule 3相交。
在本步驟中,如果當(dāng)前所選的ACL規(guī)則與當(dāng)前所比較的ACL規(guī)則不相交,則說明無論先執(zhí)行當(dāng)前所選的ACL規(guī)則還是當(dāng)前所比較的ACL規(guī)則,均不會(huì)導(dǎo)致ACL規(guī)則執(zhí)行錯(cuò)誤的問題,因此,可以結(jié)束當(dāng)前的比較,相反,如果相交,則說明該兩個(gè)規(guī)則很可能會(huì)導(dǎo)致ACL規(guī)則執(zhí)行錯(cuò)誤的問題,應(yīng)通過步驟309及其后續(xù)過程進(jìn)一步確定。
步驟309判斷當(dāng)前所選的ACL規(guī)則與當(dāng)前所比較的ACL規(guī)則的動(dòng)作是否存在沖突,如果是,則執(zhí)行步驟310,否則,直接結(jié)束與當(dāng)前所比較的ACL規(guī)則的比較,返回執(zhí)行步驟305。
執(zhí)行到本步驟時(shí),由于當(dāng)前所選的ACL規(guī)則的優(yōu)先級(jí)小于當(dāng)前所比較的ACL規(guī)則的優(yōu)先級(jí),即用戶要求當(dāng)前所比較的ACL規(guī)則先生效,但是,當(dāng)前所選的ACL規(guī)則排在當(dāng)前所比較的ACL規(guī)則的前面,會(huì)先被下發(fā)而執(zhí)行生效,這樣,則出現(xiàn)了執(zhí)行順序顛倒的問題。在此種情況下,如果當(dāng)前所選的ACL規(guī)則與當(dāng)前所比較的ACL規(guī)則相交且動(dòng)作存在沖突,則一定會(huì)出現(xiàn)ACL規(guī)則執(zhí)行錯(cuò)誤的問題,此時(shí),當(dāng)前所選的ACL規(guī)則可以舉例為上述的rule 3,當(dāng)前所比較的ACL規(guī)則可以舉例為上述的rule 2,因此一定要采取后續(xù)步驟310的調(diào)整措施,保證存在沖突的動(dòng)作中,用戶所要求的當(dāng)前所比較ACL規(guī)則中的相應(yīng)動(dòng)作先生效。
在上述步驟306至步驟309的比較過程中,對(duì)于當(dāng)前所選的ACL規(guī)則和當(dāng)前所比較的ACL規(guī)則,是先比較其優(yōu)先級(jí),再比較是否相交,然后比較是否存在動(dòng)作沖突,從而確定該兩個(gè)ACL是否會(huì)導(dǎo)致執(zhí)行錯(cuò)誤,是否應(yīng)該進(jìn)行調(diào)整。需要說明的是,上述步驟306至步驟309的比較過程只是本實(shí)施例所列舉的將兩個(gè)ACL規(guī)則進(jìn)行比較的一種可行的實(shí)施方式,在實(shí)際的業(yè)務(wù)實(shí)現(xiàn)中,也可以采用其他的比較方式,比如,先判斷當(dāng)前所選的ACL規(guī)則與當(dāng)前所比較ACL規(guī)則是否相交且存在動(dòng)作沖突,再判斷該兩個(gè)ACL規(guī)則的優(yōu)先級(jí)等。無論采用何種方式,只要能確定當(dāng)前所選的ACL規(guī)則先下發(fā)到硬件表項(xiàng),且當(dāng)前所選的ACL規(guī)則與當(dāng)前所比較ACL規(guī)則相交且存在動(dòng)作沖突,且用戶要求當(dāng)前所比較ACL規(guī)則先生效,即當(dāng)前所選的ACL規(guī)則的優(yōu)先級(jí)小于當(dāng)前所比較ACL規(guī)則的優(yōu)先級(jí),那么,就可執(zhí)行后續(xù)步驟310的調(diào)整處理。
步驟310生成一個(gè)新規(guī)則,將所生成的新規(guī)則排在當(dāng)前所選的ACL規(guī)則的前面,并在后續(xù)過程中,不再執(zhí)行將所生成的新規(guī)則與當(dāng)前所選ACL規(guī)則及當(dāng)前所比較ACL規(guī)則進(jìn)行比較和調(diào)整的處理。
執(zhí)行到本步驟時(shí),由于當(dāng)前所選ACL規(guī)則中的動(dòng)作記為動(dòng)作1,與當(dāng)前所比較ACL規(guī)則的動(dòng)作記為動(dòng)作2,存在沖突,但由于用戶要求當(dāng)前所比較的ACL規(guī)則中的動(dòng)作2先生效,因此,在本步驟中,所生成的新規(guī)則的動(dòng)作一定包括當(dāng)前所比較ACL規(guī)則與當(dāng)前所選ACL規(guī)則相沖突的動(dòng)作,即動(dòng)作2。進(jìn)一步地,由于執(zhí)行到本步驟時(shí),由于用戶要求當(dāng)前所比較的ACL規(guī)則中的動(dòng)作先生效,因此,所生成新規(guī)則的動(dòng)作還可以進(jìn)一步包括當(dāng)前所比較ACL規(guī)則中除動(dòng)作2之外的其他動(dòng)作,也就是說,所生成的新規(guī)則的動(dòng)作可以與當(dāng)前所比較ACL規(guī)則的動(dòng)作完全相同。
并且,所生成的新規(guī)則對(duì)應(yīng)的優(yōu)先級(jí)為當(dāng)前所比較ACL規(guī)則的優(yōu)先級(jí)。
按照上述步驟306至步驟310的過程,則完成了對(duì)當(dāng)前所選的ACL規(guī)則與排在其后的一個(gè)ACL規(guī)則的比較和調(diào)整。
步驟311判斷當(dāng)前是否還存在未被選擇過的ACL規(guī)則,如果是,則返回步驟304,否則,直接執(zhí)行步驟312。
通過上述步驟304至步驟311的過程,則實(shí)現(xiàn)了將需要下發(fā)到網(wǎng)絡(luò)設(shè)備任意一個(gè)端口上的所有ACL規(guī)則兩兩進(jìn)行比較,并根據(jù)每一次的比較結(jié)果執(zhí)行對(duì)應(yīng)調(diào)整的處理。
另外,為了更加清楚地體現(xiàn)本發(fā)明采用的主要關(guān)鍵技術(shù)手段,以排序后的所有ACL規(guī)則作為結(jié)點(diǎn)依次排在鏈表List的從頭到尾的位置為例,上述步驟304至步驟311的過程可通過下述的程序語言和描述語言來直觀地體現(xiàn)對(duì)List執(zhí)行如下操作第一步為L(zhǎng)ist中的結(jié)點(diǎn)建立一個(gè)關(guān)系矩陣Matrix該矩陣的取值表明兩個(gè)節(jié)點(diǎn)是否作過比較了,如rule1.ID=ID1,rule2.ID=ID2,則Matrix(ID1,ID2)=Matrix(ID2,ID1)=1時(shí),就表示這兩個(gè)rule已經(jīng)做過比較了。
初始時(shí),Matrix的值都為0。
第二步假設(shè)現(xiàn)在List中規(guī)則從前往后的次序?yàn)镽1,R2,R3,......,Rn第三步將R1依次與R2,R3,......,Rn作比較for(i=2;i<=n;i++){(A)若Matrix(R1.ID,Ri.ID)=1,則原來做過比較了,不用再比較。Continue;設(shè)置Matrix(R1.ID,Ri.ID)=Matrix(Ri.ID,R1.ID)=1(B)若R1.Pri>=Ri.Pri,則不做比較,continue;(C)若Ri包含R1,或Ri=R1,則刪除結(jié)點(diǎn)R1;R1.ID被釋放,以后可以被其他新節(jié)點(diǎn)使用,并將Matrix中與R1.ID相關(guān)的各項(xiàng)清零,退出循環(huán);若R1,Ri不相交,則直接continue;若R1,Ri相交,且R1.Act與Ri.Act沒有沖突,則直接continue;(D)否則,此時(shí)R1,Ri相交,且R1.Act與Ri.Act有沖突,這時(shí)就產(chǎn)生了優(yōu)先級(jí)的跳躍,需要生成一個(gè)輔助規(guī)則來解決,所以我們生成一個(gè)新的結(jié)點(diǎn)Rn+1,作為R1,Ri的交集,它滿足Rn+1.Pri=Ri.Pri,Rn+1.Act=Ri.Act,Rn+1.ID于其他節(jié)點(diǎn)不同;同時(shí)紀(jì)錄Matrix(R1.ID,Rn+1.ID)=Matrix(Rn+1.ID,R1.ID)=1;Matrix(Ri.ID,Rn+1.ID)=Matrix(Rn+1.ID,Ri.ID)=1;并將新節(jié)點(diǎn)加入List中,退出循環(huán)}如果是由于刪除或添加節(jié)點(diǎn)退出循環(huán)(此時(shí)i?。絥+1),轉(zhuǎn)到第二步;否則,繼續(xù)下一步。
第四步將R2依次與R3,R4,......,Rn作比較按第三步相同的操作處理……第n+1步將Rn-1與Rn作比較按第三步相同的操作處理步驟312按照當(dāng)前ACL規(guī)則的排列順序,從前往后依次將各個(gè)ACL規(guī)則下發(fā)到網(wǎng)絡(luò)設(shè)備的端口1。
參見圖2A,本步驟的過程可以由本發(fā)明裝置中的調(diào)整單元和交互單元共同執(zhí)行,即,調(diào)整單元按照當(dāng)前ACL規(guī)則的排列順序?qū)⑺蠥CL規(guī)則依次發(fā)送至交互單元,交互單元根據(jù)調(diào)整單元發(fā)來ACL規(guī)則的順序,依次將各個(gè)ACL規(guī)則下發(fā)到網(wǎng)絡(luò)設(shè)備的端口1。
步驟313網(wǎng)絡(luò)設(shè)備根據(jù)在端口1上接收到的各個(gè)ACL規(guī)則,設(shè)置對(duì)應(yīng)于端口1的硬件表項(xiàng)。
步驟314網(wǎng)絡(luò)設(shè)備在端口1上接收到報(bào)文時(shí),在對(duì)應(yīng)于端口1的硬件表項(xiàng)中進(jìn)行匹配,根據(jù)匹配結(jié)果執(zhí)行對(duì)應(yīng)的業(yè)務(wù)處理。
這里,網(wǎng)絡(luò)設(shè)備在對(duì)應(yīng)于端口1的硬件表項(xiàng)中遍歷所有MASK表項(xiàng)和對(duì)應(yīng)的RULE表項(xiàng),為報(bào)文匹配到一系列的動(dòng)作,如果該一系列的動(dòng)作沒有沖突,則分別執(zhí)行各個(gè)動(dòng)作,如果動(dòng)作有沖突,則對(duì)于有沖突的動(dòng)作,只執(zhí)行根據(jù)先建立的MASK表項(xiàng)所匹配到的RULE表項(xiàng)中的動(dòng)作。
上述步驟313至步驟314的過程與現(xiàn)有技術(shù)的相應(yīng)過程完全相同。
在上述圖3所示過程中,是在確定了兩個(gè)ACL規(guī)則執(zhí)行順序顛倒且該兩個(gè)ACL規(guī)則相交且存在動(dòng)作沖突后,才執(zhí)行調(diào)整處理,即生成新規(guī)則。在實(shí)際的業(yè)務(wù)實(shí)現(xiàn)中,為了保證網(wǎng)絡(luò)設(shè)備能夠正確地執(zhí)行ACL規(guī)則,保證對(duì)報(bào)文進(jìn)行正確的業(yè)務(wù)處理,無論兩個(gè)ACL規(guī)則是否相交且存在動(dòng)作沖突,只要確定了兩個(gè)ACL規(guī)則執(zhí)行順序顛倒,就可以執(zhí)行上述的調(diào)整處理即生成新規(guī)則。
需要說明的是,利用上述圖3所示過程將需要下發(fā)到端口1的所有ACL規(guī)則進(jìn)行比較和調(diào)整,且網(wǎng)絡(luò)設(shè)備根據(jù)該調(diào)整后的ACL規(guī)則設(shè)置了硬件表項(xiàng)之后,如果用戶又有新增ACL規(guī)則需要下發(fā)到端口1,那么,本發(fā)明的處理過程包括接收新增ACL規(guī)則,將該新增ACL規(guī)則與之前下發(fā)的ACL規(guī)則進(jìn)行比較,判斷新增ACL規(guī)則和與其比較的ACL規(guī)則是否會(huì)執(zhí)行順序顛倒,如果是,還可以進(jìn)一步判斷新增ACL規(guī)則和與其比較的ACL規(guī)則是否相交且是否存在動(dòng)作沖突,如果是,則按照先下發(fā)規(guī)則先生效的原則對(duì)新增ACL規(guī)則和與其比較的ACL規(guī)則進(jìn)行調(diào)整,該調(diào)整與圖3所述相應(yīng)內(nèi)容相同,也是生成一個(gè)新的ACL規(guī)則,該新規(guī)則的動(dòng)作包括新增ACL規(guī)則和與其比較的ACL規(guī)則兩者中,需要先生效的ACL規(guī)則中、與需要后生效的ACL規(guī)則相沖突的動(dòng)作;然后,網(wǎng)絡(luò)設(shè)備根據(jù)所生成的新規(guī)則與所述新增ACL規(guī)則,更新對(duì)應(yīng)于所述端口的硬件表項(xiàng)。
還需要說明的是,參見圖2A的本發(fā)明裝置,圖3中的步驟301以及在接收新增ACL規(guī)則的過程可以由本發(fā)明裝置中的交互單元來執(zhí)行;圖3中的步驟302至步驟311的過程以及對(duì)于新增ACL規(guī)則時(shí)的比較和調(diào)整的過程,可以由本發(fā)明裝置中的調(diào)整單元來執(zhí)行。
并且,參見圖2B的本發(fā)明系統(tǒng),在本發(fā)明中,保護(hù)執(zhí)行正確的裝置可以設(shè)置在所述的網(wǎng)絡(luò)設(shè)備中,此時(shí),保護(hù)執(zhí)行正確的裝置是在網(wǎng)絡(luò)設(shè)備的所述端口接收到所述ACL規(guī)則后,執(zhí)行所述的比較和調(diào)整的步驟。
并且,保護(hù)執(zhí)行正確的裝置也可以設(shè)置在獨(dú)立于所述網(wǎng)絡(luò)設(shè)備的一個(gè)設(shè)備中,此時(shí),在將所有ACL規(guī)則下發(fā)到網(wǎng)絡(luò)設(shè)備的所述端口上之前,由保護(hù)執(zhí)行正確的裝置執(zhí)行所述的比較和調(diào)整的步驟,在調(diào)整后,保護(hù)執(zhí)行正確的裝置再將調(diào)整后的所述ACL規(guī)則下發(fā)到網(wǎng)絡(luò)設(shè)備的所述端口上。
總之,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種保證執(zhí)行正確的方法,其特征在于,該方法包括將下發(fā)到網(wǎng)絡(luò)設(shè)備任意一個(gè)端口上的所有訪問控制列表ACL規(guī)則進(jìn)行比較,判斷是否存在執(zhí)行順序顛倒的任意兩個(gè)ACL規(guī)則,如果是,則按照先下發(fā)規(guī)則先生效的原則對(duì)該兩個(gè)ACL規(guī)則進(jìn)行調(diào)整;所述網(wǎng)絡(luò)設(shè)備根據(jù)調(diào)整后的所有ACL規(guī)則設(shè)置對(duì)應(yīng)于所述端口的硬件表項(xiàng)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法進(jìn)一步包括在用戶針對(duì)所述端口依次下發(fā)ACL規(guī)則時(shí),根據(jù)下發(fā)的先后順序設(shè)置各個(gè)ACL規(guī)則從高到低的優(yōu)先級(jí),將各個(gè)ACL規(guī)則重新進(jìn)行排序;所述比較為將重新排序后的所有ACL規(guī)則進(jìn)行比較;所述判斷是否存在執(zhí)行順序顛倒的任意兩個(gè)ACL規(guī)則包括在進(jìn)行比較時(shí),判斷對(duì)于任意兩個(gè)ACL規(guī)則,排在前面的ACL規(guī)則的優(yōu)先級(jí)是否小于排在后面的ACL規(guī)則的優(yōu)先級(jí),如果是,則確定存在執(zhí)行順序顛倒的兩個(gè)ACL規(guī)則。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述將各個(gè)ACL規(guī)則重新進(jìn)行排序的步驟包括按照ACL規(guī)則掩碼長(zhǎng)度從大到小的順序,對(duì)需要下發(fā)到網(wǎng)絡(luò)設(shè)備任意一個(gè)端口上的所有ACL規(guī)則進(jìn)行從前到后的排序。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,在判斷出存在執(zhí)行順序顛倒的兩個(gè)ACL規(guī)則后,并在進(jìn)行調(diào)整前,進(jìn)一步包括判斷所述兩個(gè)ACL規(guī)則是否相交且是否存在動(dòng)作沖突,如果均是,則繼續(xù)執(zhí)行所述的按照先下發(fā)規(guī)則先生效的原則對(duì)該兩個(gè)ACL規(guī)則進(jìn)行調(diào)整的步驟。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述對(duì)兩個(gè)ACL規(guī)則進(jìn)行調(diào)整的步驟包括生成一個(gè)新的ACL規(guī)則,該新規(guī)則的動(dòng)作包括所述兩個(gè)ACL規(guī)則中,需要先生效的ACL規(guī)則中、與需要后生效的ACL規(guī)則相沖突的動(dòng)作,并將新規(guī)則排在所述兩個(gè)ACL規(guī)則的前面。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所生成新規(guī)則的動(dòng)作中包括所述兩個(gè)ACL規(guī)則中,需要先生效的ACL規(guī)則中、與需要后生效的ACL規(guī)則不沖突的動(dòng)作。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,在進(jìn)行比較時(shí),進(jìn)一步包括對(duì)于任意兩個(gè)ACL規(guī)則,判斷其中當(dāng)前需要后生效的ACL規(guī)則是否被當(dāng)前需要先生效的ACL規(guī)則所覆蓋,如果是,則刪除該當(dāng)前需要后生效的ACL規(guī)則。
8.根據(jù)權(quán)利要求5、6或7所述的方法,其特征在于,該方法進(jìn)一步包括在用戶針對(duì)所述端口依次下發(fā)ACL規(guī)則時(shí),根據(jù)下發(fā)的先后順序設(shè)置各個(gè)ACL規(guī)則從高到低的優(yōu)先級(jí);所述當(dāng)前需要后生效的ACL規(guī)則為所述兩個(gè)ACL規(guī)則中優(yōu)先級(jí)較低的ACL規(guī)則;所述當(dāng)前需要先生效的ACL規(guī)則為所述兩個(gè)ACL規(guī)則中優(yōu)先級(jí)較高的ACL規(guī)則。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法進(jìn)一步包括按照ACL規(guī)則掩碼長(zhǎng)度從大到小的順序,對(duì)需要下發(fā)到網(wǎng)絡(luò)設(shè)備任意一個(gè)端口上的所有ACL規(guī)則進(jìn)行從前到后的排序;所述進(jìn)行比較為在重新排序后的所有ACL規(guī)則中,將每一個(gè)ACL規(guī)則與排在其后的所有ACL規(guī)則分別進(jìn)行比較。
10.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述網(wǎng)絡(luò)設(shè)備設(shè)置硬件表項(xiàng)之后,進(jìn)一步包括當(dāng)需要向所述網(wǎng)絡(luò)設(shè)備的所述端口下發(fā)一個(gè)新增ACL規(guī)則時(shí),將該新增ACL規(guī)則與之前下發(fā)的ACL規(guī)則進(jìn)行比較,判斷新增ACL規(guī)則和與其比較的ACL規(guī)則是否會(huì)執(zhí)行順序顛倒,如果是,則按照先下發(fā)規(guī)則先生效的原則對(duì)新增ACL規(guī)則和與其比較的ACL規(guī)則進(jìn)行調(diào)整;所述網(wǎng)絡(luò)設(shè)備根據(jù)所進(jìn)行的調(diào)整,更新對(duì)應(yīng)于所述端口的硬件表項(xiàng)。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,在判斷出新增ACL規(guī)則和與其比較的ACL規(guī)則執(zhí)行順序顛倒之后,并在執(zhí)行所述調(diào)整之前,進(jìn)一步包括判斷新增ACL規(guī)則和與其比較的ACL規(guī)則是否相交且是否存在動(dòng)作沖突,如果均是,則繼續(xù)執(zhí)行所述的調(diào)整的步驟。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述進(jìn)行調(diào)整包括生成一個(gè)新的ACL規(guī)則,該新規(guī)則的動(dòng)作包括新增ACL規(guī)則和與其比較的ACL規(guī)則兩者中,需要先生效的ACL規(guī)則中、與需要后生效的ACL規(guī)則相沖突的動(dòng)作;所述更新對(duì)應(yīng)于所述端口的硬件表項(xiàng)的步驟包括網(wǎng)絡(luò)設(shè)備根據(jù)所生成的新規(guī)則與所述新增ACL規(guī)則,更新對(duì)應(yīng)于所述端口的硬件表項(xiàng)。
13.根據(jù)權(quán)利要求1或10所述的方法,其特征在于,由所述網(wǎng)絡(luò)設(shè)備在所述端口上依次接收到各個(gè)ACL規(guī)則后,執(zhí)行所述的比較和調(diào)整的步驟。
14.根據(jù)權(quán)利要求1或10所述的方法,其特征在于,在將所有ACL規(guī)則下發(fā)到網(wǎng)絡(luò)設(shè)備的所述端口上之前,由預(yù)先設(shè)置的獨(dú)立于所述網(wǎng)絡(luò)設(shè)備的一個(gè)保證執(zhí)行正確的設(shè)備執(zhí)行所述的比較和調(diào)整的步驟;在執(zhí)行所述調(diào)整之后,并在由所述網(wǎng)絡(luò)設(shè)備設(shè)置硬件表項(xiàng)之前,進(jìn)一步包括所述保證執(zhí)行正確的設(shè)備將調(diào)整后的所有ACL規(guī)則依次下發(fā)到網(wǎng)絡(luò)設(shè)備的所述端口上。
15.一種保證執(zhí)行正確的裝置,其特征在于,該裝置包括交互單元和調(diào)整單元,其中,交互單元,用于依次接收下發(fā)到網(wǎng)絡(luò)設(shè)備任意一個(gè)端口上的所有ACL規(guī)則;調(diào)整單元,用于在交互單元接收到需要下發(fā)到網(wǎng)絡(luò)設(shè)備任意一個(gè)端口上的所有ACL規(guī)則時(shí),將所有ACL規(guī)則進(jìn)行比較,判斷是否存在執(zhí)行順序顛倒的任意兩個(gè)ACL規(guī)則,在確定存在后,按照先下發(fā)規(guī)則先生效的原則對(duì)該任意兩個(gè)ACL規(guī)則進(jìn)行調(diào)整。
16.根據(jù)權(quán)利要求15所述的裝置,其特征在于,所述調(diào)整單元進(jìn)一步在確定任意兩個(gè)ACL規(guī)則相交且存在動(dòng)作沖突后,執(zhí)行按照先下發(fā)規(guī)則先生效的原則對(duì)該任意兩個(gè)ACL規(guī)則進(jìn)行調(diào)整。
17.一種保證執(zhí)行順序正確的系統(tǒng),其特征在于,該系統(tǒng)包括保證執(zhí)行順序正確的裝置和網(wǎng)絡(luò)設(shè)備,其中,保證執(zhí)行順序正確的裝置,將下發(fā)到網(wǎng)絡(luò)設(shè)備任意一個(gè)端口上的所有ACL規(guī)則進(jìn)行比較,判斷是否存在執(zhí)行順序顛倒的任意兩個(gè)ACL規(guī)則,如果是,則按照先下發(fā)規(guī)則先生效的原則對(duì)該任意兩個(gè)ACL規(guī)則進(jìn)行調(diào)整;網(wǎng)絡(luò)設(shè)備,用于根據(jù)調(diào)整后的所有ACL規(guī)則設(shè)置硬件表項(xiàng),并在接收到報(bào)文時(shí),根據(jù)所設(shè)置的硬件表項(xiàng)對(duì)報(bào)文進(jìn)行對(duì)應(yīng)的業(yè)務(wù)處理。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其特征在于,所述保證執(zhí)行順序正確的裝置集成在所述網(wǎng)絡(luò)設(shè)備中;或者,所述保證執(zhí)行順序正確的裝置設(shè)置在獨(dú)立于所述網(wǎng)絡(luò)設(shè)備的一個(gè)設(shè)備中,該保證執(zhí)行順序正確的裝置在進(jìn)行調(diào)整之后,進(jìn)一步將調(diào)整后的所有ACL規(guī)則下發(fā)到所述網(wǎng)絡(luò)設(shè)備的所述端口上。
全文摘要
本發(fā)明公開了一種保證執(zhí)行正確的方法和裝置。該裝置包括交互單元和調(diào)整單元。該方法包括將下發(fā)到網(wǎng)絡(luò)設(shè)備任意一個(gè)端口上的所有規(guī)則進(jìn)行比較,判斷是否存在執(zhí)行順序顛倒的任意兩個(gè)規(guī)則,如果是,則按照先下發(fā)規(guī)則先生效的原則對(duì)該任意兩個(gè)規(guī)則進(jìn)行調(diào)整;將調(diào)整后的所有規(guī)則依次下發(fā)到網(wǎng)絡(luò)設(shè)備的所述端口上。本發(fā)明可以保證網(wǎng)絡(luò)設(shè)備能夠正確地執(zhí)行規(guī)則,保證對(duì)報(bào)文進(jìn)行正確的業(yè)務(wù)處理。
文檔編號(hào)H04L12/56GK1933487SQ200610140068
公開日2007年3月21日 申請(qǐng)日期2006年10月18日 優(yōu)先權(quán)日2006年10月18日
發(fā)明者王明輝, 趙品 申請(qǐng)人:杭州華為三康技術(shù)有限公司