一種通過(guò)fpga實(shí)現(xiàn)tap設(shè)備硬件過(guò)濾的系統(tǒng)的制作方法【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種通過(guò)FPGA實(shí)現(xiàn)TAP設(shè)備硬件過(guò)濾的系統(tǒng),通過(guò)過(guò)濾裝置實(shí)現(xiàn)過(guò)濾,過(guò)濾裝置包括HASH查找引擎、數(shù)據(jù)流敏感信息提取模塊、過(guò)濾規(guī)則添加模塊、過(guò)濾規(guī)則刪除模塊、過(guò)濾信息匹配模塊和流量過(guò)濾控制模塊,由過(guò)濾規(guī)則添加模塊或過(guò)濾規(guī)則刪除模塊進(jìn)行添加或刪除操作后,由過(guò)濾信息匹配模塊將提取的敏感信息與過(guò)濾規(guī)則進(jìn)行匹配,流量過(guò)濾控制模塊輸出匹配成功的數(shù)據(jù)。本發(fā)明通過(guò)硬件實(shí)現(xiàn)過(guò)濾,無(wú)需其他核心器件,簡(jiǎn)化了系統(tǒng)的復(fù)雜程度,降低了設(shè)備成本;匹配算法采用HASH查找引擎,從硬件上實(shí)現(xiàn)流量過(guò)濾技術(shù),匹配效率更快,實(shí)時(shí)性強(qiáng),過(guò)濾內(nèi)容豐富。【專(zhuān)利說(shuō)明】—種通過(guò)FPGA實(shí)現(xiàn)TAP設(shè)備硬件過(guò)濾的系統(tǒng)【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及網(wǎng)絡(luò)設(shè)備領(lǐng)域,特別是一種通過(guò)FPGA實(shí)現(xiàn)TAP設(shè)備硬件過(guò)濾的系統(tǒng)?!?br>背景技術(shù):
】[0002]以太網(wǎng)分路器(以下簡(jiǎn)稱(chēng)TAP設(shè)備)是一種以太網(wǎng)流量復(fù)制設(shè)備,該設(shè)備能夠在不中斷網(wǎng)絡(luò)正常流量的情況下,實(shí)時(shí)獲取網(wǎng)絡(luò)數(shù)據(jù)。隨著端到端網(wǎng)絡(luò)的可視性增長(zhǎng),流量必須為適應(yīng)大多數(shù)監(jiān)測(cè)工具而定義,因此TAP設(shè)備需要根據(jù)每個(gè)獨(dú)特的網(wǎng)絡(luò)環(huán)境實(shí)現(xiàn)對(duì)特定流量的完全可視性,避免查看多余的數(shù)據(jù)包。TAP設(shè)備常被用來(lái)實(shí)時(shí)為安全和監(jiān)測(cè)被動(dòng)復(fù)制和轉(zhuǎn)發(fā)網(wǎng)絡(luò)流量。許多監(jiān)測(cè)和分析工具的設(shè)計(jì)都是為了處理帶有特定協(xié)議、標(biāo)簽或封裝的流量。因此需要根據(jù)用戶(hù)的特定需要來(lái)選擇由每個(gè)網(wǎng)絡(luò)側(cè)接口發(fā)送到各個(gè)監(jiān)控測(cè)端口的輸入流量,這樣每個(gè)監(jiān)控測(cè)端口都可以獨(dú)立、完全地自由選擇要監(jiān)測(cè)的網(wǎng)絡(luò)流量,將需要的流量引導(dǎo)到監(jiān)控工具中,減輕過(guò)度接收,充分利用各組的工具資源,從而在保持會(huì)話(huà)完整性的同時(shí)提高輸出能力。TAP設(shè)備一般使用過(guò)濾技術(shù)以剝離有關(guān)的數(shù)據(jù)流,這種技術(shù)可以基于硬件(ASIC、FPGA)或軟件(NPU)處理實(shí)現(xiàn)。[0003]傳統(tǒng)TAP設(shè)備實(shí)現(xiàn)流量過(guò)濾一般有二種實(shí)現(xiàn)方式,一是通過(guò)內(nèi)嵌交換機(jī)芯片實(shí)現(xiàn);二是通過(guò)NPU(網(wǎng)絡(luò)處理器)實(shí)現(xiàn)。[0004]參照?qǐng)D1所示的第一種實(shí)現(xiàn)方式,原有鏈路的數(shù)據(jù)經(jīng)過(guò)RJ接口接入TAP設(shè)備,經(jīng)過(guò)繼電器、變壓器和PHY進(jìn)入Switch芯片,通過(guò)配置Switch的過(guò)濾引擎參數(shù)實(shí)現(xiàn)過(guò)濾功能。這種方式是基于ASIC實(shí)現(xiàn)。但這種實(shí)現(xiàn)方式中,交換機(jī)芯片屬于專(zhuān)用集成芯片,功能固定無(wú)法靈活配置;受限于交換機(jī)芯片的緩存資源限制,實(shí)現(xiàn)的過(guò)濾規(guī)則數(shù)目有限,過(guò)濾內(nèi)容有限;受制于交換機(jī)芯片的成本,一般只有高端交換機(jī)芯片具有過(guò)濾功能,導(dǎo)致系統(tǒng)成本增加。[0005]參照?qǐng)D2所示的第二種實(shí)現(xiàn)方式,原有鏈路的數(shù)據(jù)經(jīng)過(guò)RJ接口接入TAP設(shè)備,經(jīng)過(guò)繼電器、變壓器和PHY進(jìn)入NPU,通過(guò)高速串口輸入到NPU并緩存在RAM中等待NPU的分析及過(guò)濾實(shí)現(xiàn)。但這種實(shí)現(xiàn)方式,受限于NPU的軟處理機(jī)制,轉(zhuǎn)發(fā)延遲較大,查詢(xún)匹配的效率低,無(wú)法做到實(shí)時(shí)大流量的數(shù)據(jù)處理;NPU需要的外圍配置電路多,增加了系統(tǒng)的復(fù)雜程度及成本。【
發(fā)明內(nèi)容】[0006]為解決上述問(wèn)題,本發(fā)明的目的在于提供一種在FPGA中實(shí)現(xiàn)TAP設(shè)備硬件過(guò)濾的方法,基于硬件實(shí)現(xiàn),匹配效率快,實(shí)時(shí)性強(qiáng);過(guò)濾內(nèi)容豐富,流量可以被如下關(guān)鍵字識(shí)別:源/目的MAC地址、以太網(wǎng)類(lèi)型、IP協(xié)議類(lèi)型、IP地址、TCP/UDP端口,以及特殊的協(xié)議如DCCP,MTP、PGM、SCTP、UDP-Lite的端口;并且,通過(guò)可配置的寄存器、可配置的存儲(chǔ)器和可重配置的FPGA三個(gè)方面保證能靈活和快速的實(shí)現(xiàn)TAP硬件過(guò)濾功能。[0007]本發(fā)明解決其問(wèn)題所采用的技術(shù)方案是:一種通過(guò)FPGA實(shí)現(xiàn)TAP設(shè)備硬件過(guò)濾的系統(tǒng),包括網(wǎng)絡(luò)側(cè)端口和監(jiān)控側(cè)端口,所述網(wǎng)絡(luò)側(cè)端口與監(jiān)控側(cè)端口之間連接有包括過(guò)濾裝置的FPGA,所述過(guò)濾裝置包括:HASH查找引擎;數(shù)據(jù)流敏感信息提取模塊,用于從網(wǎng)絡(luò)側(cè)端口的輸入數(shù)據(jù)中提取敏感信息;過(guò)濾規(guī)則添加模塊,用于通過(guò)HASH查找引擎添加下發(fā)的過(guò)濾規(guī)則;過(guò)濾規(guī)則刪除模塊,用于通過(guò)HASH查找引擎刪除下發(fā)的過(guò)濾規(guī)則;過(guò)濾信息匹配模塊,用于通過(guò)HASH查找引擎將敏感信息與過(guò)濾規(guī)則添加模塊和過(guò)濾規(guī)則刪除模塊處理后的過(guò)濾規(guī)則進(jìn)行匹配,并輸出匹配結(jié)果;流量過(guò)濾控制模塊,用于根據(jù)過(guò)濾信息匹配模塊的匹配結(jié)果,輸出匹配成功的數(shù)據(jù)至監(jiān)控側(cè)端口。[0008]所述數(shù)據(jù)流敏感信息提取模塊包括有提取單元,所述提取單元用于從網(wǎng)絡(luò)側(cè)端口的輸入數(shù)據(jù)中識(shí)別數(shù)據(jù)的關(guān)鍵字段作為敏感信息。[0009]所述關(guān)鍵字段包括源/目的MAC地址、以太網(wǎng)類(lèi)型、IP協(xié)議類(lèi)型、IP地址、TCP/UDP端口,以及協(xié)議DCCP、MTP、PGM、SCTP、UDP-Lite的端口。[0010]所述HASH查找引擎包括CAMtable、CAMIntable、MANtable、FILtable查找表以及HASH計(jì)算單元,且FILtable查找表為鏈表結(jié)構(gòu),其中:所述CAMtable表用于存儲(chǔ)下發(fā)的過(guò)濾規(guī)則;所述HASH計(jì)算單元用于計(jì)算過(guò)濾規(guī)則或提取的敏感信息的HASH值;所述FILtable表用于存儲(chǔ)過(guò)濾規(guī)則添加模塊所添加的過(guò)濾規(guī)則或用于從中刪除過(guò)濾規(guī)則刪除模塊需要?jiǎng)h除的過(guò)濾規(guī)則;所述CAMIntable表用于存儲(chǔ)FILtable表的入口地址,并通過(guò)HASH計(jì)算單元計(jì)算的HASH值進(jìn)行訪(fǎng)問(wèn);所述MANtable表為地址管理表,用于分配或收回FILtable鏈表的地址。[0011]所述過(guò)濾規(guī)則添加模塊通過(guò)HASH查找引擎添加下發(fā)的過(guò)濾規(guī)則具體為:(51)根據(jù)過(guò)濾規(guī)則的索引地址從CAMtable表中讀取過(guò)濾規(guī)則;(52)由HASH計(jì)算單元獲取此過(guò)濾規(guī)則的HASH值;(53)根據(jù)HASH值訪(fǎng)問(wèn)CAMIntable表,若訪(fǎng)問(wèn)無(wú)效,則進(jìn)入步驟(55),若訪(fǎng)問(wèn)有效,則從CAMIntable表中獲取FILtable表對(duì)應(yīng)的入口地址;(54)從入口地址依次讀取FILtable鏈表中的內(nèi)容直至FILtable鏈表的尾部;(55)從MANtable表中讀取一個(gè)地址作為FILtable鏈表的寫(xiě)入地址,將過(guò)濾規(guī)則寫(xiě)入到FILtable鏈表中。[0012]所述步驟(51)根據(jù)過(guò)濾規(guī)則的索引地址從CAMtable表中讀取過(guò)濾規(guī)則時(shí),如果讀取無(wú)效,則將過(guò)濾規(guī)則寫(xiě)入索引地址所對(duì)應(yīng)的CAMtable表中,如果讀取有效,則調(diào)用過(guò)濾規(guī)則刪除模塊將此過(guò)濾規(guī)則刪除,并將過(guò)濾規(guī)則寫(xiě)入索引地址所對(duì)應(yīng)的CAMtable表中。[0013]所述過(guò)濾規(guī)則刪除模塊通過(guò)HASH查找引擎刪除下發(fā)的過(guò)濾規(guī)則具體為:(71)根據(jù)過(guò)濾規(guī)則的索引地址從CAMtable表中讀取過(guò)濾規(guī)則;(72)若讀取無(wú)效,則進(jìn)入步驟(77),若讀取有效,則讀取索引地址所對(duì)應(yīng)CAMtable表中的過(guò)濾規(guī)則,并置索引地址所對(duì)應(yīng)CAMtable表中的過(guò)濾規(guī)則無(wú)效;(73)由HASH計(jì)算單元獲取所讀取的過(guò)濾規(guī)則的HASH值;(74)由HASH值訪(fǎng)問(wèn)CAMIntable表獲取FILtable鏈表對(duì)應(yīng)的入口地址;(75)將此入口地址交回給地址管理表MANtable;(76)更新FILtable鏈表;(77)刪除結(jié)束。[0014]所述過(guò)濾信息匹配模塊通過(guò)HASH查找引擎將敏感信息與過(guò)濾規(guī)則添加模塊和過(guò)濾規(guī)則刪除模塊處理后的過(guò)濾規(guī)則進(jìn)行匹配,具體為:(81)由HASH計(jì)算單元計(jì)算敏感信息的HASH值;(82)由HASH值訪(fǎng)問(wèn)CAMIntable表,若訪(fǎng)問(wèn)無(wú)效,則進(jìn)入步驟(86),若訪(fǎng)問(wèn)有效,則從CAMIntable表中獲取FILtable鏈表對(duì)應(yīng)的入口地址;(83)從入口地址讀取FILtable鏈表中的過(guò)濾規(guī)則;(84)將敏感信息與從FILtable鏈表中讀取的過(guò)濾規(guī)則進(jìn)行匹配,若匹配成功,則進(jìn)入步驟(86);(85)檢測(cè)是否到達(dá)FILtable鏈表的尾部,若沒(méi)有到達(dá),則讀取FILtable鏈表中的下一個(gè)過(guò)濾規(guī)則,并進(jìn)入步驟(84);(86)匹配操作結(jié)束,輸出匹配結(jié)果。本發(fā)明的有益效果是:本發(fā)明采用一種通過(guò)FPGA實(shí)現(xiàn)TAP設(shè)備硬件過(guò)濾的系統(tǒng),除PHY(物理層接口芯片)及FPGA之外,無(wú)需其他核心器件,即可實(shí)現(xiàn)網(wǎng)絡(luò)側(cè)端口輸入的數(shù)據(jù)與過(guò)濾規(guī)則的匹配,簡(jiǎn)化了系統(tǒng)的復(fù)雜程度,降低了設(shè)備成本;匹配算法采用HASH查找引擎,從硬件上實(shí)現(xiàn)流量過(guò)濾技術(shù),該方案匹配效率快,實(shí)時(shí)性強(qiáng),過(guò)濾內(nèi)容豐富?!緦?zhuān)利附圖】【附圖說(shuō)明】[0015]下面結(jié)合附圖和實(shí)例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。[0016]圖1是采用內(nèi)嵌交換機(jī)芯片方式實(shí)現(xiàn)過(guò)濾的原理示意圖;圖2是米用NPU實(shí)現(xiàn)過(guò)濾的原理不意圖;圖3是本發(fā)明所述系統(tǒng)的原理示意圖;圖4是本發(fā)明所述過(guò)濾模塊的結(jié)構(gòu)組成示意圖;圖5是本發(fā)明所述數(shù)據(jù)流敏感信息提取模塊提取的流程示意圖;圖6是本發(fā)明所述HASH查找引擎的原理示意圖;圖7是本發(fā)明所述過(guò)濾規(guī)則添加模塊添加過(guò)濾規(guī)則的流程示意圖;圖8是本發(fā)明所述過(guò)濾規(guī)則刪除模塊刪除過(guò)濾規(guī)則的流程示意圖;圖9是本發(fā)明所述過(guò)濾信息匹配模塊進(jìn)行匹配的流程示意圖?!揪唧w實(shí)施方式】[0017]參照?qǐng)D1與圖2所示,在【
背景技術(shù):
】當(dāng)中已經(jīng)敘述了采用此兩種方式所具有的現(xiàn)實(shí)問(wèn)題,本發(fā)明正是基于這種現(xiàn)實(shí)問(wèn)題,提出了一種新的過(guò)濾方式。[0018]參照?qǐng)D3所示,本發(fā)明所述的系統(tǒng)包括網(wǎng)絡(luò)側(cè)端口和監(jiān)控側(cè)端口,所述網(wǎng)絡(luò)側(cè)端口與監(jiān)控側(cè)端口之間連接有包括過(guò)濾裝置的FPGA。原有鏈路的數(shù)據(jù)經(jīng)過(guò)RJ接口接入TAP設(shè)備的網(wǎng)絡(luò)側(cè)端口,依次經(jīng)過(guò)繼電器R、變壓器T和PHY進(jìn)入過(guò)濾裝置,經(jīng)過(guò)濾裝置過(guò)濾后,依次由監(jiān)控側(cè)端口的PHY、變壓器T和RJ接口輸出數(shù)據(jù)。這種實(shí)現(xiàn)方式比較簡(jiǎn)單,成本較小,而且匹配效率快,實(shí)時(shí)性強(qiáng),過(guò)濾內(nèi)容豐富。[0019]參照?qǐng)D4所示,所述過(guò)濾裝置包括:HASH查找引擎;數(shù)據(jù)流敏感信息提取模塊,用于從網(wǎng)絡(luò)側(cè)端口的輸入數(shù)據(jù)中提取敏感信息;過(guò)濾規(guī)則添加模塊,用于通過(guò)HASH查找引擎添加下發(fā)的過(guò)濾規(guī)則;過(guò)濾規(guī)則刪除模塊,用于通過(guò)HASH查找引擎刪除下發(fā)的過(guò)濾規(guī)則;過(guò)濾信息匹配模塊,用于通過(guò)HASH查找引擎將敏感信息與過(guò)濾規(guī)則添加模塊和過(guò)濾規(guī)則刪除模塊處理后的過(guò)濾規(guī)則進(jìn)行匹配,并輸出匹配結(jié)果;流量過(guò)濾控制模塊,用于根據(jù)過(guò)濾信息匹配模塊的匹配結(jié)果,輸出匹配成功的數(shù)據(jù)至監(jiān)控側(cè)端口。[0020]參照?qǐng)D5所示,所述數(shù)據(jù)流敏感信息提取模塊包括有提取單元,此提取單元用于從網(wǎng)絡(luò)側(cè)端口的輸入數(shù)據(jù)中識(shí)別數(shù)據(jù)的關(guān)鍵字段作為敏感信息。所述的關(guān)鍵字段包括源/目的MAC地址、以太網(wǎng)類(lèi)型、IP協(xié)議類(lèi)型、IP地址、TCP/UDP端口,以及協(xié)議DCCP、MTP、PGM、SCTP,UDP-Lite的端口,從網(wǎng)絡(luò)側(cè)端口中提取的這些關(guān)鍵字段通過(guò)與過(guò)濾規(guī)則進(jìn)行匹配,可以檢測(cè)出所需要的過(guò)濾數(shù)據(jù),并將這些數(shù)據(jù)輸出到監(jiān)控側(cè)端口,從而實(shí)現(xiàn)數(shù)據(jù)過(guò)濾。在實(shí)現(xiàn)過(guò)程中,可以根據(jù)需要調(diào)整提取單元可以識(shí)別的關(guān)鍵字段,本發(fā)明包括但不限于以上所述關(guān)鍵字段,對(duì)應(yīng)的,過(guò)濾規(guī)則亦可以根據(jù)關(guān)鍵字段的不同而進(jìn)行對(duì)應(yīng)調(diào)整。[0021]參照?qǐng)D6所示,所述過(guò)濾規(guī)則添加模塊、過(guò)濾規(guī)則刪除模塊和過(guò)濾信息匹配模塊通過(guò)HASH查找引擎實(shí)現(xiàn)添力卩、刪除和匹配操作。HASH查找引擎包括CAMtable、CAMIntable、MANtable>FILtable四個(gè)查找表以及HASH計(jì)算單兀,所述的CAMtable、CAMIntable>MANtable均為普通表,F(xiàn)ILtable為鏈表結(jié)構(gòu),其中:所述CAMtable表用于存儲(chǔ)下發(fā)的過(guò)濾規(guī)則;所述HASH計(jì)算單元用于計(jì)算過(guò)濾規(guī)則或提取的敏感信息的HASH值;所述FILtable表用于存儲(chǔ)過(guò)濾規(guī)則添加模塊所添加的過(guò)濾規(guī)則或用于從中刪除過(guò)濾規(guī)則刪除模塊需要?jiǎng)h除的過(guò)濾規(guī)則;所述CAMIntable表用于存儲(chǔ)FILtable表的入口地址,并通過(guò)HASH計(jì)算單元計(jì)算的HASH值進(jìn)行訪(fǎng)問(wèn);所述MANtable表為地址管理表,用于分配或收回FILtable鏈表的地址。[0022]本發(fā)明根據(jù)HASH計(jì)算單元所計(jì)算的HASH值可以快速訪(fǎng)問(wèn)CAMIntable表,加快訪(fǎng)問(wèn)的速度,有利于過(guò)濾的快速實(shí)現(xiàn)。[0023]所述過(guò)濾規(guī)則添加模塊通過(guò)HASH查找引擎向FILtable鏈表中添加過(guò)濾規(guī)則。上層軟件在下發(fā)每一個(gè)過(guò)濾內(nèi)容時(shí),會(huì)同時(shí)分配一個(gè)索引地址(Index),此Index地址為CAMtabIe表的入口地址,因此,通過(guò)此Index地址可以將過(guò)濾規(guī)則寫(xiě)入CAMtabIe表中,進(jìn)而實(shí)現(xiàn)添加操作,具體參照?qǐng)D7所示,包括:步驟700,根據(jù)過(guò)濾規(guī)則的索引地址從CAMtable表中讀取過(guò)濾規(guī)則。[0024]本步驟中,CAMtable表中對(duì)于每一個(gè)存儲(chǔ)的過(guò)濾規(guī)則均設(shè)置有對(duì)應(yīng)的一個(gè)有效位Valid,當(dāng)寫(xiě)入一個(gè)數(shù)據(jù)到該地址時(shí),將地址的有效位Valid置I,無(wú)效時(shí)則置Valid為O,如果讀取無(wú)效,說(shuō)明此索引地址并沒(méi)有存儲(chǔ)過(guò)濾規(guī)則,則可以直接將現(xiàn)有的過(guò)濾規(guī)則寫(xiě)入索引地址所對(duì)應(yīng)的CAMtable表中,否則,說(shuō)明此索引地址存儲(chǔ)有過(guò)濾規(guī)則,則需要將此索引地址對(duì)應(yīng)的已存儲(chǔ)的過(guò)濾規(guī)則刪除后再將現(xiàn)有過(guò)濾規(guī)則寫(xiě)入CAMtable表中,通過(guò)調(diào)用過(guò)濾規(guī)則刪除模塊可以將此索引地址所對(duì)應(yīng)的CAMtable表中已經(jīng)存儲(chǔ)的過(guò)濾規(guī)則刪除。[0025]步驟701,由HASH計(jì)算單元獲取此過(guò)濾規(guī)則的HASH值。[0026]本步驟中,HASH計(jì)算單元通過(guò)HASH算法計(jì)算出HASH值,以此HASH值可以實(shí)現(xiàn)快速訪(fǎng)問(wèn),并為后續(xù)的快速匹配過(guò)濾等提升效率。[0027]步驟702,根據(jù)HASH值訪(fǎng)問(wèn)CAMIntable表,若訪(fǎng)問(wèn)無(wú)效,則進(jìn)入步驟(704),若訪(fǎng)問(wèn)有效,則從CAMIntable表中獲取FILtable鏈表對(duì)應(yīng)的入口地址。[0028]本步驟中,CAMIntable表中也分配有一位有效位Valid,當(dāng)寫(xiě)入一個(gè)數(shù)據(jù)到該CAMIntable表時(shí),則置對(duì)應(yīng)地址的有效位Valid為1,無(wú)效時(shí)則置Valid為0,因此訪(fǎng)問(wèn)CAMIntable表中的該有效位就知道當(dāng)前CAMIntable表中的該地址是否有效。[0029]步驟703,從入口地址依次讀取FILtable鏈表中的內(nèi)容直至FILtable鏈表的尾部。[0030]本步驟中,因?yàn)镕ILtable的鏈表結(jié)構(gòu),在存儲(chǔ)時(shí),需要將過(guò)濾規(guī)則添加到鏈表最后的一個(gè)空間,因此,需要根據(jù)FILtable鏈表中所存儲(chǔ)的數(shù)據(jù)及數(shù)據(jù)指向的地址逐次讀取FILtable鏈表中的內(nèi)容,直至鏈表的尾部,之后方可進(jìn)行存儲(chǔ)。[0031]步驟704,從MANtable表中讀取一個(gè)地址作為FILtable鏈表的寫(xiě)入地址,將過(guò)濾規(guī)則寫(xiě)入到FILtable鏈表中。[0032]本發(fā)明通過(guò)MANtable表管理FILtable鏈表的地址,可以快速地獲取FILtable鏈表中可用的地址和已經(jīng)存儲(chǔ)的地址。[0033]所述過(guò)濾規(guī)則刪除模塊通過(guò)HASH查找引擎刪除過(guò)濾規(guī)則,刪除時(shí),刪除此過(guò)濾規(guī)則在四個(gè)表中的所有信息,具體參照?qǐng)D8所示,包括:步驟800,根據(jù)過(guò)濾規(guī)則的索引地址從CAMtable表中讀取過(guò)濾規(guī)則;步驟801,若讀取無(wú)效,則進(jìn)入步驟(806),若讀取有效,則讀取索引地址所對(duì)應(yīng)CAMtable表中的過(guò)濾規(guī)則,并置索引地址所對(duì)應(yīng)CAMtable表中的過(guò)濾規(guī)則無(wú)效,即將有效位Valid置O;步驟802,由HASH計(jì)算單元獲取所讀取的過(guò)濾規(guī)則的HASH值;步驟803,由HASH值訪(fǎng)問(wèn)CAMIntable表獲取FILtable鏈表對(duì)應(yīng)的入口地址;步驟804,將此入口地址交回給地址管理表MANtable;步驟805,更新FILtable鏈表;由于FILtable的鏈表結(jié)構(gòu),刪除其中一個(gè)內(nèi)容時(shí),需要調(diào)整鏈表中指針的指向;步驟806,刪除結(jié)束。[0034]在所述過(guò)濾規(guī)則添加模塊和過(guò)濾規(guī)則刪除模塊完成添加與刪除過(guò)濾規(guī)則之后,就已經(jīng)為網(wǎng)絡(luò)側(cè)輸入的數(shù)據(jù)設(shè)置好了預(yù)設(shè)的過(guò)濾規(guī)則,只要從輸入的數(shù)據(jù)中提取的敏感信息能夠與過(guò)濾規(guī)則匹配成功,即可將符合過(guò)濾規(guī)則的數(shù)據(jù)過(guò)濾出來(lái),并輸出至監(jiān)控側(cè)端口進(jìn)行后續(xù)的傳輸。在后續(xù)匹配時(shí),由過(guò)濾信息匹配模塊通過(guò)HASH查找引擎實(shí)現(xiàn)匹配操作,具體參照?qǐng)D9所示,包括:步驟900,由HASH計(jì)算單元計(jì)算敏感信息的HASH值;在匹配時(shí),需要根據(jù)過(guò)濾規(guī)則進(jìn)行匹配,在過(guò)濾規(guī)則添加模塊和過(guò)濾規(guī)則刪除模塊完成對(duì)FILtable鏈表的添加與刪除操作后,通過(guò)HASH計(jì)算單元可快速完成匹配,實(shí)現(xiàn)快速過(guò)濾;步驟901,由HASH值訪(fǎng)問(wèn)CAMIntable表;步驟902,若訪(fǎng)問(wèn)無(wú)效,說(shuō)明CAMIntable表中的有效位Valid為0,則無(wú)法進(jìn)行匹配操作,進(jìn)入步驟907,否則,說(shuō)明CAMIntable表中的有效位Valid為1,則從CAMIntable表中獲取FILtable鏈表對(duì)應(yīng)的入口地址;步驟903,從入口地址讀取FILtable鏈表中的過(guò)濾規(guī)則;步驟904,將敏感信息與從FILtable鏈表中讀取的過(guò)濾規(guī)則進(jìn)行匹配,若匹配成功,則進(jìn)入步驟907,否則,進(jìn)入步驟905;步驟905,檢測(cè)是否到達(dá)FILtabIe鏈表的尾部,若到達(dá)尾部,說(shuō)明FILtabIe鏈表已經(jīng)沒(méi)有可以讀取的數(shù)據(jù),匹配操作結(jié)束,進(jìn)入步驟907,否則,進(jìn)入步驟906;步驟906,讀取FILtable鏈表中的下一個(gè)數(shù)據(jù),并進(jìn)入步驟904;步驟907,匹配操作結(jié)束,輸出匹配結(jié)果。[0035]所述步驟904中,在進(jìn)行匹配時(shí),可以通過(guò)一個(gè)比較器實(shí)現(xiàn),也可以通過(guò)其它方式實(shí)現(xiàn)。[0036]過(guò)濾信息匹配模塊通過(guò)HASH查找引擎進(jìn)行匹配,有效提升了匹配效率,且降低了成本,具有較強(qiáng)的實(shí)時(shí)性,過(guò)濾內(nèi)容更加豐富。[0037]流量過(guò)濾控制模塊則可以根據(jù)過(guò)濾信息匹配模塊的匹配結(jié)果,輸出匹配成功的數(shù)據(jù)至監(jiān)控側(cè)端口。流量過(guò)濾控制模塊在實(shí)現(xiàn)時(shí),對(duì)非匹配的數(shù)據(jù)進(jìn)行丟棄,并且將匹配成功的數(shù)據(jù)輸出。流量過(guò)濾控制模塊由一個(gè)BUF(緩沖區(qū))實(shí)現(xiàn),根據(jù)匹配信息決定是否對(duì)寫(xiě)地址進(jìn)行跳轉(zhuǎn)。匹配成功的數(shù)據(jù)能寫(xiě)入進(jìn)BUF,而匹配不對(duì)的數(shù)據(jù)無(wú)法寫(xiě)入進(jìn)BUF,以此來(lái)實(shí)現(xiàn)對(duì)非匹配數(shù)據(jù)的丟棄。[0038]本發(fā)明將預(yù)設(shè)的過(guò)濾規(guī)則存儲(chǔ)于FILtable鏈表中,通過(guò)過(guò)濾規(guī)則添加模塊與過(guò)濾規(guī)則刪除模塊實(shí)現(xiàn)過(guò)濾規(guī)則的添加與刪除,對(duì)FILtable鏈表進(jìn)行維護(hù),當(dāng)敏感信息通過(guò)HASH查找引擎進(jìn)行匹配時(shí),計(jì)算敏感信息的HASH值,進(jìn)而從FILtable鏈表中讀取對(duì)應(yīng)的過(guò)濾規(guī)則進(jìn)行匹配,如果匹配成功,則輸出匹配數(shù)據(jù)至監(jiān)控側(cè)端口。本發(fā)明實(shí)現(xiàn)時(shí),配置簡(jiǎn)單,無(wú)需其他核心器件,降低了設(shè)備成本,簡(jiǎn)化了系統(tǒng)的復(fù)雜程序;采用HASH查找引擎,有效地提高了匹配效率,而且過(guò)濾內(nèi)容更加豐富。[0039]以上所述,只是本發(fā)明的較佳實(shí)施例而已,本發(fā)明并不局限于上述實(shí)施方式,只要其以相同的手段達(dá)到本發(fā)明的技術(shù)效果,都應(yīng)屬于本發(fā)明的保護(hù)范圍。【權(quán)利要求】1.一種通過(guò)FPGA實(shí)現(xiàn)TAP設(shè)備硬件過(guò)濾的系統(tǒng),包括網(wǎng)絡(luò)側(cè)端口和監(jiān)控側(cè)端口,其特征在于,所述網(wǎng)絡(luò)側(cè)端口與監(jiān)控側(cè)端口之間連接有包括過(guò)濾裝置的FPGA,所述過(guò)濾裝置包括:HASH查找引擎;數(shù)據(jù)流敏感信息提取模塊,用于從網(wǎng)絡(luò)側(cè)端口的輸入數(shù)據(jù)中提取敏感信息;過(guò)濾規(guī)則添加模塊,用于通過(guò)HASH查找引擎添加下發(fā)的過(guò)濾規(guī)則;過(guò)濾規(guī)則刪除模塊,用于通過(guò)HASH查找引擎刪除下發(fā)的過(guò)濾規(guī)則;過(guò)濾信息匹配模塊,用于通過(guò)HASH查找引擎將敏感信息與過(guò)濾規(guī)則添加模塊和過(guò)濾規(guī)則刪除模塊處理后的過(guò)濾規(guī)則進(jìn)行匹配,并輸出匹配結(jié)果;流量過(guò)濾控制模塊,用于根據(jù)過(guò)濾信息匹配模塊的匹配結(jié)果,輸出匹配成功的數(shù)據(jù)至監(jiān)控側(cè)端口。2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述數(shù)據(jù)流敏感信息提取模塊包括有提取單元,所述提取單元用于從網(wǎng)絡(luò)側(cè)端口的輸入數(shù)據(jù)中識(shí)別數(shù)據(jù)的關(guān)鍵字段作為敏感信肩、O3.根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于,所述關(guān)鍵字段包括源/目的MAC地址、以太網(wǎng)類(lèi)型、IP協(xié)議類(lèi)型、IP地址、TCP/UDP端口,以及協(xié)議DCCP、MTP、PGM、SCTP,UDP-Lite的端口。4.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述HASH查找引擎包括CAMtable、CAMIntabIe>MANtabIe>F`ILtabIe查找表以及HASH計(jì)算單元,且FILtable查找表為鏈表結(jié)構(gòu),其中:所述CAMtable表用于存儲(chǔ)下發(fā)的過(guò)濾規(guī)則;所述HASH計(jì)算單元用于計(jì)算過(guò)濾規(guī)則或提取的敏感信息的HASH值;所述FILtable表用于存儲(chǔ)過(guò)濾規(guī)則添加模塊所添加的過(guò)濾規(guī)則或用于從中刪除過(guò)濾規(guī)則刪除模塊需要?jiǎng)h除的過(guò)濾規(guī)則;所述CAMIntable表用于存儲(chǔ)FILtable表的入口地址,并通過(guò)HASH計(jì)算單元計(jì)算的HASH值進(jìn)行訪(fǎng)問(wèn);所述MANtable表為地址管理表,用于分配或收回FILtable鏈表的地址。5.根據(jù)權(quán)利要求4所述的系統(tǒng),其特征在于,所述過(guò)濾規(guī)則添加模塊通過(guò)HASH查找引擎添加下發(fā)的過(guò)濾規(guī)則具體為:(51)根據(jù)過(guò)濾規(guī)則的索引地址從CAMtable表中讀取過(guò)濾規(guī)則;(52)由HASH計(jì)算單元獲取此過(guò)濾規(guī)則的HASH值;(53)根據(jù)HASH值訪(fǎng)問(wèn)CAMIntable表,若訪(fǎng)問(wèn)無(wú)效,則進(jìn)入步驟(55),若訪(fǎng)問(wèn)有效,則從CAMIntable表中獲取FILtable表對(duì)應(yīng)的入口地址;(54)從入口地址依次讀取FILtable鏈表中的內(nèi)容直至FILtable鏈表的尾部;(55)從MANtable表中讀取一個(gè)地址作為FILtable鏈表的寫(xiě)入地址,將過(guò)濾規(guī)則寫(xiě)入到FILtable鏈表中。6.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述步驟(51)根據(jù)過(guò)濾規(guī)則的索引地址從CAMtable表中讀取過(guò)濾規(guī)則時(shí),如果讀取無(wú)效,則將過(guò)濾規(guī)則寫(xiě)入索引地址所對(duì)應(yīng)的CAMtable表中,如果讀取有效,則調(diào)用過(guò)濾規(guī)則刪除模塊將此過(guò)濾規(guī)則刪除,并將過(guò)濾規(guī)則寫(xiě)入索引地址所對(duì)應(yīng)的CAMtable表中。7.根據(jù)權(quán)利要求4所述的系統(tǒng),其特征在于,所述過(guò)濾規(guī)則刪除模塊通過(guò)HASH查找引擎刪除下發(fā)的過(guò)濾規(guī)則具體為:(71)根據(jù)過(guò)濾規(guī)則的索引地址從CAMtable表中讀取過(guò)濾規(guī)則;(72)若讀取無(wú)效,則進(jìn)入步驟(77),若讀取有效,則讀取索引地址所對(duì)應(yīng)CAMtable表中的過(guò)濾規(guī)則,并置索引地址所對(duì)應(yīng)CAMtable表中的過(guò)濾規(guī)則無(wú)效;(73)由HASH計(jì)算單元獲取所讀取的過(guò)濾規(guī)則的HASH值;(74)由HASH值訪(fǎng)問(wèn)CAMIntable表獲取FILtable鏈表對(duì)應(yīng)的入口地址;(75)將此入口地址交回給地址管理表MANtable;(76)更新FILtable鏈表;(77)刪除結(jié)束。8.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述過(guò)濾信息匹配模塊通過(guò)HASH查找引擎將敏感信息與過(guò)濾規(guī)則添加模塊和過(guò)濾規(guī)則刪除模塊處理后的過(guò)濾規(guī)則進(jìn)行匹配,具體為:(81)由HASH計(jì)算單元計(jì)算敏感信息的HASH值;(82)由HASH值訪(fǎng)問(wèn)CAMIntable表,若訪(fǎng)問(wèn)無(wú)效`,則進(jìn)入步驟(86),若訪(fǎng)問(wèn)有效,則從CAMIntable表中獲取FILtable鏈表對(duì)應(yīng)的入口地址;(83)從入口地址讀取FILtable鏈表中的過(guò)濾規(guī)則;(84)將敏感信息與從FILtable鏈表中讀取的過(guò)濾規(guī)則進(jìn)行匹配,若匹配成功,則進(jìn)入步驟(86);(85)檢測(cè)是否到達(dá)FILtable鏈表的尾部,若沒(méi)有到達(dá),則讀取FILtable鏈表中的下一個(gè)過(guò)濾規(guī)則,并進(jìn)入步驟(84);(86)匹配操作結(jié)束,輸出匹配結(jié)果。【文檔編號(hào)】H04L12/26GK103780460SQ201410018987【公開(kāi)日】2014年5月7日申請(qǐng)日期:2014年1月15日優(yōu)先權(quán)日:2014年1月15日【發(fā)明者】饒維克,葉執(zhí)政申請(qǐng)人:珠海市佳訊實(shí)業(yè)有限公司