?

基于FPGA的高速轉發網絡安全平臺設計

2018-07-07 07:17吳中軍
網絡安全技術與應用 2018年7期
關鍵詞:流水線引擎數據包

◆吳中軍 張 穎

?

基于FPGA的高速轉發網絡安全平臺設計

◆吳中軍1張 穎2

(1.中國電子科技集團公司第三十研究所 四川 610093;2.陸軍參謀部第一通訊站 北京 100042)

不管是對于核心的路由器、交換機、或者網絡安全設備,高速轉發引擎都是其中的重點、難點、以及關鍵技術。本文圍繞著高傳輸帶寬的需求,低時延的需求,基于FPGA技術實現了一種10Gbps速率的全線速的高速轉發網絡安全平臺。并討論了基于FPGA的高速轉發引擎的流水線設計以及并行設計方案,并對其性能指標進行了試驗分析。

FPGA;10Gbps轉發引擎;并行設計;流水線設計

1 高速轉發引擎的發展與挑戰

伴隨著社會的發展與進步,網絡對于高帶寬、低時延、高質量的QOS等的需求都越來越高。尤其是光纖傳輸方式在這些年得到了長足的發展與進步,網絡中每一年對于高帶寬需求的增長已經超過了摩爾定律的增長速度。所以位于網絡關鍵節點的交換機、路由器、網絡安全等設備其吞吐量、時延等性能指標就有了更高的需求。

為了適應下一代互聯網的發展,以及關鍵技術的掌握和國產化。早在二十世紀初國家就啟動了一批重大專項研究,比如高性能寬帶信息網(3TNet)工程。在項目自主研發了T比特級的光傳輸系統[1]、T比特級的交換路由設備、T比特級的網絡應用環境。本文以此為基礎,實現一種基于FPGA的高速轉發平臺,可以靈活的搭載重構設計部分網絡安全功能,可以作為關鍵網絡節點的安全設備,并給出實現方案。

以性能指標支持10Gbps的網絡數據包線速處理為要求,那么就必須在速率達到10Gbps的情況下,實現以太網的最短包長即40字節的網絡包的線速處理轉發,那么可以得出FPGA轉發一個數據包的最大如下所示:

(數據包包長)40*8bit/10Gbps = 32ns

表1為在10Gbps的吞吐量下,平臺對于不同數據包包長的報文的轉發處理時間。

表1 轉發平臺線速處理時間表

報文長度(byte)處理時間(ns) 4032 4839 6452 9677 128103

由表1可以看出,要完成速率為10Gbps的最短 40字節數據包的線速處理轉發,該轉發平臺對該長度的數據包的最長轉發時間為32ns,假如使用125Mhz的內部時鐘,那么需要短短的4個周期來處理轉發該數據包。對于FPGA的設計使用來說,單單僅靠加大時鐘頻率或者總線的寬度來提高處數據的帶寬,會造成很多別的方面的印象。比如時鐘頻率過高會使得數據總線上數據有效的保持時間大大縮短,這樣就降低了數據采樣的精確度,即增加了數據采樣的難度。這就不可避免的增加了FPGA的設計中布局布線難度,使得書序錯誤頻發。另外受FPGA器件水平和國內可購買的高速大規模FPGA技術參數的限制,目前轉發引擎FPGA內部系統時鐘超過200M則會造成很多系統性問題。

基于上面的敘述,在高速轉發引擎的設計中,為了提升性能,引入了并行處理方式和流水線操作的處理方式[2]。流水線處理是一種高速設計中的常用方法。該數據處理方式是指將一個復雜過長的時序過程劃分為若干個可以串行連接的子過程,其各個子過程都可以被叫做流水線的“級”,而且每個子過程都可以有效地的在時間上與其它子過程同步執行。

如圖2所示,這就是一個流水線全過程示意圖。對于流水線而言,其設計的關鍵是子過程模塊時序安排的合理性,各個流水段都要合理劃分。對于流水線中的各個流水段,其時間最長的流水段會造成整個流水線的“堵塞”,所以合理的劃分流水段就顯得尤其重要。流水線處理方式能極大的提高效率的原因就是其多次復制了所有的處理模塊,這是一種典型的“資源換速度”的方式。

圖2 流水線結構圖

并行處理方式就是對一個總的任務,將其劃分為空間和功能上相互獨立的且完成時間較短的N個簡單的任務子單元si(i = 1, 2,… ,N),而N個簡單的任務子單元si可以在相同的時間內同時完成,這樣組合在一起一個復雜的任務就得以完成。即通過并行處理方式可以有效的降低復雜度,并降低時延。一個簡單的并行處理方式的示意圖如圖3所示。

圖3 并行流水線結構

2 高速轉發引擎設計

2.1 傳輸帶寬約束分析

限制網絡傳輸帶寬的主要因素是輸入傳輸帶寬、內部傳輸帶寬、輸出傳輸帶寬,如三個帶寬的示意圖如圖4所示。

圖4 高速轉發引擎帶寬分析

