現(xiàn)在市場上的防火墻、UTM產(chǎn)品從其架構(gòu)上來說,大概分為三大類。
第一類是基于X86平臺(tái)的,這種平臺(tái)通常使用一顆或多顆主CPU來處理業(yè)務(wù)數(shù)據(jù),網(wǎng)卡芯片和CPU通過PCI總線來傳輸數(shù)據(jù)。
由于傳統(tǒng)的32位PCI總線頻率為33MHZ,所以,理論通訊速率為:132 MB Bytes/S即:1056 MBits/S.單從PCI通訊的速率上來說是可以滿足千兆防火墻的需要,但實(shí)際上PCI總線在X86系統(tǒng)中是共享的,也就是說,如果有兩個(gè)網(wǎng)卡同時(shí)傳輸 數(shù)據(jù),那么每個(gè)網(wǎng)卡所能獲得的速率就只有 66 MB Bytes/S,即:528 Mbits/S ,如果有四個(gè)網(wǎng)口同時(shí)傳輸數(shù)據(jù),則每個(gè)網(wǎng)卡所能獲得的速度只有16 MB Bytes/S,即128Mbit/S.
從總線速度來看基于32位PCI總線的X86平臺(tái),做為百兆防火墻的方案是沒有任何問題的。但X86平臺(tái)的防火墻方案,數(shù)據(jù)從網(wǎng)卡到CPU之間的傳 輸機(jī)制是靠“中斷”來實(shí)現(xiàn)的,中斷機(jī)制導(dǎo)致在有大量數(shù)據(jù)包的需要處理的情況下(如:64 Bytes的小包,以下簡稱小包),X86平臺(tái)的防火墻吞吐速率不高,大概在30%左右,并且CPU占用會(huì)很高。這是所有基于X86平臺(tái)的防火墻所共同存 在的問題。
因此,基于32位PCI總線的X86平臺(tái)是不能做為千兆防火墻使用的,因?yàn)?2位PCI總線的通訊速率不能達(dá)到千兆防火墻的要求。針對(duì)這個(gè)問題,Intel提 出了解決方案,可以把32位的PCI總線升級(jí)到了PCI-E ,即:PCI-Express,這樣,PCI-E 4X的總線的速度就可以達(dá)到 2000MB Bytes/S,即:16Gbits/S,并且PCI-E各個(gè)PCI設(shè)備之間互相獨(dú)立不共享總線帶寬,每個(gè)基于PCI-E的網(wǎng)口可以使用的帶寬 為:2000MB Bytes/S,即:16Gbits/S,所以基于PCI-E 4X的X86從系統(tǒng)帶寬上來說,做為千兆防火墻是沒有任何問題的。但是,基于PCI-E的防火墻數(shù)據(jù)從網(wǎng)卡到CPU之間傳輸同樣使用“中斷”機(jī)制來傳輸數(shù) 據(jù),所以小包(64 Bytes)的通過率仍然為:30-40%.
第二類,基于ASIC架構(gòu)的防火墻、UTM產(chǎn)品。
從上面對(duì)X86架構(gòu)防火墻的分析中,我們了解到X86平臺(tái)的防火墻其最大的缺點(diǎn)就是小包通速率低,只有30%-40%,造成這個(gè)問題的主要原因是因 為X86平臺(tái)的中斷機(jī)制以及X86平臺(tái)的防火墻所有數(shù)據(jù)都要經(jīng)過主CPU處理。基于ASCI架構(gòu)的防火墻從架構(gòu)上改進(jìn)了中斷機(jī)制,數(shù)據(jù)從網(wǎng)卡收到以后,不 經(jīng)過主CPU處理,而是經(jīng)過集成在系統(tǒng)中的一些芯片直接處理,由這些芯片來完成傳統(tǒng)防火墻的功能,如:路由、NAT、防火墻規(guī)則匹配等。這樣數(shù)據(jù)不經(jīng)過主 CPU處理,不使用中斷機(jī)制,理所當(dāng)然,ASIC是做為功能簡單的防火墻的最佳選擇。
但隨之而來的問題是,ASIC架構(gòu)的防火墻是芯片一級(jí)的,所有的防火墻動(dòng)作由芯片來處理。這些芯片的功能比較單一,要升級(jí)維護(hù)的開發(fā)周期比較長。尤 其是作為多功能集成的UTM網(wǎng)關(guān)來說,無法在芯片一級(jí)完成殺毒、垃圾郵件過濾、網(wǎng)絡(luò)監(jiān)控等比較復(fù)雜的功能,所以說,ASIC架構(gòu)用來做功能簡單的防火墻, 是完全適用的,64 Bytes的小包都可以達(dá)到線速。但ASIC架構(gòu)做為UTM就不是理想的選擇,因?yàn)锳SIC架構(gòu)不可能把像網(wǎng)關(guān)殺毒、垃圾郵件過濾、網(wǎng)絡(luò)監(jiān)控等這些功能做 到芯片一級(jí)去。
第三類,基于NP架構(gòu)的防火墻。
NP架構(gòu)實(shí)現(xiàn)的原理和ASIC類似,但升級(jí)、維護(hù)遠(yuǎn)遠(yuǎn)好于ASIC 架構(gòu)。NP架構(gòu)在的每一個(gè)網(wǎng)口上都有一個(gè)網(wǎng)絡(luò)處理器,即:NPE,用來處理來自網(wǎng)口的數(shù)據(jù)。每個(gè)網(wǎng)絡(luò)處理器上所運(yùn)行的程序使用微碼編程,其軟件實(shí)現(xiàn)的難度 比較大,開發(fā)周期比ASIC短,但比X86長。做為UTM,由于NP架構(gòu)每個(gè)網(wǎng)口上的網(wǎng)絡(luò)處理器性能不高,所以同樣無法完成像網(wǎng)關(guān)殺毒、垃圾郵件、過濾、 訪問監(jiān)控等復(fù)雜功能。
可能有人會(huì)問?ASIC 和 NP為什么不可以把網(wǎng)關(guān)殺毒、和垃圾郵件過濾、訪問監(jiān)控等這些功能放在主CPU上來實(shí)現(xiàn)?這樣不就可以做為UTM方案使用了嗎?這個(gè)問題問得很好,目前有 很多基于NP和ASIC的UTM都是這樣做的,但問題是ASIC和NP架構(gòu)的防火墻,其主CPU性能很低,如:Intel基于IXP2400的千高端NP 方案,主CPU只有1.0G,處理能力還比不上Celeron 1.0G,大家可以對(duì)照一下與其主頻相當(dāng)?shù)腦86平臺(tái)的處理能力。所以如果以ASIC和NP架構(gòu)來實(shí)現(xiàn)一個(gè)UTM網(wǎng)關(guān),只能是做為低端的方案來使用,如桌 面型的UTM,而并不能做為中、高端的UTM來使用。
言歸正傳,那什么才是UTM網(wǎng)關(guān)合適的硬件方案呢?如果要在上述三種方案中選擇一種的話,非X86架構(gòu)莫屬,當(dāng)然,隨著技術(shù)的發(fā)展,還有可能出現(xiàn)第 四種防火墻的解決方案,可以做為實(shí)現(xiàn)UTM網(wǎng)關(guān)的完美平臺(tái),但這是后話,值得我們期待。X86平臺(tái)的主要缺陷在于64Bytes的小包不能達(dá)到線速。但在 實(shí)際用戶中,除非是DOS、DDOS攻擊才會(huì)產(chǎn)生大量的的小包,用戶正常的應(yīng)用不可能產(chǎn)生大量的小包。如果在基于X86平臺(tái)的UTM產(chǎn)品中,解決好DOS 和DDOS攻擊的問題,那么,X86平臺(tái)就是UTM網(wǎng)關(guān)理所當(dāng)然的解決方案。對(duì)于這個(gè)問題,已經(jīng)有產(chǎn)品開發(fā)了防DOS、DDOS攻擊的功能,不但可以防御 來自外網(wǎng)的DOS攻擊而且能夠防御來自企業(yè)內(nèi)部網(wǎng)絡(luò)的DOS、DDOS攻擊,這樣我們的UTM產(chǎn)品就解決了這個(gè)問題,使網(wǎng)關(guān)的穩(wěn)定性和可靠性大大加強(qiáng),在 UTM整體性能方面優(yōu)越于NP、ASIC.在遇到大規(guī)模的DOS、DDOS攻擊時(shí),也不會(huì)占用太多的CPU資源。
既然選擇了X86做為UTM網(wǎng)關(guān)的硬件平臺(tái),那么,還會(huì)存在一個(gè)問題:“如果UTM網(wǎng)關(guān)處理的業(yè)務(wù)比較多,是否會(huì)影響網(wǎng)絡(luò)速度?”,比較簡單的答復(fù) 是這樣的:在CPU占用低于90%的時(shí)候,是不會(huì)影響網(wǎng)絡(luò)速度的。因?yàn)閁TM網(wǎng)關(guān)雖然集成了眾多的功能,并且要求主CPU來處理這所有的業(yè)務(wù)。但從業(yè)務(wù)的 方面來看,是獨(dú)立的,如:收發(fā)郵件的數(shù)據(jù)就不會(huì)被做為通過HTTP上網(wǎng)的數(shù)據(jù)來處理,通過HTTP上網(wǎng)的數(shù)據(jù)也不會(huì)被做為郵件的數(shù)據(jù)來處理,所以當(dāng)一個(gè)數(shù) 據(jù)包通過UTM時(shí),是分業(yè)務(wù)分流程處理的,在CPU占用90%以下時(shí),CPU完全可以實(shí)時(shí)的處理這些業(yè)務(wù)。但如果CPU占用超過了90%,那怎么 辦?X86的平臺(tái)是不是不能解決了?答案是否定的,對(duì)于這個(gè)問題,X86的平臺(tái)的方案有兩種解決方法:
方法一:支持多顆CPU.部分高端設(shè)備都配備了2顆以上CPU,更高端的設(shè)備甚至配備4顆CPU,這樣CPU的處理能力也就不會(huì)成為瓶頸。
方法二:使用加速卡。比如把郵件過濾做成一個(gè)加速卡安全在系統(tǒng)中,在主CPU發(fā)現(xiàn)某個(gè)數(shù)據(jù)包為郵件數(shù)據(jù)時(shí),把該數(shù)據(jù)包交給加速卡來完成,不占用主CPU資源。
綜上所述可以得出一個(gè)結(jié)論,X86架構(gòu)是UTM網(wǎng)關(guān)理想的硬件平臺(tái),目前來看,沒有其它平臺(tái)可以代替。
注解:
NP:網(wǎng)絡(luò)處理器(Network Processor)
ASIC:專用集成電路(Application Specific Integrated Circuit)
百兆設(shè)備:指數(shù)據(jù)傳輸能力在 100Mbits/S 以上的網(wǎng)絡(luò)傳輸設(shè)備,即:10Mbytes/S.
千兆設(shè)備:指數(shù)據(jù)傳輸能力在 1000Mbits/S以上的網(wǎng)絡(luò)傳輸設(shè)備,即:100Mbytes/S