基于多核處理器設(shè)計(jì)網(wǎng)絡(luò)接口卡
在IP網(wǎng)絡(luò)一統(tǒng)天下的時(shí)代,各種網(wǎng)絡(luò)設(shè)備都需要以太網(wǎng)接口來實(shí)現(xiàn)與其他設(shè)備的互聯(lián)互通,比如傳統(tǒng)的TDM設(shè)備就通過偽線技術(shù)實(shí)現(xiàn)了以太網(wǎng)封裝,具備了與IP網(wǎng)絡(luò)對(duì)話的能力。對(duì)于服務(wù)器來講,通常也需要配備網(wǎng)絡(luò)接口卡(NIC)來實(shí)現(xiàn)與其他網(wǎng)絡(luò)的數(shù)據(jù)對(duì)接與傳送。網(wǎng)絡(luò)接口卡可以幫助系統(tǒng)捕獲報(bào)文,對(duì)網(wǎng)絡(luò)性能進(jìn)行監(jiān)測(cè)并檢測(cè)服務(wù)質(zhì)量,實(shí)現(xiàn)必要的OAM功能;在保障安全的IPSec功能基礎(chǔ)上,網(wǎng)絡(luò)接口卡還可以通過對(duì)接收流量進(jìn)行深度的報(bào)文檢測(cè),識(shí)別不同應(yīng)用與業(yè)務(wù),對(duì)不同業(yè)務(wù)類型進(jìn)行分門別類的處理。
本文引用地址:http://cafeforensic.com/article/201706/352984.htm隨著多核技術(shù)的發(fā)展,越來越多的網(wǎng)絡(luò)接口卡開始采用多核處理器方案,通過分配不同的業(yè)務(wù)處理到不同的CPU核,多核架構(gòu)可以靈活應(yīng)對(duì)各種復(fù)雜的業(yè)務(wù)需求。不過,隨著網(wǎng)絡(luò)帶寬的不斷提升,純CPU多核架構(gòu)也面臨一些問題。以網(wǎng)絡(luò)接口卡基本的安全功能為例,通常在第一層保護(hù)中需要ACL、防火墻/NAT/PAT、ALG、L2TP和IPSec VPN等;第二級(jí)保護(hù)中需要對(duì)接收數(shù)據(jù)深度檢測(cè),進(jìn)而識(shí)別應(yīng)用、ToE、IPSec;第三級(jí)保護(hù)中需要MAC/URL過濾,端口 /MAC認(rèn)證等。如果將這些處理完全交給CPU,不僅CPU的業(yè)務(wù)負(fù)荷過大,影響到單板功耗和系統(tǒng)軟件設(shè)計(jì),而且隨著帶寬需求的不斷增加,CPU核會(huì)面臨處理瓶頸的問題。
LSI公司推出的Axxia系列多核通信處理器,采用異構(gòu)多核的方式,創(chuàng)新性的將多核與快速處理引擎通過專利技術(shù)虛擬管道(Virtual Pipeline)技術(shù)相連,解決了純CPU多核以及同構(gòu)多核在處理復(fù)雜業(yè)務(wù)時(shí)性能下降的問題,在保證業(yè)務(wù)線性處理的情況下仍然保留CPU核資源用于控制、管理、業(yè)務(wù)后處理等工作。
Axxia通信處理器
LSI公司第六代通信處理器的核心是高性能的多核處理器和一系列基于硬件的業(yè)務(wù)加速引擎,通過靈活的Axxia平臺(tái)架構(gòu),處理器核可以有多種選擇,如ARM、PowerPC或者M(jìn)IPS。本文將對(duì)以PowerPC為主的Axxia通信處理器進(jìn)行介紹,處理器的基本框圖如圖1所示。
圖1:基于PowerPC的AXXIA通信處理器內(nèi)部框圖。
圖1中PPC476核由IBM和LSI聯(lián)合研發(fā),兼容Power ISA Version 2.05,最高主頻可以達(dá)到2GHz;用來提供快速處理通路的各加速引擎得益于LSI公司多年來的研發(fā)積累,技術(shù)成熟可靠,多代產(chǎn)品經(jīng)過市場(chǎng)考驗(yàn),這些引擎主要包括:報(bào)文處理、安全引擎、正則處理引擎、流量管理/調(diào)度器(六級(jí)調(diào)度)。
Axxia設(shè)計(jì)采用異構(gòu)多核的架構(gòu),創(chuàng)新性的采用虛擬管道技術(shù)來實(shí)現(xiàn)各加速引擎,CPU核以及各子系統(tǒng)間的通信,這個(gè)全新的消息傳遞機(jī)制保障Axxia無論報(bào)文長(zhǎng)短,系統(tǒng)負(fù)荷以及協(xié)議類型都可以提供確定性的處理性能,避免同構(gòu)多核在核數(shù)目與系統(tǒng)性能提升間不成比例的問題。在虛擬化日益普及的情況下,低延時(shí)和可確定的處理性能已經(jīng)成為網(wǎng)絡(luò)設(shè)備的首選條件。
Axxia處理器提供一系列高速接口,包括8路基于SerDes的SGMII,2路基于XAUI的10GbE,3路PCIe接口,支持x1/x2/x4,同時(shí)它還支持IEEE1588v2協(xié)議。
網(wǎng)絡(luò)接口卡的硬件設(shè)計(jì)
Axxia兼?zhèn)潇`活的數(shù)據(jù)處理和強(qiáng)大的主控CPU,單芯片方案提供豐富的高速接口和低速調(diào)試接口,由此非常適合應(yīng)用于嵌入式的單板設(shè)計(jì)。圖2為基于Axxia芯片的網(wǎng)絡(luò)接口卡方案框圖。Axxia芯片的快速處理引擎可以用來實(shí)現(xiàn)數(shù)據(jù)層面的加速,PowerPC核可以用來實(shí)現(xiàn)附加功能以及主控層面的處理。
圖2:基于AXXIA芯片的網(wǎng)絡(luò)接口卡方案框圖。
單板設(shè)計(jì)采用Axxia系列中中端的ACP3423,配置了2G DDR3 SDRAM,背板側(cè)PCIe x4 Gen2用做管理,6個(gè)SGMII和XAUI用做數(shù)據(jù)交換;網(wǎng)絡(luò)側(cè)為10GE SFP+;支持IEEE1588和同步以太網(wǎng)。
Axxia通信處理器為支持SGMII、XAUI、sRIO和PCIe等高速接口,芯片內(nèi)部包含有多條SerDes PHY接口,這些協(xié)議可配置接口根據(jù)不同的發(fā)送和接收數(shù)據(jù)對(duì)被分成兩大組:SGMII/XAUI和sRIO/PCIe。對(duì)單板的硬件設(shè)計(jì)來講,這些高速接口的信號(hào)完整性非常重要,在設(shè)計(jì)過程中要保證PCB板、背板、線纜等有干凈的供電,良好的接地,在布線過程中要對(duì)走線做阻抗匹配。LSI公司提供了詳細(xì)的硬件設(shè)計(jì)文檔和SerDes設(shè)計(jì)文檔。
軟件開發(fā)
如前文所述,Axxia確定性的性能來自于優(yōu)良的硬件架構(gòu),同時(shí),作為整個(gè)接口卡方案的“靈魂”,LSI公司還為Axxia系列處理器的軟件開發(fā)提供基于各種操作系統(tǒng)的軟件包,包括Axxia運(yùn)行開發(fā)環(huán)境RTE,Axxia軟件環(huán)境ASE等。對(duì)于網(wǎng)絡(luò)接口卡開發(fā)還提供完整的Linux BSP實(shí)現(xiàn)以及Axxia應(yīng)用開發(fā)套件(ADK)。ADK由一系列針對(duì)特定協(xié)議的數(shù)據(jù)層和控制層軟件模塊組成,有了這些模塊軟件開發(fā)者無需關(guān)注底層細(xì)節(jié),可以很靈活方便的直接用高級(jí)語言如C進(jìn)行應(yīng)用程序開發(fā)。軟件基本框架如圖3所示。
圖3:Axxia軟件開發(fā)框架。
應(yīng)用案例
1.ARP(地址解析協(xié)議)處理加速
以太網(wǎng)中的數(shù)據(jù)幀從一個(gè)主機(jī)到達(dá)網(wǎng)內(nèi)的另一臺(tái)主機(jī)不是根據(jù)32位的IP地址而是根據(jù)48位的以太網(wǎng)地址即硬件地址來確定接口。內(nèi)核如驅(qū)動(dòng)必須知道目的端的硬件地址才能發(fā)送數(shù)據(jù)。由RFC826我們知道,ARP地址解析協(xié)議就用于將計(jì)算機(jī)的網(wǎng)絡(luò)地址即IP地址轉(zhuǎn)化為物理地址即MAC地址。由于傳統(tǒng)的物理網(wǎng)絡(luò)接入的是物理服務(wù)器,并且整個(gè)網(wǎng)絡(luò)只能為一個(gè)用戶使用,普通CPU就可以處理報(bào)文的ARP請(qǐng)求,但隨著服務(wù)器的虛擬化,以及云計(jì)算多租戶的出現(xiàn),網(wǎng)絡(luò)對(duì)ARP處理的性能需求也大幅提升。采用純CPU方案不僅大量耗費(fèi)CPU資源,而且無法提供可確定的性能,無法防范可能的網(wǎng)絡(luò)攻擊。采用ACP3423的網(wǎng)絡(luò)接口卡方案就可以很好的解決這個(gè)問題。
ACP3423處理ARP報(bào)文主要用到圖1中的網(wǎng)絡(luò)輸入輸出EIOA模塊和流分類MPP模塊,無需內(nèi)部PowerPC核的參與,也就是說ARP流程完全卸載到快速通路來處理。EIOA模塊主要用來從網(wǎng)絡(luò)收發(fā)報(bào)文并執(zhí)行以太CRC校驗(yàn);MPP模塊主要用來根據(jù)以太網(wǎng)類型字段過濾ARP報(bào)文,ARP報(bào)文操作驗(yàn)證諸如請(qǐng)求或者回復(fù),MAC_DA flooding校驗(yàn),對(duì)給定AR_IP尋找對(duì)應(yīng)AC_MAC,生成ARP響應(yīng)報(bào)文等。ARP處理流程圖如圖4所示。
圖4:ARP地址解析協(xié)議處理流程圖。
以具有100K條目的ARP表項(xiàng)為例,Axxia可以處理超過1250萬ARP報(bào)文/秒,即使在過載狀態(tài),Axxia也可以保證確定性的性能,有效防范各種攻擊。
2. DPI(深度報(bào)文檢測(cè))
在多租戶應(yīng)用環(huán)境中,不同等級(jí)客戶會(huì)有不同的服務(wù)等級(jí),此時(shí)傳統(tǒng)的五元組檢查無法提供精細(xì)的控制,這就需要有DPI技術(shù)來對(duì)報(bào)文進(jìn)行深入到7層的檢測(cè)。通過Axxia的流分類引擎MPP,深度報(bào)文檢測(cè)DPI引擎以及內(nèi)置的多核芯片,網(wǎng)絡(luò)接口卡可探測(cè)識(shí)別的應(yīng)用種類超過5500種。
處理流程既可以通過Axxia的MPP引擎檢測(cè)固定特性應(yīng)用,也可以利用DPI引擎和CPU核對(duì)報(bào)文進(jìn)行深度排查?;诠潭ㄌ匦员淼膽?yīng)用識(shí)別主要通過目的端口號(hào)和協(xié)議來識(shí)別應(yīng)用,MPP引擎具有表查找功能;基于特征的應(yīng)用識(shí)別通過DPI引擎來檢查特征時(shí),在需要CPU干預(yù)或做后處理時(shí),Axxia可以將報(bào)文送至內(nèi)部CPU核做進(jìn)一步判別處理,也可以送至任意外部主處理器做進(jìn)一步操作。
本文小結(jié)
在數(shù)據(jù)中心的網(wǎng)絡(luò)產(chǎn)品應(yīng)用中,既要保證交換速度足夠快,滿足某些金融用戶做高頻交易服務(wù)的需求,另一方面要把容量做得更大,更具擴(kuò)展性,滿足像谷歌、Facebook這樣的互聯(lián)網(wǎng)用戶的服務(wù)。LSI公司的異構(gòu)多核通信處理器Axxia通過靈活的架構(gòu)將硬件加速引擎與CPU相結(jié)合,很好解決了通用多核CPU處理效率與核數(shù)目增長(zhǎng)非線性的關(guān)系。Axxia完全卸載業(yè)務(wù)到快速通路的業(yè)務(wù)流程保證了系統(tǒng)具有確定性的性能,同時(shí)可減低系統(tǒng)的成本和功耗?;贏xxia處理器的網(wǎng)絡(luò)接口卡很好的滿足了虛擬化環(huán)境下對(duì)網(wǎng)絡(luò)設(shè)備提出的新需求。
評(píng)論