积累系统性知识
积聚技术精华
  首页    个人中心    撰写积文    建立课题    订立目标    整理积文    管理课题    管理目标    技能Get    代码积累 
Linux内核VPN实现源码分析(一)
error997 (error997)    2014-11-20 20:14:34      目标    课题
   1.  linux下vpn简介
   一般而言, linux 下 VPN 按照实现的协议栈可以分为应用层和网络层的 VPN ,应用层的 vpn 实现常见的比如有 SSL vpn ,著名得的开源实现有 openvpn ,而网络层的常见的为 IPSec VPN 。 SSL VPN 文本将不作介绍,网络上关于 openvpn 资料也比较多,大家可以自行研究。
   其实 linux2.6 内核实现了至少三种 VPN ,这三种 VPN 分别是 IPIP 协议, IPGRE 协议和 IPSec 协议,在内核源代码中的文件分别是 ipip.c , ip_gre.c 和 xfrm 开头的文件当中。但如果加上著名的开源 IPSec VPN openswan ,就有四种了。这四种从实现原理上看可分为两种,一种是采用虚拟网卡建立隧道的方式,可以通过插入相应内核模块来运行, linux2.6 内核的 IPIP 协议, IPGRE 协议和 openswan 的 IPSec 协议,另一类是直接实现在内核里面,即内核实现的 IPSec VPN 。因此,前面的三种实现是非常相似的。
   对于 Linux2.6 内核中自带了 IPSec 的实现(注明: linux2.4 内核可以通过打补丁的方式来支持),本文将不作任何分析,因为已经有前辈做了很好的分析,参见 http://blog.chinaunix.net/u/12313/showart_313220.html ,可惜的是,这位大牛前辈的 blog 已经很久没有更新的。 Linux2.6 内核中自带了 IPSec 可以通过开源的工具 IPSec tool 来进行配置。
   本文现在将开始循序渐进的方式分析 linux2.6.30 内核实现基于虚拟网卡的 VPN 的源码,首先从最简单的 IPIP 协议开始。

转自 http://blog.csdn.net/y___y/article/details/5648542
(+0)技能Get

建议楼主:搜索关键字 |参考其他资源 |回复 |追问
  error997(error997):   个人中心    课题    目标    代码积累