linux XFRM整體框架簡單分析

author: jonathan
本文檔的CopyRight歸jonathan所有,可自由轉載,轉載時請保持文檔的完整性。
/*----------------------------------------------------------------------------------------------------------------------------*/
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 結構圖
   此圖還真不好畫,簡單描述一下就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體現的思想應用到其他方面,就看你的思維是否靈活;
   學習不是最終目的,創造纔是追求的。不是爲了學習而學習,是爲了創造而學習。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章