防火牆x86架構和ASIC架構和NP架構的區別

防火牆x86架構和ASIC架構和NP架構的區別
                                       

在衆多的安全產品中,防火牆產品無疑是保障網絡安全的第一道防線,很多企業爲了保障自身服務器或數據安全都採用了防火牆。
   
隨着Internet的迅速普及,全球範圍內的計算機網絡病毒、操作系統漏洞、垃圾郵件等網絡安全問題也是層出不窮,網絡安全產品和解決方案越來越成爲各 類網絡用戶和廠商們的聚焦點,在衆多的安全產品中,防火牆產品無疑是保障網絡安全的第一道防線,很多企業爲了保障自身服務器或數據安全都採用了防火牆。隨 着網絡應用的增加,對網絡帶寬提出了更高的要求。這意味着防火牆要能夠以非常高的速率處理數據,於是千兆防火牆逐步嶄露頭角,頻頻被運用在金融、電信、教 育、氣象等大型的行業和機構,以及對安全要求極高的大型企業用戶,其市場佔有份額已經超過50%;下面就讓我們來了解一下千兆防火牆的相關的產品、技術及 選購方面的一些知識。


   
不同構架各具特色

   
從百兆到千兆,最初只是量變。千兆防火牆在2000年前後就進入了我國市場。由於百兆網絡接口與千兆網絡接口的成本相差不大,早期的千兆防火牆僅僅是將百 兆接口替換爲千兆接口而已。這種基於X86體系結構的千兆防火牆主體仍然是軟件,其性能受到很大制約,無法達到千兆的處理速度。因此,這些防火牆只是具有 千兆接入能力的防火牆,而不是真正具有千兆處理能力的防火牆因此可以說是一種換湯不換藥的形式改變。隨後幾年,隨着千兆網絡在企業和行業用戶中的不斷 普及,以及用戶對性能需求的不斷增加,千兆防火牆也逐發生了質變。

   
這種質的變化首先是人們把目光轉移到了專用集成電路(ASIC)和網絡處理器(NP)上。相對於X86架構,基於這些架構的千兆防火牆纔是真正的硬件解決 方案,能夠實現千兆處理速度。在這裏,我們不妨將X86架構、NPASIC放在一起進行技術比較,看看不同技術的優缺點。


    X86
架構

   
最初的千兆防火牆是基於X86架構。X86架構採用通用CPUPCI總線接口,具有很高的靈活性和可擴展性,過去一直是防火牆開發的主要平臺。其產品功能主要由軟件實現,可以根據用戶的實際需要而做相應調整,增加或減少功能模塊,產品比較靈活,功能十分豐富。


   
但其性能發展卻受到體系結構的制約,作爲通用的計算平臺,x86的結構層次較多,不易優化,且往往會受到PCI總線的帶寬限制。雖然PCI總線接口理論上 能達到接近2Gbps的吞吐量,但是通用CPU的處理能力有限,儘管防火牆軟件部分可以儘可能地優化,很難達到千兆速率。同時很多X86架構的防火牆是基 於定製的通用操作系統,安全性很大程度上取決於通用操作系統自身的安全性,可能會存在安全漏洞。

    ASIC
架構
   
相比之下,ASIC防火牆通過專門設計的ASIC芯片邏輯進行硬件加速處理。ASIC通過把指令或計算邏輯固化到芯片中,獲得了很高的處理能力,因而明顯 提升了防火牆的性能。新一代的高可編程ASIC採用了更靈活的設計,能夠通過軟件改變應用邏輯,具有更廣泛的適應能力。但是,ASIC的缺點也同樣明顯, 它的靈活性和擴展性不夠,開發費用高,開發週期太長,一般耗時接近2年。


   
雖然研發成本較高,靈活性受限制、無法支持太多的功能,但其性能具有先天的優勢,非常適合應用於模式簡單、對吞吐量和時延指標要求較高的電信級大流量的處 理。目前,NetScreenASIC防火牆領域佔有優勢地位,而我國的首信也推出了我國基於自主技術的ASIC千兆防火牆產品。

    NP
架構

    NP
可以說是介於兩者之間的技術,NP是專門爲網絡設備處理網絡流量而設計的處理器,其體系結構和指令集對於防火牆常用的包過濾、轉發等算法和操作都進行 了專門的優化,可以高效地完成TCP/IP棧的常用操作,並對網絡流量進行快速的併發處理。硬件結構設計也大多采用高速的接口技術和總線規範,具有較高的 I/O能力。它可以構建一種硬件加速的完全可編程的架構,這種架構的軟硬件都易於升級,軟件可以支持新的標準和協議,硬件設計支持更高網絡速度,從而使產 品的生命週期更長。由於防火牆處理的就是網絡數據包,所以基於NP架構的防火牆與X86架構的防火牆相比,性能得到了很大的提高。


    NP
