歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 為什麼實現千兆防火牆很困難

為什麼實現千兆防火牆很困難

日期:2017/2/27 9:41:45   编辑:更多Linux
  千兆防火牆的代表產品包括Netscreen的 5000系列防火牆,以及Nodia-CheckPoint的IP720以上的產品。這種防火牆的特點是網絡吞吐性能要求高(即帶寬要求高),普通的硬件主板不能承受,市場出貨量又少。因此,在世界上能夠實現的廠家很少,而且必須是世界級的進行市場推廣的公司才能推出真正的千兆防火牆。其他的,即使是名為千兆,實際上也只是假千兆,說穿了就是把千兆卡用到百兆防火牆的內核上,實際上達不到千兆性能。要了解個中因由,首先要了解防火牆的工作原理。大家都知道,防火牆的工作核心其實就是對IP包頭與預定政策的匹配控制。防火牆在工作的時侯,首先從內存讀出政策鏈的第一條放進寄存器,然後經系統總線 (pci0),再經pci-pci橋,再經pci1到pci網卡讀取IP包的頭信息,把它與寄存器中的政策進行匹配,然後決定該IP包的處理。一來一去需要兩次經過PIC總線。如果IP包比較大,那麼這個包頭信息與包的大小比較就相對小得多,這時侯系統帶寬的瓶頸就是網卡的內存暫存能力,也就是我們所說的百兆網卡和千兆網卡的區別,或者稱為線速的限制(wirespeed).但如果IP包很小,那麼IP包頭所占的比例就相當高,這時,瓶頸就是PCI 總線的交換能力了。任何來往於該PCI的其他傳輸,都將由於總線爭奪而受到限制。在這一數據交換中,數據通過Hubink,從 ICH(I/O Controller Hub))到MCH(Memory Controller Hub)的傳輸有四次,經過PCI總線的傳輸有兩次。由於HubLink的最大數據吞吐量是266MB,約2.2Gbps;但由於32位PCI總線以 33MHz運行,所以數據傳輸率被限制到1.06Gbps左右。而且還要連接運行各種系統數據交換。由於PCI總線的帶寬限制,PCI網卡永遠也不能實現真正的全雙工的2Gbps帶度,最高理論速度是單向1Gbps,而實際達到的不超過一半,即500M。換句話說,對於硬件確定的系統,每秒能夠處理IP包的數量是一個相對的常數。這個常數與CPU處理能力和寄存器數目,以及系統總線的交換速度形成的整體能力密切相關。對於使用 PIII處理器和 X86服務器主板(或工控主板,32位PCI總線)的防火牆,這個數字大致在五十萬到一百萬之間。(注意不要把它和最大的會話保持這個標稱參數混淆,最大會話主要與系統的可分配內存有關系)。因此,基於Intel X86主板的防火牆的極限吞吐量在IP包大小為512比特時,大致是三百兆左右。顯然,這個吞吐能力很符合百兆防火牆的環境,也符合低流量的千兆網環境的要求。但對於高流量的千兆網,就無能為力了,必須在硬件上整體改進才可能滿足這個階梯的升級要求。從前文也可以看出,防火牆的吞吐量是與IP包的大小密切相關的,所以談論吞吐量如果脫離包的大小是毫無意義的,任何防火牆都可以達到百兆線速,只不過是在包大到什麼程度才能達到線速而已。另一方面,Intel X86主板架構的服務器,即我們通常說的英特服務器,ASIC服務器(冗余指令集服務器),或PC服務器盡管不能完全滿足千兆環境的防火牆吞吐要求,但一般的千兆環境還是可以應付的。因為以太網中的設備不止防火牆一個,還有交換機、路由器等等,這些產品全部都可以形成瓶頸,因此,一個局域網段的極限流量不是它的線速,而大約是線速的25%以下。即千兆約250兆,百兆約25兆。考慮到目前國內一般千兆網的實際流量都不高(很少超過十兆的),所以這種基礎的防火牆還是可以承擔一般千兆網的流量要求的。但如果千兆干網達到100兆以上流量,幾個千兆口累加的吞吐量就超過了這種防火牆的內部極限,這種防火牆就會大量丟包,成為網絡系統的瓶頸了。因此,要克服這個瓶頸,就只有一個辦法,提高系統每秒能夠匹配的IP包的能力。其中的關鍵是擴寬PCI總線的交換速度,反而CPU速度並不是系統的瓶頸,相對而言,今天的CPU能力大得驚人,處理防火牆過濾如同牛刀殺雞,所以大量防火牆把多余的處理能力用到VPN的強密解密處理上。而PCI速度實際上從問世到今天,也已經從33M提升到133M,只是與CPU的摩爾速度相比,顯得慢得多了,偏偏一個桶能裝的水是以最短的桶條來衡量的。到今天,要解決硬件瓶頸,已經形成了幾種相對可行的方案。一種就是使用專門設計的多總線服務器。如Nokia IP740雖然也是X86,但內置三條PCI總線,這樣就可以提高防火牆的極限吞吐量,滿足一般的千兆環境。第二種是使用專門的處理插卡,換方之,就是把千兆的網卡和專門的過濾處理器做到一起,形成新的千兆網卡,大部分工作無需再經PCI總線到CPU才返回,直接在PCI1就交換完畢了。這是 CheckPoint曾經使用的方法。第三種方法與第二種相似,所不同的不是使用專門的PCI集成網卡,而是使用一個前置在Pci1總線上的單片機,直接處理防火牆的過濾轉發要求。這樣同樣可以克服總線限制。使用這種方法的就是著名的netscreen公司的ASIC處理器。最後一種辦法目前仍沒有確定可行。就是使用英特的NP處理器。它的缺點是把整個防火牆變成了一個過濾器。可是防火牆雖然主要工作是過濾轉發,但並不是過濾轉發就是防火牆,其他功能也是很重要的。否則就與路由器沒有什麼區別了。另一個簡單的辦法就是使用RISC-SCSI的架構,也即通常所說的高檔UNIX主機,由於使用64位總線,也是可以克服32位PCI總線形成的瓶頸;這也幾乎是普通防火牆廠商滿足千兆要求的唯一辦法了,就是把防火牆軟件裝到UNIX主機上面,成本可想而知。無論是那一種方式,無不與一定量的市場需求密切相關。設計定制專門的硬件成本很高,動辄以千萬美元計算,任何公司都不可能為區區一百幾十台的出貨量去搞什麼專門的硬件。而且,千兆防火牆需求量只是百兆防火牆的幾十分之一(只有敗家子式的蠢才才會清一色用千兆防火牆),這就決定了即使是年出貨量上千台的防火牆生產商也不能承受定制專門的千兆級硬件的成本。要知道,即使是盡得中國官方采購天時的天融信也遠達不到這個出貨水平。所以,世界上除非是在全世界范圍內成功銷售自已產品的公司,否則,推出真正的千兆防火牆是非常困難的。除非出現64位的PCI總線,否則百兆和千兆就是一個難以超越的等級;反之,一旦64 位總線成為主流,那時千兆就象今天的百兆和十兆一樣,很容易就成為一個可以自動適應的網絡帶寬等級。到那時,瓶頸制約的就是萬兆了。不過說老實話,除非是實時看高清晰度電影和電視轉播,否則我的想像力根本想不出拿著萬兆到底干什麼好。目前英特正在研發新一代的網絡系統總線CSA,(傳輸流架構),這一接口的投入,將為LOM(LAN on Motherborad)打下基礎。介時,國產千兆防火牆產品就可以無需特別定制的硬件而揚帆四海了。




Copyright © Linux教程網 All Rights Reserved