日韩欧美自拍在线观看-欧美精品在线看片一区二区-高清性视频一区二区播放-欧美日韩女优制服另类-国产精品久久久久久av蜜臀-成人在线黄色av网站-肥臀熟妇一区二区三区-亚洲视频在线播放老色-在线成人激情自拍视频

淺談在IXP2400中以IPSec實(shí)現(xiàn)安全網(wǎng)關(guān)的一種方案

出處:維庫電子市場(chǎng)網(wǎng) 發(fā)布于:2023-06-21 14:06:26

  “Internet 協(xié)議安全性 (IPSec)”是一種開放標(biāo)準(zhǔn)的框架結(jié)構(gòu),通過使用加密的安全服務(wù)以確保在 Internet 協(xié)議 (IP) 網(wǎng)絡(luò)上進(jìn)行保密而安全的通訊。Microsoft? Windows? 2000、Windows XP 和 Windows Server 2003 家族實(shí)施 IPSec 是基于“Internet 工程任務(wù)組 (IETF)”IPSec 工作組開發(fā)的標(biāo)準(zhǔn)。IPSEC是一套比較完整成體系的VPN技術(shù),它規(guī)定了一系列的協(xié)議標(biāo)準(zhǔn)。如果不深入探究IPSEC的過于詳細(xì)的內(nèi)容,我們對(duì)于IPSEC大致按照以下幾個(gè)方面理解。

  IPSec是一種基于IP層的通信安全機(jī)制,是目前一種可為任何形式的通信提供安全保障的協(xié)議,因而實(shí)現(xiàn)具有IPSec功能的網(wǎng)關(guān)能保證IP層通信的安全。然而,用IPSec對(duì)數(shù)據(jù)包進(jìn)行、加/解密處理等,都是比較耗費(fèi)資源的工作,容易使具有IPSec功能的網(wǎng)關(guān)設(shè)備出現(xiàn)瓶頸問題;同時(shí),基于ASIC研發(fā)具有這類復(fù)雜功能的新產(chǎn)品更為困難。因此,傳統(tǒng)的網(wǎng)絡(luò)解決方案已在處理速度和靈活性兩方面受到挑戰(zhàn)。具有通用CPU的靈活性和ASIC芯片的執(zhí)行速度的可編程網(wǎng)絡(luò)處理器的出現(xiàn),為IPSec機(jī)制在線速網(wǎng)關(guān)設(shè)備的應(yīng)用提供了新途徑。

  本文介紹了Intel的IXP2400網(wǎng)絡(luò)處理器的特點(diǎn)、結(jié)構(gòu)以及IPSec體系結(jié)構(gòu),討論了在IXP2400中以IPSec實(shí)現(xiàn)安全網(wǎng)關(guān)的一種方案。

1  IXP2400的體系結(jié)構(gòu)

  網(wǎng)絡(luò)處理器(Network Processor)是一種面向包結(jié)構(gòu)處理的專用器件。IXP2400是Intel公司第二代高性能網(wǎng)絡(luò)處理器之一,是在代網(wǎng)絡(luò)處理器的基礎(chǔ)上,實(shí)現(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個(gè)包處理任務(wù)分解為多個(gè)易于銜接的、有序的子任務(wù),并確保微引擎間通信的低時(shí)延。


  其主要功能部件如下[1]:

 ?。?)XScale:32位的RISC高性能通用處理器,用于初始化、管理整個(gè)芯片,同時(shí)能執(zhí)行高層網(wǎng)絡(luò)處理任務(wù),如復(fù)雜的算法處理、路由表維護(hù)等。

 ?。?)Microengine(MEv2):8個(gè)相互獨(dú)立的32 bit可編程微引擎,是處理數(shù)據(jù)的主要場(chǎng)所,各微引擎間用寄存器通信。每個(gè)微引擎主要包括:1個(gè)存放該微引擎運(yùn)行程序的控制存儲(chǔ)器、8個(gè)硬件支持的線程、數(shù)據(jù)通路和控制狀態(tài)寄存器、1個(gè)ALU及1個(gè)CRC單元等。

 ?。?)存儲(chǔ)器控制器:用于控制訪問片外RAM,包括SRAM、DRAM。SRAM主要用于存儲(chǔ)各種控制信息,如路由表等;DRAM主要用作數(shù)據(jù)處理的緩沖區(qū)。

 ?。?)Scratch:片內(nèi)的16 KB通用存儲(chǔ)器,存放各種經(jīng)常需快速查找的數(shù)據(jù)。

 ?。?)Hash:能對(duì)48 bit、64 bit或128 bit的數(shù)據(jù)作Hash運(yùn)算,并生成索引。

  此外,IXP2400中還采用了一些如硬件隊(duì)列等技術(shù)來提高ALU的處理速度。