在這里先對下文公式用到的符號做以下定義:端口速率-R;鏈路的承載效率-a;數據報文長度-L;添加端口標簽的字節數-M;路由標簽標簽的字節數-N;數據送往交換網絡的平面數-K,FPGA內部時鐘頻率-C;FPGA內部數據傳輸總線位度-W。

已知10Gbps帶寬接口的實際速率為,R = 2. 488× 4= 9. 952 Gbps,可以采用VC-4容器的OC-192SDH幀[3],其承載效率為261/270,而類HDLC幀[4]的承載效率可以表示為L/(L+9),那么對長度為L的以太網數據包,其鏈路層的承載效率a可以表示為:

轉發平臺的輸入、輸出帶寬、內部傳輸帶寬的關系可以用下面的表達式來表述:

參考FPGA供應商Xilinx[5]和Altera[6]的芯片水平,在數據包長度L = 40字節的時候,使用125Mhz時鐘和128比特位寬的方式來進行數據傳輸,這樣可以使內部傳輸帶寬達到16Gbps。這樣就能滿足一個高性能的線速網絡安全轉發平臺的要求。

2.2 查表設計

對于轉發平臺的查表設計,本文給出了一個支持流水線操作的NSE[7,8]+SRAM查表搜索結構[9—12],NSE(搜索引擎)中存放每一個表項的關鍵字,SRAM中存放查找表的結果,其具體查表過程如圖5所示。

圖 5 NSE+SRAM的流水線查表操作

如上述結構,可以將查表過程分為三個子過程,即送入查表關鍵字、輸出匹配地址、讀取查表結果,這三個子過程可以支持流水線操作。所以一次成功的查表的時間就由最長的子流水段的時間所決定,對于實際應用環境,組播查表關鍵字的生成就決定了最長的查表時間,其為4個時鐘周期,而在NSE支持的125Mhz工作頻率下,完全可以滿足性能達到10Gbps帶寬的轉發平臺的設計要求。

2.3 FPGA器件水平分析

FPGA技術的發展與進步,為以FPGA為基礎而實現的高速轉發平臺提供了良好的基礎芯片和開發平臺。FPGA芯片的主要技術性能具體表現在以下幾個方面。

(1)高速MGT:Xilinx[13]和Altera[14]兩個FPGA主流供應商都針對高速FPGA的開發,集成了24個以上的MGT(Multi-Gigabit Transciver)模塊。這些模塊可以實現10Gbps以上的數據傳輸帶寬要求,同時抗噪能力、功耗消耗都更理想。

(2)封裝和電平:FPGA供應商都提供大量的不同的封裝類型,以及大規模的I/O引腳數。并且每個引腳都支持阻抗匹配技術,可以減少片外電阻設計。支持多種單端和差分電平標準。

(3)時鐘:大多數FPGA都提供多達12個以上的DCM,使用DCM可以補償由于時鐘傳輸延時以及電路板布局限制產生的限號不穩定情況。DCM能更好的適合具有多個時鐘域和關鍵時序要求的系統。

(4)片內塊RAM:大多是FPGA都提供超過10Mb嵌入式Block RAM可以實現對報文的高容量且高速的緩存,可以支持多種數據處理功能方面的應用。

3 一種基于FPGA的10Gbps的網絡安全轉發平臺設計

基于前文的分析圖6給出了一個性能為10Gbps帶寬的轉發平臺的設計方案。在FPGA內部完成數據包包頭的檢查,主要包括版本號、校驗和、TTL等關鍵字段;在設計時可以在其后面串接安全功能模塊,并采用流水線的方式實現以提高性能;在FPGA外部采用搜索引擎芯片NSE和片外SRAM芯片如2.2節介紹的來配合FPGA內部模塊的功能完成查表;通過PCIE通道實現CPU和FPGA的數據通信,可以通過CPU向FPGA下發指令,以及實現某些數據包的上傳CPU功能;在CPU上還可進行二次開發,實現一些FPGA難以實現的功能。

圖 6 10Gbps轉發平臺設計方案

該方案具有很強的靈活性和可移植性,開發者可以根據該平臺開發添加適合自己產品的功能模塊。

本文采用Xilinx公司的k7系列FPGA,龍心3A國產處理器。125m時鐘128位寬的數據總線,按照設計要求,其可以達到16Gb的吞吐量。

4 試驗和結論

采用TestCenter網絡測試儀進行性能測試(該網絡測試儀包長計算包括包頭)。經測試,在不添加安全功能模塊的前提下,系統的吞吐量如表2所示??梢钥闯銎渫耆珴M足10Gbps線速轉發平臺的要求。

表2 轉發平臺吞吐量測試

包長(byte)吞吐量(GB) 6415.87 12815.90 25615.92 51215.94 102415.97

猜你喜歡
流水線引擎數據包
二維隱蔽時間信道構建的研究*
民用飛機飛行模擬機數據包試飛任務優化結合方法研究
新海珠,新引擎,新活力!
流水線
SmartSniff
三生 三大引擎齊發力
藍谷: “涉藍”新引擎
報廢汽車拆解半自動流水線研究
流水線生產殺死藝術
SIMATIC IPC3000 SMART在汽車流水線領域的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合