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体现的思想应用到其余方面,就看你的思惟是否灵活;

   学习不是最终目的,创造才是追求的。不是为了学习而学习,是为了创造而学习。

相关文章
相关标签/搜索