久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 手機與無線通信 > 設計應用 > 基于IXP2400的安全網關實現研究

基于IXP2400的安全網關實現研究

作者: 時間:2011-04-09 來源:網絡 收藏

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

  其中,接收微功能模塊(Receive Microblock)和發送微功能模塊(Transmit Microblock)用于數據包的接收和發送,發送隊列(Transmit Queues )用于數據包的隊列管理、調度,IP轉發微功能模塊(Forwarding Microblock)用于一般IP包的簡單轉發(包括路由通告等),核心組件是相關微功能塊的慢速通道處理部分,如異常處理等;XScale中還運行嵌入式OS、各種協議及高層處理程序等。
  IPSec處理微功能模塊(Processing Microblock)是系統的主要部分,包括以下主要功能:協議核心、AH/ESP處理模塊、SPD、SAD。其中,AH/ESP處理程序負責根據SA中定義的安全服務按照AH/ESP協議對數據包進行處理;SPD和SAD以適當的查找表結構存放在片外的SRAM中,但該微功能塊中有各自的快速訪問接口,供其查詢數據使用(在XScale中也有訪問這2個數據庫的接口,以便維護其中的數據);協議核心主要是協調以上各部分的工作,解釋獲取的IP包等。
3.3 數據處理過程
  IPSec模塊是整個IPSec系統的核心,處理包的過程如下:
  (1)線程摘取1個IP包,判斷是否是經分段的,若是,該線程進入等待狀態,下一線程開始運行。在所有分段到達并重組后,進入下一步處理。
  (2)使用選擇符檢索SPD,若查找失敗,拋棄包;若返回的動作是“拋棄”,拋棄該包。對于不包含IPSec頭的包,若返回的是“繞過”,將包交給IP轉發模塊處理(若目的IP是本機,將其交到XScale中,由相應程序處理,否則轉發到下一節點);若返回的是“應用”,進入(4)處理。對于包含IPSec頭的包,若返回的是“應用”,且包的目的地是本機,則進入(3)處理;若目的地不是本機,則進入(4)處理。
  (3)用檢索SPD返回的三元組搜索SAD,若沒有匹配的SA,則丟棄該包;否則,按SA中的定義進行處理,主要包括:
  ①重發檢查:用序列號及溢出標志、重發窗口大小檢查包是否有效。
  ②數據包驗證:用指定的認證算法及密鑰,驗證數據包。若ESP沒選擇認證,則不做。
  ③解密:若是ESP協議包,則用指定的加密算法及密鑰,解密數據包。
  以上處理失敗,則丟棄該數據包;若包中還有IPSec頭,需選擇新的選擇符,重復(2)、(3)。
  ④重構IP包交給IP轉發模塊處理。
  (4)用檢索SPD返回的三元組搜索SAD,若沒有匹配的SA,線程向XScale發出IKE的服務請求,由IKE服務程序與通信對等體協商建立相應的SA,并記入SAD。具備SA后,有序進行如下處理:
  ①根據SA中指定的安全協議及操作模式,調用對應的處理模塊,為數據包生成協議頭。
  ②若采用傳輸模式,只需將原IP頭中的協議類型改為上一步中所用協議;若是隧道模式,則需要以隧道兩端的IP作源、目的IP和上一步中所用協議,生成新的IP頭,封裝原IP包。
  ③對ESP協議,按SA中指定的加密算法和密鑰,對包的相應部分加密。
  ④按SA中指定的認證算法,對包的相應部分進行認證。
  ⑤修改有關數據,重新計算校驗和;若需要分段處理,將包交給XScale中處理。
  (5)經以上處理后,將包安排到對應端口的隊列中,經調度后由傳送模塊經重新添加MAC幀頭后發送。
  值得一提的是,在以上過程中,由于是多線程處理,因而在1個微引擎中,一個線程進入等待狀態,另一個線程立刻運行,這一過程由編程者控制完成的。下面的程序段是數據處理過程的主要控制部分:
  while(1){
  dl_source();            //從接收線程取下包描述符
  if(dlBufHandle= =0){ continue; }
  Ethernet_validate();           // 驗證這個包是一個有效的以太網頭
  Ethernet_strip_header(); //去掉以太網頭
  IPSec_process();  //IPSec處理
  IPv4_five_tuple_class();         //進行IPv4 classifier的轉發
  If(dlNextBlock= =IX_DROP){ //clNextBlock全局變量,
             //表示下一個
  Goto drop;              //跳轉到丟棄包的處理模塊
  }
  Ethernet_add_header();  //添加新的以太網頭
  D1_sink();                //將處理后的包描述符放入發送緩沖區中
  Drop:
  Dl_BufDrop(dlBufHandle); //丟棄包的處理
  }
  IPSec被認為是目前實現VPN的技術標準,在Internet的安全通信中發揮著重要作用。當前對網絡通信不斷提出了速度和安全的更高要求,以兼備通用CPU的靈活性和ASIC芯片執行速度的網絡處理器為核心實現高速安全網絡設備,是當前網絡新技術的應用研究重點。


上一頁 1 2 下一頁

評論


相關推薦

技術專區

關閉