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體現的思想應用到其他方面,就看你的思維是否靈活; 學習不是最終目的,創造纔是追求的。不是爲了學習而學習,是爲了創造而學習。 |
linux XFRM整體框架簡單分析
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.