作者:為億陽(yáng)信通安全事業(yè)部技術(shù)人員 林福生
近一兩年從國(guó)內(nèi)的安全廠商開始進(jìn)軍高端網(wǎng)絡(luò)安全市場(chǎng),NP這個(gè)名詞開始變得流行起來,不過雖然同是NP,但在技術(shù)細(xì)節(jié)上卻存在著很多不同的區(qū)分,這也直接影響到產(chǎn)品的性能和安全性,下面就讓我們NP以及NP的應(yīng)用,進(jìn)行一番剖析。
NP即網(wǎng)絡(luò)處理器,即專門用于做網(wǎng)絡(luò)數(shù)據(jù)處理的芯片。網(wǎng)絡(luò)處理器在處理器家族中屬于專用處理器,即專門為了特殊應(yīng)用而設(shè)計(jì)的處理器,它有別于X86系列通用處理器。
目前提供NP芯片的廠家也很多,基本上都符合NPF指定的規(guī)范,就目前國(guó)內(nèi)市場(chǎng)上應(yīng)用最為廣泛的是INTEL公司的IXPXXX系列芯片,包括IXP4XX、 IXP12XX、 IXP24XX 、IXP28XX等;
IXP系列NP處理器從體系結(jié)構(gòu)上看基本上都一樣,都是由一個(gè)RISC處理器加一個(gè)微引擎構(gòu)成,RISC處理器主要用于控制微引擎的運(yùn)行,所以又稱為控制層面,微引擎完成對(duì)網(wǎng)絡(luò)數(shù)據(jù)包的處理,以實(shí)現(xiàn)高性能,所以又稱為數(shù)據(jù)層面;不同IXP系列處理器主要是RISC的型號(hào)和主頻,以及微引擎的個(gè)數(shù)有所不同;具體的性能參考表一。IXP系列的體系架構(gòu)雖然相同,但是在性能上卻有天壤之別,NP系統(tǒng)是一個(gè)更先進(jìn)的系統(tǒng),但是一些低端的NP系統(tǒng)卻就像最原始的汽車,可能連X86架構(gòu)下的馬車都不如。
下面就每一種NP芯片的具體特點(diǎn)及應(yīng)用作一下詳細(xì)論述。
- IXP4xx
IXP4xx的市場(chǎng)定位主要在中低端市場(chǎng),因此使用基于IXP4xx芯片做出的網(wǎng)絡(luò)安全產(chǎn)品也主要定位在中低端市場(chǎng)中,特別需要注意的是,IXP425內(nèi)嵌了一個(gè)加密引擎,支持一些公開的密碼算法,如:3DES、AES、MD5、SHA1;因此大量安全產(chǎn)商使用基于這種芯片的板卡做出低端的VPN/FW;不過4xx系列芯片產(chǎn)品存在一個(gè)致命缺陷,由于不能進(jìn)行微碼編程,而Intel預(yù)置的微碼又沒有完成FW/VPN的處理,因此產(chǎn)商在開發(fā)FW/VPN功能的時(shí)候,實(shí)際上對(duì)IP報(bào)文的處理是通過533Mhz的Xscale來處理的,因而在性能上比基于X86架構(gòu)的安全產(chǎn)品性能上不會(huì)有太大變化,這可能也是一些國(guó)內(nèi)廠商采取變產(chǎn)品不變價(jià)格的策略的原因。
另外需要特別注意的是,使用這種芯片開發(fā)出來的網(wǎng)絡(luò)安全設(shè)備,不是每個(gè)網(wǎng)絡(luò)接口都是快速的。IXP4XX通過ME實(shí)現(xiàn)的Ethernet MAC只有兩個(gè)NPE A 和NPE B,一般板卡設(shè)計(jì)產(chǎn)商都會(huì)通過PCI Bridge擴(kuò)展多個(gè)以太網(wǎng)口。從性能上考量,只有通過NPEA/NEPB的接口是比較快的,而通過PCIBridge擴(kuò)展出來的網(wǎng)絡(luò)接口性能相對(duì)來說就比較低了;由于IXP4XX的結(jié)構(gòu)設(shè)計(jì)約束,在任何兩個(gè)網(wǎng)絡(luò)接口之間通信都必須通過Xscale進(jìn)行交換(包括TCP/IP處理),,正是由于了這個(gè)限制,基于IXP4XX開發(fā)網(wǎng)絡(luò)安全設(shè)備本質(zhì)上不會(huì)比基于X86開發(fā)的網(wǎng)絡(luò)安全設(shè)備在性能上有所提高,有的時(shí)候反而會(huì)更低;
- IXP12XX
IXP從12XX系列開始已經(jīng)可以讓軟件開發(fā)人員根據(jù)不同的應(yīng)用定制微引擎上的微碼,以實(shí)現(xiàn)不同的功能,不過由于IXP12XX其微引擎只有6個(gè),每個(gè)微引擎上可以存儲(chǔ)條2k*32位的指令,12XX 系列NP只能用來做簡(jiǎn)單的包轉(zhuǎn)發(fā)處理和QOS處理,至于用作較為復(fù)雜的防火墻處理,就顯得力不從心了,因此在國(guó)內(nèi)使用12XX系列做出的防火墻性能都不高,要不就是功能十分簡(jiǎn)單;
-IXP24XX
從2003年開始,Intel公司推出了IXP24XX系列的網(wǎng)絡(luò)處理器,這款網(wǎng)絡(luò)處理器比12XX系列的網(wǎng)絡(luò)處理器在性能上有了質(zhì)的變化;同時(shí)基于IXP24XX系列的板卡設(shè)計(jì)上也復(fù)雜了很多;
目前國(guó)內(nèi)很多安全產(chǎn)商開始使用基于這款芯片的板卡來設(shè)計(jì)網(wǎng)絡(luò)安全設(shè)備,如防火墻,IDS;但是使用一個(gè)IXP2400是否可以做到千兆線速的防火墻呢?讓我們看一下下面這張表
參考自Intel? Internet Exchange Architecture Software Building Blocks Applications
Line rate for 4 Gig ports
4 Gigabits/sec
Min Ethernet packet size
64 bytes (+ 20 byte inter packet gap)
Packet throughput for minimum packets
5.95 million packets/sec = (4 / (84*8)) * (10**9)
IXP2400 clock frequency
600 MHZ
Inter-packet arrival time for minimum packets
600/5.95 = 100.84 cycles
Compute cycles per packet for a single microengine
100
Compute cycles per packet for n microengines in
parallel
100*n
Latency per packet for a context pipe single microengine
100 * 8
Latency per packet for n microengines in parallel
100*8*n
以上我們可以看出如果使用一個(gè)IXP2400來做4個(gè)千兆口的線速,那么對(duì)于每個(gè)IP包的處理理論上不可以超過100*8*n,這還是理想情況下,也就是讓微引擎處于絕對(duì)運(yùn)行狀態(tài),而不是等待狀態(tài)。實(shí)際上這是很難做到的,因?yàn)槲⒁嬖谠L問內(nèi)存的、使用寄存器、訪問外圍器件的時(shí)候,雖然只要一個(gè)指令,但是一般都有延時(shí),多的可能達(dá)到100多個(gè)Cycles,如訪問DRAM。根據(jù)經(jīng)驗(yàn),一般微引擎的利用率都在80%以下;
處理一個(gè)IP報(bào)文的過程是非常復(fù)雜的,一般都需要10K個(gè)Cycles以上才能完成處理,另外如果應(yīng)用復(fù)雜的話,如防火墻應(yīng)用中,還要兼顧分片報(bào)文重組,NAT,QOS,ARP處理,深度檢測(cè)等,這些功能加上去后,處理的時(shí)間就會(huì)大大增加;因此使用單2400做出的防火墻可能在單純包轉(zhuǎn)發(fā)上到達(dá)線速,但是用戶并不時(shí)將一個(gè)防火墻當(dāng)作路由器來用,而是需要它完成一系列安全處理功能,因此只要把包過濾、NAT、抗DOS攻擊、抗蠕蟲攻擊等功能加上后,性能就會(huì)成倍的下降;目前據(jù)了解,2004年開始,推出的高端防火墻基本上都采用基于IXP24XX芯片的板卡;
也許有人會(huì)問,為什么不推出使用雙IXP2400或者多個(gè)IXP2400的板卡呢,從上面那個(gè)表可以看出,使用了雙2400的設(shè)計(jì)后,對(duì)微碼開發(fā)來說,提高了N的值,也就是說允許處理一個(gè)IP報(bào)文所使用的Cycles增加了,但是,我們卻很難看到市場(chǎng)上有人使用雙2400開發(fā)的安全設(shè)備,主要原因是什么呢?由于一個(gè)IXP2800的性能要比兩個(gè)IXP2400的性能要高,但價(jià)格確更便宜,而且雙IXP2400的板卡設(shè)計(jì)要比單IXP2400/單IXP2800的板卡設(shè)計(jì)要復(fù)雜的多,所以考慮投入和產(chǎn)出,一般的NP板卡設(shè)計(jì)產(chǎn)商都不愿意投入去研發(fā)基于雙2400的板卡;同時(shí),使用兩個(gè)IXP2400進(jìn)行處理并不是就意味著1+1=2,因?yàn)椋趦蓚(gè)IXP2400同時(shí)做處理的時(shí)候,需要進(jìn)行數(shù)據(jù)交換,這也會(huì)耗去IXP2400的性能。這也是國(guó)內(nèi)到現(xiàn)在也無法看到雙2400設(shè)計(jì)的板卡的原因;
-IXP28XX
IXP28XX的NP處理器從性能上比IXP24XX的性能又增加了很大;單從芯片的性能指標(biāo)上看,IXP28XX比IXP24XX更有可能做出千兆線速的網(wǎng)絡(luò)安全設(shè)備;但是目前還沒有一家NP板卡廠商能夠推出基于IXP2800的板卡,可能是由于IXP2800板卡的設(shè)計(jì)要比IXP2400板卡設(shè)計(jì)要更加復(fù)雜;不過IXP2800應(yīng)該是高端防火墻的應(yīng)用方向讓我們期待著IXP28XX系列板卡的出現(xiàn)吧。
- 附錄
型號(hào)
代表
RISC
微引擎
備注
每個(gè)ME的指令空間
微引擎?zhèn)數(shù)
頻率
每個(gè)ME的線程數(shù)
可編程能力
IXP4XX
IXP425
533Mhz的Xscale
N/A
3個(gè)
N/A
N/A
不可編程
1. Wan/Voice NPE
2. Ethernet NPE A(Ethernet MAC)
3. Ethernet NPE B(Ethernet MAC)SHA-1/MD5/DES/3DES/AES
IXP12XX
IXP1200
200Mhz StrongARM
2K x 32-bit
6個(gè)
200MHz
4
可以編程
N/A
IXP24XX
IXP2400
600Mhz的Xscale
4K x 40-bit
8個(gè)
600Mhz
8
可以編程
N/A
IXP28XX
IXP2800
700Mhz的Xscale
8K x 40-bit
16個(gè)
1400Mhz
8
可以編程
N/A
由CHINA通信網(wǎng)組稿