2  IPSec的工作原理

  IPSec的安全服務(wù)是通過在IP層對(duì)所有數(shù)據(jù)流使用密碼和安全協(xié)議聯(lián)合實(shí)現(xiàn)的,能保證應(yīng)用程序通信的安全性。它能應(yīng)用于防火墻和路由器等網(wǎng)關(guān)設(shè)備,對(duì)上層應(yīng)用是透明的。

  由于IPSec體系設(shè)計(jì)與算法無關(guān),因而可以為不同的通信對(duì)等體選擇不同的安全算法。為維護(hù)這些動(dòng)態(tài)存在的安全策略,在實(shí)現(xiàn)IPSec時(shí),需要定義相應(yīng)的安全策略數(shù)據(jù)庫(SPD),其中的每1條記錄就是1條安全策略。

  為正確處理具有IPSec功能的IP包,IPSec通信對(duì)等體需要將經(jīng)協(xié)商一致后所采用的安全協(xié)議、工作模式、加密/算法、密鑰等信息與所建立的鏈路結(jié)合起來,才能為不同的數(shù)據(jù)流提供不同的安全保護(hù)。其實(shí)現(xiàn)方法就是在IPSec通信對(duì)等體間建立安全關(guān)聯(lián)(SA)。SA是通信對(duì)等體之間為進(jìn)行安全通信而協(xié)商的一種約定。

3  IPSec在IXP2400中的實(shí)現(xiàn)

3.1  程序設(shè)計(jì)

  網(wǎng)絡(luò)應(yīng)用程序中,網(wǎng)絡(luò)信息的處理通常包含在以下2個(gè)邏輯層面中[5]:

  (1)數(shù)據(jù)層面:負(fù)責(zé)高速處理、轉(zhuǎn)發(fā)數(shù)據(jù)包。因所有要處理的數(shù)據(jù)包都必須通過該層面,故其性能直接影響到整個(gè)程序的性能。

  (2)控制層面:主要處理協(xié)議信息,并負(fù)責(zé)創(chuàng)建、配置及更新各種表和數(shù)據(jù)集,供數(shù)據(jù)層面查找使用。如處理含路由信息的RIP、OSPF包,然后更新IPv4轉(zhuǎn)發(fā)表,供數(shù)據(jù)層面使用。

  在IXP2400中,將數(shù)據(jù)層面分為快速通道和慢速通道??焖偻ǖ乐饕筛魑⒁鏄?gòu)成,完成絕大多數(shù)包的正常處理,如IP包轉(zhuǎn)發(fā)等;慢速通道主要由XScale構(gòu)成,處理少數(shù)需復(fù)雜處理的包,如異常包、包分段等。每個(gè)微引擎的流水線又可由若干流水線級(jí)構(gòu)成,這些流水線級(jí)是順序執(zhí)行的。如某個(gè)流水線級(jí)的功能對(duì)所處理的包并不要求,則在執(zhí)行到該流水線級(jí)時(shí)必須進(jìn)入等待,當(dāng)線程下獲得運(yùn)行時(shí)再執(zhí)行下一流水線級(jí);如有數(shù)個(gè)微引擎在并行執(zhí)行同一任務(wù),則必須考慮微引擎間的執(zhí)行順序。可見,將少數(shù)包要求的復(fù)雜處理任務(wù)交給XScale,能有效減少微引擎不必要的等待時(shí)間,加快數(shù)據(jù)的處理速度。

  通常,將快速通道處理任務(wù)按邏輯劃分為若干功能塊,在可編程的微引擎中,每一塊實(shí)現(xiàn)稱為一個(gè)微功能塊(microblock)。而將運(yùn)行在XScale中的微功能塊對(duì)應(yīng)的慢速通道處理部分稱為組件(Core Component),完成相應(yīng)微功能塊的配置、初試化及維護(hù)共享數(shù)據(jù)結(jié)構(gòu),并處理微功能塊發(fā)送的異常包或信息。此外,各種路由協(xié)議也運(yùn)行在XScale中,處理各種協(xié)議信息。這樣實(shí)現(xiàn)了數(shù)據(jù)層面和控制層面的分離,兩層面間可用標(biāo)準(zhǔn)API通信。

  將所有任務(wù)放在一個(gè)IXP2400中實(shí)現(xiàn),可能滿足不了線速要求,因而通常將任務(wù)分配到2個(gè)IXP2400來實(shí)現(xiàn)。這樣對(duì)于需要較多指令的微功能塊,可指定多個(gè)微引擎并行運(yùn)行,適當(dāng)增加每個(gè)微引擎的執(zhí)行時(shí)間。