通過專門的指令集和配套的軟件開發系統,提供強大的編程能力,因而便於開發應用,支持可擴展的服務,而且研製週期短,成本較低。但是,相比於X86 構,由於應用開發、功能擴展受到NP的配套軟件的限制,基於NP技術的防火牆的靈活性要差一些。由於依賴軟件環境,所以在性能方面NP不如ASICNP 開發的難度和靈活性都介於ASICx86構架之間,應該說,NPX86架構和ASIC之間的一個折衷。目前NP的主要提供商是Intel Motorola,國內基於NP技術開發千兆防火牆的廠商最多,聯想、紫光比威等都有相關產品推出。

   
從上面可以看出,X86架構、NPASIC各有優缺點。X86架構靈活性最高,新功能、新模塊擴展容易,但性能肯定滿足不了千兆需要。ASIC性能最 高,千兆、萬兆吞吐速率均可實現,但靈活性最低,定型後再擴展十分困難。NP則介於兩者之間,性能可滿足千兆需要,同時也具有一定的靈活性。
三種架構綜合比較




   
選購千兆防火牆需要考慮什麼

   
在選購千兆防火牆時,用戶首先需要明確自己的需求。安全風險和網絡應用決定了用戶需求,每個網絡的層次、作用、大小和結構各不同,致使這些網絡所面臨的安 全風險不相同,安全需求自然也不相同。沒有重要資產的網絡沒有必要選擇高端防火牆,高安全需求的網絡不能選擇低安全性的防火牆,這是很淺顯的道理。同樣 地,只有10M帶寬接入互聯網的辦公機構沒有必要去選擇千兆防火牆。

   
其次,在防火牆的安全功能與性能之間做出折衷。防火牆存在着功能與性能的矛盾,根據預定的安全策略,防火牆在協議棧的不同層次對流量進行檢查,決定對流量 的控制措施(允許通過或丟棄)。檢查的層次越高,防火牆消耗的資源就越多,花費的時間就越長,性能就會越低。在應用環境時要考慮網絡拓撲,用戶規模,流量 帶寬,通信類型和環境的複雜惡劣程度等。


   
最後,技術支持與服務,在選擇安全產品的時候,廠家或商家的技術支持與服務能力也應該是重要的考慮因素。

個人認爲NPASIC廠家炒作的成分更多點。不能否認隨着網絡的升級需要真正的全端口 千兆有一定的必要性。當除了ISP的核心網絡需要企事業單位未必用的着。防火牆不管是那種構架的都是軟件+硬件的結合。不管是用微編程寫進芯片還是用語言 寫成軟件。關鍵是算法。軟件寫的如何。NPASIC難道就不用CPU了嗎?老說什麼總線、PCI瓶頸等等。FW就只是用來轉發數據的嗎?關注的只是轉發 率的嗎?當然不是。現在那家的FW不做些高級過濾或是深度檢測(也不知誰真正做到了)總是有應用層上的檢測。ASICNP都是線性運算,不能代替CPU 浮點運算去做一些高層的過濾檢測。在網絡中FW如果不是需要NAT1W個地址。NAT100NAT10用那種構架的FW都一樣。軟件的算法可以彌補硬件上的不足。

 

NP的數據層與控制層同步是個大問題,寄存器少也是問題。有時候一個功能寫完之後,一編譯報錯說寄存器不夠了。

現在用北京立華萊康平臺科技有限公司的單NP IXP2400開發板,以前用從美國Intel本土購來的雙NP構架,XScale的核心主頻都是600MHZ,其它廠商的就不好說了,聯想是OEM的, 天融信好像在NP上沒聲了,不瞭解,我不做市場。我接手NP時是把軟件的CC部分從雙NP移植到單NP開發板中,微碼部分也要做相應修改,我只設計實現原 理,微碼有同事配合編程。雙NP的成本很高,性能也比單NP好不了多少。小包單NP IXP2400在任意包長下勻爲2000M的線速,在4G測試中512字節達到轉發鋒值3746M。並且延時平均小於80微秒。

