基于IPv6的IPSec安全聯(lián)盟硬件查找裝置及方法
【專利摘要】本發(fā)明公開(kāi)了一種基于IPv6的IPSec安全聯(lián)盟硬件查找裝置,該硬件查找裝置包括:IP數(shù)據(jù)包接收模塊,用于接收網(wǎng)口傳輸過(guò)來(lái)的IPv6數(shù)據(jù)包,對(duì)其進(jìn)行緩存并對(duì)數(shù)據(jù)包內(nèi)預(yù)制參數(shù)進(jìn)行提??;壓縮模塊,用于對(duì)IP數(shù)據(jù)包接收模塊輸出的數(shù)據(jù)進(jìn)行位寬壓縮處理;CAM查找匹配模塊,用于對(duì)壓縮后的數(shù)據(jù)信息進(jìn)行查找和匹配;安全聯(lián)盟存儲(chǔ)模塊,用于根據(jù)索引地址輸出安全聯(lián)盟信息。本發(fā)明采用可編程邏輯器件(FPGA)實(shí)現(xiàn)整個(gè)處理流程,具有高速查找的特點(diǎn),提供了一種IPv6下IPSec安全聯(lián)盟硬件查找實(shí)現(xiàn)方法和裝置,有效的提高了安全聯(lián)盟數(shù)據(jù)庫(kù)查找的速度,提高了整個(gè)IPSec處理的效率。
【專利說(shuō)明】基于IPv6的IPSec安全聯(lián)盟硬件查找裝置及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)安全【技術(shù)領(lǐng)域】,特別涉及一種基于IPv6的IPSec安全聯(lián)盟硬件查找裝置及方法。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)技術(shù)的不斷革新,網(wǎng)絡(luò)發(fā)展面臨著新的挑戰(zhàn)和機(jī)遇,網(wǎng)絡(luò)安全的重要性越來(lái)越凸顯。為了提高網(wǎng)絡(luò)信息交互的安全性,互聯(lián)網(wǎng)工程任務(wù)組(IETF)于1988年提出了針對(duì)網(wǎng)絡(luò)層的IPSec協(xié)議,來(lái)彌補(bǔ)網(wǎng)絡(luò)協(xié)議本身不提供安全性的缺點(diǎn)。另一方面,隨著互聯(lián)網(wǎng)用戶數(shù)量的指數(shù)級(jí)增長(zhǎng),IPv4協(xié)議諸多不足逐漸顯現(xiàn)。IETF在1994年推出了下一代網(wǎng)際協(xié)議IPv6,經(jīng)過(guò)十余年的發(fā)展,IPv6相關(guān)技術(shù)逐漸成熟,并且已經(jīng)由試驗(yàn)階段走向了實(shí)用階段。為了保證IPv6的安全特性,IEFT已規(guī)定在IPv6中強(qiáng)制實(shí)施IPSec安全協(xié)議。
[0003]IPSec體系包括兩個(gè)重要的數(shù)據(jù)庫(kù):安全聯(lián)盟數(shù)據(jù)庫(kù)(SAD)和安全策略數(shù)據(jù)庫(kù)(SPD)0安全聯(lián)盟數(shù)據(jù)庫(kù)存儲(chǔ)的安全聯(lián)盟(SA)是IPSec的基礎(chǔ),其涵蓋了 IPSec協(xié)議處理的諸多重要參數(shù),規(guī)定了保護(hù)什么樣的數(shù)據(jù)包,誰(shuí)來(lái)保護(hù)以及怎么保護(hù)等問(wèn)題。SAD和SPD是IPSec處理過(guò)程中需要不斷查詢?cè)L問(wèn)的兩個(gè)數(shù)據(jù)庫(kù),對(duì)查找速度有很高的要求。目前這兩個(gè)數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方式有兩種,軟件查找和硬件查找。軟件查找具有實(shí)現(xiàn)簡(jiǎn)單的特點(diǎn),但是數(shù)據(jù)吞吐量受到了限制。
[0004]有鑒于此,針對(duì)目前提供了一種軟件查找數(shù)據(jù)庫(kù)的方法的不足,采用可編程邏輯器件(FPGA)實(shí)現(xiàn)安全聯(lián)盟數(shù)據(jù)庫(kù)SAD的硬件查找設(shè)計(jì),通過(guò)采用CAM加RAM的組合方式,可以在2個(gè)時(shí)鐘周期里輸出每條安全聯(lián)盟SA的內(nèi)容,大大提高了 IPSec處理效率,解決了目前軟件查找方法存在的缺點(diǎn)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明要解決的技術(shù)問(wèn)題是基于IPSec的處理流程,提出一種能夠高速的實(shí)現(xiàn)基于IPv6的IPSec安全聯(lián)盟查找的硬件實(shí)現(xiàn)裝置。通過(guò)本裝置提出了一種CAM加RAM的組合方式實(shí)現(xiàn)IPv6下IPSec安全聯(lián)盟數(shù)據(jù)庫(kù)的快速查找的實(shí)現(xiàn)方法,以有效的提高IPSec的處理效率,從而滿足高速網(wǎng)絡(luò)性能要求。
[0006]為了解決上述技術(shù)問(wèn)題,本發(fā)明公開(kāi)了一種基于IPv6的IPSec安全聯(lián)盟硬件查找裝置,包括:IP數(shù)據(jù)包接收模塊、壓縮模塊、CAM查找匹配模塊和安全聯(lián)盟存儲(chǔ)模塊。其中,IP數(shù)據(jù)包接收模塊用于接收網(wǎng)口傳輸過(guò)來(lái)的IPv6數(shù)據(jù)包,對(duì)其進(jìn)行緩存并對(duì)數(shù)據(jù)包內(nèi)預(yù)制參數(shù)進(jìn)行提取;壓縮模塊用于對(duì)IP數(shù)據(jù)包接收模塊輸出的數(shù)據(jù)進(jìn)行位寬壓縮處理;CAM查找匹配模塊用于對(duì)壓縮后的數(shù)據(jù)信息進(jìn)行查找和匹配;安全聯(lián)盟存儲(chǔ)模塊用于根據(jù)索引地址輸出安全聯(lián)盟信息。
[0007]本發(fā)明提供的一種基于IPv6的IPSec安全聯(lián)盟硬件查找裝置的一個(gè)實(shí)例中,IP數(shù)據(jù)包接收模塊進(jìn)一步包括:數(shù)據(jù)緩存子模塊和三元組參數(shù)提取子模塊。其中,數(shù)據(jù)緩存子模塊用于將一個(gè)單位長(zhǎng)度的數(shù)據(jù)包存儲(chǔ)至緩沖單元中;三元組參數(shù)提取子模塊用于提取IPv6包中的三元組信息,包括目的IP地址、SPI值和IPSec安全協(xié)議類型。
[0008]本發(fā)明提供的一種基于IPv6的IPSec安全聯(lián)盟硬件查找裝置的一個(gè)實(shí)例中,壓縮模塊采用異或hash算法,通過(guò)移位和運(yùn)算操作來(lái)有效的減少拼接的三元組位寬長(zhǎng)度。
[0009]本發(fā)明提供的一種基于IPv6的IPSec安全聯(lián)盟硬件查找裝置的一個(gè)實(shí)例中,CAM查找匹配模塊進(jìn)一步包括:異或比較子模塊和優(yōu)先編碼子模塊。其中,異或比較子模塊將壓縮模塊的輸出與配置在存儲(chǔ)器中的信息逐位異或,生成若干標(biāo)志位;優(yōu)先編碼子模塊將異或比較子模塊生成的標(biāo)志位進(jìn)行優(yōu)先編碼,生成安全聯(lián)盟存儲(chǔ)模塊的索引地址。
[0010]為了解決上述技術(shù)問(wèn)題,本發(fā)明還公開(kāi)了一種基于IPv6的IPSec安全聯(lián)盟硬件查找方法,包括以下步驟:
將配置數(shù)據(jù)分別寫入CAM存儲(chǔ)單元和安全聯(lián)盟SAD存儲(chǔ)單元中;
IP數(shù)據(jù)包接收模塊接收IPv6數(shù)據(jù)包并暫存,并對(duì)數(shù)據(jù)包進(jìn)行三元組信息提?。?br>
壓縮模塊對(duì)拼接的三元組信息進(jìn)行hash壓縮處理,生成的數(shù)據(jù)送入CAM查找模塊; CAM查找匹配模塊對(duì)壓縮模塊的輸出進(jìn)行解析處理,輸出匹配結(jié)果和匹配地址;
如果CAM查找結(jié)果為“存在”,則驅(qū)動(dòng)安全聯(lián)盟存儲(chǔ)模塊輸出相應(yīng)安全聯(lián)盟內(nèi)容,如果CAM查找結(jié)果為“不存在”,則拉低安全聯(lián)盟存儲(chǔ)模塊的讀使能信號(hào)。
[0011]本發(fā)明提供了一種基于IPv6的IPSec安全聯(lián)盟硬件查找裝置,采用可編程邏輯器件(FPGA)實(shí)現(xiàn)安全聯(lián)盟數(shù)據(jù)庫(kù)SAD的硬件查找設(shè)計(jì),通過(guò)采用CAM加RAM的組合方式,可以在2個(gè)時(shí)鐘周期里輸出每條安全聯(lián)盟SA的內(nèi)容,大大提高了 IPSec處理效率,解決了目前軟件查找方法存在的缺點(diǎn)。本設(shè)計(jì)稍加變動(dòng),也可應(yīng)用于IPv4的IPSec處理中。
[0012]本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,這些將從下面的描述中變得明顯,或通過(guò)本發(fā)明的實(shí)踐了解到。
【專利附圖】
【附圖說(shuō)明】
[0013]圖1示出本發(fā)明的總體結(jié)構(gòu)圖;
圖2示出本發(fā)明IP數(shù)據(jù)包接收模塊【具體實(shí)施方式】的結(jié)構(gòu)框圖;
圖3示出本發(fā)明CAM查找匹配模塊【具體實(shí)施方式】的結(jié)構(gòu)框圖;
圖4示出本發(fā)明三元組參數(shù)提取子模塊的狀態(tài)跳轉(zhuǎn)圖;
圖5示出本發(fā)明安全聯(lián)盟存儲(chǔ)模塊的具體參數(shù)存儲(chǔ)的結(jié)構(gòu)框圖;
圖6示出本發(fā)明提供的一種基于IPv6的IPSec安全聯(lián)盟硬件查找裝置的一個(gè)具體實(shí)施例的流程圖。
【具體實(shí)施方式】
[0014]下面詳細(xì)描述本發(fā)明的實(shí)施方式,所述實(shí)施方式的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號(hào)表示相同或類似的元件或具有相同或類似功能的元件。下面通過(guò)參考附圖描述的實(shí)施方式是示例性的,僅用于解釋本發(fā)明,而不能解釋為對(duì)本發(fā)明的限制。
[0015]本【技術(shù)領(lǐng)域】技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個(gè)”、“所述”和“該”也可包括復(fù)數(shù)形式。應(yīng)該進(jìn)一步理解的是,本發(fā)明的說(shuō)明書中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加一個(gè)或多個(gè)其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應(yīng)該理解,當(dāng)我們稱元件被“連接”或“耦接”到另一元件時(shí),它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“耦接”可以包括無(wú)線連接或耦接。這里使用的措辭“和/或”包括一個(gè)或更多個(gè)相關(guān)聯(lián)的列出項(xiàng)的任一單元和全部組合。
[0016]本【技術(shù)領(lǐng)域】技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(yǔ)(包括技術(shù)術(shù)語(yǔ)和科學(xué)術(shù)語(yǔ))具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng)該理解的是,諸如通用字典中定義的那些術(shù)語(yǔ)應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非像這里一樣定義,不會(huì)用理想化或過(guò)于正式的含義來(lái)解釋。
[0017]圖1示出本發(fā)明的一種基于IPv6的IPSec安全聯(lián)盟硬件查找裝置的總體結(jié)構(gòu)示意圖。如圖1所示,一種基于IPv6的IPSec安全聯(lián)盟硬件查找裝置100包括:IP數(shù)據(jù)包接收模塊101、壓縮模塊102、CAM查找匹配模塊103和安全聯(lián)盟存儲(chǔ)模塊104。
[0018]其中,IP數(shù)據(jù)包接收模塊101用于接收網(wǎng)口傳輸過(guò)來(lái)的IPv6數(shù)據(jù)包,對(duì)其進(jìn)行緩存并對(duì)數(shù)據(jù)包內(nèi)預(yù)制參數(shù)進(jìn)行提取;例如,一個(gè)長(zhǎng)度為1500字節(jié)IPv6數(shù)據(jù)包輸入時(shí),IP數(shù)據(jù)包接收模塊按照每個(gè)時(shí)鐘32位的數(shù)據(jù)傳輸位寬分4個(gè)字節(jié)存儲(chǔ)至數(shù)據(jù)緩存單元中,待整個(gè)IPv6數(shù)據(jù)包傳輸完畢后拉低狀態(tài)寄存器,以示阻塞數(shù)據(jù)的繼續(xù)輸入,IP數(shù)據(jù)接收模塊中的三元組參數(shù)提取子模塊進(jìn)行數(shù)據(jù)包解析,提取三元組信息,包括:128位的目的地址,32位的SPI參數(shù)和8位的IPSec協(xié)議類型。
[0019]壓縮模塊102用于對(duì)IP數(shù)據(jù)包接收模塊輸出的數(shù)據(jù)進(jìn)行位寬壓縮處理;例如,IP數(shù)據(jù)包接收模塊輸出的三元組信息拼接成168位數(shù)據(jù),這時(shí)可以根據(jù)異或哈希算法將數(shù)據(jù)壓縮成合適的位寬,例如100位。整個(gè)壓縮過(guò)程主要通過(guò)多次的移位和異或運(yùn)算實(shí)現(xiàn)。
[0020]CAM查找匹配模塊103用于對(duì)壓縮后的數(shù)據(jù)信息進(jìn)行查找和匹配;例如,三元組信息被壓縮成100位后,CAM查找匹配模塊被驅(qū)動(dòng)工作,壓縮模塊的輸出作為CAM的輸入信息并進(jìn)行數(shù)據(jù)匹配,匹配結(jié)果將作為安全聯(lián)盟存儲(chǔ)模塊的讀使能信號(hào),CAM的輸出將作為安全聯(lián)盟的讀地址。
[0021]安全聯(lián)盟存儲(chǔ)模塊104用于根據(jù)索引地址輸出安全聯(lián)盟信息;例如,當(dāng)CAM匹配到結(jié)果時(shí),表示安全聯(lián)盟SA存在,此時(shí)根據(jù)CAM的輸出地址讀取相應(yīng)的安全聯(lián)盟的信息,緊接著拉高狀態(tài)寄存器位,以示可以進(jìn)行下一個(gè)數(shù)據(jù)包的輸入和處理;當(dāng)CAM沒(méi)有匹配輸出時(shí),表示安全聯(lián)盟SA,此時(shí)直接拉高狀態(tài)寄存器位進(jìn)行下一個(gè)數(shù)據(jù)包的處理。
[0022]圖2示出本發(fā)明IP數(shù)據(jù)包接收模塊【具體實(shí)施方式】的結(jié)構(gòu)框圖。如圖2所示,一種基于IPv6的IPSec安全聯(lián)盟硬件查找裝置200包括:IP數(shù)據(jù)包接收模塊201、數(shù)據(jù)緩存子模塊202、三元組參數(shù)提取子模塊203、壓縮模塊204、CAM查找匹配模塊205和安全聯(lián)盟存儲(chǔ)模塊206。
[0023]其中,IP數(shù)據(jù)包接收模塊201、壓縮模塊204、CAM查找匹配模塊205和安全聯(lián)盟存儲(chǔ)模塊206分別和圖1中的IP數(shù)據(jù)包接收模塊101、壓縮模塊102、CAM查找匹配模塊103和安全聯(lián)盟存儲(chǔ)模塊104 —致,此處不再贅述其技術(shù)內(nèi)容。
[0024]數(shù)據(jù)緩存子模塊202用于對(duì)當(dāng)前完整的IPv6數(shù)據(jù)包進(jìn)行緩存;例如,IPv6數(shù)據(jù)包長(zhǎng)度為800個(gè)字節(jié),由于系統(tǒng)傳輸位寬為32位,每個(gè)時(shí)鐘周期緩存4個(gè)字節(jié)長(zhǎng)度的數(shù)據(jù)包,經(jīng)過(guò)200個(gè)時(shí)鐘周期,數(shù)據(jù)包暫存完畢,狀態(tài)寄存器拉低阻塞數(shù)據(jù)包繼續(xù)輸入,三元組參數(shù)提取子模塊進(jìn)行工作。
[0025]三元組參數(shù)提取子模塊203用于對(duì)緩存的數(shù)據(jù)包進(jìn)行解析,提取128位目的地址,32位SPI的值和8位IPSec協(xié)議值。例如,當(dāng)前數(shù)據(jù)包包含全部的擴(kuò)展頭(6種),三元組信息依次從40字節(jié)基本頭部中提取出128位目的地址,從AH或者ESP擴(kuò)展頭部中提取SPI值,從擴(kuò)展頭信息中提取IPSec議協(xié)議值。
[0026]圖3示出本發(fā)明CAM查找匹配模塊【具體實(shí)施方式】的結(jié)構(gòu)框圖。如圖3所示,一種基于IPv6的IPSec安全聯(lián)盟硬件查找裝置300包括:IP數(shù)據(jù)包接收模塊301、壓縮模塊302、CAM查找匹配模塊303、異或比較子模塊304、優(yōu)先編碼子模塊305和安全聯(lián)盟存儲(chǔ)模塊306。其中,IP數(shù)據(jù)包接收模塊301、壓縮模塊302、CAM查找匹配模塊303和安全聯(lián)盟存儲(chǔ)模塊306分別和圖1中的IP數(shù)據(jù)包接收模塊101、壓縮模塊102、CAM查找匹配模塊103和安全聯(lián)盟存儲(chǔ)模塊104 —致,此處不再贅述其技術(shù)內(nèi)容。
[0027]異或比較子模塊304將壓縮模塊的輸出與配置在存儲(chǔ)器中的信息按位異或,生成若干標(biāo)志位;例如,當(dāng)壓縮模塊的三元組輸出信息為100位時(shí),100位的數(shù)據(jù)跟預(yù)配置在CAM中的數(shù)據(jù)按位異或,生成I位的標(biāo)志位,后驅(qū)動(dòng)優(yōu)先編碼子模塊。
[0028]優(yōu)先編碼子模塊305將異或比較子模塊生成的標(biāo)志位進(jìn)行優(yōu)先編碼,生成安全聯(lián)盟存儲(chǔ)模塊的索引地址;例如,三元組輸出信息為64位時(shí),優(yōu)先編碼子模塊會(huì)根據(jù)異或比較子模塊產(chǎn)生的標(biāo)志位進(jìn)行編碼,生成6位的地址信息。
[0029]圖4示出本發(fā)明三元組參數(shù)提取子模塊的狀態(tài)跳轉(zhuǎn)圖。如圖4所示,一種基于IPv6的IPSec安全聯(lián)盟硬件查找裝置共包含7個(gè)狀態(tài)。
[0030]狀態(tài)401,idle狀態(tài),當(dāng)系統(tǒng)在緩沖數(shù)據(jù)或者一次解析數(shù)據(jù)包過(guò)程結(jié)束后,跳轉(zhuǎn)到該狀態(tài)。在數(shù)據(jù)包緩沖結(jié)束,根據(jù)40字節(jié)基本頭部中的“下一首部”字段跳轉(zhuǎn)到不同狀態(tài)。
[0031]狀態(tài)402, hop_by_hop狀態(tài),在該狀態(tài)下,查找hop_by_hop頭部的“下一個(gè)頭”字段暫存,并計(jì)算該頭部的長(zhǎng)度。
[0032]狀態(tài)403,destinat1n狀態(tài),在該狀態(tài)下,查找destinat1n頭部的“下一個(gè)頭”字段暫存,并計(jì)算該頭部的長(zhǎng)度。
[0033]狀態(tài)404,routing狀態(tài),在該狀態(tài)下,查找routing頭部的“下一個(gè)頭”字段暫存,并計(jì)算該頭部的長(zhǎng)度。
[0034]狀態(tài)405, fragmentat1n狀態(tài),在該狀態(tài)下,查找fragmentat1n頭部的“下一個(gè)頭”字段暫存。
[0035]狀態(tài)406,ah狀態(tài),在該狀態(tài)下,首先將該包使用AH協(xié)議的信息存儲(chǔ)到IPSec協(xié)議寄存器中,然后查找ah頭部的“下一個(gè)頭”字段暫存,計(jì)算該頭部的長(zhǎng)度,根據(jù)SPI字段在該擴(kuò)展頭中的位置將其信息復(fù)制到指定的存儲(chǔ)單元。
[0036]狀態(tài)407,esp狀態(tài),在該狀態(tài)下,首先將該包使用ESP協(xié)議的信息存儲(chǔ)到IPSec協(xié)議寄存器,然后提取esp擴(kuò)展頭的前32位,即ESP協(xié)議對(duì)應(yīng)的32位SPI值,將其信息復(fù)制到指定的存儲(chǔ)單元。最后,狀態(tài)跳回至idle狀態(tài)。
[0037]圖5示出本發(fā)明安全聯(lián)盟存儲(chǔ)模塊的具體參數(shù)存儲(chǔ)的結(jié)構(gòu)框圖。如圖5所示,安全聯(lián)盟存儲(chǔ)模塊具體參數(shù)存儲(chǔ)結(jié)構(gòu)500包括:標(biāo)志信息位501,序列號(hào)計(jì)數(shù)器502,安全參數(shù)索引(SPI) 503,抗重放窗口 504,加密算法IV 505,認(rèn)證算法密鑰506,加密算法密鑰507。
[0038]其中,標(biāo)志信息位置501包括:操作模式、序列號(hào)溢出位、IPSec協(xié)議位、認(rèn)證算法編號(hào)、加密算法IV長(zhǎng)度、認(rèn)證算法密鑰長(zhǎng)度、加密算法密鑰長(zhǎng)度。
[0039]圖6不出本發(fā)明提供的一種基于IPv6的IPSec安全聯(lián)盟硬件查找方法的一個(gè)具體實(shí)施例的流程圖。如圖6所示,所述基于IPv6的IPSec安全聯(lián)盟硬件查找方法的處理流程600包括:步驟601,步驟602,步驟603,步驟604,步驟605,步驟606,步驟607,步驟608,步驟609。
[0040]步驟601,初始化配置數(shù)據(jù),包括CAM存儲(chǔ)模塊的數(shù)據(jù)和安全聯(lián)盟存儲(chǔ)模塊的數(shù)據(jù)。
[0041]步驟602,狀態(tài)位檢測(cè)。配置數(shù)據(jù)步驟完成以后,IP數(shù)據(jù)包接收模塊被激活。首先檢測(cè)狀態(tài)寄存器中的狀態(tài)位,當(dāng)狀態(tài)位為高時(shí),表示可以輸入IPv6數(shù)據(jù)包,當(dāng)狀態(tài)位為低,此時(shí)阻塞數(shù)據(jù)包輸入。
[0042]步驟603,緩存一個(gè)數(shù)據(jù)包,拉低狀態(tài)位。例如,一個(gè)長(zhǎng)度為1500字節(jié)IPv6數(shù)據(jù)包輸入時(shí),IP數(shù)據(jù)包接收模塊每個(gè)時(shí)鐘傳遞32位數(shù)據(jù)并分4個(gè)字節(jié)存儲(chǔ)至數(shù)據(jù)緩存單元中,待整個(gè)IPv6數(shù)據(jù)包傳輸完畢后拉低狀態(tài)寄存器,以示阻塞數(shù)據(jù)的繼續(xù)輸入,后續(xù)的處理模塊被激活。
[0043]步驟604,對(duì)數(shù)據(jù)包進(jìn)行解析,提取里面的三元組信息。例如,當(dāng)前數(shù)據(jù)包包含4種擴(kuò)展頭(hop_by_hop、destinat1n、routing、ah),三元組信息依次從40字節(jié)基本頭部中提取出128位目的地址,從ah擴(kuò)展頭部中提取SPI值,IPSec協(xié)議寄存器寫入只采用AH協(xié)議的信息。
[0044]步驟605,xor hash壓縮。例如,IP數(shù)據(jù)包接收模塊輸出的三元組信息拼接成168位數(shù)據(jù),這時(shí)可以根據(jù)異或哈希算法將數(shù)據(jù)壓縮成合適的位寬,例如100位,90位等。整個(gè)壓縮過(guò)程主要通過(guò)多次的移位和異或運(yùn)算實(shí)現(xiàn)。
[0045]步驟606,將hash壓縮結(jié)果輸入CAM,進(jìn)行查找匹配。
[0046]步驟607,CAM中是否有關(guān)鍵字匹配。例如,CAM查找匹配模塊被驅(qū)動(dòng)工作后,壓縮模塊的輸出作為CAM的輸入數(shù)據(jù)進(jìn)行匹配,匹配結(jié)果分兩種:有匹配結(jié)果時(shí),CAM輸出將作為安全聯(lián)盟存儲(chǔ)模塊的讀地址;無(wú)匹配時(shí),安全聯(lián)盟的讀使能被拉低,同時(shí)狀態(tài)寄存器被拉聞。
[0047]步驟608,將CAM輸出作為安全聯(lián)盟存儲(chǔ)模塊的索引地址,輸出安全聯(lián)盟的值。例如,當(dāng)CAM有匹配結(jié)果時(shí),安全聯(lián)盟存儲(chǔ)模塊的讀使能被拉高,根據(jù)CAM的輸出地址,相應(yīng)的SA內(nèi)容被讀出。
[0048]步驟609,拉高狀態(tài)位。一次索引過(guò)程結(jié)束后,狀態(tài)寄存器被拉高,以示下一個(gè)數(shù)據(jù)包可以進(jìn)入并處理。
[0049]本發(fā)明提供了一種基于IPv6的IPSec安全聯(lián)盟硬件查找裝置及方法,采用可編程邏輯器件FPGA實(shí)現(xiàn)了整個(gè)查找過(guò)程,實(shí)現(xiàn)過(guò)程中可以根據(jù)硬件特點(diǎn)做適當(dāng)調(diào)整,如壓縮模塊的算法選擇等。
[0050]本發(fā)明提供了一種基于IPv6的IPSec安全聯(lián)盟硬件查找裝置及方法,該裝置可以應(yīng)用在網(wǎng)絡(luò)安全設(shè)備中,實(shí)現(xiàn)快速的匹配查找,對(duì)于提高整個(gè)系統(tǒng)的工作效率具有十分重要的意義。
[0051]本【技術(shù)領(lǐng)域】技術(shù)人員可以理解,本發(fā)明可以涉及用于執(zhí)行本申請(qǐng)中所述操作中的一項(xiàng)或多項(xiàng)操作的設(shè)備。所述設(shè)備可以為所需的目的而專門設(shè)計(jì)和制造,或者也可以包括通用計(jì)算機(jī)中的已知設(shè)備,所述通用計(jì)算機(jī)有存儲(chǔ)在其內(nèi)的程序選擇性地激活或重構(gòu)。這樣的計(jì)算機(jī)程序可以被存儲(chǔ)在設(shè)備(例如,計(jì)算機(jī))可讀介質(zhì)中或者存儲(chǔ)在適于存儲(chǔ)電子指令并分別耦聯(lián)到總線的任何類型的介質(zhì)中,所述計(jì)算機(jī)可讀介質(zhì)包括但不限于任何類型的盤(包括軟盤、硬盤、光盤、CD-ROM、和磁光盤)、隨即存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可編程ROM、電可擦ROM (EPR0M)、電可擦除可編程ROM (EEPR0M)、閃存、磁性卡片或光線卡片??勺x介質(zhì)包括用于以由設(shè)備(例如,計(jì)算機(jī))可讀的形式存儲(chǔ)或傳輸信息的任何機(jī)構(gòu)。例如,可讀介質(zhì)包括隨即存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、磁盤存儲(chǔ)介質(zhì)、光學(xué)存儲(chǔ)介質(zhì)、閃存裝置、以電的、光的、聲的或其他的形式傳播的信號(hào)(例如載波、紅外信號(hào)、數(shù)字信號(hào))等。
[0052]本【技術(shù)領(lǐng)域】技術(shù)人員可以理解,可以用計(jì)算機(jī)程序指令來(lái)實(shí)現(xiàn)這些結(jié)構(gòu)圖和/或框圖和/或流圖中的每個(gè)框以及這些結(jié)構(gòu)圖和/或框圖和/或流圖中的框的組合。可以將這些計(jì)算機(jī)程序指令提供給通用計(jì)算機(jī)、專業(yè)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理方法的處理器來(lái)生成機(jī)器,從而通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理方法的處理器來(lái)執(zhí)行的指令創(chuàng)建了用于實(shí)現(xiàn)結(jié)構(gòu)圖和/或框圖和/或流圖的框或多個(gè)框中指定的方法。
[0053]本【技術(shù)領(lǐng)域】技術(shù)人員可以理解,本發(fā)明中已經(jīng)討論過(guò)的各種操作、方法、流程中的步驟、措施、方案可以被交替、更改、組合或刪除。進(jìn)一步地,具有本發(fā)明中已經(jīng)討論過(guò)的各種操作、方法、流程中的其他步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。進(jìn)一步地,現(xiàn)有技術(shù)中的具有與本發(fā)明中公開(kāi)的各種操作、方法、流程中的步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。
[0054]以上所述僅是本發(fā)明的部分實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種基于IPv6的IPSec安全聯(lián)盟硬件查找裝置,其特征在于,包括: IP數(shù)據(jù)包接收模塊、壓縮模塊、CAM查找匹配模塊和安全聯(lián)盟存儲(chǔ)模塊,其中: 所述IP數(shù)據(jù)包接收模塊,用于接收網(wǎng)口傳輸過(guò)來(lái)的IPv6數(shù)據(jù)包,并對(duì)接收到的IPv6數(shù)據(jù)包進(jìn)行緩存,隨后提取所述IPv6數(shù)據(jù)包內(nèi)的三元組信息,其中:所述三元組信息包括:目的IP地址、SPI值和IPSec安全協(xié)議類型; 所述壓縮模塊,用于對(duì)IP數(shù)據(jù)包接收模塊輸出的提取字段數(shù)據(jù)進(jìn)行位寬壓縮處理;所述CAM查找匹配模塊,用于對(duì)所述壓縮模塊輸出的壓縮后的字段數(shù)據(jù)信息與初始配置在CAM中的數(shù)據(jù)進(jìn)行查找和匹配,并根據(jù)匹配結(jié)果生成索引地址; 所述安全聯(lián)盟存儲(chǔ)模塊,用于所述CAM查找匹配模塊輸出的索引地址輸出存儲(chǔ)在RAM中的安全聯(lián)盟信息。
2.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述IP數(shù)據(jù)包接收模塊進(jìn)一步包括: 數(shù)據(jù)緩存子模塊和三元組參數(shù)提取子模塊,其中: 所述數(shù)據(jù)緩存子模塊,用于將一個(gè)單位長(zhǎng)度的IPv6數(shù)據(jù)包存儲(chǔ)至緩存fifo中; 所述三元組參數(shù)提取子模塊,用于定位和提取緩存的IPv6包中所述三元組信息,包括目的IP地址、SPI值和IPSec安全協(xié)議類型。
3.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述壓縮模塊采用異或hash算法實(shí)現(xiàn)結(jié)構(gòu)。
4.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述CAM查找匹配模塊進(jìn)一步包括: 異或比較子模塊和優(yōu)先編碼子模塊,其中: 所述異或比較子模塊,用于將所述壓縮模塊輸出的壓縮后的字段數(shù)據(jù)信息與配置在存儲(chǔ)器中的初始字段數(shù)據(jù)信息逐位異或,生成三元組信息長(zhǎng)度的標(biāo)志位; 所述優(yōu)先編碼子模塊,用于將所述異或比較子模塊生成的標(biāo)志位進(jìn)行優(yōu)先編碼,生成所述索引地址。
5.一種基于IPv6的IPSec安全聯(lián)盟硬件查找方法,其特征在于,包括以下步驟: 將配置數(shù)據(jù)分別寫入CAM存儲(chǔ)單元和安全聯(lián)盟SAD存儲(chǔ)單元中; 通過(guò)IP數(shù)據(jù)包接收模塊接收網(wǎng)口傳輸過(guò)來(lái)的IPv6數(shù)據(jù)包,并對(duì)接收到的IPv6數(shù)據(jù)包進(jìn)行緩存,隨后提取所述IPv6數(shù)據(jù)包內(nèi)的三元組信息,其中:所述三元組信息包括:目的IP地址、SPI值和IPSec安全協(xié)議類型; 通過(guò)壓縮模塊對(duì)拼接的三元組信息進(jìn)行hash壓縮處理,并將生成的數(shù)據(jù)送入CAM查找模塊; 通過(guò)CAM查找匹配模塊對(duì)壓縮模塊的輸出進(jìn)行解析處理,并輸出匹配結(jié)果和匹配地址; 如果CAM查找結(jié)果為“存在”,則驅(qū)動(dòng)安全聯(lián)盟存儲(chǔ)模塊輸出相應(yīng)安全聯(lián)盟內(nèi)容,如果CAM查找結(jié)果為“不存在”,則拉低安全聯(lián)盟存儲(chǔ)模塊的讀使能信號(hào)。
【文檔編號(hào)】H04L29/06GK104184744SQ201410460804
【公開(kāi)日】2014年12月3日 申請(qǐng)日期:2014年9月11日 優(yōu)先權(quán)日:2014年9月11日
【發(fā)明者】李冰, 徐寅, 劉勇, 姜偉, 董乾, 趙霞, 王剛 申請(qǐng)人:東南大學(xué)