3.2  系統(tǒng)功能

  其中,接收微功能模塊(Receive Microblock)和發(fā)送微功能模塊(Transmit Microblock)用于數(shù)據(jù)包的接收和發(fā)送,發(fā)送隊(duì)列(Transmit Queues )用于數(shù)據(jù)包的隊(duì)列管理、調(diào)度,IP轉(zhuǎn)發(fā)微功能模塊(Forwarding Microblock)用于一般IP包的簡(jiǎn)單轉(zhuǎn)發(fā)(包括路由通告等),組件是相關(guān)微功能塊的慢速通道處理部分,如異常處理等;XScale中還運(yùn)行嵌入式OS、各種協(xié)議及高層處理程序等。

  IPSec處理微功能模塊(Processing Microblock)是系統(tǒng)的主要部分,包括以下主要功能:協(xié)議、AH/ESP處理模塊、SPD、SAD。其中,AH/ESP處理程序負(fù)責(zé)根據(jù)SA中定義的安全服務(wù)按照AH/ESP協(xié)議對(duì)數(shù)據(jù)包進(jìn)行處理;SPD和SAD以適當(dāng)?shù)牟檎冶斫Y(jié)構(gòu)存放在片外的SRAM中,但該微功能塊中有各自的快速訪問接口,供其查詢數(shù)據(jù)使用(在XScale中也有訪問這2個(gè)數(shù)據(jù)庫的接口,以便維護(hù)其中的數(shù)據(jù));協(xié)議主要是協(xié)調(diào)以上各部分的工作,解釋獲取的IP包等。

