基于多核處理器的DPI平臺(tái)的設(shè)計(jì)與應(yīng)用
前言
在目前的安全、數(shù)通及電信等諸多領(lǐng)域都可以看到基于多核處理器的設(shè)計(jì),它們超強(qiáng)的處理能力使得以往繁復(fù)的系統(tǒng)得以減小體積,實(shí)現(xiàn)單板平臺(tái)。然而,在享受處理性能提升的同時(shí),結(jié)構(gòu)設(shè)計(jì)人員卻不得不忍受多核高功耗的折磨,動(dòng)輒幾十瓦甚至上百瓦的功耗成為多核進(jìn)入更多領(lǐng)域的一個(gè)瓶頸。在目前綠色環(huán)保的政策下如何實(shí)現(xiàn)機(jī)房或設(shè)備的低功耗成為系統(tǒng)工程師必須考慮的一個(gè)重要設(shè)計(jì)因素。隨著多核集成CPU數(shù)量的不斷增加,單純靠芯片工藝和代碼優(yōu)化來降低功耗越來越難,此時(shí)必須要從電路系統(tǒng)設(shè)計(jì)的角度來全盤考慮問題。
多核處理器在數(shù)據(jù)處理過程中的密集運(yùn)算使得芯片的動(dòng)態(tài)功耗不斷增加,因此可將處理器的一部分負(fù)荷卸載到專用加速器中,以此來降低核心芯片的功耗。一方面它可以容許處理器工作在較低的頻率上,大幅降低系統(tǒng)的總功耗,另一方面還可以通過釋放處理器來提升整個(gè)系統(tǒng)的性能,或者增加高附加值的應(yīng)用;最后還可以降低對(duì)處理器的要求,同時(shí)降低系統(tǒng)的BOM成本。
目前安全領(lǐng)域的DPI檢測就是一個(gè)計(jì)算密集型應(yīng)用,它要求掃描整個(gè)數(shù)據(jù)包,計(jì)算開銷非常大?,F(xiàn)有網(wǎng)絡(luò)設(shè)備在實(shí)現(xiàn)此功能時(shí)大多采用軟件方案,在獨(dú)占一個(gè)CPU核的情況下也只能達(dá)到 Mbps的處理能力。實(shí)驗(yàn)表明,通過加入LSI公司的Tarari DPI專用芯片可以使系統(tǒng)功耗大幅降低,而處理能力可提升至Gbps。本文將以Tarari為例介紹DPI技術(shù)以及相關(guān)實(shí)現(xiàn)。
DPI技術(shù)及芯片介紹
DPI (Deep Packet Inspection),即“深度報(bào)文檢測”。所謂“深度”是和普通的報(bào)文分析層次相比較而言的,“普通報(bào)文檢測”僅分析IP包的4層以下的內(nèi)容,包括源地址、目的地址、源端口、目的端口以及協(xié)議類型,而DPI 除了對(duì)前面的層次分析外,還增加了應(yīng)用層分析,識(shí)別各種應(yīng)用及其內(nèi)容,基本概念如圖1所示。
圖1 DPI的基本概念
普通報(bào)文檢測是通過端口號(hào)來識(shí)別應(yīng)用類型的。如檢測到端口號(hào)為80時(shí),則認(rèn)為該應(yīng)用代表著普通上網(wǎng)應(yīng)用。而當(dāng)前網(wǎng)絡(luò)上的一些非法應(yīng)用會(huì)采用隱藏或假冒端口號(hào)的方式躲避檢測和監(jiān)管,造成仿冒合法報(bào)文的數(shù)據(jù)流侵蝕網(wǎng)絡(luò)。此時(shí)采用L2~L4層的傳統(tǒng)檢測方法已無能為力了。DPI 技術(shù)就是通過對(duì)應(yīng)用流中的數(shù)據(jù)報(bào)文內(nèi)容進(jìn)行探測,從而確定數(shù)據(jù)報(bào)文的真正應(yīng)用。因?yàn)榉欠☉?yīng)用可以隱藏端口號(hào),但目前較難隱藏應(yīng)用層的協(xié)議特征。
Tarari系列芯片是實(shí)現(xiàn)上述功能的一款硬件加速器,它支持行業(yè)內(nèi)標(biāo)準(zhǔn)的正則表達(dá)式,規(guī)則數(shù)可以達(dá)到上百萬條,支持POSIX和PCRE。針對(duì)安全應(yīng)用中所需的跨包檢測,Tarari可以對(duì)400多萬條數(shù)據(jù)的上下文進(jìn)行處理。處理跨包的過程中Tarari會(huì)用內(nèi)部緩存來自動(dòng)記錄跨包的上下文,包括正則表達(dá)式搜索樹的狀態(tài)、前一包的部分內(nèi)容以及所選的指令。該系列芯片從第四代產(chǎn)品(T9000)開始采用ASIC設(shè)計(jì),第五代產(chǎn)品則開始采用T10 架構(gòu),產(chǎn)品目前包括T1000和T2000兩個(gè)系列型號(hào)。各芯片間軟件兼容,提供從250Mbps到10Gbps不同的速度等級(jí),以滿足不同應(yīng)用的需求。
以T2000系列芯片為例,它外圍存儲(chǔ)采用低成本的DDR2 SDRAM芯片,無需TCAM或者RLDRAM等昂貴存儲(chǔ)器。為了滿足某些高性能場合的需求,T2000也提供擴(kuò)展接口,方便實(shí)現(xiàn)性能升級(jí)。在系統(tǒng)接口方面T2000提供PCI、PCI Express等高速接口,每個(gè)PCIe通道都具有Gbps的有效吞吐能力,最高可以達(dá)到16Gbps。T2000最高可支持10G的單片峰值性能,通過級(jí)聯(lián)兩片T2000芯片可以提供16Gb/s的吞吐量。T2000 軟件可同時(shí)監(jiān)測多達(dá)四塊16Gb/s PCIe電路板并提供負(fù)載均衡,從而為最苛刻的網(wǎng)絡(luò)環(huán)境提供64Gb/s 的性能。T2000系列芯片的體積只有29mm*29mm,典型功耗為5W。
基于多核處理器的DPI平臺(tái)設(shè)計(jì)
硬件平臺(tái)設(shè)計(jì)
無論是Intel和AMD的x86架構(gòu),還是MIPs架構(gòu),無論是CISC還是RISC,Tarari都可以很好的支持這些主流的處理器技術(shù)。
以某公司基于MIPs的多核芯片為例,圖2所示為Tarari芯片與 MIPs多核的設(shè)計(jì)框圖。由于 Tarari芯片具有PCI、PCI-X以及PCIe接口,因此Tarari可以通過這些接口與滿足條件的多核處理器直接對(duì)接。對(duì)于很多高速應(yīng)用,如果 PCIe接口類型不匹配,也可以在PCIe與處理器間搭接PCIe與其它接口的轉(zhuǎn)換橋片。對(duì)于低速應(yīng)用,Tarari可以實(shí)現(xiàn)無RAM操作,即無需外圍的 DDR2芯片,通過內(nèi)部存儲(chǔ)器就可以實(shí)現(xiàn)數(shù)據(jù)處理。
圖2所示電路的工作流程如下:當(dāng)有數(shù)據(jù)包從GE接口進(jìn)入MIPs多核處理器,處理器會(huì)通過PCIe接口或者HT橋片將其送入Tarari內(nèi)容處理器,此時(shí)Tarari會(huì)通過內(nèi)部的多個(gè)引擎對(duì)數(shù)據(jù)與規(guī)則集進(jìn)行比對(duì)匹配,因?yàn)槠ヅ湟?guī)則在處理期間已經(jīng)調(diào)入Tarari芯片的內(nèi)部緩存,并且數(shù)據(jù)在處理過程中并不會(huì)進(jìn)行任何形式的存儲(chǔ),所以匹配過程延時(shí)很小。匹配結(jié)束后,評(píng)估結(jié)果同樣經(jīng)過PCIe或者HT總線送回處理器,上層軟件根據(jù)結(jié)果來決定對(duì)報(bào)文的處理。
圖2 基于MIPs多核的DPI平臺(tái)設(shè)計(jì)
規(guī)則集編寫及調(diào)用
Tarari支持豐富的正則表達(dá)式語言和各種常用結(jié)構(gòu),可以在確定速度的情況下并行處理超過100萬條規(guī)則,它通過專利技術(shù)綜合了DFA和NFA的優(yōu)點(diǎn),支持各種復(fù)雜的正則表達(dá)式。
如圖3所示,正則表達(dá)式內(nèi)容處理的第一步是編譯規(guī)則集,然后將其調(diào)入Tarari硬件系統(tǒng)。規(guī)則集可以一次全部編譯,也可以只編譯更新部分,即增量編譯。被編譯的規(guī)則文本文件在編寫時(shí)需要符合語法,編譯結(jié)果是一個(gè)可以被調(diào)入Tarari硬件系統(tǒng)的二進(jìn)制文件。
圖3 規(guī)則集的編譯過程
全部編譯的好處是可以進(jìn)行字符級(jí)的壓縮,對(duì)于許多應(yīng)用來講,這意味著可以大幅減小編譯輸出的二進(jìn)制文件大小,特別是對(duì)于諸如反垃圾郵件等基于文本的應(yīng)用,全部編譯同增量編譯相比可以減小編譯結(jié)果。字符集壓縮必須要檢索起始狀態(tài)條件下的所有規(guī)則。因此,某一個(gè)規(guī)則的更新就會(huì)改變二進(jìn)制指令在所有規(guī)則集上的生成方式。所以在這種模式下任一規(guī)則的更新都會(huì)要求所有的規(guī)則被重新編譯。[!--empirenews.page--]
IDS/IPS類應(yīng)用傾向于將8比特字符的256個(gè)可能數(shù)值都明確地用規(guī)則表示出來,因此字符集壓縮對(duì)此類應(yīng)用來講作用較小,所以適合采用增量編譯。采用增量編譯的優(yōu)勢在于不會(huì)特別增加字節(jié)數(shù)。另外,為了進(jìn)行包分類,這類應(yīng)用通常使用很多的起始狀態(tài)條件,這也適合采用增量編譯。有起始狀態(tài)條件的規(guī)則集使用增量編譯因?yàn)椴恍柽M(jìn)行字符集壓縮,所以可減小第一次的編譯時(shí)間;依賴于規(guī)則改變的數(shù)目和復(fù)雜度,第二次以及隨后的編譯時(shí)間也會(huì)大幅縮短;并且減小了存儲(chǔ)記錄的需求。
如果規(guī)則集沒有起始條件,那么最好還是使用全部編譯的方式,因?yàn)槿?strong>編譯具有字符集壓縮的優(yōu)勢。
DPI在UTM平臺(tái)上的應(yīng)用
目前企業(yè)網(wǎng)都面臨著入侵防御、防病毒和防垃圾郵件等三個(gè)主要的安全問題,UTM的出現(xiàn)使得通過一臺(tái)設(shè)備來解決上述安全問題成為可能。但這同時(shí)也帶來了性能瓶頸,因?yàn)閷?duì)不間斷的數(shù)據(jù)流進(jìn)行處理,并根據(jù)不同的惡意威脅對(duì)包進(jìn)行深度掃描的計(jì)算量非常龐大,即使是多核平臺(tái)也很難達(dá)到預(yù)定性能。在這種情況下,專用的加速引擎Tarari就可以幫助UTM設(shè)備在安全能力和處理性能間達(dá)到均衡。
Tarari可以從主處理器上卸載內(nèi)容處理任務(wù),利用專用硬件來加速評(píng)估過程,最后再將評(píng)估結(jié)果送回主處理器上的安全應(yīng)用程序。
對(duì)于入侵防御,UTM設(shè)備可以檢測輸入報(bào)文的所有內(nèi)容,并將內(nèi)容提交給Tarari的正則表達(dá)式處理引擎,由它來加速與攻擊模式的比較過程。匹配結(jié)果返回主處理器后,入侵防御應(yīng)用程序會(huì)決定如何來處理攻擊包。
對(duì)于防病毒保護(hù),數(shù)據(jù)流以文件形式通過UTM設(shè)備進(jìn)入正則表達(dá)式引擎,引擎在線速情況下會(huì)將文件與病毒特征數(shù)據(jù)庫進(jìn)行評(píng)估匹配,并對(duì)可疑內(nèi)容進(jìn)行啟發(fā)分析。評(píng)估結(jié)束后,主處理器上的防病毒應(yīng)用程序就可以對(duì)感染文件進(jìn)行預(yù)定處理。
對(duì)于防垃圾郵件應(yīng)用,輸入流作為Email通過UTM設(shè)備接入正則表達(dá)式引擎,引擎會(huì)將內(nèi)容圖案與垃圾郵件特征數(shù)據(jù)庫進(jìn)行評(píng)估對(duì)比,識(shí)別出問題信息。主處理器上運(yùn)行的反垃圾郵件應(yīng)用程序讀出返回值后可以應(yīng)用不同策略來處理這些信息。
當(dāng)UTM平臺(tái)有了Tarari的加速,它可以真正實(shí)現(xiàn)對(duì)數(shù)據(jù)報(bào)文、信息和文件的深度檢測,以對(duì)網(wǎng)絡(luò)提供安全保護(hù)。
總結(jié)
通過軟件的方式也可以實(shí)現(xiàn)DPI檢測功能,但這種方式性價(jià)比較低,功耗較高。比如在3GHz的Xenon四核平臺(tái)上,每核只能實(shí)現(xiàn)60Mbit/s的吞吐量,而此時(shí)功耗為90W;采用最低端的T1000芯片可以實(shí)現(xiàn)250Mbit/s的吞吐量,而功耗不足2W。
Tarari與軟件方式相比還有一個(gè)明顯的優(yōu)勢,在于它基于硬件的跨包檢測能力,相對(duì)于用軟件來檢測跨包威脅,比如入侵、惡意攻擊等,Tarari的硬件處理速度遠(yuǎn)遠(yuǎn)超出了軟件的處理速度。
Tarari芯片內(nèi)部檢測引擎的理論處理速度超過目前芯片的I/O吞吐率,因此,這些額外的處理能力使得LSI公司有能力在不遠(yuǎn)的將來推出更快更高效的產(chǎn)品。目前T1000系列芯片LSI采用了90nm工藝技術(shù),隨著LSI向65nm工藝的推進(jìn),Tarari系列的功耗將會(huì)更低,處理性能將會(huì)得到更大的釋放。