<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 手機與無(wú)線(xiàn)通信 > 設計應用 > 基于IXP2400的安全網(wǎng)關(guān)實(shí)現研究

基于IXP2400的安全網(wǎng)關(guān)實(shí)現研究

作者: 時(shí)間:2011-04-09 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要: 討論了在IXP2400上應用IPSec實(shí)現安全網(wǎng)關(guān)的一種方案,可為通過(guò)的業(yè)務(wù)流提供較強的安全性。
  關(guān)鍵詞:;;; IPSec

本文引用地址:http://dyxdggzs.com/article/156463.htm

  ,,,,,;,,靈活性和ASIC芯片的執行速度的可編程網(wǎng)絡(luò )處理器的出現,為IPSec機制在線(xiàn)速網(wǎng)關(guān)設備的應用提供了新途徑。
  本文介紹了Intel的IXP2400網(wǎng)絡(luò )處理器的特點(diǎn)、結構以及IPSec體系結構,討論了在IXP2400中以IPSec實(shí)現安全網(wǎng)關(guān)的一種方案。
1的體系結構
  網(wǎng)絡(luò )處理器(Network Processor)是一種面向包結構處理的專(zhuān)用器件。IXP2400是Intel公司第二代高性能網(wǎng)絡(luò )處理器之一,是在第一代網(wǎng)絡(luò )處理器的基礎上,實(shí)現了高性能的并行處理結構,從而能夠實(shí)現復雜的算法、深入查看包內容、進(jìn)行流量管理及以線(xiàn)速(2.4 Gb/s)轉發(fā)包等;并首次采用Intel的超任務(wù)流水線(xiàn)技術(shù),允許將1個(gè)包處理任務(wù)分解為多個(gè)易于銜接的、有序的子任務(wù),并確保微引擎間通信的低時(shí)延。在體系結構上,具有以下特點(diǎn):
  (1)多處理單元結構,各單元獨立運行,并以硬件實(shí)現多線(xiàn)程技術(shù),線(xiàn)程間無(wú)任何需切換開(kāi)銷(xiāo)。
  (2)以軟件流水線(xiàn)的形式分派任務(wù)到各處理單元,各處理單元可并行操作。
  (3)ALU采用優(yōu)化過(guò)的指令,專(zhuān)用于數據包處理,1條指令能在1個(gè)時(shí)鐘周期內完成。
  (4)具有一些完成特殊功能的硬件單元,如CRC校驗、Hash計算、甚至加/解密運算單元,用于加速專(zhuān)用處理。
  IXP2400的體系結構如圖1所示。

  其主要功能部件如下[1]
  (1)XScale:32位的RISC高性能通用處理器,用于初始化、管理整個(gè)芯片,能執行高層網(wǎng)絡(luò )處理任務(wù),如復雜的算法處理、路由表維護等。
  (2)Microengine(MEv2):8個(gè)相互獨立的32 bit可編程微引擎,是處理數據的主要場(chǎng)所,各微引擎間用寄存器通信。每個(gè)微引擎主要包括:1個(gè)存放該微引擎運行程序的控制存儲器、8個(gè)硬件支持的線(xiàn)程、數據通路和控制狀態(tài)寄存器、1個(gè)ALU及1個(gè)CRC單元等。
  (3)存儲器控制器:用于控制訪(fǎng)問(wèn)片外RAM,包括SRAM、DRAM。SRAM主要用于存儲各種控制信息,如路由表等;DRAM主要用作數據處理的緩沖區。
  (4)Scratch:片內的16 KB通用存儲器,存放各種經(jīng)常需快速查找的數據。
  (5)Hash:能對48 bit、64 bit或128 bit的數據作Hash運算,并生成索引。
  此外,IXP2400中還采用了一些如硬件隊列等技術(shù)來(lái)提高ALU的處理速度。
2 IPSec的工作原理
  IPSec的安全服務(wù)是通過(guò)在IP層對所有數據流使用密碼和安全協(xié)議聯(lián)合實(shí)現的,能保證應用程序通信的安全性。它能應用于防火墻和路由器等網(wǎng)關(guān)設備,對上層應用是透明的。
  IPSec利用2種通信安全協(xié)議[2]:認證頭(AH)和封裝安全載荷(ESP)。還有用于密鑰交換和管理的Internet密鑰交換協(xié)議(IKE)[2]和相應的認證/加密算法等協(xié)議組件。AH和ESP既可用于保護一個(gè)完整的IP包,也可以用來(lái)保護IP包中的上層數據。此外,還可以組合使用,實(shí)現不同的安全保護級別。AH和ESP使用2種工作模式[3]:傳輸模式和隧道模式。
  由于IPSec體系設計與算法無(wú)關(guān),因而可以為不同的通信對等體選擇不同的安全算法。為維護這些動(dòng)態(tài)存在的安全策略,在實(shí)現IPSec時(shí),需要定義相應的安全策略數據庫(SPD),其中的每1條記錄就是1條安全策略。
  為正確處理具有IPSec功能的IP包,IPSec通信對等體需要將經(jīng)協(xié)商一致后所采用的安全協(xié)議、工作模式、加密/認證算法、密鑰等信息與所建立的鏈路結合起來(lái),才能為不同的數據流提供不同的安全保護。其實(shí)現方法就是在IPSec通信對等體間建立安全關(guān)聯(lián)(SA)。SA是通信對等體之間為進(jìn)行安全通信而協(xié)商的一種約定。SA可由1個(gè)三元組唯一標識,表示為安全參數索引(SPI),目的IP,安全協(xié)議標識>。
  為維護所有活動(dòng)的SA參數,在實(shí)現IPSec時(shí),需要定義相應的SA數據庫(SAD)。IKE的主要功能就是在IPSec通信對等體間動(dòng)態(tài)進(jìn)行通信參數協(xié)商[4],并提供經(jīng)認證的密鑰信息,從而建立起SA,對其進(jìn)行維護和管理。
