IPSec加密卡與CPU協(xié)同的用戶面數(shù)據(jù)處理方法
【技術領域】
[0001]本發(fā)明涉及移動通信領域,尤其是涉及為保密而安全的通訊提供一種IPSec加密卡與CHJ協(xié)同工作的方法。
【背景技術】
[0002]隨著無線通信技術的進步,無線網(wǎng)絡設備的不斷升級改造,對于LTE(3GPP長期演進技術)基站用戶面數(shù)據(jù)處理要求越來越高。另一方面,網(wǎng)絡威脅日益嚴重,LTE基站所承載的用戶數(shù)據(jù)越來越重要,這就要求用戶的數(shù)據(jù)能夠經(jīng)過加密后密文傳輸。Internet協(xié)議安全性(IPSec)是一種開放標準的框架結構,通過使用加密的安全服務以確保在Internet協(xié)議(IP)網(wǎng)絡上進行保密而安全的通訊。目前通信領域比較成熟的加密方法是采用IPSec標準的加密技術,IPSec標準得到國際上幾乎所有主流網(wǎng)絡和安全供應商的鼎力支持,并且正在不斷豐富完善。LTE基站用戶面的數(shù)據(jù)主要是承載于UDP(用戶數(shù)據(jù)報協(xié)議)之上的GTPU(隧道協(xié)議)業(yè)務,對于GTPU加密報文,傳統(tǒng)的處理方式是在LTE控制信道建立完成時,使用開源的IPsec協(xié)議(openswan或者strongswan)來與IPSec網(wǎng)關建立一個IPSec隧道,當UE發(fā)送數(shù)據(jù)時,LTE基站先根據(jù)LTE協(xié)議將用戶面數(shù)據(jù)構造成GTPU報文,GTPU報文再經(jīng)過加密發(fā)送到網(wǎng)絡上去。當有數(shù)據(jù)要發(fā)往UE時,LTE基站收到密文信息后,首先進行解密,解密出來的數(shù)據(jù)再交給LTE協(xié)議棧處理。從用戶面數(shù)據(jù)的轉發(fā)流程來看,涉及到GTPU報文的組裝,IPSecIKE協(xié)議,用戶面數(shù)據(jù)的加密。
[0003]目前可選的LTE數(shù)據(jù)面加密解決方案有以下幾種:
[0004]I)純軟件實現(xiàn):CPU
[0005]典型配置:
[0006]通用CPU
[0007]實現(xiàn)方法
[0008]軟件實現(xiàn)LTE協(xié)議棧
[0009]軟件實現(xiàn)IPSec IKE協(xié)議
[0010]軟件實現(xiàn)IPSec加解密算法
[0011]優(yōu)點:
[0012]低成本
[0013]協(xié)議擴展性強
[0014]問題:
[0015]CPU資源耗費大
[0016]數(shù)據(jù)吞吐量小
[0017]2)硬件輔助實現(xiàn):CPU+協(xié)處理器
[0018]典型配置:
[0019]支持Sec協(xié)處理器的CPU(例如PowerPCP4080)
[0020]實現(xiàn)方法[0021 ]軟件實現(xiàn)LTE協(xié)議棧
[0022]軟件實現(xiàn)IPSec IKE協(xié)議
[0023]協(xié)處理器實現(xiàn)IPSec加解密算法
[0024]優(yōu)點:
[0025]低成本
[0026]處理靈活
[0027]問題:
[0028]接口可擴展性受限于PowerPC平臺[0〇29] 協(xié)處理器的性能受限于PowerPC平臺
[0030]3)硬件實現(xiàn):加密卡+CPU
[0031]典型配置:
[0032]通用CPU,加密卡
[0033]實現(xiàn)方法
[0034]軟件實現(xiàn)LTE協(xié)議棧
[0035]加密卡實現(xiàn)IPSec IKE協(xié)議
[0036]加密卡實現(xiàn)IPSec加解密算法
[0037]優(yōu)點:
[0038]CPU資源消耗少
[0039]數(shù)據(jù)吞吐量大
[0040]問題:
[0041 ]支持IKE協(xié)議的加密卡成本高
[0042]IKE協(xié)議可擴展性受限于加密卡
[0043]由于基站設備處在LTE網(wǎng)絡的末端節(jié)點,從空口上來的單用戶數(shù)據(jù)量理論上能到達到100M,這就要求基站上行到核心網(wǎng)的業(yè)務端口至少千兆網(wǎng)口,LTE基站同時做上下行業(yè)務時,如果使用CPU進行軟件加解密,即達不到千兆流量的加解密性能,又會影響LTE協(xié)議的實時處理,因此純軟件實現(xiàn)的方案I不可行,
[0044]方案2中,CPU自帶IPSec的協(xié)處理器的方案,其靈活程度低,且IPSec協(xié)處理器的性能與CPU相關,以P4080為例,協(xié)處理器的性能為400Mbps,還達不到千兆線速的能力,另外,其協(xié)處理器的配置、使用與CPU緊密相關,其通用性不高,因此方案2不可行。
[0045]如果選擇帶專門的加密卡的方案,由于加密卡需要能夠與對端的IPSec網(wǎng)關進行IKE協(xié)商,需要單獨設置一個IP,而基站CPU本身也需要一個對外的IP,但是運營商建網(wǎng)設計中,一個基站只能夠配置一個IP地址,所以加密卡和CPU之間會存在IP沖突,且?guī)в蠭KE功能的加密卡成本高,不適合基站這種部署眾多的末端設備,因此方案3不可行。
【發(fā)明內(nèi)容】
[0046]本發(fā)明針對現(xiàn)有技術存在的問題,提出了一種基于通用CPU和通用IPSec加密卡的高帶寬的數(shù)據(jù)加解密設計方法,其目的是在LTE基站用戶面加密數(shù)據(jù)處理過程中,解決CPU消耗高,加解密性能低和設計的通用性問題。
[0047]本發(fā)明的技術方案提供一種IPSec加密卡與CPU協(xié)同的用戶面數(shù)據(jù)處理方法,用于LTE基站用戶面數(shù)據(jù)處理,設置CPU、加密卡以及做數(shù)據(jù)分流的交換芯片,所述加密卡為IPSec加密卡;
[0048]CPU通過SMI總線控制交換芯片,通過I2C總線控制和配置加密卡,CPU和加密卡之間通過PCIE接口傳遞數(shù)據(jù),交換芯片與CPU和加密卡之間分別采用SGMII接口傳遞數(shù)據(jù),交換芯片通過RGMII接口連接到PHY器件;
[0049]初始化過程包括以下子步驟,
[0050]步驟1.1,LTE系統(tǒng)啟動時,CPU通過SMI總線控制交換芯片,在交換芯片與加密卡連接的SGMII端口上禁止MAC地址學習,使得加密卡發(fā)出來的IP報文,其MAC地址不會被記錄到交換芯片中;
[0051 ] 步驟1.2,LTE系統(tǒng)獲取到IP地址后,CPU通過I2C總線控制加密卡,將CPU上的網(wǎng)口IP地址和MAC地址配置到加密卡的網(wǎng)口上;
[0052]步驟1.3,LTE系統(tǒng)與安全網(wǎng)關建立IPSec隧道時,CPU與安全網(wǎng)關進行IKE協(xié)商;
[0053]步驟1.4,CPU將步驟1.3協(xié)商出來的密鑰、SA和加解密算法通過I2C總線配置到加密卡中;
[0054]步驟1.5,CPU通過SMI總線控制交換芯片,配置ACL規(guī)則到交換芯片上,ACL規(guī)則包括在交換芯片與PHY器件相連的RGMII接口上過濾IP協(xié)議字段為ESP的報文,強制轉發(fā)到加密卡上;
[0055]數(shù)據(jù)往返過程包括以下子步驟,
[0056]步驟2.1,當一個加密的GTPU報文到達基站時,其MAC地址填充的是CPU和加密卡的MAC地址,則在交換芯片上首先查詢訪問控制列表ACL,如果匹配到是一個ESP的加密報文,會被轉發(fā)到加密卡上;
[0057]步驟2.2,加密卡收到ESP的加密報文后,根據(jù)配置的加解密算法和密鑰進行解密,然后將解密后的明文放到PCIE指定空間,由PCIE接口發(fā)送通知中斷doorbel I到CPU;
[0058]步驟2.3,CPU收到通知中斷doorbell后,響應中斷,從PCIE指定空間讀取解密后的GTPU報文,并送給CPU上的LTE協(xié)議棧處理;
[0059]步驟2.4,CPU的LTE協(xié)議棧發(fā)送用戶數(shù)據(jù)到UE,UE回復用戶數(shù)據(jù)到基站后,CPU將回應消息組裝成GITU報文后,判斷是需要向核心網(wǎng)發(fā)送的加密報文時,就將GITU明文放到PCIE對應的發(fā)送空間上,向加密卡發(fā)送通知中斷doorbell;
[0060]步驟2.5,加密卡收到通知中斷doorbell后,從PCIE指定空間讀取需要加密的GTPU明文,根據(jù)配置的密鑰和加解密算法進行加密;
[0061 ]步驟2.6,交換芯片從加密卡相連的端口收到步驟2.5所得加密報文后會查詢MAC地址表發(fā)往核心網(wǎng)。
[0062]而且,在初始化過程之后,數(shù)據(jù)往返過程之前,進行ARP報文交互,交換芯片收到CPU和加密卡的ARP響應報文時,基于在交換芯片與加密卡連接的SGMII端口上禁止MAC地址學習,只記錄CPU相應的MAC地址轉發(fā)表。
[0063]而且,所述交換芯片為QCA8334芯片。
[0064]本發(fā)明對比傳統(tǒng)的加密數(shù)據(jù)處理技術有以下創(chuàng)新點:
[0065]1.CPU處理IPSec的IKE協(xié)議,加密卡處理報文加解密,實現(xiàn)了協(xié)議與數(shù)據(jù)處理分離,既保障了協(xié)議的靈活性,又提高了性能。
[0066]2.利用硬件架構設計避免CPU和IPSec加密卡的IP/MAC地址沖突,解決了基站只能擁有I個IP地址的問題。
[0067]3.使用CPU處理IKE協(xié)議,降低了對IPSec加密卡的要求,僅只用支持加解密算法,通用性更強。
【附圖說明】
[0068]圖1為本發(fā)明實施例中硬件架構設計的結構圖;
[0069]圖2為本發(fā)明實施例中初始化過程流程圖;
[0070]圖3為本發(fā)明實施例中交換芯片的MAC地址學習過程。
【具體實施方式】
[0071]本發(fā)明主要針對LTE基站用戶面加密數(shù)據(jù)處理的優(yōu)化,適用但并不限于LTE基站,本方案同樣適用于其它在嵌入式系統(tǒng)中CPU和功能芯片之間協(xié)同處理數(shù)據(jù)的設計方法。該方法能滿足無線通信基站建設中高速加密數(shù)據(jù)傳輸?shù)男枨?,有效減少CPU資源的占用,本方法充分利用高性能的IPSec加密卡、CPU和加密卡協(xié)同工作的硬件架構設計,交換芯片的業(yè)務硬件分流等一系列前沿技術,能有效減少CPU資源調(diào)度、提升處理性能。
[0072]以下結合附圖和實施例詳細說明本發(fā)明技術方案。
[0073]本發(fā)明實施例提供一種基于Linux系統(tǒng)的LTE基站用戶面加解密數(shù)據(jù)性能優(yōu)化方法,利用IPSec加密卡處理用戶面加解密數(shù)據(jù)提升性能,利用硬件架構設計避免CPU和IPSec加密卡的IP/MAC地址沖突,利用CPU的開源IKE協(xié)議對IPSec加密卡做控制,從而實現(xiàn)數(shù)據(jù)加解密的控制與數(shù)據(jù)分離;包括硬件架構設計、初始化過程和LTE用戶面數(shù)據(jù)處理過程三部分內(nèi)容。
[0074]參見圖1,本發(fā)明實施例的硬件架構設計包括:CPU、IPSec加密卡以及做數(shù)據(jù)分流的交換芯片(switch)?,F(xiàn)有的硬件架構中只會存在CPU(由CPU做軟加密),或者只有IPSec加密卡(沒有IKE協(xié)議處理功能),而本發(fā)明打破了這種常規(guī)設計,并增加了交互芯片。CPU和IPSec、交換芯片之間分別建立連接,IPSec和交換芯片之間也建立連接。
[0075]硬件架構設計中,CPU和IPSec加密卡都通過一個交換芯片連接到外部網(wǎng)絡,CPU通過SMI總線控制交換芯片(本實施例中采用高通QCA8334交換芯片),通過I2C總線控制和配置加密卡,CPU和加密卡之間通過PCIE接口傳遞數(shù)據(jù)。QCA8334交換芯片與CPU和加密卡之間分別采用SGMII接口傳遞數(shù)據(jù),QCA8334交換芯片通過RGMII接口連接到PHY(物理層)器件,最終從PHY器件經(jīng)mdi總線輸出到整機面板上RJ45 口。具體實施時,具體連接可參見相應的接口協(xié)議。RGMII是屬于mdi總線上的一個通信標準。例如,具體實施時QCA8334交換芯片通過其端口 port I連接CPU、通過其端口 port6連接加密卡,實現(xiàn)傳遞數(shù)據(jù),通過portO連接PHY器件,實現(xiàn)連接到外部網(wǎng)絡。為簡化起見,將交換芯片與CPU、加密卡之間傳遞數(shù)據(jù)的端口分別記為P2、P3,將交換芯片與PHY器件之間與外部網(wǎng)絡傳遞數(shù)據(jù)的端口記為Pl。