<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

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

          本文引用地址:http://www.ex-cimer.com/article/156463.htm

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

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


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();