[strongswan] strongswan METHOD宏】的更多相关文章

使用METHOD宏的函数定义: METHOD(message_t, get_message_id, uint32_t, private_message_t *this) { return this->message_id; } METHOD宏的定义: /** * Method declaration/definition macro, providing private and public interface. * * Defines a method name with this as fi…
strongswan SA分析(一) 1 概念 下面主要介绍两个本文将要阐述的核心概念.他们是SA和SP.注意,这不是一篇不需要背景知识的文章.作者认为你适合阅读接下来内容的的前提是,你已经具备了一下三方面的知识: a. 什么是VPN. b. 什么是IPsec,包括IKE,ESP,strongswan都是什么等. c. 一般的linux使用方法和常见概念. 1.1 什么是SAD,SPD SAD是Security Association Database的缩写. SPD是Security Poli…
前言 我们知道,strongswan是基于插件式管理的.不同的插件有不同的配置文件,在这下面, 我们以netlink的插件为例:etc/strongswan.d/charon/kernel-netlink.conf 在这个文件里,提供了不同的针对插件的配置项.接下来我们将讲解,如何开发这些配置项. 配置文件结构 在开始之前,先了解一下strongswan的配置文件组织结构, strongswan的所有配置项都是层级结构组织的,如:charon.plugins.kernel-netlink.for…
目录 strongswan与xfrm之间的trap机制 0. 1. 前言 2. 描述 2.1 none 2.2 trap 3. 实验与过程 3.1 trap实验 3.2 none实验 4 背景知识 5. 机制分析 5.1 什么是acquire 5.2 那么,什么时候发送acquire消息呢 6. strongswan与xfrm之间的trap机制 0. 你必须同时知道,strongswan,xfrm,strongswan connect trap三个概念. 才有继续读下去的意义. 入门请转到:[T…
目录 strongwan sa分析(三) xfrm与strongswan内核接口分析 1. strongswan的实现 2. 交互机制 4. xfrm的消息通信的实现 strongwan sa分析(三) xfrm与strongswan内核接口分析 1. strongswan的实现 如下图,业务场景可以分为两类: 下发类的交互主要由包触发或用户配置动作触发. 消息类的交互主要由watcher监听socket,然后触发. 2. 交互机制 2.1 下发消息 消息名 功能定义 XFRM_MSG_ALLO…
目录 strongwan sa分析(二) 名词约定 rekey/reauth 机制分析 1 概述 2 reauth 3 CHILD SA rekey 4 IKE SA rekey 5 其他 strongwan sa分析(二) 名词约定 client / initiator: IKE连接的首先发起方. server / responder: IKE连接首先发起方的对方,即响应方. IKE SA: 用于对ISAKMP数据包进行加密的SA. CHILD SA / IPsec SA: 用于对传输数据(用…
history: 2019-06-05, 增加配置文件解析部分. 2019-06-05,增加plugin优先级排序部分. charon进程初始化阶段的流程图 约定: 实线代表流程图. 虚线代表调用栈,箭头方向代表自上而下. 黄线是辅助线,请自己理解. 图: netlink模块的类图 图: 从Task到内核xfrm模块的调用关系图 说明: 该图以kernel-netlink plugin为例分析了strongswan 5.7.1的主要代码架构. 该图的后续演进维护将留着这个地方,2中的文档将不会被…
目录 strongswan sa 资料 编译 启动 进程信息 结构 架构图与插件 配置运行 传统配置方法 新的配置方法 其他配置方法 详细的配置文档 配置示例 用法 加密库 libgmp libcrypto libgcrypto 依赖的内核模块 child sa 构成 定义 sa信息查看与调试 证书 转发 隧道 路由 MSS/MTU VICI interface 编译DEBUG gdb 代码 接口 架构流程图 ipsec初始化 add policy的调用栈 add sa的调用栈 更多strong…
前言 如前所述, 我们知道,strongswan以插件功能来提供各种各样的功能.插件之间彼此相互提供功能,同时也有可能提供重复的功能. 这个时候,便需要一个优先级关系,来保证先后加载顺序. 方法 在配置文件中,有这样一个配置项,配给每一个plugin charon.plugins.<name>.load 它的值,可以是Yes,NO,可以是数字.Yes,No代表是否启用该插件.通知默认赋予优先级的值1. 优先级值随数字增大,优先级越高.高优先级的会 更先被加载.同优先级的,按插件名字的字母表顺序…
一 默认情况下,我们使用strongswan建立了一个ipsec隧道之后,建立的policy如下: [root@D129 OUTPUT]# ip xfrm policy src dst dir ptype main tmpl src 192.168.8.129 dst 192.168.8.9 proto esp spi mode tunnel src dst dir fwd priority ptype main tmpl src 192.168.8.9 dst 192.168.8.129 pr…