FortiGate 硬體加速

硬體加速
===============================
在這節課中你将了解到FortiASIC晶片和Fortinet的夾層卡是如何加速FortiGate的性能的。
專用硬體的加速處理與一般CPU的傳統處理不同。
在完成這一課程之後,你應該具備這些實用技能,你可以使用這些技巧來優化配置,以增強網絡和安全性能。
你将能夠描述Fortinet的晶片組,識别IP會話的解除安裝,配置異常檢測,加速基于流程的檢查,并配置TCP SYN代理的SYN洪水檢測。
與大多數安全裝置一樣,FortiGate是由通用計算機基礎建造的。但是,一般的計算機裝置在網絡安全性能方面是有限的。這就是為什麼Fortinet包含了特殊的附加硬體加速元件。
“硬體加速”是什麼意思?硬體加速允許FortiGate将其處理負載從通用的CPU轉移到專門的處理器。
請注意,分流CPU周期和分流任務在專門的硬體上執行的速度比一般的CPU要快。這個過程類似于你的電腦在圖形卡上使用GPU的方式;也就是說,GPU通常有專用的RAM,GPU電路的設計是為了更有效地處理圖像。
ASIC是一種晶片,設計用于執行一組具有最優效率、性能和可伸縮性的功能。
FortiASIC是專門用來分流流量和檢查程式的。
ASIC晶片的優勢在于它的專業化;是以,Fortinet開發了幾個由他們的類型(網絡處理器或内容處理器)和版本所識别的關鍵的ASIC。Fortinet還開發了安全處理器,這是不被認為是FortiASIC的。
注意約定的名稱是家庭縮寫加上修訂号。一般來說,較新的版本有更多的功能和更好的性能。這張圖表說明了使用隻使用CPU專用裝置的較老的FortiGate和硬體加速的更新更快的FortiGate之間的性能差異。
ASIC被連接配接到電路闆上,是以它們是不能更新的。
- 内容處理(CP):CP是一個FortiASIC。CP從CPU中分流了一些類型的内容檢查功能。他們檢查内容以防止被加載到記憶體中的威脅進行比較。他們還處理SSL加密。
- 網絡處理(NP):NP是一個FortiASIC。NP在接口層進行操作,以提供極低的延遲資料路徑。NP可以處理資料包轉發、Psec加密散列、鍊路聚合、高可用性(HA),還有一些其他類型的包處理。CP也可以處理密碼學,那麼有什麼差別呢?CP就像一個協同處理器,就其實體線路而言,與大多數NP不同,CP不綁定到特定的網絡接口。
- 安全處理(SP):SP不是一個FortiASIC。SP是一個帶有内容處理器邏輯的夾層卡。SP可以使用自己的多核/多線程CPU進行操作。它們可以處理多點傳播、IPv6、DoS和SYN代理。
- 系統晶片處理(SoC):SoC是內建了傳統系統CPU和CP、NP的內建晶片。
現在我們已經簡單地比較了FortiASIC晶片的類型,讓我們來看看每一個晶片的發展,以及如何配置你的FortiGate以使用每一個ASIC來提高性能。我們還将展示如何分流預期的診斷輸出。
在本節中,我們将研究CP晶片的功能,以及哪些配置可以使用它們來實作更高的性能。
CP是CPU的協同處理器。它加速了許多常見的資源密集型安全相關過程。
自從第一個FortiGate型号以來,Fortinet就在設計中加入了一個CP。CP在系統級工作。那些早期的FortiGate型号現在已經過時了,是以我們将從最早期的,相關的CP:CP4開始。
每一代的CP都建立在之前的功能之上。
CP4處理IPsec。更具體地說,它對IPsec第二階段的DES、3DES和AES進行加密和解密。它還為密碼學産生僞随機數字,計算了消息身份驗證的SHA-1和MD5校驗和,并驗證了PKCS#1證書中的RSA公鑰。
CP5增加了FIPS和RFC的遵從性,并且在支援IKE和RSA的情況下改進了IPsec。此外,它的随機數生成器與SSL相容,這将與下一代的CP6特别相關。
CP6包括SSL的硬體支援,由于SSL VPN和SSL檢查越來越流行,SSL需要更好的性能。
CP8增加了對一個IPS引擎進行簽名模式比對的支援;擴充的加密支援包括ARC4和SHA-256和大型公共密鑰。另外,CP8晶片可以用于可伸縮性。
你的FortiGate有哪些CP?
為了确定這一點,使用CLI指令〖get hardware status〗。
如果你想禁用CP分流過程呢?
你可以在配置防火牆安全政策中禁用CP分流過程:
- IPv4
- IPv6
- 多路傳送
當你禁用auto-asic-offload時,它也會禁用NP分流。
現在讓我們繼續看NP晶片。
NP在接口層工作,通過從CPU上分流它來加速流量。
對于每一個新會話,第一個包總是在CPU上到達核心。但是,如果NP不支援你已經配置了用于會話的FortiGate的所有功能,那麼核心必須繼續在緩慢的路徑上處理所有會話的包。
如果NP确實支援你配置的所有功能來應用到該會話,那麼核心将向NP程式發送一條指令來處理該會話,并啟用一條快速通道。NP加速傳播。
一旦FortiGate處理了最後一個包,例如TCP FIN(finish)或RST(reset)信号,或者如果有錯誤,那麼NP将會話傳回給CPU,這樣它就可以分解會話。
這個圖表說明了如何決定是否加速包轉發和IP會話處理。
這個過程可能會根據NP版本改變。與CP相似,也有一些NP修正。
NP1和NP2是在許多年前釋出的,并且可以分流大多數類型的IPv4流量。
下一代NP4在早期版本中表現出了顯著的性能提升。
NP6的性能加倍,并增加對IPv6、CAPWAP通信(用于無線控制和供應)和多點傳播的支援。
要找到關于你的每一個FortiGate的網絡處理器的資訊,請使用CLI指令〖get hardware npu〗。
沒有內建交換結構(ISF)的平台的接口直接連接配接到NP。是以,特别重要的是要了解這些直接映射,特别是當平台有多個NP時。
NP版本1、2和4不支援流量統計(包括日志)。這個規則的唯一例外是IP會話中的第一個和最後一個包。
這個異常發生是因為第一個和最後一個包是由核心處理的,在會話資訊傳遞給ASIC之前。ASIC晶片進行中間的所有資料包,是以核心不知道在此期間發生的任何統計資訊。同樣,NP1到NP4也沒有記憶體來儲存它們自己的統計資料。
NP6支援統計資料。它還支援SNMP以太網MIB,是以它也可以回答有關這些統計資料的查詢。
為了獲得分流的資格,流量必須與ASIC晶片的設計标準相比對。對于NP4,标準是:
- 2層的類型/長度必須設定為0X0800.IEEE 802.1 q和802.3的廣告流量也可以被分流。
- 3層必須是單一的IPv4。NP4不支援多點傳播和IPv6。
- 4層必須是UDP、TCP、SCTP或ICMP。
- 頭或内容不需要由會話助手修改。
- 任何類型的安全配置都不能檢查流量,如反病毒或網絡過濾。
- 流量一定不是來自防火牆。
- 入口和出口必須在同一個NP4上,除非在兩個通信NP4之間有一個EEI橋。
NP6和NP4标準是相同的,除了NP6還支援IPv6、NAT64、NAT46和其他。
使用NP6的FortiGate型号與ISF進行實體連接配接。ISF連接配接允許所有接口和NP6處理器之間的通信,而不需要通過CPU進行通信。這意味着分流是可能的,即使入口和出口的端口不在同一處理器上。
要驗證會話是否已被分流,請使用CLI指令〖diagnose sys session list〗。
npu info指明會話可以被分流。offload=x/y這裡标記狀态。在本例中,所有會話都已被分流(offload=4/4)。輸出offload=0/0訓示非加速會話。
no_ofld_reason表明會話沒有被分流,例如會話被重定向到反病毒或IPS分析。
核心沒有意識到會話中正在發生的事情,而會話是由一個NP來處理的。這會影響到日志記錄。它還會産生什麼影響呢?
包捕獲涉及到使用CPU的FortiGate核心。NP晶片不會把所有的資料都發送回CPU,因為這會抵消加速。是以,一旦會話被分流到一個NP,嗅探器就不會看到那些被分流的資料包。
在故障排除期間,你通常需要檢視整個會話。為了做到這一點,你可能需要暫時禁用分流。在CLI中,你可以在每個政策基礎上執行此工作。請記住,此操作也禁用了CP分流。
NP不僅僅是IP層封包轉發。它也有以下幾點:
- 主動-主動 HA 負載平衡
- IPsec密碼學
- 鍊路聚合
- 基本異常檢測(在軟體IPS引擎之前)
- 基本的流量影響
在HA主動-主動模式下,分流标準與獨立的FortiGate相同。
使用者流量的硬體加速是由叢集中的每一個單獨的FortiGate決定的。一般來說,為了滿足内容檢查的目的,流量是負載均衡的,是以硬體加速不适用。然而,它是在被分流的同一會話中對包的重定向。這意味着網絡處理器重新編寫MAC位址,從這些中斷中分流CPU。
在本節中,我們将研究如何檢視、過濾、下載下傳和導出日志。雖然你可以通過執行日志過濾器和執行日志顯示指令來檢視和管理日志,但是這一節關注的是GUI。
要驗證IPsec流量是否已被分流,請使用CLI指令〖diagnose vpn tunnel list〗。
這顯示了每個VPN隧道的狀态和統計資訊。如果它包含一條帶有npu_flag的行,隧道就會被分流。
請記住,在檢查npu_flag字段之前,首先需要從兩個方向獲得初始包。否則,它的初始值是0/0。
如果所有聚合的接口都與相同的NP相關聯,網絡處理器還可以加速802.3ad連結聚合。(取決于你所熟悉的供應商,鍊路聚合也稱為NIC teaming、channeling或link bonding。)要确定通道是否已被解除安裝,請使用CLI指令〖diagnose netlink aggreate〗。
是否所有連結與聚合相關的處理都将被分流?不,隻有在CPU建立會話并将其發送到NP時才會發生分流。是以,在哈希的初始階段,即核心如何決定集合中的哪個接口将發送第一個架構,CPU仍然參與其中。在連結聚合哈希後發生分流。
一些網絡處理器也可以檢測到一些異常,并删除這些資料包。這發生在硬體。它獨立于IPS引擎,并在IPS引擎參與之前發生。要做到這一點,可以使用〖set fp-anomaly〗來配置接口。例如,你可以配置你的NP處理器來删除帶有未知協定号的資料包。
一些類型的流量整形也可以被分流到一個NP。
請注意,隻支援限制和優先級,但是保證帶寬不能被分流,并且由CPU處理。
NP有有限的整形對象(NP6有更多的整形對象和資料包流改進),是以CPU的流量仍然是很常見的。
現在我們來看一看SP,夾層卡增加了FortiGate的性能。
SP為入侵保護和防火牆功能提供了一個內建的、高性能的、快速的多層解決方案。
入侵保護從一個IPS硬體加速引擎開始,這可以確定每個包都可以。然後,采用一套基于接口的資料包異常保護、DDoS保護、基于政策的入侵保護和防火牆快速通道來防止攻擊。
SP還可以分流資料包傳輸,比如多點傳播、IPv4、IPv6和NAT64通信。它加速了IPsec的加密和解密。它可以執行基于流程的内容檢查,并提供SYN代理功能。
與CP和NP一樣,每個修訂版本都增加了SP的功能。
第一個版本可以處理IPS和加密的多點傳播解除安裝。這個版本是用三張擴充卡建構的:FMC-XE2、FMC-FE8、FMC-CE4,它們都相容于FortiGate的3810A,5001A,1240B和3016B。
第二個版本增加了對基于流程的檢查的支援。這個SP的夾層擴充卡是FMC-XG2,它與FortiGate的3140B和5001C相容。
第三個版本的性能好處是内置了FMC-XH0卡。
要确定在你的FortiGate型号中安裝的SP(如果有的話),請使用CLI指令〖diagnose npu spm list〗。
在這裡所示的示例中,xh0表示安裝了FMC-XH0型号夾層擴充卡。這個産品家族使用SP3。
請記住,SP主要是加速與安全相關的特性,NP不支援這些會話。
SP處理基于流程的檢查,例如AV、IPS和應用程式控制,提供了顯著的吞吐量優勢。
要分流基于流程的檢查,必須将防火牆政策中的入口和出口接口綁定到相同的SP。
根據類型的不同,DoS政策也可以被分流到安全處理器。
SP上的一個接口也可以作為TCP SYN代理,删除在逾時期間用戶端未完成的所有連接配接。這為你的後端伺服器提供了更大的保護和性能,以防止發生同步的洪水。
在用戶端完成3路握手之前,TCP連接配接不會被傳遞給伺服器。通過這種方式,SYN的洪水攻擊不會耗盡CPU資源。
SP支援VLANs和帶有欺騙源IP的通信流。
在DoS配置檔案tcp_syn_flood設定中配置了SYN代理,并将其應用到一個安全處理器的接口中。
最後,讓我們看一種內建了其他兩個方面的ASIC:一個晶片上的系統(SoC)。
SoC将一個通用的CPU與Fortinet的定制ASIC網絡、NP和CP內建到一個晶片中。
通常,SoC子產品是在桌面或小型辦公室型号中找到的,因為它允許較小的表單因素,但不能處理載波級别的計算負載。SoC的最大好處是更大的成本和能源效率。
SoC子產品的性能水準很低。
你在之前的章節中提到過我們沒有提到關于CP7和NP3的任何事情嗎?
CP7和NP3(或者NP4Lite),被開發出來內建到Fortinet的SoC處理器中。這個內建處理器有三個子產品:
- VPN子產品(CP7處理器)包括SSL、TLS和IPsec引擎,它們處理通信和消息身份驗證算法的加密和解密。
- 防火牆快速通道子產品(NP4Lite處理器)是NP4處理器的一個輕量級版本(具有更少的特性)。它加速會話處理。
- IPS确定性有限自動機(DFA)子產品用于分流某些IPS簽名比對。
這個表比較了大多數使用的FortiGate、SoCs和SP的每個規範的性能。
這裡回顧一些我們讨論的内容:
- 每一個FortiASIC家族的架構
- 每個晶片都可以分流哪些特性
- 晶片之間的差異
- 如何找到你的型号的晶片
============================== End