linux XFRM總體框架簡單分析

 原文地址:http://hi.baidu.com/jonathan2004/blog/item/7893eeed35c28626adafd578.htmlhtml

Linux 的 XFRM框架多簡單阿。6年前整理過,到如今還記得基本原理,說明xfrm設計的是多麼簡單明瞭。
不過網上都是基於代碼的分析,不多有從總體框架上來描述,你們都被code淹沒了。安全

0 前言

Linux引入XFRM是在不打亂原有的網絡協議結構和HOOK點安全架構設計前提下,成功引入了一種基於策略的高擴展性的網絡安全架構。網絡

有人會說在HOOK點也能實現IPSEC的問題,爲什麼還要XFRM?!!好問題,可是不是一兩句話能把你說明白,只有去設計一安全網絡系統才能深深體會到好處。這裏就不過多描述。架構

1 靜態框架框架

1.1 組建構成學習

    XFRM 框架數據接收協議(如AH/ESP,與TCP/UDP並列屬於4層網絡協議)加密

    XFRM 框架數據發送協議(至關於虛擬網卡驅動)架構設計

    XFRM 框架策略引擎(與策略路有整合再一塊兒)設計

1.2 結構圖code

   此圖還真很差畫,簡單描述一下就OK。有問題本身去解決把。
     
/* ------------------------------------------------------------------------ */
       XFRM 框架策略引擎                             TCP/UDP/XFRM

         OUT點                                         IN點
           
                          forward點
                       (XFRM 框架策略引擎)

         POST點                                        PRE點

XFRM 框架數據發送協議 其它網卡驅動

/* ------------------------------------------------------------------------ */

2 動態流程

2.1 發送數據

    skb_buff XFRM 框架策略引擎命中策略(skb_buff明文) -> XFRM 框架數據發送協議處理->再次回到OUT點處理(skb_buff已經加密)->其它網卡驅動發送出去

2.2 接收數據

    skb_buff PRE點(skb_buff加密)->路由查詢 是本地數據 -> XFRM四層協議處理 ->再次回到PRE點處理(skb_buff已經解密)->根據路由轉發/本地接收

2.3 轉發數據

    在forward點策略查詢,而後根據是否命中策略,決點在POST點後是否加密仍是直接發送出去。

3 總結

   XFRM具備極大的擴展性,我如今的產品就是在此基礎上實現了網絡安全管理。學習架構,學習思想,永無止境。

   能夠此XFRM基礎上設計添加新的架構,就看你的思惟是否開闊;

   能夠把XFRM體現的思想應用到其餘方面,就看你的思惟是否靈活;

   學習不是最終目的,創造纔是追求的。不是爲了學習而學習,是爲了創造而學習。

相關文章
相關標籤/搜索