摘要
因特網(wǎng)、企業(yè)網(wǎng)絡等網(wǎng)絡應用的帶寬需求急劇上升,傳輸、檢查、拆分、組合、搜尋、內容比對、轉遞等IP封包運算處理動作,以往可以靠軟件程序在一般X86微處理器上完成,搭配以網(wǎng)卡做封包出入口。
但是近年來這些封包的運算處理越來越復雜,將數(shù)據(jù)輸入處理單元,完成后再將結果送往輸出單元,慢速處理造成的時間延遲會嚴重影響到數(shù)據(jù)吞吐量,無法滿足Line
Rate Operation的需求。Intel 公司提供的網(wǎng)絡處理器系列產品專門用來解決這樣的問題,IXP-4XX屬于較低端的系列,本文則集中探討IXP-2XXX系列高端網(wǎng)絡處理器,文中將以IXP-2400處理器在凌華科技cPCI-6240系列產品的設計為例做出說明。
以下將先介紹IXP-2XXX處理器的功能特性,再探討處理器的平臺設計、應用開發(fā),最后探討它在網(wǎng)絡安全領域的應用,以入侵檢測系統(tǒng)為實例做出說明。
Intel IXP-2XXX 網(wǎng)絡處理器
Intel XP-2XXX系列網(wǎng)絡處理器大致包含:IXP-2400、IXP-2800及IXP-2850,請參考表一的性能差異。除此之外,Intel還考慮比照了IXP-42X系列的做法,高度整合MACs等功能模塊,建造優(yōu)異的性價比產品,使這一系列處理器的應用更普及化。
|
表一、IXP-2XXX系列比較表 |
全系列IXP-2XXX網(wǎng)絡處理器都可拆分為『控制管道』(Control
Plane)及『數(shù)據(jù)管道』(Data Plane)兩大部分。參考圖一 IXP-2400網(wǎng)絡處理器,它內建一顆600MHz
32-bit XScale來負責Control Plane的處理工作,XScale執(zhí)行相當?shù)讓拥目刂乒ぷ,包括信息傳送,還有跟系統(tǒng)內其它處理器的溝通。Data
Plane則由內建的八顆微處理引擎(Micro-Engine Version 2, MEv2)來做平行處理,MEv2是XScale精簡下來的
(Reduced) 可程序處理器,使用者可用Micro-Code匯編語言或是高端Micro-C語言撰寫應用程序,透過指令告訴這八顆MEv2怎樣處理封包運算,以達到應用目的。
|
圖一:IXP-2400的外部接口 |
圖一是IXP-2400示意圖外觀,它有兩個信道的QDR
SRAM接口,存放重要的數(shù)據(jù)結構,比如:Route Tables, Free Buffer
Pools,F(xiàn)low State Tables,Queue Descriptors等等重要的訊息,其中一個信道還可以接一個協(xié)處理器,做TCP/IP封包比對時的內存搜尋引擎,加速決定封包的協(xié)議屬性跟流向(Flow)。DDR
DRAM則用來儲存封包以及大量的State tables,另外C-bus接口可以連接第二個處理器,這是采用一進一出架構的雙處理器設計時用的。
另兩個重要接口,一個是64-bit/66MHz PCI
2.2接口,作為Control Plane連通的Bus,可以透過此接口外掛控制處理器,像是PrPMC控制卡;另一個是Flash界面,是存取RedBoot韌體的通道,Redboot相當于X86系統(tǒng)的BIOS;媒體及切換接口(Media
and Switch Fabric Interface, MSF)是網(wǎng)絡封包進出處理器的主要途徑,視應用可以規(guī)劃為SPI-3、CSIX或是UTOPIA
Level2接口。
圖二是IXP-2400內部示意圖,內部的SHaC
是一個多功能控制單元,內含Hash單元,可以建立48-,64-或是128-bit寬的 Hash
indices,XScale與MEv2可存取Hash來幫助Table的搜尋,特別是要搜尋的Keys很大時;第二個單元是16KB的Scratch
Pad memory,這是處理器內第三個內存資源,XScale與MEv2可共同存取,三種內存資源可以讓海量存儲器存取同時間平行發(fā)生;第三個單元是Control
and Status Register (CSR),提供9顆個處理器(1 * XScale
+ 8* MEv2)互相之間溝通用途。
除此之外,還有 XScale 外圍,包含中斷控制器、Timers,
UART、GPIO等單元。在處理器內部,XScale、MEv2、DRAM Controller、SRAM
Controller、T/R-Buffer之間透過 Chassis Bus,將 Data Plane
的路徑在處理器內部連通起來,這些控制單元可以共享 SRAM、DRAM 等內存資源做數(shù)據(jù)交換。
|
圖二:IXP-2400功能單元及數(shù)據(jù)信道
(取材自Intel IXA架構及應用一書) |
網(wǎng)絡處理器的『平臺設計』、『應用開發(fā)』
(一)
平臺規(guī)劃、開發(fā)
平臺規(guī)劃
設計IXP-2XXX平臺首先要先為產品做準確的定位,定義平臺最終應用、頻寬需求、封包處理效能等級。若是想一半接到ATM網(wǎng)絡,則MSF接口有一半要規(guī)劃成Utopia
Level 2接口,連接的ASIC像是Intel IXF-6012/6048 Cell/Packet
Framer;若是要直接連IP網(wǎng)絡,則MSF接口規(guī)劃成SPI-3或是CSIX,連接像Intel
IXF-1104 (Quad Giga-E MACs的ASIC);或是接FIC(Fabric
Interface Controller) 的ASIC。另外規(guī)劃時要全面考慮:Control
Plane的處理效能、是否外掛輔助處理器、開機影像文件下載速度;Data Plane則須考慮SRAM大小、DRAM資源使用、是否須加密功能
(IXP-2850有)、是否外掛網(wǎng)絡搜尋加速器、是否外掛內容檢查加速器等、要多少個網(wǎng)絡接口。這些硬件規(guī)格要根據(jù)功能應用,做整體效能評估才行,在開案初期要審慎評估。
平臺開發(fā)
包括硬件、韌體(Redboot)、系統(tǒng)支持套件(Board Supporting Package,
BSP),BSP內含組件驅動程序。其中硬件設計跟一般X86運算平臺沒什么兩樣,記得要預留軟件除錯端口,就像X86-CPU的
ITP Port一樣;Redboot韌體則相當于X86 BIOS,系統(tǒng)初始化、自我測試、Boot
Loader都包在Redboot內;Redboot及BSP可以通過Intel IXA SDK得到幫忙,建立以XScale為處理核心的操作系統(tǒng)平臺,最后這三大要素即可建立一個完整的網(wǎng)絡處理器平臺。
(二)
應用程序開發(fā)
Intel 建立了IXA 軟件可攜式架構,讓今天花力氣辛辛苦苦在IXP-2400建立起來的軟件,明天在下一代IXP-2XXX仍然適用,而這個軟件架構可以簡單用圖三表示。
應用程序的開發(fā)也可以通過Intel IXA SDK得到幫忙,考慮到投資杠桿效應,Intel
IXA軟件程序架構采模塊化,SDK提供一些基本的microblocks,開發(fā)者再開發(fā)自有的microblocks,將這些microblocks視為基礎組件(Building
Blocks),去組合實現(xiàn)實際的功能應用,讓開發(fā)者的工作簡單化,也縮短TTM時間。
|
圖三:Intel IXA 可攜式軟件架構
(取材自Intel IXA架構及應用一書) |
網(wǎng)絡安全的需求
據(jù)統(tǒng)計,2000年企業(yè)及政府部門遭受黑客(Hacker)攻擊的比率高達85%,而網(wǎng)絡安全的漏洞不是防止黑客入侵就解決了,其它像是遭窺探者竊取機密性數(shù)據(jù),或是心懷不滿的員工蓄意破壞系統(tǒng)內重要檔案,警覺性不足的員工外泄重要密碼、不小心由Email引入計算機病毒等,都是威脅網(wǎng)絡安全的幾個危險因素。
為了讓區(qū)域內網(wǎng)絡維持安全運作,建立一套安全防護網(wǎng)才是根本解決之道,較完整的防衛(wèi)機制大概有三層:
(一)虛擬私有網(wǎng)絡(VPN)
(二)防火墻(Firewall)
(三)入侵檢測系統(tǒng)(Intrusion Detection System; IDS)。
三種應用各有不同的系統(tǒng)規(guī)格需求,VPN 的系統(tǒng)需將信息全數(shù)打亂再丟到網(wǎng)絡上,透過加密機制在公開的網(wǎng)絡里建立起加密通道(Encrypted
Tunnel),接收端再解密取得真實信息,在浩瀚的因特網(wǎng)內建立起安全私密的虛擬局域網(wǎng)絡;Firewall則像大樓管理員,檢查來訪封包的通行許可證,包含檢查封包的來源、目的地、連接塊等字段,但是防火墻并沒有辦法擋掉所有的入侵者,此時就須要另一道防線IDS;IDS
就像網(wǎng)絡上的監(jiān)控攝影機,可以分析流經(jīng)的封包數(shù)據(jù),偵測未經(jīng)授權的行為,IDS大致區(qū)分為「網(wǎng)絡系統(tǒng)」跟「主機系統(tǒng)」兩類;旧螴DS需求的系統(tǒng)處理能力可以涵蓋VPN及Firewall的需求,因此接下來我們就以較復雜的IDS為例做IXP-2400的應用說明。
入侵檢測系統(tǒng)的應用
圖四是采用IXP-2400為核心建立的IDS系統(tǒng)結構圖,凌華采用IXP-2400內建的XScale去控制管理Control
Plane的組件,內建的八顆MicroEngine去收送處理封包的分類及內容比對,處理Data
Plane的運算。IXP-2400的QDR SRAM通道0也叫做LA-1(Look Aside
Interface)接口,可以選擇接市面上現(xiàn)有的TCAM(Ternary Content Addressable
Memory) 輔助處理器,幫忙做第三層以下封包數(shù)據(jù)搜尋比對的工作,幫IXP-2400處理器卸載(offload)一些運算負擔。
|
圖四 IXP-2400在網(wǎng)絡安全的應用-『入侵偵測系統(tǒng)』方塊圖 |
|
圖五 ADLINK cPCI-6240系列網(wǎng)絡安全平臺 |
網(wǎng)絡安全系統(tǒng)內最關鍵性的功能可以說是封包表頭辨識(Classification)及內容檢查(Content
Inspection),表頭辨識系針對其流向、連結、輸入端口及目的地址等做比對;內容檢查則有復雜的算法,處理頻寬及內存容量需求極高,很顯然內容檢查即將是此系統(tǒng)非常嚴重的交通瓶頸所在,這個運算將耗用大量IXP-2400網(wǎng)絡處理器的運算資源。因此必須采用另一個處理器卸載此運算,有兩種方法可行,其一是如圖四:加入一顆個可程序內容檢查引擎(Programmable
CIE, Content Inspection Engine),比如IDT PAX.port
2500 CIE;或是在封包經(jīng)網(wǎng)絡處理器集結成較大封包后,進入一張專屬內容檢查的高速運算服務器,比如ADLINK
cPCI-6860 Dual-Xeon Server Blade。加CIE的做法可以卸載95%
的MicroEngine資源使用量,刪除掉85%的MicroCode,同時削減75%內存頻寬使用量,成本可大大節(jié)省,TTM(Time
to Market)時間可以顯著縮減。加一張專屬服務器則維持舊有軟件延續(xù)使用,節(jié)省軟件開發(fā)的時間及人力成本,兩者各有優(yōu)點,但是CIE是純硬件運算所以效率較好,長期來看應會成為較受歡迎的選擇。
結論
網(wǎng)絡處理器的時代已經(jīng)來臨,它可以有效解決網(wǎng)絡交通擁塞的問題,也可以處理復雜的封包運算。無論如何,Inetel
IXA架構已經(jīng)正確的跨出第一步,接下來就須要更多的平臺設計者投入開發(fā)工作,以及更多的應用開發(fā)者投入資源,發(fā)展軟件程序,逐步建立完整的可攜式Microblocks。網(wǎng)絡興起、帶寬加速拓展,使整個網(wǎng)絡通訊的市場板塊不斷的在調整、挪動,凌華科技與Intel合作,共同推廣IXP-2XXX網(wǎng)絡處理器的應用,希望能有拋磚引玉之效。
|