AMP方式示意圖
SMP方式顧名思義就是將多個內核平等看待,每個內核運行的操作系統(tǒng)相同,且每個內核上都運行一套IPS系統(tǒng),這樣從數(shù)據接收、連接建立、數(shù)據檢測到數(shù)據發(fā)送都是并發(fā)執(zhí)行的,相當于多個IPS系統(tǒng)在同時運行。這種架構比較簡潔,各個處理器內核負載均衡,可以全方位地提升IPS產品性能,特別是在測試單一性能指標時,由于所有內核都參與處理工作,往往可以獲得比較好的表現(xiàn)。這種架構也有其固有缺陷,因為所有內核都運行相同的軟件系統(tǒng)(包含操作系統(tǒng)和IPS系統(tǒng)),勢必產生對共享資源(內存數(shù)據、文件描述符、I/O設備等)的爭用。為處理并發(fā)與同步需要使用大量的鎖機制,而這些鎖的操作又影響了性能發(fā)揮,更嚴重的是隨著內核數(shù)量的增多,并發(fā)與同步的消耗達到一定的量級,這時性能就不再增長甚至下降了。
AMP方式就是將多個內核區(qū)別看待,可以運行不同的操作系統(tǒng)也可以在相同的操作系統(tǒng)上運行不同的任務,各個處理器內核按照任務劃分,各負其責,規(guī)避共享資源的競爭,做到"術有專攻",從而提升IPS產品的綜合性能。完整的操作系統(tǒng)往往比較龐大,耗費資源較多,效率也較低。拿出幾個物理內核,在其上建立一種簡易的系統(tǒng)環(huán)境(有時候直接叫做"裸核"環(huán)境),在這個"潔凈的空間"內運行單一任務(比如收發(fā)數(shù)據、模式匹配等)往往可以獲得極高的性能,這是AMP方式的特點,也是其優(yōu)勢。另外一種方式,在相同的操作系統(tǒng)上運行不同的任務也是同樣的機理,只不過更容易實現(xiàn)一些,相應的性能提升的效果也遜色一些。這種架構也有其缺陷,在測試單一性能指標時,因為特定功能只有有限的內核參與處理,往往性能不夠理想。架構本身也比較復雜,需要仔細權衡各個內核的任務分擔,否則會造成內核負載不均衡,影響性能發(fā)揮。
選擇哪一種架構需要根據處理器硬件平臺與IPS系統(tǒng)本身的特點來抉擇,通常在硬件處理器內核比較少的情況下選擇SMP架構,在需要將一大堆不可能并行化的"遺產"繼承到產品中時只好選擇AMP架構,如果已經使用了硬件內容加速,那么可以選擇SMP架構,如果是新開發(fā)IPS產品,內核分工可以動態(tài)調整的AMP架構是不錯的選擇,但需要保證足夠的技術儲備和適當?shù)娜肆ν度搿?
在確定了工作模式后,就要考慮流量的分擔與負載問題了,多個內核并行處理,它們共同的輸入就是來自網絡的數(shù)據流,如何將這些數(shù)據流"喂"給處理器內核呢?最簡單的就是輪詢方法,即將到達的數(shù)據依次交給等待處理的內核,各個內核平均分配,這對早期的基于單個數(shù)據包檢測的IPS系統(tǒng)比較適合?,F(xiàn)代的IPS系統(tǒng)功能豐富,不僅可以進行TCP流重組,還可以跟蹤應用層協(xié)議和控制流量。但是在多個內核上并發(fā)地跟蹤TCP狀態(tài)機是個棘手的問題,實現(xiàn)難度也較大,所以出現(xiàn)了另外一種按照五元組分流的方法,即將同一個數(shù)據流分配到同一個內核上,保障一個數(shù)據流始終由一個內核處理。這種方式大大降低了IPS內部實現(xiàn)復雜度,雖然具有流量較小時負載不均衡的副作用,但從研發(fā)成本考慮還是可以接受的。
接下來就是對提升性能至關重要的IPS引擎的并行檢測,IPS檢測引擎的并發(fā)是提升性能的關鍵。這里的引擎主要指應用協(xié)議的識別和分析、攻擊特征的匹配、策略的檢查以及后續(xù)的數(shù)據處理。如果運行于應用層,可以將每個IPS引擎作為一個單獨的進程對待,它們共用一份公共的攻擊特征庫,對各自的輸入的數(shù)據流進行并行檢測和處理,就好像多個引擎在同時工作。但是數(shù)據流之間有時候是相關的,比如一個應用層協(xié)議可以動態(tài)協(xié)商出它的一個子連接,當這個子連接分配到另外一個IPS進程上處理時,要想控制它就需要進行進程間通訊,這樣引擎的獨立性就被破壞了。同樣在雙機熱備份的狀態(tài)同步、應用層協(xié)議動態(tài)識別上也會遇到同樣的困難。如果IPS作為一個內核模塊運行于操作系統(tǒng)核心層,那么需要對所有可能產生競爭的共享資源進行并發(fā)訪問控制,使其徹底并行化,除此之外可能沒有什么更好的辦法了。
配置問題是并發(fā)系統(tǒng)中一個棘手的問題,用戶常常在系統(tǒng)運行過程中進行配置變更,而且總是希望這種變更后的配置能夠即時生效。
在并發(fā)IPS系統(tǒng)中只有一份配置,配置的變化意味著所有的并行工作都要暫停下來,需要根據新的配置調整運行參數(shù)。運行時態(tài)頻繁地調整配置不可避免地影響并發(fā)IPS系統(tǒng)性能,如果設計不好還會產生"停頓",導致丟包。同樣的,在IPS系統(tǒng)中各種統(tǒng)計數(shù)據(流量統(tǒng)計、事件統(tǒng)計、時間統(tǒng)計等)都需要實時地準確地顯示到用戶可視層面,多個引擎需要并發(fā)地對單一數(shù)據結果操作,如果簡單地用鎖規(guī)避競爭也會很大程度上影響并發(fā)IPS系統(tǒng)性能的提升。
一個系統(tǒng)的成熟和完善離不開調試,與基于單內核的系統(tǒng)相比,并發(fā)IPS系統(tǒng)的調試工具極度匱乏,調試手段也很不成熟。那些傳統(tǒng)的強大的單步跟蹤工具已經沒有用武之地,就連簡單的打印調試信息也需要特別小心,因為你需要先知道這個信息是哪個內核打印的才好定位問題。如果系統(tǒng)運行時死鎖,那么整個系統(tǒng)或者IPS進程會被掛起,但留下的供你調試的線索卻非常有限??傊?,有四類問題比較關鍵:死機、內存泄漏、內存篡改和報文調試。這些問題影響并發(fā)IPS系統(tǒng)的穩(wěn)定,當然也影響到性能發(fā)揮。
機遇與挑戰(zhàn)并存。盡管利用并行處理技術提升IPS產品性能并非易事,還有很多問題有待解決,很多技術有待探索和突破,但是相信,在當今多核處理器迅速普及并不斷發(fā)展的趨勢下,硬件計算資源的開發(fā)暨并行處理技術的應用將為IPS產品帶來性能的質的飛躍。同時伴隨著新技術新產品的應用,也將引發(fā)現(xiàn)有IPS產品市場布局的一場變革。
天融信公司的網絡衛(wèi)士入侵防御系統(tǒng)(TopIDP)應用了先進的多核處理器硬件平臺,將并行處理技術融入天融信自主知識產權操作系統(tǒng)TOS系統(tǒng),實現(xiàn)了高效率的并行處理檢測引擎,達到了千兆級性能,能夠滿足高速網絡的安全防御要求,同時也打破了國外產品長期壟斷高端IPS產品市場的局面。
(注:作者"吳亞飆"現(xiàn)為天融信總工程師)