最近在整理openswan clips,linux netkey等 方面的东西.
理清openswan什么版本支持ipv6,pluto和racoon作用等等知识 .
希望对研究ipsec,vpn方面的朋友有帮助.整理不足之处还请指正.
问题提出:什么是xfrm,racoon,netkey,PF_KEY,netlink,clips,26sec,Setkey,KAME,ipsec?
IPsec:Internet Protocol Security是一种开放标准的框架结构,通过使用加密的安全服务以确保在网络上进程保密而安全的通讯。IPsec IP层协议安全主要包括一个IP包进程模块和一个密钥交换模块,IPsec包的处理模块是基本IPsec安全策略(SP)和安全关联(SA)的。
PF_KEY:PF_KEY是密钥管理套接子,在UNPV13e 第19章有介绍。
klips或是NETKEY:实现IP数据包的安全接受或发送的进程。在内核域中运行,主要负责控制管理SA及密钥,同时处理数据包的加密和解密工作。
klips主要由以下模块组成:通信接口socket PF_KEY(klips是pluto自带的,而这个PF_KEY是clips自带的,Linux内核也有PF_KEY的实现,所以这两种PF_KEY是不一样的),负责注册和初始化模块,数据包处理和转发模块,数据包的接收和处理模块,SA的管理模块,SHA1、MD5算法实现模块,路由器的基数实现模块,PF_KEY2协议实现模块,其它一些相关子模块。KLIPS不支持IPv6(这仅对早期的openswan,2.6.33以后版本的klips已经支持了IPv6,现在已经到了2.6.38(2012-04-23)).
NETKEY:又称26sec,通信接口socket netlink, 该部分实现包含在2.6内核中,实际是对KAME项目的重写。
xfrm:指处理IP数据包的网络框架。是IPSec SPD/SAD的管理模块,与原网络架构的路由和网络数据处理密切相关,策略检查、SA的获取