專利名稱:基于安全業(yè)務(wù)的包轉(zhuǎn)發(fā)方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及安全業(yè)務(wù)技術(shù)領(lǐng)域,具體涉及基于安全業(yè)務(wù)的包轉(zhuǎn)發(fā)方法及系統(tǒng)。
背景技術(shù):
隨著網(wǎng)絡(luò)的普及與發(fā)展,對(duì)網(wǎng)絡(luò)設(shè)備的要求已經(jīng)不僅僅是單純的快速轉(zhuǎn) 發(fā),還需要網(wǎng)絡(luò)設(shè)備提供安全業(yè)務(wù)。市場(chǎng)的這一需求促進(jìn)了安全設(shè)備的發(fā)展,
并對(duì)安全設(shè)備提出以下要求在對(duì)網(wǎng)絡(luò)數(shù)據(jù)實(shí)施安全業(yè)務(wù)如安全檢查過(guò)濾 等的情況下仍然提供比較好的轉(zhuǎn)發(fā)性能。
安全設(shè)備要達(dá)到以上要求,依賴于硬件性能的提升,同時(shí)也依賴軟件相 關(guān)表項(xiàng)的組織以及相關(guān)的業(yè)務(wù)流程優(yōu)化。如何組織相關(guān)的主要表項(xiàng)并依賴其 提升處理性能,成為安全產(chǎn)品面臨的一個(gè)命題。
圖1為現(xiàn)有的基于安全業(yè)務(wù)的包轉(zhuǎn)發(fā)流程圖,如圖1所示,其具體步驟 如下:
步驟101:在安全設(shè)備上配置安全業(yè)務(wù)表項(xiàng)。
每個(gè)安全業(yè)務(wù)表項(xiàng)包括五元組信息中的一個(gè)或任意組合與安全業(yè)務(wù)信 息的對(duì)應(yīng)關(guān)系,或者包括轉(zhuǎn)發(fā)信息與安全業(yè)務(wù)信息的對(duì)應(yīng)關(guān)系,或者包括 五元組信息中的一個(gè)或任意組合、轉(zhuǎn)發(fā)信息與安全業(yè)務(wù)信息的對(duì)應(yīng)關(guān)系。
五元組信息即源IP地址信息、源端口信息、協(xié)議號(hào)碼、目的IP地址 信息、目的出端口信息。
轉(zhuǎn)發(fā)信息即轉(zhuǎn)發(fā)信息庫(kù)(FIB)表項(xiàng)中的三層出接口信息等,地址解 析協(xié)議(ARP )表項(xiàng)中的出端口信息等。
安全業(yè)務(wù)信息指示具體應(yīng)執(zhí)行何種安全業(yè)務(wù)處理,如過(guò)濾處理等。
步驟102:安全設(shè)備接收到包,在軟件中查找與該包的五元組對(duì)應(yīng)的安 全業(yè)務(wù)表項(xiàng)。
步驟103:安全設(shè)備根據(jù)查找到的安全業(yè)務(wù)表項(xiàng)中的安全業(yè)務(wù)信息,執(zhí) 行相應(yīng)的安全業(yè)務(wù)處理,執(zhí)行完畢,轉(zhuǎn)至步驟104。
本步驟中的安全業(yè)務(wù)處理針對(duì)的是入口處的安全業(yè)務(wù)處理。
步驟104:安全設(shè)備在軟件中查找與該包的目的IP地址對(duì)應(yīng)的FIB表項(xiàng)。
步驟105:安全設(shè)備在軟件中查找與FIB表項(xiàng)最匹配的ARP表項(xiàng)。 步驟106:安全設(shè)備在軟件中查找與FIB表項(xiàng)中的三層出接口信息對(duì)應(yīng) 的安全業(yè)務(wù)表項(xiàng)。
步驟107:安全設(shè)備根據(jù)查找到的安全業(yè)務(wù)表項(xiàng)中的安全業(yè)務(wù)信息,執(zhí) 行相應(yīng)的安全業(yè)務(wù)處理,執(zhí)行完畢,轉(zhuǎn)至步驟108。
本步驟中的安全業(yè)務(wù)處理針對(duì)的是出口處的安全業(yè)務(wù)處理。
步驟108:安全設(shè)備將查找到的ARP表項(xiàng)中的二層鏈路層頭封裝到包 的二層頭上,將該包轉(zhuǎn)發(fā)出去。
從以上過(guò)程可以看出安全設(shè)備接收到包后,首先根據(jù)包的五元組信息 查找安全業(yè)務(wù)表項(xiàng),并進(jìn)行相應(yīng)的安全業(yè)務(wù)處理,然后查找FIB表項(xiàng)和ARP 表項(xiàng),再根據(jù)查找到的FIB表項(xiàng)和ARP表項(xiàng)查找安全業(yè)務(wù)表項(xiàng),并進(jìn)行相 應(yīng)的安全業(yè)務(wù)處理,處理完畢,根據(jù)ARP表項(xiàng)轉(zhuǎn)發(fā)包。很顯然,處理流程 較長(zhǎng),大大降低了包的轉(zhuǎn)發(fā)效率。
發(fā)明內(nèi)容
本發(fā)明提供基于安全業(yè)務(wù)的包轉(zhuǎn)發(fā)方法及系統(tǒng),以提高基于安全業(yè)務(wù)的包 的轉(zhuǎn)發(fā)效率。
本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的 一種基于安全業(yè)務(wù)的包轉(zhuǎn)發(fā)方法,包括 FIB表項(xiàng)與ARP表項(xiàng)的第 一關(guān)聯(lián)關(guān)系;
接收業(yè)務(wù)流的首包,獲取與首包對(duì)應(yīng)的安全業(yè)務(wù)信息和FIB表項(xiàng),建立首 包攜帶的業(yè)務(wù)流包的屬性信息與安全業(yè)務(wù)信息、FIB表項(xiàng)的第二關(guān)聯(lián)關(guān)系;
接收業(yè)務(wù)流的后續(xù)包,根據(jù)后續(xù)包的屬性信息及所述第二關(guān)聯(lián)關(guān)系和第一 關(guān)聯(lián)關(guān)系,查找到安全業(yè)務(wù)信息和ARP表項(xiàng)信息,根據(jù)該安全業(yè)務(wù)信息對(duì)后續(xù) 包執(zhí)行安全業(yè)務(wù)處理,根據(jù)該ARP表項(xiàng)信息將后續(xù)包轉(zhuǎn)發(fā)出去。
所述第 一關(guān)聯(lián)關(guān)系和第二關(guān)聯(lián)關(guān)系保存在軟件單元中。
所述建立第一關(guān)聯(lián)關(guān)系包括將與軟件單元中每個(gè)FIB表項(xiàng)最匹配的ARP 表項(xiàng)的索引添加到各FIB表項(xiàng)中;
所述建立第二關(guān)聯(lián)關(guān)系包括在軟件單元中建立業(yè)務(wù)流包的屬性信息、安 全業(yè)務(wù)信息、所述查找到的FIB表項(xiàng)的索引之間的關(guān)聯(lián)關(guān)系。
當(dāng)接收到后續(xù)包時(shí),所述查找包括在所有第二關(guān)聯(lián)關(guān)系中,查找與該后 續(xù)包攜帶的業(yè)務(wù)流包的屬性信息對(duì)應(yīng)的第二關(guān)聯(lián)關(guān)系,在該第二關(guān)聯(lián)關(guān)系中查 找到安全業(yè)務(wù)信息,查找該第二關(guān)聯(lián)關(guān)系中的FIB表項(xiàng)索引指向的FIB表項(xiàng), 根據(jù)該FIB表項(xiàng)中的ARP表項(xiàng)索引查找到ARP表項(xiàng)。
所述將ARP表項(xiàng)的索引添加到各FIB表項(xiàng)中之前進(jìn)一步包括為每個(gè)FIB 表項(xiàng)設(shè)置FIB序號(hào),
且,所述建立第二關(guān)聯(lián)關(guān)系進(jìn)一步包括將FIB表項(xiàng)的FIB序號(hào)添加到該 第二關(guān)聯(lián)關(guān)系中,且,當(dāng)更新FIB表項(xiàng)時(shí),同時(shí)更新該FIB表項(xiàng)的FIB序號(hào)。
當(dāng)接收到后續(xù)包時(shí),所述查找FIB表項(xiàng)進(jìn)一步包括判斷查找到的FIB表 項(xiàng)中的FIB序號(hào)與所述查找到的第二關(guān)聯(lián)關(guān)系中的FIB序號(hào)是否一致,若是, 根據(jù)該FIB表項(xiàng)中的ARP表項(xiàng)索51查找到ARP表項(xiàng);否則,在軟件單元中重 新查找與該后續(xù)包對(duì)應(yīng)的FIB表項(xiàng),以查找到的FIB表項(xiàng)中的FIB序號(hào)及該FIB 表項(xiàng)的索引更新所述查找到的第二關(guān)聯(lián)關(guān)系中的FIB序號(hào)和FIB表項(xiàng)索引,然 后在^:件單元中查找與所述FIB表項(xiàng)最匹配的ARP表項(xiàng)。
所述建立第一關(guān)聯(lián)關(guān)系包括在軟件單元中查找與每個(gè)FIB表項(xiàng)最匹配的 ARP表項(xiàng),在軟件單元中建立包含查找到的ARP表項(xiàng)索引的FIB感知表項(xiàng), 將該FIB感知表項(xiàng)索引添加到所述FIB表項(xiàng)中;
所述建立第二關(guān)聯(lián)關(guān)系為在軟件單元中建立業(yè)務(wù)流包的屬性信息、安全 業(yè)務(wù)信息、查找到的FIB表項(xiàng)的FIB感知表項(xiàng)索引之間的關(guān)聯(lián)關(guān)系。 當(dāng)接收到后續(xù)包時(shí),所述查找包括
在所有第二關(guān)聯(lián)關(guān)系中,查找與該后續(xù)包攜帶的業(yè)務(wù)流包屬性信息對(duì)應(yīng)的 第二關(guān)聯(lián)關(guān)系,在該第二關(guān)聯(lián)關(guān)系中查找到安全業(yè)務(wù)信息,查找該第二關(guān)聯(lián)關(guān) 系中的FIB感知表項(xiàng)索引指向的FIB感知表項(xiàng),根據(jù)該FIB感知表項(xiàng)中的ARP 表項(xiàng)索51查找到ARP表項(xiàng)。
所述在軟件單元中查找與每個(gè)FIB表項(xiàng)最匹配的ARP表項(xiàng)之前進(jìn)一步包 括為每個(gè)FIB表項(xiàng)設(shè)置FIB序號(hào),
且,所述建立FIB感知表項(xiàng)進(jìn)一步包括將所述FIB表項(xiàng)的FIB序號(hào)添加 到該FIB感知表項(xiàng)中,
且,所述建立第二關(guān)聯(lián)關(guān)系進(jìn)一步包括將FIB表項(xiàng)的FIB序號(hào)添加到該 第二關(guān)聯(lián)關(guān)系中,
且,當(dāng)更新FIB表項(xiàng)時(shí),同時(shí)更新該FIB表項(xiàng)的FIB序號(hào),并更新與該FIB 表項(xiàng)對(duì)應(yīng)的FIB感知表項(xiàng)中的FIB序號(hào)。
當(dāng)接收到后續(xù)包時(shí),所述查找FIB感知表項(xiàng)進(jìn)一步包括判斷查找到的FIB 感知表項(xiàng)中的FIB序號(hào)與所述查找到的第二關(guān)聯(lián)關(guān)系中的FIB序號(hào)是否一致, 若是,根據(jù)該FIB感知表項(xiàng)中的ARP表項(xiàng)索引查找到ARP表項(xiàng);否則,在軟 件單元中重新查找與該后續(xù)包對(duì)應(yīng)的FIB表項(xiàng),以查找到的FIB表項(xiàng)中的FIB 感知表項(xiàng)索引和FIB序號(hào)更新所述查找到的第二關(guān)聯(lián)關(guān)系中的FIB感知表項(xiàng)索 引和FIB序號(hào),然后查找與所述FIB表項(xiàng)最匹配的ARP表項(xiàng)。
所述第 一關(guān)聯(lián)關(guān)系和第二關(guān)聯(lián)關(guān)系保存在硬件單元中。
所述建立第一關(guān)聯(lián)關(guān)系之前進(jìn)一步包括在軟件單元中學(xué)習(xí)ARP表項(xiàng)和 FIB表項(xiàng);
所述建立第一關(guān)聯(lián)關(guān)系包括在硬件單元中建立與軟件單元中的每個(gè)ARP 表項(xiàng)所包含內(nèi)容相同的ARP感知表項(xiàng),將該ARP感知表項(xiàng)的索引添加到所述 ARP表項(xiàng)中;查找與每個(gè)FIB表項(xiàng)最匹配的ARP表項(xiàng),在硬件單元中建立包
含查找到的ARP表項(xiàng)中的ARP感知表項(xiàng)索引的FIB感知表項(xiàng),將該FIB感知 表項(xiàng)索引添加到所述FIB表項(xiàng)中;
所述建立第二關(guān)聯(lián)關(guān)系為在軟件單元中建立業(yè)務(wù)流包的屬性信息、安全 業(yè)務(wù)信息、查找到的FIB表項(xiàng)中的FIB感知表項(xiàng)索引間的關(guān)聯(lián)關(guān)系,將該關(guān)聯(lián) 關(guān)系保存到硬件單元中。
當(dāng)接收到后續(xù)包時(shí),所述查找包括
在硬件單元的所有第二關(guān)聯(lián)關(guān)系中,查找與該后續(xù)包攜帶的業(yè)務(wù)流包屬性 信息對(duì)應(yīng)的第二關(guān)聯(lián)關(guān)系,在該第二關(guān)聯(lián)關(guān)系中查找到安全業(yè)務(wù)信息,查找該 第二關(guān)聯(lián)關(guān)系中的FIB感知表項(xiàng)索引指向的FIB感知表項(xiàng),根據(jù)該FIB感知表 項(xiàng)中的ARP感知表項(xiàng)索引查找到ARP感知表項(xiàng),該ARP感知表項(xiàng)即為查找到 的ARP表項(xiàng)信息。
所述學(xué)習(xí)FIB表項(xiàng)進(jìn)一步包括為該FIB表項(xiàng)設(shè)置FIB序號(hào),
且,所述建立FIB感知表項(xiàng)進(jìn)一步包括將該FIB表項(xiàng)的FIB序號(hào)添加到 該FIB感知表項(xiàng)中,
且,所述建立第二關(guān)聯(lián)關(guān)系進(jìn)一步包括將該FIB表項(xiàng)的FIB序號(hào)添加到 第二關(guān)聯(lián)關(guān)系中,
且,當(dāng)更新FIB表項(xiàng)時(shí),同時(shí)更新該FIB表項(xiàng)的FIB序號(hào),并更新與該FIB 表項(xiàng)對(duì)應(yīng)的FIB感知表項(xiàng)中的FIB序號(hào)。
當(dāng)接收到后續(xù)包時(shí),所述查找FIB感知表項(xiàng)進(jìn)一步包括判斷查找到的FIB 感知表項(xiàng)中的FIB序號(hào)與所述查找到的第二關(guān)聯(lián)關(guān)系中的FIB序號(hào)是否一致, 若是,根據(jù)該FIB感知表項(xiàng)中的ARP感知表項(xiàng)索引查找到ARP感知表項(xiàng);否 則,在軟件單元中重新查找與該后續(xù)包對(duì)應(yīng)的FIB表項(xiàng),以查找到的FIB表項(xiàng) 中的FIB感知表項(xiàng)索引和FIB序號(hào)更新第二關(guān)聯(lián)關(guān)系中的FIB感知表項(xiàng)索引和 FIB序號(hào),然后查找與所述FIB表項(xiàng)最匹配的ARP表項(xiàng)。
所述業(yè)務(wù)流包的屬性信息為五元組信息。
一種基于安全業(yè)務(wù)的包轉(zhuǎn)發(fā)系統(tǒng),包括
業(yè)務(wù)轉(zhuǎn)發(fā)關(guān)聯(lián)模塊,建立FIB表項(xiàng)和ARP表項(xiàng)的第一關(guān)聯(lián)關(guān)系;接收業(yè)務(wù)
流的首包,獲取與首包對(duì)應(yīng)的安全業(yè)務(wù)信息和FIB表項(xiàng),建立業(yè)務(wù)流包的屬性 信息與安全業(yè)務(wù)信息、FIB表項(xiàng)的第二關(guān)聯(lián)關(guān)系;接收業(yè)務(wù)流的后續(xù)包,根據(jù) 該后續(xù)包攜帶的業(yè)務(wù)流包的屬性信息以及所述第二關(guān)聯(lián)關(guān)系和第一關(guān)聯(lián)關(guān)系, 查找到安全業(yè)務(wù)信息和ARP表項(xiàng)信息;將查找到的安全業(yè)務(wù)信息發(fā)送給安全業(yè) 務(wù)處理模塊,將查找到的ARP表項(xiàng)信息發(fā)送給轉(zhuǎn)發(fā)模塊;
安全業(yè)務(wù)處理模塊,根據(jù)接收到的安全業(yè)務(wù)信息對(duì)接收到的業(yè)務(wù)流包執(zhí)行 安全業(yè)務(wù)處理,執(zhí)行完畢,將業(yè)務(wù)流包發(fā)送給轉(zhuǎn)發(fā)模塊;
轉(zhuǎn)發(fā)模塊,根據(jù)接收到的ARP表項(xiàng)信息將接收到的業(yè)務(wù)流包轉(zhuǎn)發(fā)出去。
所述業(yè)務(wù)轉(zhuǎn)發(fā)關(guān)聯(lián)模塊包括
FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊,學(xué)習(xí)FIB表項(xiàng),將與該FIB表項(xiàng)最匹配的ARP 表項(xiàng)的索引添加到該FIB表項(xiàng)中;
Session表項(xiàng)存儲(chǔ)模塊,保存各Session表項(xiàng);
Session表項(xiàng)查找模塊,接收業(yè)務(wù)流包,在Session表項(xiàng)存儲(chǔ)模塊中查找 與該業(yè)務(wù)流包的屬性信息對(duì)應(yīng)的Session表項(xiàng),若查找到,貝'J將Session表項(xiàng) 中的安全業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊,并在FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊中 查找與該Session表項(xiàng)中的FIB表項(xiàng)索引對(duì)應(yīng)的FIB表項(xiàng),將查找到的FIB 表項(xiàng)中的ARP表項(xiàng)索引發(fā)送給轉(zhuǎn)發(fā)模塊;若未查找到,則將該包發(fā)送給 Session表項(xiàng)建立更新模塊;
Session表項(xiàng)建立更新模塊,接收業(yè)務(wù)流包,將與該業(yè)務(wù)流包對(duì)應(yīng)的安 全業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊,在Session表存儲(chǔ)模塊中建立包括業(yè) 務(wù)流包的屬性信息和所述安全業(yè)務(wù)信息的Session表項(xiàng);在FIB表項(xiàng)學(xué)習(xí)存 儲(chǔ)模塊中查找與業(yè)務(wù)流包對(duì)應(yīng)的FIB表項(xiàng),將與該FIB表項(xiàng)最匹配的ARP 表項(xiàng)發(fā)送給轉(zhuǎn)發(fā)模塊,并將查找到的FIB表項(xiàng)的索引添加到建立的Session 表項(xiàng)中。
該系統(tǒng)進(jìn)一步包括FIB表項(xiàng)更新模塊,當(dāng)更新FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊 中的FIB表項(xiàng)時(shí),更新為該FIB表項(xiàng)i殳置的FIB序號(hào);
且,所述FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊在學(xué)習(xí)FIB表項(xiàng)時(shí),為該FIB表項(xiàng)設(shè)
置FIB序號(hào);
所述Session表項(xiàng)建立更新模塊進(jìn)一步,將FIB表項(xiàng)的FIB序號(hào)添加到 建立的Session表項(xiàng)中。
所述Session表項(xiàng)查找模塊在FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊中查找到FIB表項(xiàng) 之后,進(jìn)一步判斷查找到的FIB表項(xiàng)中的FIB序號(hào)與Session表項(xiàng)中的FIB 序號(hào)是否一致,若一致,則將Session表項(xiàng)中的安全業(yè)務(wù)信息發(fā)送給安全業(yè) 務(wù)處理模塊,并將FIB表項(xiàng)中的ARP表項(xiàng)索引發(fā)送給轉(zhuǎn)發(fā)模塊;若不一致, 則將業(yè)務(wù)流包和查找到的Session表項(xiàng)索引發(fā)送給Session表項(xiàng)建立更新模 塊,
所述Session表項(xiàng)建立更新模塊收到業(yè)務(wù)流包和Session表項(xiàng)索引,在 安全業(yè)務(wù)表項(xiàng)存儲(chǔ)模塊中查找到安全業(yè)務(wù)信息,將與該業(yè)務(wù)流包對(duì)應(yīng)的安全 業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊,以該安全業(yè)務(wù)信息替換Session表項(xiàng)存 儲(chǔ)模塊中與該Session表項(xiàng)索引對(duì)應(yīng)的Session表項(xiàng)中的安全業(yè)務(wù)信息,在 FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊中查找與業(yè)務(wù)流包對(duì)應(yīng)的FIB表項(xiàng),以查找到的FIB 表項(xiàng)中的FIB序號(hào)及該FIB表項(xiàng)的索引替換所述Session表項(xiàng)中的FIB序號(hào) 和FIB表項(xiàng)索引,將與所述FIB表項(xiàng)最匹配的ARP表項(xiàng)發(fā)送到轉(zhuǎn)發(fā)模塊。
所述FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊和Session表項(xiàng)存儲(chǔ)模塊位于軟件單元中。
所述業(yè)務(wù)轉(zhuǎn)發(fā)關(guān)聯(lián)才莫塊包括
FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊,學(xué)習(xí)FIB表項(xiàng),查找與該FIB表項(xiàng)最匹配的 ARP表項(xiàng),在FIB感知表項(xiàng)存儲(chǔ)模塊中建立包含查找到的ARP表項(xiàng)的索引 的FIB感知表項(xiàng),將該FIB感知表項(xiàng)索引添加到FIB表項(xiàng)中;
FIB感知表項(xiàng)存儲(chǔ)模塊,保存包含ARP表項(xiàng)索引的各FIB感知表項(xiàng);
Session表項(xiàng)存儲(chǔ)模塊,保存各Session表項(xiàng);
Session表項(xiàng)查找模塊,接收業(yè)務(wù)流包,在Session表項(xiàng)存儲(chǔ)模塊中查找 與業(yè)務(wù)流包的屬性信息對(duì)應(yīng)的Session表項(xiàng),若查找到,則將Session表項(xiàng)中 的安全業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊,并在FIB感知表項(xiàng)存儲(chǔ)模塊中查 找與該Session表項(xiàng)中的FIB感知表項(xiàng)索引對(duì)應(yīng)的FIB感知表項(xiàng),將FIB感
知表項(xiàng)中的ARP表項(xiàng)索引發(fā)送給轉(zhuǎn)發(fā)模塊;若未查找到,則將業(yè)務(wù)流包發(fā) 送給Session表項(xiàng)建立更新模塊;
Session表項(xiàng)建立更新模塊,接收業(yè)務(wù)流包,將與該業(yè)務(wù)流包對(duì)應(yīng)的安 全業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊,在Session表項(xiàng)存儲(chǔ)模塊中建立包括 業(yè)務(wù)流包的屬性信息和所述安全業(yè)務(wù)信息的Session表項(xiàng);在FIB表項(xiàng)學(xué)習(xí) 存儲(chǔ)模塊中查找與業(yè)務(wù)流包對(duì)應(yīng)的FIB表項(xiàng),將與該FIB表項(xiàng)最匹配的ARP 表項(xiàng)發(fā)送給轉(zhuǎn)發(fā)模塊,并將查找到的FIB表項(xiàng)中的FIB感知表項(xiàng)索引添加到 建立的Session表項(xiàng)中。
該系統(tǒng)進(jìn)一步包括FIB表項(xiàng)更新模塊,當(dāng)更新FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊 中的FIB表項(xiàng)時(shí),更新為該FIB表項(xiàng)設(shè)置的FIB序號(hào),同時(shí)根據(jù)該FIB表 項(xiàng)中的FIB感知表項(xiàng)索引在FIB感知表項(xiàng)存儲(chǔ)模塊中查找到FIB感知表項(xiàng), 以該更新后的FIB序號(hào)替換該FIB感知表項(xiàng)中的FIB序號(hào);
且,所述FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊在學(xué)習(xí)到FIB表項(xiàng)后,為該FIB表項(xiàng) 設(shè)置FIB序號(hào),并將該FIB序號(hào)添加到建立的FIB感知表項(xiàng)中;
所述Session表項(xiàng)建立更新模塊進(jìn)一步,將FIB表項(xiàng)的FIB序號(hào)添加到 建立的Session表項(xiàng)中。
所述Session表項(xiàng)查找模塊在FIB感知表項(xiàng)存儲(chǔ)模塊中查找到FIB感知 表項(xiàng)之后,進(jìn)一步判斷查找到的FIB感知表項(xiàng)中的FIB序號(hào)與Session表項(xiàng) 中的FIB序號(hào)是否一致,若一致,則將Session表項(xiàng)中的安全業(yè)務(wù)信息發(fā)送 給安全業(yè)務(wù)處理模塊,根據(jù)FIB感知表項(xiàng)中的ARP表項(xiàng)索引查找到ARP表 項(xiàng),將該ARP表項(xiàng)發(fā)送給轉(zhuǎn)發(fā)模塊;若不一致,則將業(yè)務(wù)流包和查找到的 Session表項(xiàng)索引發(fā)送給Session表項(xiàng)建立更新才莫塊,
所述Session表項(xiàng)建立更新模塊收到業(yè)務(wù)流包和Session表項(xiàng)索引,將 與業(yè)務(wù)流包對(duì)應(yīng)的安全業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊,以該安全業(yè)務(wù)信 息替換Session表項(xiàng)存儲(chǔ)模塊中與該Session表項(xiàng)索引對(duì)應(yīng)的Session表項(xiàng)中 的安全業(yè)務(wù)信息,在FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊中查找與業(yè)務(wù)流包對(duì)應(yīng)的FIB表 項(xiàng),以查找到的FIB表項(xiàng)中的FIB感知表項(xiàng)索引和FIB序號(hào)替換所述Session
表項(xiàng)中的FIB感知表項(xiàng)索引和FIB序號(hào),并查找與所述FIB表項(xiàng)最匹配的 ARP表項(xiàng),將該ARP表項(xiàng)發(fā)送到轉(zhuǎn)發(fā)模塊。
所述FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊、FIB感知表項(xiàng)存儲(chǔ)模塊和Session表項(xiàng)存 儲(chǔ)模塊位于軟件單元中。
所述業(yè)務(wù)轉(zhuǎn)發(fā)關(guān)聯(lián)模塊包括
FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊,學(xué)習(xí)FIB表項(xiàng),查找與FIB表項(xiàng)最匹配的ARP 表項(xiàng),在FIB感知表項(xiàng)存儲(chǔ)模塊中建立包含與查找到的ARP表項(xiàng)對(duì)應(yīng)的ARP 感知表項(xiàng)的索引的FIB感知表項(xiàng),將該FIB感知表項(xiàng)索引添加到FIB表項(xiàng)中;
FIB感知表項(xiàng)存儲(chǔ)模塊,保存各FIB感知表項(xiàng);
ARP感知表項(xiàng)存儲(chǔ)模塊,保存內(nèi)容與ARP表項(xiàng)相同的各ARP感知表項(xiàng); Session表項(xiàng)存儲(chǔ)模塊,保存各Session表項(xiàng);
Session表項(xiàng)查找模塊,接收業(yè)務(wù)流包,在Session表項(xiàng)存儲(chǔ)模塊中查找 與業(yè)務(wù)流包的屬性信息對(duì)應(yīng)的Session表項(xiàng),若查找到,將Session表項(xiàng)中的 安全業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊,在FIB感知表項(xiàng)存儲(chǔ)模塊中查找與 Session表項(xiàng)中的FIB感知表項(xiàng)索引對(duì)應(yīng)的FIB感知表項(xiàng),將FIB感知表項(xiàng) 中的ARP感知表項(xiàng)索引發(fā)送給轉(zhuǎn)發(fā)模塊;若未查找到,則將業(yè)務(wù)流包發(fā)送 給Session表項(xiàng)建立更新模塊;
Session表項(xiàng)建立更新模塊,接收業(yè)務(wù)流包,將與業(yè)務(wù)流包對(duì)應(yīng)的安全 業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊,建立包括業(yè)務(wù)流包的屬性信息和所述安 全業(yè)務(wù)信息的Session表項(xiàng);在FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊中查找與業(yè)務(wù)流包對(duì) 應(yīng)的FIB表項(xiàng),將與該FIB表項(xiàng)最匹配的ARP表項(xiàng)發(fā)送給轉(zhuǎn)發(fā)模塊,并將 查找到的FIB表項(xiàng)中的FIB感知表項(xiàng)索引添力。到建立的Session表項(xiàng)中,將 該Session表項(xiàng)保存到Session表項(xiàng)存儲(chǔ)模塊中。
該系統(tǒng)進(jìn)一步包括FIB表項(xiàng)更新模塊,當(dāng)更新FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊 中的FIB表項(xiàng)時(shí),更新為該FIB表項(xiàng)設(shè)置的FIB序號(hào),同時(shí)^4居該FIB表 項(xiàng)中的FIB感知表項(xiàng)索引在FIB感知表項(xiàng)存儲(chǔ)才莫塊中查找到FIB感知表項(xiàng), 以該更新后的FIB序號(hào)替換該FIB感知表項(xiàng)中的FIB序號(hào);
且,所述FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊在學(xué)習(xí)到FIB表項(xiàng)后,為該FIB表項(xiàng) 設(shè)置FIB序號(hào),并將該FIB序號(hào)添加到建立的FIB感知表項(xiàng)中;
所述Session表項(xiàng)建立更新模塊進(jìn)一步,將FIB表項(xiàng)的FIB序號(hào)添加到 建立的Session表項(xiàng)中。
所述Session表項(xiàng)查找模塊在FIB感知表項(xiàng)存儲(chǔ)—莫塊中查找到FIB感知 表項(xiàng)之后,進(jìn)一步判斷查找到的FIB感知表項(xiàng)中的FIB序號(hào)與Session表項(xiàng) 中的FIB序號(hào)是否一致,若一致,則將Session表項(xiàng)中的安全業(yè)務(wù)信息發(fā)送 給安全業(yè)務(wù)處理模塊,并將FIB感知表項(xiàng)中的ARP感知表項(xiàng)索引發(fā)送給轉(zhuǎn) 發(fā)模塊;若不一致,則將業(yè)務(wù)流包和查找到的Session表項(xiàng)索引發(fā)送給Session 表項(xiàng)建立更新模塊,
所述Session表項(xiàng)建立更新模塊收到業(yè)務(wù)流包和Session表項(xiàng)索引,將 與業(yè)務(wù)流包對(duì)應(yīng)的安全業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊,以該安全業(yè)務(wù)信 息替換Session表項(xiàng)存儲(chǔ)模塊中與該Session表項(xiàng)索引對(duì)應(yīng)的Session表項(xiàng)中 的安全業(yè)務(wù)信息,在FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊中查找與業(yè)務(wù)流包對(duì)應(yīng)的FIB表 項(xiàng),以查找到的FIB表項(xiàng)中的FIB感知表項(xiàng)索引和FIB序號(hào)替換所述Session 表項(xiàng)中的FIB感知表項(xiàng)索引和FIB序號(hào),并將與所述FIB表項(xiàng)最匹配的ARP 表項(xiàng)發(fā)送到轉(zhuǎn)發(fā)模塊。
所述FIB感知表項(xiàng)存儲(chǔ)才莫塊、ARP感知表項(xiàng)存儲(chǔ)才莫塊、Session表項(xiàng)存 儲(chǔ)模塊位于硬件單元中。
與現(xiàn)有技術(shù)相比,本發(fā)明通過(guò)建立FIB表項(xiàng)與ARP表項(xiàng)的第一關(guān)聯(lián)關(guān) 系,并對(duì)業(yè)務(wù)流的首包采用現(xiàn)有技術(shù)進(jìn)行安全業(yè)務(wù)表項(xiàng)、FIB表項(xiàng)、ARP表 項(xiàng)的查找,并根據(jù)查找結(jié)果建立該包的屬性信息與安全業(yè)務(wù)信息、FIB表項(xiàng) 的第二關(guān)聯(lián)關(guān)系,使得業(yè)務(wù)流的后續(xù)包可直接根據(jù)所述第一和第二關(guān)聯(lián)關(guān)系 進(jìn)行安全業(yè)務(wù)處理和轉(zhuǎn)發(fā)處理,無(wú)需每個(gè)包都進(jìn)行安全業(yè)務(wù)表項(xiàng)、FIB表項(xiàng)、 ARP表項(xiàng)的查找,大大提高了基于安全業(yè)務(wù)的包轉(zhuǎn)發(fā)效率。
圖1為現(xiàn)有的基于安全業(yè)務(wù)的包轉(zhuǎn)發(fā)流程圖; 圖2為本發(fā)明實(shí)施例 一 提供的基于安全業(yè)務(wù)的包轉(zhuǎn)發(fā)流程圖; 圖3為本發(fā)明實(shí)施例二提供的基于安全業(yè)務(wù)的包轉(zhuǎn)發(fā)流程圖; 圖4為本發(fā)明實(shí)施例 一提供的基于安全業(yè)務(wù)的包轉(zhuǎn)發(fā)系統(tǒng)組成圖; 圖5為本發(fā)明實(shí)施例二提供的基于安全業(yè)務(wù)的包轉(zhuǎn)發(fā)系統(tǒng)組成圖。
具體實(shí)施例方式
由于同 一業(yè)務(wù)流中的各個(gè)包的五元組是相同的,且安全業(yè)務(wù)表項(xiàng)通常都 以包的五元組為依據(jù)建立,而轉(zhuǎn)發(fā)表項(xiàng)FIB表項(xiàng)和ARP表項(xiàng)也是以包的 五元組為依據(jù)建立的,從而可以得知對(duì)同一業(yè)務(wù)流的各個(gè)包所進(jìn)行的安全 業(yè)務(wù)處理和轉(zhuǎn)發(fā)處理是相同的。因此,本發(fā)明的核心思想是在學(xué)習(xí)到FIB 表項(xiàng)時(shí),查找與該FIB表項(xiàng)對(duì)應(yīng)的ARP表項(xiàng),建立FIB表項(xiàng)與ARP表項(xiàng)的 第一關(guān)聯(lián)關(guān)系,對(duì)業(yè)務(wù)流的首包按照現(xiàn)有技術(shù)進(jìn)行安全業(yè)務(wù)表項(xiàng)查找和FIB 表項(xiàng)、ARP表項(xiàng)查找,并根據(jù)查找結(jié)果建立包的屬性信息與需對(duì)該首包執(zhí)行 的所有安全業(yè)務(wù)的信息以及該首包對(duì)應(yīng)的FIB表項(xiàng)的第二關(guān)聯(lián)關(guān)系。這樣, 該業(yè)務(wù)流的后續(xù)包就可根據(jù)該所述第二和第一關(guān)聯(lián)關(guān)系直接查找到安全業(yè) 務(wù)信息和ARP表項(xiàng)信息,從而直接對(duì)該后續(xù)包進(jìn)行安全業(yè)務(wù)處理和轉(zhuǎn)發(fā)處 理,而無(wú)需再進(jìn)行安全業(yè)務(wù)表項(xiàng)和FIB表項(xiàng)、ARP表項(xiàng)的查找過(guò)程。
下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明再作進(jìn)一步詳細(xì)的說(shuō)明。
圖2為本發(fā)明實(shí)施例一提供的基于安全業(yè)務(wù)的包轉(zhuǎn)發(fā)流程圖,如圖2所 示,其具體步驟如下
步驟201:安全設(shè)備通過(guò)軟件學(xué)習(xí)到ARP表項(xiàng)。
步驟202:安全設(shè)備通過(guò)軟件學(xué)習(xí)到FIB表項(xiàng),為該FIB表項(xiàng)設(shè)置FIB 序號(hào),查找與該FIB表項(xiàng)對(duì)應(yīng)的ARP表項(xiàng),將該ARP表項(xiàng)的索引添力。到該 FIB表項(xiàng)中。
當(dāng)修改FIB表項(xiàng)中的轉(zhuǎn)發(fā)信息如三層出接口信息時(shí),將該FIB表項(xiàng)中
的FIB序號(hào)加1;當(dāng)刪除FIB表項(xiàng)時(shí),也要將該FIB表項(xiàng)中的FIB序號(hào)加1 。 這樣,當(dāng)FIB表項(xiàng)被修改或刪除后,F(xiàn)IB表項(xiàng)和在后續(xù)步驟中建立的Session 表項(xiàng)中的FIB序號(hào)就會(huì)不一致,從而觸發(fā)Session表項(xiàng)中FIB表項(xiàng)索引和FIB
序號(hào)的更新。
步驟203:安全設(shè)備接收到包,在軟件中查找與該包的五元組信息對(duì)應(yīng) 的Session表項(xiàng)。
步驟204:安全設(shè)備判斷是否查找到Session表項(xiàng),若是,執(zhí)行步驟214; 否則,執(zhí)行步驟205。
步驟205:安全設(shè)備確定該包為業(yè)務(wù)流的首包,在軟件中查找與該首包 攜帶的信息如五元組信息對(duì)應(yīng)的安全業(yè)務(wù)表項(xiàng)。
步驟206:安全設(shè)備根據(jù)查找到的安全業(yè)務(wù)表項(xiàng)中的安全業(yè)務(wù)信息,對(duì) 該首包執(zhí)行相應(yīng)的安全業(yè)務(wù)處理,并在軟件中建立Session表項(xiàng),該Session 表項(xiàng)包括該首包的五元組信息和所述安全業(yè)務(wù)信息。
本步驟中的安全業(yè)務(wù)處理針對(duì)的是安全設(shè)備入口處的安全業(yè)務(wù)處理。
步驟207:安全設(shè)備在軟件中查找與該首包的目的IP地址對(duì)應(yīng)的FIB 表項(xiàng)。
步驟208:安全設(shè)備查找到FIB表項(xiàng),在軟件中查找與該FIB表項(xiàng)最匹 配的ARP表項(xiàng)。
步驟209:安全設(shè)備將查找到的FIB表項(xiàng)中的FIB序號(hào)及該FIB表項(xiàng)的 索引添加到步驟206建立的Session表項(xiàng)中。
可以看出,執(zhí)行完本步驟后,安全設(shè)備建立的Session表項(xiàng)包括五元 組信息、安全業(yè)務(wù)信息、FIB表項(xiàng)索引、FIB序號(hào)。
步驟210:安全設(shè)備在軟件中查找與所述FIB表項(xiàng)中的三層出接口信息 對(duì)應(yīng)的安全業(yè)務(wù)表項(xiàng)。
FIB表項(xiàng)包括目的IP地址、目的掩碼、三層出接口、下一跳等信息。
步驟211:安全設(shè)備判斷是否查找到安全業(yè)務(wù)表項(xiàng),若是,執(zhí)行步驟212; 否則,執(zhí)行步驟213。
步驟212:安全設(shè)備根據(jù)查找到的安全業(yè)務(wù)表項(xiàng)中的安全業(yè)務(wù)信息,對(duì) 該首包執(zhí)行相應(yīng)的安全業(yè)務(wù)處理,同時(shí)將該安全業(yè)務(wù)信息添加到步驟206建 立的Session表項(xiàng)中,安全業(yè)務(wù)處理完畢,轉(zhuǎn)至步驟213。
本步驟中的安全業(yè)務(wù)處理針對(duì)的是安全設(shè)備出口處的安全業(yè)務(wù)處理。
步驟213:安全設(shè)備將查找到的ARP表項(xiàng)中的二層鏈路層頭封裝到該 首包的二層頭上,將該首包轉(zhuǎn)發(fā)出去,返回步驟203。
步驟214:安全設(shè)備確定該包為業(yè)務(wù)流的后續(xù)包,根據(jù)Session表項(xiàng)中 的FIB表項(xiàng)索引查找到FIB表項(xiàng)。
步驟215:安全設(shè)備判斷查找到的FIB表項(xiàng)中的FIB序號(hào)與Session表 項(xiàng)中的FIB序號(hào)是否一致,若是,執(zhí)行步驟216;否則,執(zhí)行步驟218。
步驟216:安全設(shè)備確定FIB表項(xiàng)未被修改或刪除過(guò),根據(jù)Session表 項(xiàng)中的安全業(yè)務(wù)信息,對(duì)該后續(xù)包執(zhí)行相應(yīng)的安全業(yè)務(wù)處理,執(zhí)行完畢,轉(zhuǎn) 至步驟217。
步驟217:安全設(shè)備根據(jù)FIB表項(xiàng)中的ARP表項(xiàng)索引查找到ARP表項(xiàng), 將查找到的ARP表項(xiàng)中的二層鏈路層頭封裝到該后續(xù)包的二層頭上,將該 后續(xù)包轉(zhuǎn)發(fā)出去,返回步驟203。
步驟218:安全設(shè)備確定FIB表項(xiàng)被修改或刪除過(guò),查找與該后續(xù)包攜 帶的信息如五元組信息對(duì)應(yīng)的安全業(yè)務(wù)表項(xiàng)。
步驟219:安全設(shè)備根據(jù)查找到的安全業(yè)務(wù)表項(xiàng)中的安全業(yè)務(wù)信息,對(duì) 該后續(xù)包執(zhí)行相應(yīng)的安全業(yè)務(wù)處理,并以該安全業(yè)務(wù)信息更新所查找到的 Session表項(xiàng)中的安全業(yè)務(wù)信息。
步驟220:安全i殳備在軟件中查找與該后續(xù)包的目的IP地址對(duì)應(yīng)的FIB 表項(xiàng)。
步驟221:安全設(shè)備查找到FIB表項(xiàng),在軟件中查找與該FIB表項(xiàng)最匹 配的ARP表項(xiàng)。
步驟222:安全設(shè)備以查找到的FIB表項(xiàng)中FIB序號(hào)及該FIB表項(xiàng)的索 引更新所查找到的Session表項(xiàng)中的FIB序號(hào)及FIB表項(xiàng)索引。
步驟223:安全設(shè)備查找與所述FIB表項(xiàng)中的三層出接口信息對(duì)應(yīng)的安 全業(yè)務(wù)表項(xiàng)。
步驟224:安全設(shè)備判斷是否查找到安全業(yè)務(wù)表項(xiàng),若是,執(zhí)行步驟225; 否則,執(zhí)行步驟226。
步驟225:安全設(shè)備根據(jù)查找到的安全業(yè)務(wù)表項(xiàng)中的安全業(yè)務(wù)信息,對(duì) 該后續(xù)包執(zhí)行相應(yīng)的安全業(yè)務(wù)處理,同時(shí)將該安全業(yè)務(wù)信息添加到所查找到 的Session表項(xiàng)中,安全業(yè)務(wù)處理完畢,轉(zhuǎn)至步驟226。
步驟226:安全設(shè)備將查找到的ARP表項(xiàng)中的二層鏈路層頭封裝到該 后續(xù)包的二層頭上,將該后續(xù)包轉(zhuǎn)發(fā)出去,返回步驟203。
從圖2所示流程可以看出當(dāng)在軟件中學(xué)習(xí)到FIB表項(xiàng)后,要查找與該 FIB表項(xiàng)最匹配的ARP表項(xiàng),將該ARP表項(xiàng)的索引添加到該FIB表項(xiàng)中。
當(dāng)對(duì)業(yè)務(wù)流的首包進(jìn)行了軟件中的安全業(yè)務(wù)表項(xiàng)、FIB表項(xiàng)和ARP表 項(xiàng)查找后,根據(jù)查找結(jié)果在軟件中所建立的Session表項(xiàng)的結(jié)構(gòu)如下
Session表項(xiàng)五元組信息、安全業(yè)務(wù)信息、FIB表項(xiàng)索引、FIB序號(hào)。
這樣,當(dāng)收到該業(yè)務(wù)流的后續(xù)包后,就可根據(jù)該后續(xù)包的五元組信息在 軟件中查找到上述Session表項(xiàng),然后根據(jù)該Session表項(xiàng)中的安全業(yè)務(wù)信息 執(zhí)行相應(yīng)的安全業(yè)務(wù)處理,根據(jù)該Session表項(xiàng)中的FIB表項(xiàng)索引查找到FIB 表項(xiàng),再根據(jù)該FIB表項(xiàng)中的ARP表項(xiàng)索引查找到ARP表項(xiàng),從而將該后 續(xù)包轉(zhuǎn)發(fā)出去??梢钥闯?,所有的安全業(yè)務(wù)信息都集中存儲(chǔ)在Session表項(xiàng) 中,提高了安全業(yè)務(wù)處理效率;且,在查找ARP表項(xiàng)時(shí),也無(wú)需再根據(jù)五 元組信息進(jìn)行FIB表項(xiàng)的查找、也無(wú)需與FIB表項(xiàng)進(jìn)行匹配,而可以根據(jù) Session表項(xiàng)中的FIB表項(xiàng)索引直接查找到FIB表項(xiàng),再根據(jù)FIB表項(xiàng)中的 ARP表項(xiàng)索引直接查找到ARP表項(xiàng),進(jìn)一步提高了轉(zhuǎn)發(fā)效率。
圖2所示實(shí)施例中,對(duì)業(yè)務(wù)流的后續(xù)包的安全業(yè)務(wù)處理和轉(zhuǎn)發(fā)處理都是 在軟件中進(jìn)行的,以下給出在硬件中對(duì)業(yè)務(wù)流的后續(xù)包進(jìn)行安全業(yè)務(wù)處理和 轉(zhuǎn)發(fā)處理的實(shí)施例。
圖3為本發(fā)明實(shí)施例二提供的安全業(yè)務(wù)處理流程圖,如圖3所示,其具
體步驟如下
步驟301:安全設(shè)備通過(guò)軟件學(xué)習(xí)到ARP表項(xiàng),在硬件中建立ARP感 知表項(xiàng),該ARP感知表項(xiàng)中包含的內(nèi)容與所學(xué)習(xí)到的ARP表項(xiàng)的內(nèi)容相同, 并將ARP感知表項(xiàng)的索引添加到所學(xué)習(xí)到的ARP表項(xiàng)中。
步驟302:安全設(shè)備通過(guò)軟件學(xué)習(xí)到FIB表項(xiàng),為該FIB表項(xiàng)設(shè)置FIB 序號(hào),查找與該FIB表項(xiàng)對(duì)應(yīng)的ARP表項(xiàng),并建立與該FIB表項(xiàng)對(duì)應(yīng)的FIB 感知表項(xiàng),該FIB感知表項(xiàng)包括該FIB表項(xiàng)的FIB序號(hào)、所述ARP表項(xiàng) 中的ARP感知表項(xiàng)索引,將該FIB感知表項(xiàng)保存到硬件中。
當(dāng)修改FIB表項(xiàng)中的轉(zhuǎn)發(fā)信息如三層出接口信息時(shí),將該FIB表項(xiàng)中 的FIB序號(hào)加1,同時(shí)根據(jù)該FIB表項(xiàng)中的FIB感知表項(xiàng)索引查找到FIB感 知表項(xiàng),將該FIB感知表項(xiàng)中的FIB序號(hào)加1;當(dāng)刪除FIB表項(xiàng)時(shí),也要根 據(jù)該FIB表項(xiàng)中的FIB感知表項(xiàng)索引查找到FIB感知表項(xiàng),將該FIB感知 表項(xiàng)中的FIB序號(hào)加1。這樣,當(dāng)FIB表項(xiàng)一皮^務(wù)改或刪除后,F(xiàn)IB感知表項(xiàng) 中的FIB序號(hào)和在后續(xù)步驟中建立的Session表項(xiàng)中的FIB序號(hào)就會(huì)不一致, 從而觸發(fā)Session表項(xiàng)中FIB感知表項(xiàng)索引和FIB序號(hào)的更新。
步驟303:安全設(shè)備接收到包,在硬件中查找與該包的五元組信息對(duì)應(yīng) 的Session表項(xiàng)。
步驟304:安全設(shè)備判斷是否查找到Session表項(xiàng),若是,執(zhí)行步驟314; 否則,執(zhí)行步驟305。
步驟305:安全設(shè)備確定該包為業(yè)務(wù)流的首包,在軟件中查找與該首包 攜帶的信息如五元組信息對(duì)應(yīng)的安全業(yè)務(wù)表項(xiàng)。
步驟306:安全設(shè)備根據(jù)查找到的安全業(yè)務(wù)表項(xiàng)中的安全業(yè)務(wù)信息,對(duì) 該首包執(zhí)行相應(yīng)的安全業(yè)務(wù)處理,并在軟件中建立Session表項(xiàng),該Session 表項(xiàng)包括該首包的五元組信息和所述安全業(yè)務(wù)信息。
步驟307:安全設(shè)備在軟件中查找與該首包的目的IP地址對(duì)應(yīng)的FIB 表項(xiàng)。
步驟308:安全設(shè)備查找到FIB表項(xiàng),在軟件中查找與該FIB表項(xiàng)最匹
配的ARP表項(xiàng)。
步驟309:安全設(shè)備將查找到的FIB表項(xiàng)中的FIB感知表項(xiàng)索引及FIB 序號(hào)添加到步驟306中建立的Session表項(xiàng)中。
可以看出,執(zhí)行完本步驟后,安全設(shè)備建立的Session表項(xiàng)包括五元 組信息、安全業(yè)務(wù)信息、FIB感知表項(xiàng)索引、FIB序號(hào)。
步驟310:安全設(shè)備在軟件中查找與所述FIB表項(xiàng)中的三層出接口信息 對(duì)應(yīng)的安全業(yè)務(wù)表項(xiàng)。
步驟311:安全設(shè)備判斷是否查找到安全業(yè)務(wù)表項(xiàng),若是,執(zhí)行步驟312; 否則,執(zhí)行步驟313。
步驟312:安全設(shè)備根據(jù)查找到的安全業(yè)務(wù)表項(xiàng)中的安全業(yè)務(wù)信息,對(duì) 該首包執(zhí)行相應(yīng)的安全業(yè)務(wù)處理,同時(shí)將該安全業(yè)務(wù)信息添加到步驟306建 立的Session表項(xiàng)中,將該Session表項(xiàng)保存到硬件中,安全業(yè)務(wù)處理完畢, 轉(zhuǎn)至步驟313。
步驟313:安全設(shè)備將查找到的ARP表項(xiàng)中的二層鏈路層頭封裝到該 首包的二層頭上,將該包轉(zhuǎn)發(fā)出去,返回步驟303。
步驟314:安全設(shè)備確定該包為業(yè)務(wù)流的后續(xù)包,根據(jù)Session表項(xiàng)中 的FIB感知表項(xiàng)索引查找到FIB感知表項(xiàng)。
步驟315:安全設(shè)備判斷查找到的FIB感知表項(xiàng)中的FIB序號(hào)與Session 表項(xiàng)中的FIB序號(hào)是否一致,若是,執(zhí)行步驟316;否則,執(zhí)行步驟318。
步驟316:安全設(shè)備確定FIB表項(xiàng)未^皮修改或刪除過(guò),根據(jù)Session表 項(xiàng)中的安全業(yè)務(wù)信息,對(duì)該后續(xù)包執(zhí)行相應(yīng)的安全業(yè)務(wù)處理,執(zhí)行完畢,轉(zhuǎn) 至步驟317。
步驟317:安全設(shè)備根據(jù)FIB感知表項(xiàng)中的ARP感知表項(xiàng)索引查找到 ARP感知表項(xiàng),將查找到的ARP感知表項(xiàng)中的二層鏈路層頭封裝到該后續(xù) 包的二層頭上,將該后續(xù)包轉(zhuǎn)發(fā)出去,返回步驟303。
步驟318:安全設(shè)備確定FIB表項(xiàng)被修改或刪除過(guò),查找與該后續(xù)包攜 帶的信息如五元組信息對(duì)應(yīng)的安全業(yè)務(wù)表項(xiàng)。
步驟319:安全設(shè)備根據(jù)查找到的安全業(yè)務(wù)表項(xiàng)中的安全業(yè)務(wù)信息,對(duì) 該后續(xù)包執(zhí)行相應(yīng)的安全業(yè)務(wù)處理,并以該安全業(yè)務(wù)信息更新所查找到的 Session表項(xiàng)中的安全業(yè)務(wù)信息。
步驟320:安全設(shè)備在軟件中查找與該后續(xù)包的目的IP地址對(duì)應(yīng)的FIB表項(xiàng)。
步驟321:安全設(shè)備查找到FIB表項(xiàng),在軟件中查找與該FIB表項(xiàng)最匹 配的ARP表項(xiàng)。
步驟322:安全設(shè)備以查找到的FIB表項(xiàng)中的FIB感知表項(xiàng)索引及FIB 序號(hào)更新所查找到的Session表項(xiàng)中的FIB感知表項(xiàng)索引及FIB序號(hào)。
步驟323:安全設(shè)備查找與所述FIB表項(xiàng)中的三層出接口信息對(duì)應(yīng)的安 全業(yè)務(wù)表項(xiàng)。
步驟324:安全設(shè)備判斷是否查找到安全業(yè)務(wù)表項(xiàng),若是,執(zhí)行步驟325; 否則,執(zhí)行步驟326。
步驟325:安全設(shè)備根據(jù)查找到的安全業(yè)務(wù)表項(xiàng)中的安全業(yè)務(wù)信息,對(duì) 該后續(xù)包執(zhí)行相應(yīng)的安全業(yè)務(wù)處理,同時(shí)將該安全業(yè)務(wù)信息添加到所查找到 的Session表項(xiàng)中,安全業(yè)務(wù)處理完畢,轉(zhuǎn)至步驟326。
步驟326:安全設(shè)備將查找到的ARP表項(xiàng)中的二層鏈路層頭封裝到該 后續(xù)包的二層頭上,將該包轉(zhuǎn)發(fā)出去,返回步驟303。
從圖3所示流程可以看出當(dāng)在軟件中學(xué)習(xí)到ARP表項(xiàng)后,會(huì)在硬件 中保存與該ARP表項(xiàng)對(duì)應(yīng)的ARP感知表項(xiàng),并將該ARP感知表項(xiàng)索引保 存到學(xué)習(xí)到的ARP表項(xiàng)中。
當(dāng)在軟件中學(xué)習(xí)到FIB表項(xiàng)后,在硬件中建立的FIB感知表項(xiàng)的結(jié)構(gòu)為
FIB感知表項(xiàng)FIB序號(hào)、ARP感知表項(xiàng)索引。
當(dāng)對(duì)業(yè)務(wù)流的首包進(jìn)行了軟件中的安全業(yè)務(wù)表項(xiàng)、FIB表項(xiàng)和ARP表 項(xiàng)查找后,根據(jù)查找結(jié)果在硬件中所保存的Session表項(xiàng)的結(jié)構(gòu)如下
Session表項(xiàng)五元組信息、安全業(yè)務(wù)信息、FIB感知表項(xiàng)索引、FIB序
這樣,當(dāng)收到該業(yè)務(wù)流的后續(xù)包后,就可根據(jù)該后續(xù)包的五元組信息在
硬件中查找到上述Session表項(xiàng),然后根據(jù)該Session表項(xiàng)中的安全業(yè)務(wù)信息 執(zhí)行相應(yīng)的安全業(yè)務(wù)處理,根據(jù)該Session表項(xiàng)中的FIB感知表項(xiàng)索引查找 到硬件中的FIB感知表項(xiàng),再才艮據(jù)該FIB感知表項(xiàng)中的ARP感知表項(xiàng)索引 查找到硬件中的ARP感知表項(xiàng),從而將該后續(xù)包轉(zhuǎn)發(fā)出去??梢钥闯?,對(duì) 后續(xù)包的安全業(yè)務(wù)處理和轉(zhuǎn)發(fā)處理都是在硬件中進(jìn)行的,大大提高了后續(xù)包 的安全業(yè)務(wù)處理效率和轉(zhuǎn)發(fā)效率;同時(shí),所有的安全業(yè)務(wù)信息都集中存儲(chǔ)在 Session表項(xiàng)中,進(jìn)一步提高了安全業(yè)務(wù)處理效率;且,在查找ARP感知表 項(xiàng)時(shí),也無(wú)需再根據(jù)五元組信息進(jìn)行FIB表項(xiàng)的查找、也無(wú)需與FIB表項(xiàng)進(jìn) 行匹配,而可以根據(jù)Session表項(xiàng)中的FIB感知表項(xiàng)索引直接查找到FIB感 知表項(xiàng),再根據(jù)FIB感知表項(xiàng)中的ARP感知表項(xiàng)索引直接查找到ARP感知 表項(xiàng),進(jìn)一步提高了轉(zhuǎn)發(fā)效率。
同時(shí),從圖3所示實(shí)施例可以看出本發(fā)明實(shí)施例中的FIB表項(xiàng)與現(xiàn)有 技術(shù)中的FIB表項(xiàng)的不同之處在于,F(xiàn)IB表項(xiàng)中還需保存FIB感知表項(xiàng)索引, 以在FIB表項(xiàng)被修改或刪除時(shí),能夠及時(shí)更新FIB感知表項(xiàng)中的FIB序號(hào), 從而及時(shí)更新Session表項(xiàng)中的FIB感知表項(xiàng)索引和FIB序號(hào)。
在圖3所示實(shí)施例中,為了進(jìn)一步加快基于安全業(yè)務(wù)的包的轉(zhuǎn)發(fā)速度, 將FIB感知表項(xiàng)和Session表項(xiàng)保存到硬件中,同時(shí)在硬件中保存了與ARP 表項(xiàng)內(nèi)容完全相同的ARP感知表項(xiàng)。在實(shí)際應(yīng)用中,也可將FIB感知表項(xiàng) 和Session表項(xiàng)保存到軟件中,同時(shí),不在硬件中保存ARP感知表項(xiàng),此時(shí), FIB感知表項(xiàng)中包含ARP表項(xiàng)索引而非ARP感知表項(xiàng)索引,這樣,對(duì)業(yè)務(wù) 流的后續(xù)包的安全業(yè)務(wù)處理和轉(zhuǎn)發(fā)處理都在軟件中進(jìn)行,其具體過(guò)程與圖3 所示實(shí)施例相似,在此不再——贅述。
圖4為本發(fā)明實(shí)施例一提供的基于安全業(yè)務(wù)的包轉(zhuǎn)發(fā)系統(tǒng)組成圖,如圖 4所示,其主要包括安全業(yè)務(wù)表項(xiàng)存儲(chǔ)模塊401、 FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊 402、 ARP表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊403、 Session表項(xiàng)存儲(chǔ)模塊404、包接收模塊 405、 Session表項(xiàng)查找模塊406、 Session表項(xiàng)建立更新模塊407、安全業(yè)務(wù)
處理模塊408和轉(zhuǎn)發(fā)模塊409,其中
安全業(yè)務(wù)表項(xiàng)存儲(chǔ)模塊401:保存由五元組信息和/或轉(zhuǎn)發(fā)表項(xiàng)信息與安 全業(yè)務(wù)信息組成的各安全業(yè)務(wù)表項(xiàng)。
FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)才莫塊402:學(xué)習(xí)到FIB表項(xiàng),保存該FIB表項(xiàng),并為 該FIB表項(xiàng)設(shè)置FIB序號(hào),每個(gè)FIB表項(xiàng)包含目的IP地址信息、目的掩 碼信息、三層出接口信息、下一跳信息和FIB序號(hào)等,并在ARP表項(xiàng)學(xué)習(xí) 存儲(chǔ)模塊403中查找與該FIB表項(xiàng)最匹配的ARP表項(xiàng),將查找到的ARP表 項(xiàng)的索引添加到該FIB表項(xiàng)中。
ARP表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊403:學(xué)習(xí)并保存ARP表項(xiàng)。
Session表項(xiàng)存儲(chǔ)模塊404:保存由五元組信息、安全業(yè)務(wù)信息、FIB表 項(xiàng)索引、FIB序號(hào)組成的各Session表項(xiàng)。
包接收模塊405:用于接收包,將該包發(fā)送給安全業(yè)務(wù)處理模塊408和 Session表項(xiàng)查找模塊 。
Session表項(xiàng)查找模塊406:接收包接收模塊405發(fā)來(lái)的包,在Session 表項(xiàng)存儲(chǔ)模塊404中查找與該包的五元組信息對(duì)應(yīng)的Session表項(xiàng),若查找 到,則在FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊402中查找與該Session表項(xiàng)中的FIB表項(xiàng) 索引對(duì)應(yīng)的FIB表項(xiàng),判斷查找到的FIB表項(xiàng)中的FIB序號(hào)與Session表項(xiàng) 中的FIB序號(hào)是否一致,若一致,則將該Session表項(xiàng)中的安全業(yè)務(wù)信息發(fā) 送給安全業(yè)務(wù)處理模塊408,根據(jù)FIB表項(xiàng)中的ARP表項(xiàng)索引在ARP表項(xiàng) 學(xué)習(xí)存儲(chǔ)模塊403中查找到ARP表項(xiàng),將該ARP表項(xiàng)發(fā)送給轉(zhuǎn)發(fā)模塊409; 若不一致,則將該包和查找到的Session表項(xiàng)索引攜帶在更新指示中發(fā)送給 Session表項(xiàng)建立更新模塊407;若未查找到,則將該包攜帶在建立指示中發(fā) 送給Session表項(xiàng)建立更新模塊407。
Session表項(xiàng)建立更新模塊407:接收Session表項(xiàng)查找模塊406發(fā)來(lái)的 攜帶包的建立指示,在安全業(yè)務(wù)表項(xiàng)存儲(chǔ)模塊401中查找與該包攜帶的信息 如五元組信息對(duì)應(yīng)的安全業(yè)務(wù)信息,將查找到的安全業(yè)務(wù)信息發(fā)送給安全 業(yè)務(wù)處理模塊408,在Session表項(xiàng)存儲(chǔ)模塊404中建立新的Session表項(xiàng),
該Session表項(xiàng)包括所述包的五元組信息和查找到的安全業(yè)務(wù)信息;在FIB 表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊402中查找與該包的目的IP地址對(duì)應(yīng)的FIB表項(xiàng),將該 FIB表項(xiàng)中的FIB序號(hào)及該FIB表項(xiàng)的索引添加到所建立的Session表項(xiàng)中, 在ARP表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊403中查找與該FIB表項(xiàng)最匹配的ARP表項(xiàng),將 該ARP表項(xiàng)發(fā)送給轉(zhuǎn)發(fā)模塊409,并在安全業(yè)務(wù)表項(xiàng)存儲(chǔ)模塊401中查找與 所述查找到的FIB表項(xiàng)中的三層出接口信息對(duì)應(yīng)的安全業(yè)務(wù)信息,若查找 到,將該安全業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊408,并將該安全業(yè)務(wù)信息 添加到在Session表項(xiàng)存儲(chǔ)模塊404中新建立的Session表項(xiàng)中。接收Session 表項(xiàng)查找模塊406發(fā)來(lái)的攜帶包和Session表項(xiàng)索引的更新指示,在安全業(yè) 務(wù)表項(xiàng)存儲(chǔ)模塊401中查找與該包攜帶的信息如五元組信息對(duì)應(yīng)的安全業(yè) 務(wù)信息,將查找到的安全業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊408,根據(jù)所述 Session表項(xiàng)索引在Session表項(xiàng)存儲(chǔ)模塊404中查找到Session表項(xiàng),以查 找到的安全業(yè)務(wù)信息替換該Session表項(xiàng)中的安全業(yè)務(wù)信息;在FIB表項(xiàng)學(xué) 習(xí)存儲(chǔ)模塊402中查找與該包的目的IP地址對(duì)應(yīng)的FIB表項(xiàng),以該FIB表 項(xiàng)中的FIB序號(hào)及該FIB表項(xiàng)的索引替換所述Session表項(xiàng)中的FIB序號(hào)和 FIB表項(xiàng)索引,在ARP表項(xiàng)學(xué)習(xí)存儲(chǔ)才莫塊403中查找與該FIB表項(xiàng)最匹配 的ARP表項(xiàng),將該ARP表項(xiàng)發(fā)送給轉(zhuǎn)發(fā)模塊409,并在安全業(yè)務(wù)表項(xiàng)存儲(chǔ) 模塊401中查找與所述查找到的FIB表項(xiàng)中的三層出接口信息對(duì)應(yīng)的安全業(yè) 務(wù)信息,若查找到,將該安全業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊408,并將 該安全業(yè)務(wù)信息添加到所述Session表項(xiàng)中。
安全業(yè)務(wù)處理模塊408:接收包接收模塊405發(fā)來(lái)的包,接收Session 表項(xiàng)查找模塊406或Session表項(xiàng)建立更新模塊407發(fā)來(lái)的安全業(yè)務(wù)信息, 根據(jù)該安全業(yè)務(wù)信息對(duì)該包進(jìn)行相應(yīng)的安全業(yè)務(wù)處理,處理完畢,將該包發(fā) 送給轉(zhuǎn)發(fā)模塊409。
轉(zhuǎn)發(fā)模塊409:接收安全業(yè)務(wù)處理模塊408發(fā)來(lái)的經(jīng)安全業(yè)務(wù)處理的包, 接收Session表項(xiàng)查找模塊406或Session表項(xiàng)建立更新模塊407發(fā)來(lái)的ARP 表項(xiàng),根據(jù)該ARP表項(xiàng),將包發(fā)送出去。
本發(fā)明實(shí)施例中的系統(tǒng)還可進(jìn)一步包括FIB表項(xiàng)更新模塊,用于更新 FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊402中的FIB表項(xiàng),且在更新FIB表項(xiàng)時(shí),同時(shí)將該 FIB表項(xiàng)的FIB序號(hào)加1。
在實(shí)際應(yīng)用中,可將安全業(yè)務(wù)表項(xiàng)存儲(chǔ)模塊401、 FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模 塊402、 ARP表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊403、 Session表項(xiàng)存儲(chǔ)模塊404、 Session 表項(xiàng)查找模塊406、 Session表項(xiàng)建立更新模塊407統(tǒng)稱為業(yè)務(wù)轉(zhuǎn)發(fā)關(guān)聯(lián)模塊。
圖5為本發(fā)明實(shí)施例二提供的基于安全業(yè)務(wù)的包轉(zhuǎn)發(fā)系統(tǒng)組成圖,如圖 5所示,其主要包括安全業(yè)務(wù)表項(xiàng)存儲(chǔ)模塊501、 FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊 502、 FIB感知表項(xiàng)存儲(chǔ)模塊503、 ARP表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊504、 ARP感知表 項(xiàng)存儲(chǔ)模塊505、 Session表項(xiàng)存儲(chǔ)模塊506、包接收模塊507、 Session表項(xiàng) 查找模塊508、 Session表項(xiàng)建立更新模塊509、安全業(yè)務(wù)處理模塊510和轉(zhuǎn) 發(fā)模塊511,其中
安全業(yè)務(wù)表項(xiàng)存儲(chǔ)模塊501:保存由五元組信息和/或轉(zhuǎn)發(fā)表項(xiàng)信息與安 全業(yè)務(wù)信息組成的各安全業(yè)務(wù)表項(xiàng)。
FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊502:學(xué)習(xí)到FIB表項(xiàng),保存該FIB表項(xiàng),并為 該FIB表項(xiàng)設(shè)置FIB序號(hào),每個(gè)FIB表項(xiàng)包含目的IP地址信息、目的掩 碼信息、三層出接口信息、下一跳信息和FIB序號(hào)等,并在ARP表項(xiàng)學(xué)習(xí) 存儲(chǔ)模塊504中查找與該FIB表項(xiàng)最匹配的ARP表項(xiàng),在FIB感知表項(xiàng)存 儲(chǔ)模塊503中建立FIB感知表項(xiàng),該FIB感知表項(xiàng)包括查找到的ARP表 項(xiàng)中的ARP感知表項(xiàng)索引和學(xué)習(xí)到的FIB表項(xiàng)的FIB序號(hào),并將該FIB感 知表項(xiàng)索引添加到學(xué)習(xí)到的FIB表項(xiàng)中。
FIB感知表項(xiàng)存儲(chǔ)模塊503:存儲(chǔ)FIB感知表項(xiàng),每個(gè)FIB感知表項(xiàng)包 括ARP感知表項(xiàng)索引和FIB序號(hào)。
ARP表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊504:學(xué)習(xí)并保存ARP表項(xiàng),同時(shí)在ARP感知 表項(xiàng)存儲(chǔ)模塊505中建立ARP感知表項(xiàng),該ARP感知表項(xiàng)的內(nèi)容與學(xué)習(xí)到 的ARP表項(xiàng)的內(nèi)容相同,將該ARP感知表項(xiàng)的索引添加到學(xué)習(xí)到的ARP 表項(xiàng)中。ARP感知表項(xiàng)存儲(chǔ)模塊505:存儲(chǔ)ARP感知表項(xiàng)。
Session表項(xiàng)存儲(chǔ)模塊506:保存由五元組信息、安全業(yè)務(wù)信息、FIB感 知表項(xiàng)索引、FIB序號(hào)組成的各Session表項(xiàng)。
包接收模塊507:用于接收包,將該包發(fā)送給安全業(yè)務(wù)處理模塊510和 Session表項(xiàng)查找模塊508。
Session表項(xiàng)查找模塊508:接收包接收模塊507發(fā)來(lái)的包,在Session 表項(xiàng)存儲(chǔ)模塊506中查找與該包的五元組信息對(duì)應(yīng)的Session表項(xiàng),若查找 到,則在FIB感知表項(xiàng)存儲(chǔ)模塊503中查找與該Session表項(xiàng)中的FIB感知 表項(xiàng)索引對(duì)應(yīng)的FIB感知表項(xiàng),判斷查找到的FIB感知表項(xiàng)中的FIB序號(hào)與 Session表項(xiàng)中的FIB序號(hào)是否一致,若一致,則將該Session表項(xiàng)中的安全 業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊510,將FIB感知表項(xiàng)中的ARP感知表 項(xiàng)索引發(fā)送給轉(zhuǎn)發(fā)模塊511;若不一致,則將該包和查找到的Session表項(xiàng) 索引攜帶在更新指示中發(fā)送給Session表項(xiàng)建立更新模塊509;若未查找到, 則將該包攜帶在建立指示中發(fā)送給Session表項(xiàng)建立更新模塊509。
Session表項(xiàng)建立更新模塊509:接收Session表項(xiàng)查找模塊508發(fā)來(lái)的 攜帶包的建立指示,在安全業(yè)務(wù)表項(xiàng)存儲(chǔ)模塊501中查找與該包攜帶的信息 如五元組信息對(duì)應(yīng)的安全業(yè)務(wù)信息,將查找到的安全業(yè)務(wù)信息發(fā)送給安全 業(yè)務(wù)處理模塊510,建立新的Session表項(xiàng),該Session表項(xiàng)包括所述包的 五元組信息和查找到的安全業(yè)務(wù)信息;在FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊502中查找 與該包的目的IP地址對(duì)應(yīng)的FIB表項(xiàng),將該FIB表項(xiàng)中的FIB感知表項(xiàng)索 引和FIB序號(hào)添加到所建立的Session表項(xiàng)中,在ARP表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊 504中查找與該FIB表項(xiàng)最匹配的ARP表項(xiàng),將該ARP表項(xiàng)發(fā)送給轉(zhuǎn)發(fā)模 塊511,并在安全業(yè)務(wù)表項(xiàng)存儲(chǔ)模塊501中查找與所述查找到的FIB表項(xiàng)中 的三層出接口信息對(duì)應(yīng)的安全業(yè)務(wù)信息,若查找到,將該安全業(yè)務(wù)信息發(fā)送 給安全業(yè)務(wù)處理模塊510,并將該安全業(yè)務(wù)信息添加到、新建立的Session 表項(xiàng)中,將該Session表項(xiàng)保存到Session表項(xiàng)存儲(chǔ)模塊506。接收Session 表項(xiàng)查找模塊508發(fā)來(lái)的攜帶包和Session表項(xiàng)索引的更新指示,在安全業(yè)
務(wù)表項(xiàng)存儲(chǔ)模塊501中查找與該五元組信息對(duì)應(yīng)的安全業(yè)務(wù)信息,將查找到 的安全業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊510,根據(jù)所述Session表項(xiàng)索引 在Session表項(xiàng)存儲(chǔ)模塊506中查找到Session表項(xiàng),以查找到的安全業(yè)務(wù)信 息替換該Session表項(xiàng)中的安全業(yè)務(wù)信息;在FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊502中 查找與該包的目的IP地址對(duì)應(yīng)的FIB表項(xiàng),以該FIB表項(xiàng)中的FIB感知表 項(xiàng)索引和FIB序號(hào)替換所述Session表項(xiàng)中的FIB感知表項(xiàng)索引和FIB序號(hào), 在ARP表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊504中查找與該FIB表項(xiàng)最匹配的ARP表項(xiàng),將 該ARP表項(xiàng)發(fā)送給轉(zhuǎn)發(fā)模塊511,并在安全業(yè)務(wù)表項(xiàng)存儲(chǔ)模塊501中查找與 所述查找到的FIB表項(xiàng)中的三層出接口信息對(duì)應(yīng)的安全業(yè)務(wù)信息,若查找 到,將該安全業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊510,并將該安全業(yè)務(wù)信息 添加到所述Session表項(xiàng)中。
安全業(yè)務(wù)處理模塊510:接收包接收模塊507發(fā)來(lái)的包,接收Session 表項(xiàng)查找模塊508或Session表項(xiàng)建立更新模塊509發(fā)來(lái)的安全業(yè)務(wù)信息, 根據(jù)該安全業(yè)務(wù)信息對(duì)該包進(jìn)行相應(yīng)的安全業(yè)務(wù)處理,處理完畢,將該包發(fā) 送給轉(zhuǎn)發(fā)模塊511。
轉(zhuǎn)發(fā)模塊511:接收安全業(yè)務(wù)處理模塊510發(fā)來(lái)的經(jīng)安全業(yè)務(wù)處理的包, 接收Session表項(xiàng)查找模塊508發(fā)來(lái)的ARP感知表項(xiàng)索引,在ARP感知表 項(xiàng)存儲(chǔ)模塊505中查找該ARP感知表項(xiàng)索引指向的ARP感知表項(xiàng),根據(jù)該 ARP感知表項(xiàng),將該包發(fā)送出去;接收Session表項(xiàng)建立更新模塊509發(fā)來(lái) 的ARP表項(xiàng),根據(jù)該ARP表項(xiàng),將包發(fā)送出去。
本發(fā)明實(shí)施例中的系統(tǒng)還可進(jìn)一步包括FIB表項(xiàng)更新模塊,用于更新 FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊502中的FIB表項(xiàng),且在更新FIB表項(xiàng)時(shí),同時(shí)將該 FIB表項(xiàng)的FIB序號(hào)加1,并根據(jù)該FIB表項(xiàng)中的FIB感知表項(xiàng)索引,在FIB 感知表項(xiàng)存儲(chǔ)模塊503中查找到FIB感知表項(xiàng),將該FIB感知表項(xiàng)中的FIB 序號(hào)加1。
在實(shí)際應(yīng)用中,可將安全業(yè)務(wù)表項(xiàng)存儲(chǔ)模塊501、 FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模 塊502、 FIB感知表項(xiàng)存儲(chǔ)模塊503、 ARP表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊504、 ARP感
知表項(xiàng)存儲(chǔ)模塊505、 Session表項(xiàng)存儲(chǔ)模塊506、 Session表項(xiàng)查找模塊508、 Session表項(xiàng)建立更新模塊509統(tǒng)稱為業(yè)務(wù)轉(zhuǎn)發(fā)關(guān)聯(lián)模塊。
需要指出的是,安全業(yè)務(wù)表項(xiàng)存儲(chǔ)模塊501 、FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊502、 ARP表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊504為采用現(xiàn)有技術(shù)構(gòu)造的模塊,保存在軟件中。而 FIB感知表項(xiàng)存儲(chǔ)模塊503、 ARP感知表項(xiàng)存儲(chǔ)模塊505、 Session表項(xiàng)存儲(chǔ) 模塊506為本發(fā)明實(shí)施例構(gòu)造的模塊,保存在硬件中,如TCAM中,以加 快安全設(shè)備對(duì)Session表項(xiàng)、FIB感知表項(xiàng)、ARP感知表項(xiàng)的訪問(wèn)速度,從 而提高基于安全業(yè)務(wù)的包轉(zhuǎn)發(fā)效率。
另外,在實(shí)際應(yīng)用中,F(xiàn)IB感知表項(xiàng)存儲(chǔ)才莫塊503、 Session表項(xiàng)存儲(chǔ)模 塊506也可保存到軟件中,同時(shí)無(wú)需再在硬件中構(gòu)造ARP感知表項(xiàng)存儲(chǔ)模 塊505 ,且,F(xiàn)IB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊502、 ARP表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊504、 Session 表項(xiàng)查找模塊508、轉(zhuǎn)發(fā)模塊511的功能需作如下更改
FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊502在FIB感知表項(xiàng)存儲(chǔ)模塊503中建立的FIB 感知表項(xiàng)包括查找到的ARP表項(xiàng)的索引和學(xué)習(xí)到的FIB表項(xiàng)的FIB序號(hào)。
ARP表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊504的功能更改為學(xué)習(xí)并保存ARP表項(xiàng)。
Session表項(xiàng)查找模塊508在判定查找到的FIB感知表項(xiàng)中的FIB序號(hào) 與Session表項(xiàng)中的FIB序號(hào)一致后,需要根據(jù)FIB感知表項(xiàng)中的ARP表項(xiàng) 索引在ARP表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊504中查找到ARP表項(xiàng),將該ARP表項(xiàng)發(fā) 送給轉(zhuǎn)發(fā)模塊511。
轉(zhuǎn)發(fā)模塊511的功能更改為接收安全業(yè)務(wù)處理模塊510發(fā)來(lái)的經(jīng)安全 業(yè)務(wù)處理的包,接收Session表項(xiàng)查找才莫塊508和Session表項(xiàng)建立更新模塊 509發(fā)來(lái)的ARP表項(xiàng),根據(jù)該ARP表項(xiàng),將包發(fā)送出去。
以上所述僅為本發(fā)明的過(guò)程及方法實(shí)施例,并不用以限制本發(fā)明,凡在 本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在 本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種基于安全業(yè)務(wù)的包轉(zhuǎn)發(fā)方法,其特征在于,包括建立轉(zhuǎn)發(fā)信息庫(kù)FIB表項(xiàng)與地址解析協(xié)議ARP表項(xiàng)的第一關(guān)聯(lián)關(guān)系;接收業(yè)務(wù)流的首包,獲取與首包對(duì)應(yīng)的安全業(yè)務(wù)信息和FIB表項(xiàng),建立首包攜帶的業(yè)務(wù)流包的屬性信息與安全業(yè)務(wù)信息、FIB表項(xiàng)的第二關(guān)聯(lián)關(guān)系;接收業(yè)務(wù)流的后續(xù)包,根據(jù)后續(xù)包的屬性信息及所述第二關(guān)聯(lián)關(guān)系和第一關(guān)聯(lián)關(guān)系,查找到安全業(yè)務(wù)信息和ARP表項(xiàng)信息,根據(jù)該安全業(yè)務(wù)信息對(duì)后續(xù)包執(zhí)行安全業(yè)務(wù)處理,根據(jù)該ARP表項(xiàng)信息將后續(xù)包轉(zhuǎn)發(fā)出去。
2、 如權(quán)利要求l所述的方法,其特征在于,所述第一關(guān)聯(lián)關(guān)系和第二關(guān)聯(lián) 關(guān)系保存在軟件單元中。
3、 如權(quán)利要求2所述的方法,其特征在于,所述建立第一關(guān)聯(lián)關(guān)系包括 將與軟件單元中每個(gè)FIB表項(xiàng)最匹配的ARP表項(xiàng)的索引添加到各FIB表項(xiàng)中;所述建立第二關(guān)聯(lián)關(guān)系包括在軟件單元中建立業(yè)務(wù)流包的屬性信息、安 全業(yè)務(wù)信息、所述查找到的FIB表項(xiàng)的索引之間的關(guān)聯(lián)關(guān)系。
4、 如權(quán)利要求3所述的方法,其特征在于,當(dāng)接收到后續(xù)包時(shí),所述查找 包括在所有第二關(guān)聯(lián)關(guān)系中,查找與該后續(xù)包攜帶的業(yè)務(wù)流包的屬性信息對(duì) 應(yīng)的第二關(guān)聯(lián)關(guān)系,在該第二關(guān)聯(lián)關(guān)系中查找到安全業(yè)務(wù)信息,查找該第二關(guān) 聯(lián)關(guān)系中的FIB表項(xiàng)索引指向的FIB表項(xiàng),根據(jù)該FIB表項(xiàng)中的ARP表項(xiàng)索 引查找到ARP表項(xiàng)。
5、 如權(quán)利要求3所述的方法,其特征在于,所述將ARP表項(xiàng)的索引添加 到各FIB表項(xiàng)中之前進(jìn)一步包括為每個(gè)FIB表項(xiàng)設(shè)置FIB序號(hào),且,所述建立第二關(guān)聯(lián)關(guān)系進(jìn)一步包括將FIB表項(xiàng)的FIB序號(hào)添加到該 第二關(guān)聯(lián)關(guān)系中,且,當(dāng)更新FIB表項(xiàng)時(shí),同時(shí)更新該FIB表項(xiàng)的FIB序號(hào)。
6、 如權(quán)利要求5所述的方法,其特征在于,當(dāng)接收到后續(xù)包時(shí),所述查找 FIB表項(xiàng)進(jìn)一步包括判斷查找到的FIB表項(xiàng)中的FIB序號(hào)與所述查找到的第 二關(guān)聯(lián)關(guān)系中的FIB序號(hào)是否一致,若是,根據(jù)該FIB表項(xiàng)中的ARP表項(xiàng)索引 查找到ARP表項(xiàng);否則,在軟件單元中重新查找與該后續(xù)包對(duì)應(yīng)的FIB表項(xiàng), 以查找到的FIB表項(xiàng)中的FIB序號(hào)及該FIB表項(xiàng)的索引更新所述查找到的第二 關(guān)聯(lián)關(guān)系中的FIB序號(hào)和FIB表項(xiàng)索引,然后在軟件單元中查找與所述FIB表 項(xiàng)最匹配的ARP表項(xiàng)。
7、 如權(quán)利要求2所述的方法,其特征在于,所述建立第一關(guān)聯(lián)關(guān)系包括 在軟件單元中查找與每個(gè)FIB表項(xiàng)最匹配的ARP表項(xiàng),在軟件單元中建立包含 查找到的ARP表項(xiàng)索引的FIB感知表項(xiàng),將該FIB感知表項(xiàng)索引添加到所述 FIB表項(xiàng)中;所述建立第二關(guān)聯(lián)關(guān)系為在軟件單元中建立業(yè)務(wù)流包的屬性信息、安全 業(yè)務(wù)信息、查找到的FIB表項(xiàng)的FIB感知表項(xiàng)索引之間的關(guān)聯(lián)關(guān)系。
8、 如權(quán)利要求7所述的方法,其特征在于,當(dāng)接收到后續(xù)包時(shí),所述查找 包括在所有第二關(guān)聯(lián)關(guān)系中,查找與該后續(xù)包攜帶的業(yè)務(wù)流包屬性信息對(duì)應(yīng)的 第二關(guān)聯(lián)關(guān)系,在該第二關(guān)聯(lián)關(guān)系中查找到安全業(yè)務(wù)信息,查找該第二關(guān)聯(lián)關(guān) 系中的FIB感知表項(xiàng)索引指向的FIB感知表項(xiàng),根據(jù)該FIB感知表項(xiàng)中的ARP 表項(xiàng)索引查找到ARP表項(xiàng)。
9、 如權(quán)利要求7所述的方法,其特征在于,所述在軟件單元中查找與每個(gè) FIB表項(xiàng)最匹配的ARP表項(xiàng)之前進(jìn)一步包括為每個(gè)FIB表項(xiàng)設(shè)置FIB序號(hào),且,所述建立FIB感知表項(xiàng)進(jìn)一步包括將所述FIB表項(xiàng)的FIB序號(hào)添加 到該FIB感知表項(xiàng)中,且,所述建立第二關(guān)聯(lián)關(guān)系進(jìn)一步包括將FIB表項(xiàng)的FIB序號(hào)添加到該 第二關(guān)聯(lián)關(guān)系中,且,當(dāng)更新FIB表項(xiàng)時(shí),同時(shí)更新該FIB表項(xiàng)的FIB序號(hào),并更新與該FIB 表項(xiàng)對(duì)應(yīng)的FIB感知表項(xiàng)中的FIB序號(hào)。
10、 如權(quán)利要求9所述的方法,其特征在于,當(dāng)接收到后續(xù)包時(shí),所述查 找FIB感知表項(xiàng)進(jìn)一步包括判斷查找到的FIB感知表項(xiàng)中的FIB序號(hào)與所述 查找到的第二關(guān)聯(lián)關(guān)系中的FIB序號(hào)是否一致,若是,根據(jù)該FIB感知表項(xiàng)中 的ARP表項(xiàng)索引查找到ARP表項(xiàng);否則,在軟件單元中重新查找與該后續(xù)包 對(duì)應(yīng)的FIB表項(xiàng),以查找到的FIB表項(xiàng)中的FIB感知表項(xiàng)索引和FIB序號(hào)更新 所述查找到的第二關(guān)聯(lián)關(guān)系中的FIB感知表項(xiàng)索引和FIB序號(hào),然后查找與所 述FIB表項(xiàng)最匹配的ARP表項(xiàng)。
11、 如權(quán)利要求1所述的方法,其特征在于,所述第一關(guān)聯(lián)關(guān)系和第二關(guān) 聯(lián)關(guān)系保存在硬件單元中。
12、 如權(quán)利要求11所述的方法,其特征在于,所述建立第一關(guān)聯(lián)關(guān)系之前 進(jìn)一步包括在軟件單元中學(xué)習(xí)ARP表項(xiàng)和FIB表項(xiàng);所述建立第 一關(guān)聯(lián)關(guān)系包括在硬件單元中建立與軟件單元中的每個(gè)ARP 表項(xiàng)所包含內(nèi)容相同的ARP感知表項(xiàng),將該ARP感知表項(xiàng)的索引添加到所述 ARP表項(xiàng)中;查找與每個(gè)FIB表項(xiàng)最匹配的ARP表項(xiàng),在硬件單元中建立包 含查找到的ARP表項(xiàng)中的ARP感知表項(xiàng)索引的FIB感知表項(xiàng),將該FIB感知 表項(xiàng)索引添加到所述FIB表項(xiàng)中;所述建立第二關(guān)聯(lián)關(guān)系為在軟件單元中建立業(yè)務(wù)流包的屬性信息、安全 業(yè)務(wù)信息、查找到的FIB表項(xiàng)中的FIB感知表項(xiàng)索引間的關(guān)聯(lián)關(guān)系,將該關(guān)聯(lián) 關(guān)系保存到硬件單元中。
13、 如權(quán)利要求12所述的方法,其特征在于,當(dāng)接收到后續(xù)包時(shí),所述查 找包括在硬件單元的所有第二關(guān)聯(lián)關(guān)系中,查找與該后續(xù)包攜帶的業(yè)務(wù)流包屬性 信息對(duì)應(yīng)的第二關(guān)聯(lián)關(guān)系,在該第二關(guān)聯(lián)關(guān)系中查找到安全業(yè)務(wù)信息,查找該 第二關(guān)聯(lián)關(guān)系中的FIB感知表項(xiàng)索引指向的FIB感知表項(xiàng),才艮據(jù)該FIB感知表 項(xiàng)中的ARP感知表項(xiàng)索引查找到ARP感知表項(xiàng),該ARP感知表項(xiàng)即為查找到 的ARP表項(xiàng)信息。
14、 如權(quán)利要求12所述的方法,其特征在于,所述學(xué)習(xí)FIB表項(xiàng)進(jìn)一步包 括為該FIB表項(xiàng):沒置FIB序號(hào),且,所述建立FIB感知表項(xiàng)進(jìn)一步包括將該FIB表項(xiàng)的FIB序號(hào)添加到 該FIB感知表項(xiàng)中, 且,所述建立第二關(guān)聯(lián)關(guān)系進(jìn)一步包括將該FIB表項(xiàng)的FIB序號(hào)添加到 第二關(guān)聯(lián)關(guān)系中,且,當(dāng)更新FIB表項(xiàng)時(shí),同時(shí)更新該FIB表項(xiàng)的FIB序號(hào),并更新與該FIB 表項(xiàng)對(duì)應(yīng)的FIB感知表項(xiàng)中的FIB序號(hào)。
15、 如權(quán)利要求14所述的方法,其特征在于,當(dāng)接收到后續(xù)包時(shí),所述查 找FIB感知表項(xiàng)進(jìn)一步包括判斷查找到的FIB感知表項(xiàng)中的FIB序號(hào)與所述 查找到的第二關(guān)聯(lián)關(guān)系中的FIB序號(hào)是否一致,若是,根據(jù)該FIB感知表項(xiàng)中 的ARP感知表項(xiàng)索引查找到ARP感知表項(xiàng);否則,在軟件單元中重新查找與 該后續(xù)包對(duì)應(yīng)的FIB表項(xiàng),以查找到的FIB表項(xiàng)中的FIB感知表項(xiàng)索引和FIB 序號(hào)更新第二關(guān)聯(lián)關(guān)系中的FIB感知表項(xiàng)索引和FIB序號(hào),然后查找與所述FIB 表項(xiàng)最匹配的ARP表項(xiàng)。
16、 如權(quán)利要求l所述的方法,其特征在于,所述業(yè)務(wù)流包的屬性信息為 五元組信息。
17、 一種基于安全業(yè)務(wù)的包轉(zhuǎn)發(fā)系統(tǒng),其特征在于,包括 業(yè)務(wù)轉(zhuǎn)發(fā)關(guān)聯(lián)模塊,建立FIB表項(xiàng)和ARP表項(xiàng)的第一關(guān)聯(lián)關(guān)系;接收業(yè)務(wù)流的首包,獲取與首包對(duì)應(yīng)的安全業(yè)務(wù)信息和FIB表項(xiàng),建立業(yè)務(wù)流包的屬性 信息與安全業(yè)務(wù)信息、FIB表項(xiàng)的第二關(guān)聯(lián)關(guān)系;接收業(yè)務(wù)流的后續(xù)包,根據(jù) 該后續(xù)包攜帶的業(yè)務(wù)流包的屬性信息以及所述第二關(guān)聯(lián)關(guān)系和第一關(guān)聯(lián)關(guān)系, 查找到安全業(yè)務(wù)信息和ARP表項(xiàng)信息;將查找到的安全業(yè)務(wù)信息發(fā)送給安全業(yè) 務(wù)處理模塊,將查找到的ARP表項(xiàng)信息發(fā)送給轉(zhuǎn)發(fā)模塊;安全業(yè)務(wù)處理模塊,根據(jù)接收到的安全業(yè)務(wù)信息對(duì)接收到的業(yè)務(wù)流包執(zhí)行 安全業(yè)務(wù)處理,執(zhí)行完畢,將業(yè)務(wù)流包發(fā)送給轉(zhuǎn)發(fā)模塊;轉(zhuǎn)發(fā)模塊,根據(jù)接收到的ARP表項(xiàng)信息將接收到的業(yè)務(wù)流包轉(zhuǎn)發(fā)出去。
18、 如權(quán)利要求17所述的系統(tǒng),其特征在于,所述業(yè)務(wù)轉(zhuǎn)發(fā)關(guān)聯(lián)模塊包括 FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊,學(xué)習(xí)FIB表項(xiàng),將與該FIB表項(xiàng)最匹配的ARP表項(xiàng)的索引添加到該FIB表項(xiàng)中;Session表項(xiàng)存儲(chǔ)模塊,保存各Session表項(xiàng); Session表項(xiàng)查找模塊,接收業(yè)務(wù)流包,在Session表項(xiàng)存儲(chǔ)模塊中查找 與該業(yè)務(wù)流包的屬性信息對(duì)應(yīng)的Session表項(xiàng),若查^l到,則將Session表項(xiàng) 中的安全業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊,并在FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊中 查找與該Session表項(xiàng)中的FIB表項(xiàng)索引對(duì)應(yīng)的FIB表項(xiàng),將查找到的FIB 表項(xiàng)中的ARP表項(xiàng)索引發(fā)送給轉(zhuǎn)發(fā)模塊;若未查找到,則將該包發(fā)送給 Session表項(xiàng)建立更新才莫塊;Session表項(xiàng)建立更新模塊,接收業(yè)務(wù)流包,將與該業(yè)務(wù)流包對(duì)應(yīng)的安 全業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊,在Session表存儲(chǔ)模塊中建立包括業(yè) 務(wù)流包的屬性信息和所述安全業(yè)務(wù)信息的Session表項(xiàng);在FIB表項(xiàng)學(xué)習(xí)存 儲(chǔ)模塊中查找與業(yè)務(wù)流包對(duì)應(yīng)的FIB表項(xiàng),將與該FIB表項(xiàng)最匹配的ARP 表項(xiàng)發(fā)送給轉(zhuǎn)發(fā)模塊,并將查找到的FIB表項(xiàng)的索引添加到建立的Session 表項(xiàng)中。
19、 如權(quán)利要求18所述的系統(tǒng),其特征在于,該系統(tǒng)進(jìn)一步包括FIB 表項(xiàng)更新模塊,當(dāng)更新FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊中的FIB表項(xiàng)時(shí),更新為該 FIB表項(xiàng)設(shè)置的FIB序號(hào);且,所述FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊在學(xué)習(xí)FIB表項(xiàng)時(shí),為該FIB表項(xiàng)設(shè) 置FIB序號(hào);所述Session表項(xiàng)建立更新模塊進(jìn)一步,將FIB表項(xiàng)的FIB序號(hào)添加到 建立的Session表項(xiàng)中。
20、 如權(quán)利19所述的系統(tǒng),其特征在于,所述Session表項(xiàng)查找沖莫塊在 FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊中查找到FIB表項(xiàng)之后,進(jìn)一步判斷查找到的FIB表 項(xiàng)中的FIB序號(hào)與Session表項(xiàng)中的FIB序號(hào)是否一致,若一致,則將Session 表項(xiàng)中的安全業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊,并將FIB表項(xiàng)中的ARP 表項(xiàng)索引發(fā)送給轉(zhuǎn)發(fā)模塊;若不一致,則將業(yè)務(wù)流包和查找到的Session表 項(xiàng)索引發(fā)送給Session表項(xiàng)建立更新才莫塊,所述Session表項(xiàng)建立更新模塊收到業(yè)務(wù)流包和Session表項(xiàng)索引,在 安全業(yè)務(wù)表項(xiàng)存儲(chǔ)模塊中查找到安全業(yè)務(wù)信息,將與該業(yè)務(wù)流包對(duì)應(yīng)的安全 業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊,以該安全業(yè)務(wù)信息替換Session表項(xiàng)存 儲(chǔ)模塊中與該Session表項(xiàng)索引對(duì)應(yīng)的Session表項(xiàng)中的安全業(yè)務(wù)信息,在 FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊中查找與業(yè)務(wù)流包對(duì)應(yīng)的FIB表項(xiàng),以查找到的FIB 表項(xiàng)中的FIB序號(hào)及該FIB表項(xiàng)的索引替換所述Session表項(xiàng)中的FIB序號(hào) 和FIB表項(xiàng)索引,將與所述FIB表項(xiàng)最匹配的ARP表項(xiàng)發(fā)送到轉(zhuǎn)發(fā)模塊。
21、 如權(quán)利要求18至20中任一項(xiàng)所述的系統(tǒng),其特征在于,所述FIB 表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊和Session表項(xiàng)存儲(chǔ)模塊位于軟件單元中。
22、 如權(quán)利要求17所述的系統(tǒng),其特征在于,所述業(yè)務(wù)轉(zhuǎn)發(fā)關(guān)聯(lián)模塊包括 FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊,學(xué)習(xí)FIB表項(xiàng),查找與該FIB表項(xiàng)最匹配的ARP表項(xiàng),在FIB感知表項(xiàng)存儲(chǔ)模塊中建立包含查找到的ARP表項(xiàng)的索引 的FIB感知表項(xiàng),將該FIB感知表項(xiàng)索引添加到FIB表項(xiàng)中;FIB感知表項(xiàng)存儲(chǔ)模塊,保存包含ARP表項(xiàng)索引的各FIB感知表項(xiàng);Session表項(xiàng)存儲(chǔ)模塊,保存各Session表項(xiàng);Session表項(xiàng)查找模塊,接收業(yè)務(wù)流包,在Session表項(xiàng)存儲(chǔ)模塊中查找 與業(yè)務(wù)流包的屬性信息對(duì)應(yīng)的Session表項(xiàng),若查找到,則將Session表項(xiàng)中 的安全業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊,并在FIB感知表項(xiàng)存儲(chǔ)模塊中查 找與該Session表項(xiàng)中的FIB感知表項(xiàng)索引對(duì)應(yīng)的FIB感知表項(xiàng),將FIB感 知表項(xiàng)中的ARP表項(xiàng)索引發(fā)送給轉(zhuǎn)發(fā)模塊;若未查找到,則將業(yè)務(wù)流包發(fā) 送給Session表項(xiàng)建立更新模塊;Session表項(xiàng)建立更新才莫塊,^接收業(yè)務(wù)流包,將與該業(yè)務(wù)流包對(duì)應(yīng)的安 全業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊,在Session表項(xiàng)存儲(chǔ)模塊中建立包括 業(yè)務(wù)流包的屬性信息和所述安全業(yè)務(wù)信息的Session表項(xiàng);在FIB表項(xiàng)學(xué)習(xí) 存儲(chǔ)模塊中查找與業(yè)務(wù)流包對(duì)應(yīng)的FIB表項(xiàng),將與該FIB表項(xiàng)最匹配的ARP 表項(xiàng)發(fā)送給轉(zhuǎn)發(fā)模塊,并將查找到的FIB表項(xiàng)中的FIB感知表項(xiàng)索引添加到 建立的Session表項(xiàng)中。
23、 如權(quán)利要求22所述的系統(tǒng),其特征在于,該系統(tǒng)進(jìn)一步包括FIB 表項(xiàng)更新模塊,當(dāng)更新FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊中的FIB表項(xiàng)時(shí),更新為該FIB表項(xiàng)設(shè)置的FIB序號(hào),同時(shí)根據(jù)該FIB表項(xiàng)中的FIB感知表項(xiàng)索引在 FIB感知表項(xiàng)存儲(chǔ)模塊中查找到FIB感知表項(xiàng),以該更新后的FIB序號(hào)替換 該FIB感知表項(xiàng)中的FIB序號(hào);且,所述FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊在學(xué)習(xí)到FIB表項(xiàng)后,為該FIB表項(xiàng) 設(shè)置FIB序號(hào),并將該FIB序號(hào)添加到建立的FIB感知表項(xiàng)中;所述Session表項(xiàng)建立更新模塊進(jìn)一步,將FIB表項(xiàng)的FIB序號(hào)添加到 建立的Session表項(xiàng)中。
24、 如權(quán)利要求23所述的系統(tǒng),其特征在于,所述Session表項(xiàng)查找模 塊在FIB感知表項(xiàng)存儲(chǔ)模塊中查找到FIB感知表項(xiàng)之后,進(jìn)一步判斷查找到 的FIB感知表項(xiàng)中的FIB序號(hào)與Session表項(xiàng)中的FIB序號(hào)是否一致,若一 致,則將Session表項(xiàng)中的安全業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊,根據(jù)FIB 感知表項(xiàng)中的ARP表項(xiàng)索引查找到ARP表項(xiàng),將該ARP表項(xiàng)發(fā)送給轉(zhuǎn)發(fā) 模塊;若不一致,則將業(yè)務(wù)流包和查找到的Session表項(xiàng)索引發(fā)送給Session 表項(xiàng)建立更新模塊,所述Session表項(xiàng)建立更新模塊收到業(yè)務(wù)流包和Session表項(xiàng)索引,將 與業(yè)務(wù)流包對(duì)應(yīng)的安全業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊,以該安全業(yè)務(wù)信 息替換Session表項(xiàng)存儲(chǔ)模塊中與該Session表項(xiàng)索引對(duì)應(yīng)的Session表項(xiàng)中 的安全業(yè)務(wù)信息,在FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊中查找與業(yè)務(wù)流包對(duì)應(yīng)的FIB表 項(xiàng),以查找到的FIB表項(xiàng)中的FIB感知表項(xiàng)索引和FIB序號(hào)替換所述Session 表項(xiàng)中的FIB感知表項(xiàng)索引和FIB序號(hào),并查找與所述FIB表項(xiàng)最匹配的 ARP表項(xiàng),將該ARP表項(xiàng)發(fā)送到轉(zhuǎn)發(fā)模塊。
25、 如權(quán)利要求22至24中任一項(xiàng)所述的系統(tǒng),其特征在于,所述FIB 表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊、FIB感知表項(xiàng)存儲(chǔ)模塊和Session表項(xiàng)存儲(chǔ)模塊位于軟 件單元中。
26、 如權(quán)利要求17所述的系統(tǒng),其特征在于,所述業(yè)務(wù)轉(zhuǎn)發(fā)關(guān)聯(lián)模塊包括 FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊,學(xué)習(xí)FIB表項(xiàng),查找與FIB表項(xiàng)最匹配的ARP表項(xiàng),在FIB感知表項(xiàng)存儲(chǔ)模塊中建立包含與查找到的ARP表項(xiàng)對(duì)應(yīng)的ARP 感知表項(xiàng)的索引的FIB感知表項(xiàng),將該FIB感知表項(xiàng)索引添加到FIB表項(xiàng)中; FIB感知表項(xiàng)存儲(chǔ)模塊,保存各FIB感知表項(xiàng);ARP感知表項(xiàng)存儲(chǔ)模塊,保存內(nèi)容與ARP表項(xiàng)相同的各ARP感知表項(xiàng); Session表項(xiàng)存儲(chǔ)模塊,保存各Session表項(xiàng);Session表項(xiàng)查找模塊,接收業(yè)務(wù)流包,在Session表項(xiàng)存儲(chǔ)模塊中查找 與業(yè)務(wù)流包的屬性信息對(duì)應(yīng)的Session表項(xiàng),若查找到,將Session表項(xiàng)中的 安全業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊,在FIB感知表項(xiàng)存儲(chǔ)模塊中查找與 Session表項(xiàng)中的FIB感知表項(xiàng)索引對(duì)應(yīng)的FIB感知表項(xiàng),將FIB感知表項(xiàng) 中的ARP感知表項(xiàng)索引發(fā)送給轉(zhuǎn)發(fā)模塊;若未查找到,則將業(yè)務(wù)流包發(fā)送 給Session表項(xiàng)建立更新模塊;Session表項(xiàng)建立更新模塊,接收業(yè)務(wù)流包,將與業(yè)務(wù)流包對(duì)應(yīng)的安全 業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊,建立包括業(yè)務(wù)流包的屬性信息和所述安 全業(yè)務(wù)信息的Session表項(xiàng);在FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊中查找與業(yè)務(wù)流包對(duì) 應(yīng)的FIB表項(xiàng),將與該FIB表項(xiàng)最匹配的ARP表項(xiàng)發(fā)送給轉(zhuǎn)發(fā)才莫塊,并將 查找到的FIB表項(xiàng)中的FIB感知表項(xiàng)索引添加到建立的Session表項(xiàng)中,將 該Session表項(xiàng)保存到Session表項(xiàng)存儲(chǔ)才莫塊中。
27、 如權(quán)利要求26所述的系統(tǒng),其特征在于,該系統(tǒng)進(jìn)一步包括FIB 表項(xiàng)更新模塊,當(dāng)更新FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊中的FIB表項(xiàng)時(shí),更新為該 FIB表項(xiàng)設(shè)置的FIB序號(hào),同時(shí)根據(jù)該FIB表項(xiàng)中的FIB感知表項(xiàng)索引在 FIB感知表項(xiàng)存儲(chǔ)模塊中查找到FIB感知表項(xiàng),以該更新后的FIB序號(hào)替換 該FIB感知表項(xiàng)中的FIB序號(hào);且,所述FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊在學(xué)習(xí)到FIB表項(xiàng)后,為該FIB表項(xiàng) 設(shè)置FIB序號(hào),并將該FIB序號(hào)添加到建立的FIB感知表項(xiàng)中;所述Session表項(xiàng)建立更新模塊進(jìn)一步,將FIB表項(xiàng)的FIB序號(hào)添加到 建立的Session表項(xiàng)中。
28、 如權(quán)利要求27所述的系統(tǒng),其特征在于,所述Session表項(xiàng)查找模 塊在FIB感知表項(xiàng)存儲(chǔ)模塊中查找到FIB感知表項(xiàng)之后,進(jìn)一步判斷查找到 的FIB感知表項(xiàng)中的FIB序號(hào)與Session表項(xiàng)中的FIB序號(hào)是否一致,若一 致,則將Session表項(xiàng)中的安全業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊,并將FIB 感知表項(xiàng)中的ARP感知表項(xiàng)索引發(fā)送給轉(zhuǎn)發(fā)模塊;若不一致,則將業(yè)務(wù)流 包和查找到的Session表項(xiàng)索引發(fā)送給Session表項(xiàng)建立更新模塊,所述Session表項(xiàng)建立更新模塊收到業(yè)務(wù)流包和Session表項(xiàng)索引,將 與業(yè)務(wù)流包對(duì)應(yīng)的安全業(yè)務(wù)信息發(fā)送給安全業(yè)務(wù)處理模塊,以該安全業(yè)務(wù)信 息替換Session表項(xiàng)存儲(chǔ)模塊中與該Session表項(xiàng)索引對(duì)應(yīng)的Session表項(xiàng)中 的安全業(yè)務(wù)信息,在FIB表項(xiàng)學(xué)習(xí)存儲(chǔ)模塊中查找與業(yè)務(wù)流包對(duì)應(yīng)的FIB表 項(xiàng),以查找到的FIB表項(xiàng)中的FIB感知表項(xiàng)索引和FIB序號(hào)替換所述Session 表項(xiàng)中的FIB感知表項(xiàng)索引和FIB序號(hào),并將與所述FIB表項(xiàng)最匹配的ARP 表項(xiàng)發(fā)送到轉(zhuǎn)發(fā)模塊。
29、如權(quán)利要求26至28中任一項(xiàng)所述的系統(tǒng),其特征在于,所述FIB 感知表項(xiàng)存儲(chǔ)模塊、ARP感知表項(xiàng)存儲(chǔ)模塊、Session表項(xiàng)存儲(chǔ)模塊位于硬 件單元中。
全文摘要
本發(fā)明公開了基于安全業(yè)務(wù)的包轉(zhuǎn)發(fā)方法及系統(tǒng)。建立FIB表項(xiàng)與ARP表項(xiàng)的第一關(guān)聯(lián)關(guān)系;接收業(yè)務(wù)流的首包,獲取與首包對(duì)應(yīng)的安全業(yè)務(wù)信息和FIB表項(xiàng),建立首包攜帶的業(yè)務(wù)流包的屬性信息與安全業(yè)務(wù)信息、FIB表項(xiàng)的第二關(guān)聯(lián)關(guān)系;接收業(yè)務(wù)流的后續(xù)包,根據(jù)后續(xù)包的屬性信息及所述第二關(guān)聯(lián)關(guān)系和第一關(guān)聯(lián)關(guān)系,查找到安全業(yè)務(wù)信息和ARP表項(xiàng)信息,根據(jù)該安全業(yè)務(wù)信息對(duì)后續(xù)包執(zhí)行安全業(yè)務(wù)處理,根據(jù)該ARP表項(xiàng)信息將后續(xù)包轉(zhuǎn)發(fā)出去。本發(fā)明無(wú)需對(duì)每個(gè)包都進(jìn)行安全業(yè)務(wù)表項(xiàng)、FIB表項(xiàng)、ARP表項(xiàng)的查找,大大提高了基于安全業(yè)務(wù)的包轉(zhuǎn)發(fā)效率。
文檔編號(hào)H04L29/06GK101110770SQ20071011988
公開日2008年1月23日 申請(qǐng)日期2007年8月2日 優(yōu)先權(quán)日2007年8月2日
發(fā)明者常向青, 李明玉, 颶 王, 鄒旭東 申請(qǐng)人:杭州華三通信技術(shù)有限公司