AMP方式示意圖
      SMP方式顧名思義就是將多個(gè)內(nèi)核平等看待,每個(gè)內(nèi)核運(yùn)行的操作系統(tǒng)相同,且每個(gè)內(nèi)核上都運(yùn)行一套IPS系統(tǒng),這樣從數(shù)據(jù)接收、連接建立、數(shù)據(jù)檢測(cè)到數(shù)據(jù)發(fā)送都是并發(fā)執(zhí)行的,相當(dāng)于多個(gè)IPS系統(tǒng)在同時(shí)運(yùn)行。這種架構(gòu)比較簡(jiǎn)潔,各個(gè)處理器內(nèi)核負(fù)載均衡,可以全方位地提升IPS產(chǎn)品性能,特別是在測(cè)試單一性能指標(biāo)時(shí),由于所有內(nèi)核都參與處理工作,往往可以獲得比較好的表現(xiàn)。這種架構(gòu)也有其固有缺陷,因?yàn)樗袃?nèi)核都運(yùn)行相同的軟件系統(tǒng)(包含操作系統(tǒng)和IPS系統(tǒng)),勢(shì)必產(chǎn)生對(duì)共享資源(內(nèi)存數(shù)據(jù)、文件描述符、I/O設(shè)備等)的爭(zhēng)用。為處理并發(fā)與同步需要使用大量的鎖機(jī)制,而這些鎖的操作又影響了性能發(fā)揮,更嚴(yán)重的是隨著內(nèi)核數(shù)量的增多,并發(fā)與同步的消耗達(dá)到一定的量級(jí),這時(shí)性能就不再增長(zhǎng)甚至下降了。

      AMP方式就是將多個(gè)內(nèi)核區(qū)別看待,可以運(yùn)行不同的操作系統(tǒng)也可以在相同的操作系統(tǒng)上運(yùn)行不同的任務(wù),各個(gè)處理器內(nèi)核按照任務(wù)劃分,各負(fù)其責(zé),規(guī)避共享資源的競(jìng)爭(zhēng),做到"術(shù)有專攻",從而提升IPS產(chǎn)品的綜合性能。完整的操作系統(tǒng)往往比較龐大,耗費(fèi)資源較多,效率也較低。拿出幾個(gè)物理內(nèi)核,在其上建立一種簡(jiǎn)易的系統(tǒng)環(huán)境(有時(shí)候直接叫做"裸核"環(huán)境),在這個(gè)"潔凈的空間"內(nèi)運(yùn)行單一任務(wù)(比如收發(fā)數(shù)據(jù)、模式匹配等)往往可以獲得極高的性能,這是AMP方式的特點(diǎn),也是其優(yōu)勢(shì)。另外一種方式,在相同的操作系統(tǒng)上運(yùn)行不同的任務(wù)也是同樣的機(jī)理,只不過更容易實(shí)現(xiàn)一些,相應(yīng)的性能提升的效果也遜色一些。這種架構(gòu)也有其缺陷,在測(cè)試單一性能指標(biāo)時(shí),因?yàn)樘囟üδ苤挥杏邢薜膬?nèi)核參與處理,往往性能不夠理想。架構(gòu)本身也比較復(fù)雜,需要仔細(xì)權(quán)衡各個(gè)內(nèi)核的任務(wù)分擔(dān),否則會(huì)造成內(nèi)核負(fù)載不均衡,影響性能發(fā)揮。

      選擇哪一種架構(gòu)需要根據(jù)處理器硬件平臺(tái)與IPS系統(tǒng)本身的特點(diǎn)來抉擇,通常在硬件處理器內(nèi)核比較少的情況下選擇SMP架構(gòu),在需要將一大堆不可能并行化的"遺產(chǎn)"繼承到產(chǎn)品中時(shí)只好選擇AMP架構(gòu),如果已經(jīng)使用了硬件內(nèi)容加速,那么可以選擇SMP架構(gòu),如果是新開發(fā)IPS產(chǎn)品,內(nèi)核分工可以動(dòng)態(tài)調(diào)整的AMP架構(gòu)是不錯(cuò)的選擇,但需要保證足夠的技術(shù)儲(chǔ)備和適當(dāng)?shù)娜肆ν度搿?

      在確定了工作模式后,就要考慮流量的分擔(dān)與負(fù)載問題了,多個(gè)內(nèi)核并行處理,它們共同的輸入就是來自網(wǎng)絡(luò)的數(shù)據(jù)流,如何將這些數(shù)據(jù)流"喂"給處理器內(nèi)核呢?最簡(jiǎn)單的就是輪詢方法,即將到達(dá)的數(shù)據(jù)依次交給等待處理的內(nèi)核,各個(gè)內(nèi)核平均分配,這對(duì)早期的基于單個(gè)數(shù)據(jù)包檢測(cè)的IPS系統(tǒng)比較適合?,F(xiàn)代的IPS系統(tǒng)功能豐富,不僅可以進(jìn)行TCP流重組,還可以跟蹤應(yīng)用層協(xié)議和控制流量。但是在多個(gè)內(nèi)核上并發(fā)地跟蹤TCP狀態(tài)機(jī)是個(gè)棘手的問題,實(shí)現(xiàn)難度也較大,所以出現(xiàn)了另外一種按照五元組分流的方法,即將同一個(gè)數(shù)據(jù)流分配到同一個(gè)內(nèi)核上,保障一個(gè)數(shù)據(jù)流始終由一個(gè)內(nèi)核處理。這種方式大大降低了IPS內(nèi)部實(shí)現(xiàn)復(fù)雜度,雖然具有流量較小時(shí)負(fù)載不均衡的副作用,但從研發(fā)成本考慮還是可以接受的。

      接下來就是對(duì)提升性能至關(guān)重要的IPS引擎的并行檢測(cè),IPS檢測(cè)引擎的并發(fā)是提升性能的關(guān)鍵。這里的引擎主要指應(yīng)用協(xié)議的識(shí)別和分析、攻擊特征的匹配、策略的檢查以及后續(xù)的數(shù)據(jù)處理。如果運(yùn)行于應(yīng)用層,可以將每個(gè)IPS引擎作為一個(gè)單獨(dú)的進(jìn)程對(duì)待,它們共用一份公共的攻擊特征庫,對(duì)各自的輸入的數(shù)據(jù)流進(jìn)行并行檢測(cè)和處理,就好像多個(gè)引擎在同時(shí)工作。但是數(shù)據(jù)流之間有時(shí)候是相關(guān)的,比如一個(gè)應(yīng)用層協(xié)議可以動(dòng)態(tài)協(xié)商出它的一個(gè)子連接,當(dāng)這個(gè)子連接分配到另外一個(gè)IPS進(jìn)程上處理時(shí),要想控制它就需要進(jìn)行進(jìn)程間通訊,這樣引擎的獨(dú)立性就被破壞了。同樣在雙機(jī)熱備份的狀態(tài)同步、應(yīng)用層協(xié)議動(dòng)態(tài)識(shí)別上也會(huì)遇到同樣的困難。如果IPS作為一個(gè)內(nèi)核模塊運(yùn)行于操作系統(tǒng)核心層,那么需要對(duì)所有可能產(chǎn)生競(jìng)爭(zhēng)的共享資源進(jìn)行并發(fā)訪問控制,使其徹底并行化,除此之外可能沒有什么更好的辦法了。

      配置問題是并發(fā)系統(tǒng)中一個(gè)棘手的問題,用戶常常在系統(tǒng)運(yùn)行過程中進(jìn)行配置變更,而且總是希望這種變更后的配置能夠即時(shí)生效。

      在并發(fā)IPS系統(tǒng)中只有一份配置,配置的變化意味著所有的并行工作都要暫停下來,需要根據(jù)新的配置調(diào)整運(yùn)行參數(shù)。運(yùn)行時(shí)態(tài)頻繁地調(diào)整配置不可避免地影響并發(fā)IPS系統(tǒng)性能,如果設(shè)計(jì)不好還會(huì)產(chǎn)生"停頓",導(dǎo)致丟包。同樣的,在IPS系統(tǒng)中各種統(tǒng)計(jì)數(shù)據(jù)(流量統(tǒng)計(jì)、事件統(tǒng)計(jì)、時(shí)間統(tǒng)計(jì)等)都需要實(shí)時(shí)地準(zhǔn)確地顯示到用戶可視層面,多個(gè)引擎需要并發(fā)地對(duì)單一數(shù)據(jù)結(jié)果操作,如果簡(jiǎn)單地用鎖規(guī)避競(jìng)爭(zhēng)也會(huì)很大程度上影響并發(fā)IPS系統(tǒng)性能的提升。

      一個(gè)系統(tǒng)的成熟和完善離不開調(diào)試,與基于單內(nèi)核的系統(tǒng)相比,并發(fā)IPS系統(tǒng)的調(diào)試工具極度匱乏,調(diào)試手段也很不成熟。那些傳統(tǒng)的強(qiáng)大的單步跟蹤工具已經(jīng)沒有用武之地,就連簡(jiǎn)單的打印調(diào)試信息也需要特別小心,因?yàn)槟阈枰戎肋@個(gè)信息是哪個(gè)內(nèi)核打印的才好定位問題。如果系統(tǒng)運(yùn)行時(shí)死鎖,那么整個(gè)系統(tǒng)或者IPS進(jìn)程會(huì)被掛起,但留下的供你調(diào)試的線索卻非常有限??傊?,有四類問題比較關(guān)鍵:死機(jī)、內(nèi)存泄漏、內(nèi)存篡改和報(bào)文調(diào)試。這些問題影響并發(fā)IPS系統(tǒng)的穩(wěn)定,當(dāng)然也影響到性能發(fā)揮。

      機(jī)遇與挑戰(zhàn)并存。盡管利用并行處理技術(shù)提升IPS產(chǎn)品性能并非易事,還有很多問題有待解決,很多技術(shù)有待探索和突破,但是相信,在當(dāng)今多核處理器迅速普及并不斷發(fā)展的趨勢(shì)下,硬件計(jì)算資源的開發(fā)暨并行處理技術(shù)的應(yīng)用將為IPS產(chǎn)品帶來性能的質(zhì)的飛躍。同時(shí)伴隨著新技術(shù)新產(chǎn)品的應(yīng)用,也將引發(fā)現(xiàn)有IPS產(chǎn)品市場(chǎng)布局的一場(chǎng)變革。

      天融信公司的網(wǎng)絡(luò)衛(wèi)士入侵防御系統(tǒng)(TopIDP)應(yīng)用了先進(jìn)的多核處理器硬件平臺(tái),將并行處理技術(shù)融入天融信自主知識(shí)產(chǎn)權(quán)操作系統(tǒng)TOS系統(tǒng),實(shí)現(xiàn)了高效率的并行處理檢測(cè)引擎,達(dá)到了千兆級(jí)性能,能夠滿足高速網(wǎng)絡(luò)的安全防御要求,同時(shí)也打破了國外產(chǎn)品長(zhǎng)期壟斷高端IPS產(chǎn)品市場(chǎng)的局面。

      (注:作者"吳亞飆"現(xiàn)為天融信總工程師)

分享到

yajing

相關(guān)推薦