OCTEON CN31XX CN30XX 處理器家族CN31XX CN30XX 處理器還有豐富的硬件加速選項,每個處理器有 CP(通信處理器,Communication Processor)、SCP (安全通信處理器,Secure Communication Processor)和 NSP(網絡服務處理器,Network Services Processor,僅 CN31XX NSP 版本)三個版本。CP 版本包括針對包處理(Packet Processing)、TCP、隊列/調度(Queuing/Scheduling)和服務質量(QoS)等硬件加速功能,SCP 添加了 IPsec/SSLSRTP WLAN 安全加速功能,NSP 版本增加了針對深度包檢查(Deep Packet Inspection)和壓縮/解壓縮(Compression/Decompression)的加速。

現在都可以提供這些功能特別是深度包檢查(Deep Packet Inspection)和壓縮/解壓縮(Compression/Decompression)的加速。

我不認爲我們在燒錢啊,我估算了一下,大概硬件的投入也就相當於投入了50萬左右吧。現在和NP硬件提供商的關係很好,因爲只有我們一家做出來了,所以都主動來邀請我們開發多核處理器。所有的新硬件都是免費試用的。
NP這東西不光要看研發人員的組成與素質,更重要的是正確的思路。真的。爲什麼這麼說呢?看看國內做NP的廠家,有幾家得到回報了?有多少是全盤皆輸。 以前有一個美國的公司來我們公司做NP演示,防火牆的特性當前的演示設備中都有了,並且在3年前,吐吞量上G,誰看都會眼紅的。他希望我們OEM它的產 品,報價是90K$美金的合同。呵呵...當時公司正在猶豫是不是應該合作,我以最底層職員的身份給公司領導寫了一封信,講述了我對LinuxCC、微引擎之間的同步原理與實踐方法,要知道以我的身份演示時都沒有資格出席的。後來公司感覺這條路可以走,就採納了我的意建。我當時在公司只不過是做Java 編程的程序員,不是我看不起java,而是這工具和安全一點都不着邊,我二年前用java做了個visio的軟件,希望可以實現checkpoint公司 NG控制界面,但中途公司不得不叫我轉向Linux內核開發。後來就是提高人力的投入,半年之後防火牆的雛型就出來了。真的很幸運,也就是我當時的一個靈光乍現,公司又給了我機會而已。沒有所謂的燒錢行爲。
NP
研發很痛苦,Intel和硬件廠家的支持力度都很小,單NP的板子只能依照雙NP的設計文檔來實施,Linux就一個2.4.18的版本可用,更可怕的是硬件如果有問題你基本上是束手無策。你可以去問問做NP的,死機是不是家常便飯。
瞭解瞭解多核,你就會知道這東西就是在NP的基礎上實現的。NP一次可以並行接收32個數據包。所有用於轉發的數據結構必須線性化。這在多核處理器上也是 一樣的。不光是你看到的octeon的板子,rmi也是這個做的。Linux上的fib route table對於NP或是多核處理器來說是陌生的,必須轉化爲線性的hash table才能被NP或多核處理器採用。類似的數據結構太多了,一句話你想要NP訪問的數據必須是線性化。這也就是同步的本質含義所在
現在對我們看來軟件的結構已經很清晰了,也積累了一定的經驗。至於X86是不是真的過時了,你可以看我以前的一個貼子講的是82559網卡性能的,其中闡述了這個觀點。
內容過濾與VPN,這隻能靠硬件芯片來支持。600M的通用CPU力不從心。但一旦有硬件可以plug-in上,一切就又都解決了不是麼。你說的那些加密 芯片目前NP還用不上,只能用在X86上。NPVPN隨道數據中的加解密也靠這600MCPU,不光光是維護隨道信息,至少IXP2400是這樣, 2850會好一些。但防火牆的連接狀態是你想像的那樣。
IXP425
IXP2400同是NP處理器,但實現難度一個天上,一個地下。前者是類X86,後者則不然。

其實ixp2400 bug 很多, 其架構在np領域裏面也不是真正的主流,有機會可以試試 128 core mips芯片。xp2400也只有用過才知道有bug,如果沒有bug現在豈不是已進入NP年代了?
所以有人問我做某某產品的時候NP會不會好些,我一般都不推薦,呵呵...
NP
做交換可以,但做防火牆及防火牆以上應用就是個失敗的產品,這點你同意嗎?多核廠商的說詞和以前NP推廣時是一樣的,只有用過才知道。128coremips沒試過,只試過10coremips,沒用專用協議棧,因爲出價90K$

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章