3.3  數(shù)據(jù)處理過程

  IPSec模塊是整個(gè)IPSec系統(tǒng)的,處理包的過程如下:

 ?。?)線程摘取1個(gè)IP包,判斷是否是經(jīng)分段的,若是,該線程進(jìn)入等待狀態(tài),下一線程開始運(yùn)行。在所有分段到達(dá)并重組后,進(jìn)入下一步處理。

  (2)使用選擇符檢索SPD,若查找失敗,拋棄包;若返回的動(dòng)作是“拋棄”,拋棄該包。對(duì)于不包含IPSec頭的包,若返回的是“繞過”,將包交給IP轉(zhuǎn)發(fā)模塊處理(若目的IP是本機(jī),將其交到XScale中,由相應(yīng)程序處理,否則轉(zhuǎn)發(fā)到下一節(jié)點(diǎn));若返回的是“應(yīng)用”,進(jìn)入(4)處理。對(duì)于包含IPSec頭的包,若返回的是“應(yīng)用”,且包的目的地是本機(jī),則進(jìn)入(3)處理;若目的地不是本機(jī),則進(jìn)入(4)處理。

 ?。?)用檢索SPD返回的三元組搜索SAD,若沒有匹配的SA,則丟棄該包;否則,按SA中的定義進(jìn)行處理,主要包括:

 ?、僦匕l(fā)檢查:用序列號(hào)及溢出標(biāo)志、重發(fā)窗口大小檢查包是否有效。

 ?、跀?shù)據(jù)包驗(yàn)證:用指定的算法及密鑰,驗(yàn)證數(shù)據(jù)包。若ESP沒選擇,則不做。

 ?、劢饷埽喝羰荅SP協(xié)議包,則用指定的加密算法及密鑰,解密數(shù)據(jù)包。

  以上處理失敗,則丟棄該數(shù)據(jù)包;若包中還有IPSec頭,需選擇新的選擇符,重復(fù)(2)、(3)。

 ?、苤貥?gòu)IP包交給IP轉(zhuǎn)發(fā)模塊處理。

 ?。?)用檢索SPD返回的三元組搜索SAD,若沒有匹配的SA,線程向XScale發(fā)出IKE的服務(wù)請(qǐng)求,由IKE服務(wù)程序與通信對(duì)等體協(xié)商建立相應(yīng)的SA,并記入SAD。具備SA后,有序進(jìn)行如下處理:

 ?、俑鶕?jù)SA中指定的安全協(xié)議及操作模式,調(diào)用對(duì)應(yīng)的處理模塊,為數(shù)據(jù)包生成協(xié)議頭。

 ?、谌舨捎脗鬏斈J?,只需將原IP頭中的協(xié)議類型改為上一步中所用協(xié)議;若是隧道模式,則需要以隧道兩端的IP作源、目的IP和上一步中所用協(xié)議,生成新的IP頭,封裝原IP包。

 ?、蹖?duì)ESP協(xié)議,按SA中指定的加密算法和密鑰,對(duì)包的相應(yīng)部分加密。

  ④按SA中指定的算法,對(duì)包的相應(yīng)部分進(jìn)行。

 ?、菪薷挠嘘P(guān)數(shù)據(jù),重新計(jì)算校驗(yàn)和;若需要分段處理,將包交給XScale中處理。

 ?。?)經(jīng)以上處理后,將包安排到對(duì)應(yīng)端口的隊(duì)列中,經(jīng)調(diào)度后由傳送模塊經(jīng)重新添加MAC幀頭后發(fā)送。

  值得一提的是,在以上過程中,由于是多線程處理,因而在1個(gè)微引擎中,一個(gè)線程進(jìn)入等待狀態(tài),另一個(gè)線程立刻運(yùn)行,這一過程由編程者控制完成的。下面的程序段是數(shù)據(jù)處理過程的主要控制部分:

  while(1){

  dl_source();                    //從接收線程取下包描述符

  if(dlBufHandle= =0){ continue; }

  Ethernet_validate();            // 驗(yàn)證這個(gè)包是一個(gè)有效的以太網(wǎng)頭

  Ethernet_strip_header();                   //去掉以太網(wǎng)頭

  IPSec_process();                          //IPSec處理

  IPv4_five_tuple_class();           //進(jìn)行IPv4 classifier的轉(zhuǎn)發(fā)

  If(dlNextBlock= =IX_DROP){                 //clNextBlock全局變量,

  //表示下一個(gè)

  Goto drop;                     //跳轉(zhuǎn)到丟棄包的處理模塊

  }

  Ethernet_add_header();                    //添加新的以太網(wǎng)頭

  D1_sink();                   //將處理后的包描述符放入發(fā)送緩沖區(qū)中

  Drop:

  Dl_BufDrop(dlBufHandle);                    //丟棄包的處理

  }

版權(quán)與免責(zé)聲明

凡本網(wǎng)注明“出處:維庫電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

廣告
OEM清單文件: OEM清單文件
*公司名:
*聯(lián)系人:
*手機(jī)號(hào)碼:
QQ:
有效期:

掃碼下載APP,
一鍵連接廣大的電子世界。

在線人工客服

買家服務(wù):
賣家服務(wù):
技術(shù)客服:

0571-85317607

網(wǎng)站技術(shù)支持

13606545031

客服在線時(shí)間周一至周五
9:00-17:30

關(guān)注官方微信號(hào),
第一時(shí)間獲取資訊。

建議反饋

聯(lián)系人:

聯(lián)系方式:

按住滑塊,拖拽到最右邊
>>
感謝您向阿庫提出的寶貴意見,您的參與是維庫提升服務(wù)的動(dòng)力!意見一經(jīng)采納,將有感恩紅包奉上哦!