主模式第一包:main_outI1() 1. 序言 main_outI1()作为主模式主动发起连接请求的核心处理函数,我们可以通过学习该函数的处理流程来探究openswan中报文封装的基本思想.如果之前没有学习基本的函数接口(如in_struct, out_struct, out_sa等),那么直接学习main_outI1()流程是比较困难的.如果想快速学习这几个函数接口,可以查看我先前的文章,我把需要的基本知识.思想等做了基本介绍,看完那几个接口再来学习此后的ISAKMP协商流程会容易很多,起…
主模式第六包(收包):main_inR3 1. 序言 main_inR3()函数是ISAKMP协商过程中第一阶段的最后一个报文的接收处理函数,它的作用同main_inI3_outR3()部分功能相同:完成对对端身份的认证.他们的不同之处在于不在需要响应报文(如果不考虑第二阶段的话).此包处理完毕后,发起端便成功建立了ISAKMP SA, 完成了第一阶段主模式的协商.后续便是第二阶段的协商.这里我们主要说明main_inR3的函数调用关系.处理流程以及对源码的注释分析,关于main_inR3的上下…
主模式第六包:main_inI3_outR3 1. 序言 main_inI3_outR3()函数是ISAKMP协商过程中第六包的核心处理函数的入口,第五六包主要用来验证对方的身份信息,同时此报文也是加密后的报文.这里我们主要说明main_inI3_outR3的函数调用关系.处理流程以及对源码的注释分析,关于main_inI3_outR3的上下文环境暂不叙述,留给后面的文章进行更新. ISAKMP协商报文的处理流程都比较复杂,此函数在协商的报文处理函数中比较复杂的,因此个人学习期间难免有遗漏和理解…
主模式第五包:main_inR2_outI3 文章目录 主模式第五包:main_inR2_outI3 1. 序言 2.函数调用关系 3. 第五个报文流程图 4. main_inR2_outI3()源码学习 5. start_dh_secretiv()源码学习 6. main_inR2_outI3_cryptotail()源码学习 7. main_inR2_outI3_cryptotail()源码学习 1. 序言 main_inR2_outI3()函数是ISAKMP协商过程中第五包的核心处理函数的…
主模式第四包:main_inI2_outR2 1. 序言 main_inI2_outR2()函数是ISAKMP协商过程中第四包的核心处理函数的入口,同时在此处理流程中已经获取到足够的隧道信息,可以生成需要的密钥信息.这里我们主要说明main_inI2_outR2的函数调用关系.处理流程以及对源码的注释分析,关于main_inI2_outR2的上下文环境暂不叙述,留给后面的文章进行更新. ISAKMP协商报文的处理流程都比较复杂,此函数在协商的报文处理函数中比较复杂的,因此个人学习期间难免有遗漏和…
主模式第三包:main_inR1_outI2 1. 序言 main_inR1_outI2()函数是ISAKMP协商过程中第三包的核心处理函数的入口.这里我们主要说明main_inR1_outI2的函数调用关系.处理流程以及对源码的注释分析,关于main_inR1_outI2的上下文环境暂不叙述,留给后面的文章进行更新. ISAKMP协商报文的处理流程都比较复杂,一个函数有几百行都是很常见的,因此个人学习期间难免有遗漏和理解错误的地方,请大家多多批评指正. 对于源码的学习,我并没有把每一行进行备注…
主模式第二包:main_inI1_outR1() 文章目录 主模式第二包:main_inI1_outR1() 1. 序言 2. `main_inI1_outR1()`处理流程图 3. `main_inI1_outR1()源码` 4. `parse_isakmp_sa_body()源码` 1. 序言 main_inI1_outR1()函数是ISAKMP协商过程中第二包的核心处理函数,同时也是响应端口的首包.这里我们主要说明main_inI1_outR1的处理流程,关于main_inI1_outR1…
IKEv2协议协商流程: (IKE-SA-INIT 交换)第二包 文章目录 IKEv2协议协商流程: (IKE-SA-INIT 交换)第二包 1. IKEv2 协商总体框架 2. 第二包流程图 3. openswan源码学习 3.1 ikev2parent_inI1outR1() 3.2 ikev2parent_inI1outR1_tail() 3.3 ikev2_parse_parent_sa_body() 4. 小结 4.1 SA载荷中加密套件算法选择 4.2 密钥交换KE和随机负载Nonc…
文章目录 1. IKEv2 协商总体框架 2. 第一包流程图 3. openswan源码学习 3.1 ikev2parent_outI1() 3.2 ikev2parent_outI1_withstate() 3.3 ikev2_parent_outI1_common() 4. 注意事项 4.1 关于此报文中涉及的对IKEv2引入的"新特性"说明 4.2 在IKEv1与IKEv2在SA载荷结构上的不同之处: 1. IKEv2 协商总体框架 IKEv1协议建立一对IPSec SA,使用主…
为了方便查阅现有的文章,特准备一个目录页供后续查询使用 专栏序言 1. 基础知识 openswan任务调度基础知识之信号 2. openswan环境搭建 openswan框架和编译时说明 openswan编译安装 3. NAT穿越 NAT-T下的端口浮动 NAT-T原理和环境搭建 4. openswan函数笔记 in_struct和out_struct讲解 openswan发送状态分析 pluto中监听各个网口的500端口处理逻辑 pluto中CPU占有率高的接口与优化方案 Openswan支持…