3 IPSec在IXP2400中的實(shí)現
3.1 程序設計
  網(wǎng)絡(luò )應用程序中,網(wǎng)絡(luò )信息的處理通常包含在以下2個(gè)邏輯層面中[5]
  (1)數據層面:負責高速處理、轉發(fā)數據包。因所有要處理的數據包都必須通過(guò)該層面,故其性能直接影響到整個(gè)程序的性能。
  (2)控制層面:主要處理協(xié)議信息,并負責創(chuàng )建、配置及更新各種表和數據集,供數據層面查找使用。如處理含路由信息的RIP、OSPF包,然后更新IPv4轉發(fā)表,供數據層面使用。
  網(wǎng)絡(luò )處理器就是完成這2個(gè)層面的功能。
  在IXP2400中,將數據層面分為快速通道和慢速通道??焖偻ǖ乐饕筛魑⒁鏄嫵?,完成絕大多數包的正常處理,如IP包轉發(fā)等;慢速通道主要由XScale構成,處理少數需復雜處理的包,如異常包、包分段等??紤]到處理速度的要求,在快速通道中通常將處理任務(wù)以軟件流水線(xiàn)形式分配到多個(gè)微引擎中實(shí)現,每個(gè)微引擎以編程方式實(shí)現所指定的任務(wù)。當一個(gè)微引擎完成其任務(wù)后,將包傳到下一微引擎繼續處理,直至完成整個(gè)任務(wù)。每個(gè)微引擎的流水線(xiàn)又可由若干流水線(xiàn)級構成,這些流水線(xiàn)級是順序執行的。由于每個(gè)微引擎有8個(gè)線(xiàn)程并發(fā)(甚至有數個(gè)微引擎的線(xiàn)程在并行)執行相同任務(wù),因而要按序正確處理數據包,就必須考慮各線(xiàn)程訪(fǎng)問(wèn)臨界區代碼的同步問(wèn)題。為保證指令盡可能少,以達到線(xiàn)速要求,一種處理方法就是:在一個(gè)微引擎中讓各線(xiàn)程順序執行,并且每個(gè)線(xiàn)程順序執行所有流水線(xiàn)級。如某個(gè)流水線(xiàn)級的功能對所處理的包并不要求,則在執行到該流水線(xiàn)級時(shí)必須進(jìn)入等待,當線(xiàn)程下一次獲得運行時(shí)再執行下一流水線(xiàn)級;如有數個(gè)微引擎在并行執行同一任務(wù),則必須考慮微引擎間的執行順序??梢?jiàn),將少數包要求的復雜處理任務(wù)交給XScale,能有效減少微引擎不必要的等待時(shí)間,加快數據的處理速度。
  對于控制層面,因所要處理信息復雜、廣泛,涉及的指令范圍廣,數據層面中的快速通道是難以處理的,因而應放在XScale中實(shí)現[5]。
  通常,將快速通道處理任務(wù)按邏輯劃分為若干功能塊,在可編程的微引擎中,每一塊實(shí)現稱(chēng)為一個(gè)微功能塊(microblock)。而將運行在XScale中的微功能塊對應的慢速通道處理部分稱(chēng)為核心組件(Core Component),完成相應微功能塊的配置、初試化及維護共享數據結構,并處理微功能塊發(fā)送的異常包或信息。此外,各種路由協(xié)議也運行在XScale中,處理各種協(xié)議信息。這樣實(shí)現了數據層面和控制層面的分離,兩層面間可用標準API通信。
  將所有任務(wù)放在一個(gè)IXP2400中實(shí)現,可能滿(mǎn)足不了線(xiàn)速要求,因而通常將任務(wù)分配到2個(gè)IXP2400來(lái)實(shí)現。這樣對于需要較多指令的微功能塊,可指定多個(gè)微引擎并行運行,適當增加每個(gè)微引擎的執行時(shí)間。
3.2 系統功能
  綜上述分析,實(shí)現方案的系統框圖如圖2所示。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>