深度解析IKEv2VPN连接原理一文搞懂协议运作全流程 - shadowrocket
手机连接

深度解析IKEv2VPN连接原理一文搞懂协议运作全流程

很多使用IKEv2 VPN的用户都遇到过连接卡在验证阶段、连上之后流量不通、漫游网络后频繁断连的问题,大部分人直接归因为网络差,却很少从协议底层的运作逻辑找原因,本文从实际故障现象出发,逐层拆解IKEv2 VPN连接原理的全流程,帮你理清每个阶段的校验规则和排查方向。

第一阶段:IKE SA初始化的握手逻辑

不少用户点击VPN连接按钮后长时间卡在“正在连接服务器”的状态,第一个排查方向就是IKE第一阶段的SA协商是否正常完成,IKEv2 VPN连接原理里的第一阶段和旧版IKEv1不同,只需要两次消息往返就能完成密钥交换,不需要多轮冗余协商。客户端首先会向服务端发送自己支持的加密套件、完整性校验算法、Diffie-Hellman组参数,服务端收到请求后会从自身配置的参数列表里选出双方都支持的组合,返回自己的DH公钥和相关参数。

两端拿到对方的DH公钥后就可以独立计算出共享密钥,shadowrocket后续所有协商内容都会用这个密钥加密传输,很多新手配置的时候随便勾选了终端设备不支持的加密算法,两端没有共同匹配的参数,握手包发出去之后得不到任何回应,连接就会一直卡在初始阶段,逐项核对两端的IKE第一阶段算法列表,确认存在交集后再发起连接,预期就能顺利进入身份校验环节。

第二阶段:子SA生成的隧道封装规则

很多用户遇到IKE阶段提示连接成功,小火箭共享账号网站但实际既没法访问VPN服务端侧的内网资源,普通上网流量也没有走隧道,这类问题基本都出在第二阶段的子SA协商环节,IKEv2 VPN连接原理里的第二阶段不需要重新做密钥交换,直接用第一阶段生成的共享密钥衍生出子SA的加密密钥,用来封装后续的实际业务流量。

网络拓扑示意IKEv2VPN连接原理

直观展现IKEv2 VPN第一阶段两端完成密钥交换的协商链路逻辑

这一步协商的核心内容是“感兴趣流”规则,也就是两端约定好哪些IP段、哪些端口的流量需要被ESP协议加密后走隧道传输,不是所有流量默认都会进入加密通道,排查这类故障的时候要核对两端配置的感兴趣流是否对称,比如客户端配置了要访问服务端侧的办公内网网段,服务端也需要允许对应网段的流量进入隧道,参数匹配后就能生成对应的IPsec安全策略,匹配规则的流量就会自动走加密隧道转发。

常见连接异常的逐项定位步骤

首先排查IKE协议的端口连通性,IKEv2默认使用UDP 500端口做初始握手,存在NAT设备的场景下会自动切换到UDP 4500端口做NAT穿越,不少本地系统防火墙、企业网络管控策略或者运营商的中间路由会拦截这两个端口的UDP报文,导致握手请求根本送不到VPN服务端,用端口探测工具确认两端端口可达,放行对应的出站入站规则后,大部分初始连接失败的问题都能解决。

接下来核对身份认证参数的一致性,IKEv2支持预共享密钥、数字证书、小火箭共享账号网站EAP扩展认证等多种身份校验方式,很多用户配置的时候输错了预共享密钥的大小写,或者导入的服务端根证书没有加入系统的信任列表,都会导致身份校验环节被直接拒绝,查看VPN客户端或者服务端的系统日志,一般都会明确提示认证失败的原因,修正对应参数后重新发起连接就能通过校验。

最后检查NAT场景下的保活配置,如果客户端处于多层内网NAT之后,NAT设备的端口映射会话老化时间过短,长时间没有流量传输的话,映射条目会被提前清除,后续服务端发往客户端的报文就找不到转发路径,最终导致隧道无故断开,配置DPD死亡对等体检测机制,shadowrocket让两端定期发送轻量保活报文维持NAT会话,就能大幅降低无故断连的概率。

常见配置误区说明

很多用户误以为IKEv2天生具备零断连的漫游特性,实际上它的快速重连能力依赖本地缓存的旧SA参数,如果设备重启清空了所有SA缓存,切换网络之后还是需要重新发起完整的握手流程,不存在绝对不会断连的效果,移动场景下的断连时长也和两端的网络环境直接相关。

还有不少人觉得只要成功连上IKEv2 VPN,所有上网流量都会自动加密传输,实际上如果第二阶段的感兴趣流配置不全,不在匹配规则范围内的流量还是会直接走本地公网转发,不会进入加密隧道,配置的时候要根据自身的使用需求调整感兴趣流的范围,避免出现非预期的流量泄露情况。

把IKEv2 VPN连接原理的全流程按阶段拆解后就能发现,绝大多数连接故障都不是协议本身的设计缺陷导致的,基本都是两端配置参数不匹配、中间网络拦截协议报文、NAT适配不到位这几类原因,按照从第一阶段到第二阶段的顺序逐层排查,就能快速定位故障点,不需要盲目修改全局配置。

VPN 基础编辑组 | shadowrocket
VPN 基础编辑组 ·内容编辑
解释加密隧道、连接协议与出口地址,帮助理解 VPN 的工作方式。
查看更多文章
连接指南

从一个连接问题开始

遇到宽带拨号重连后的VPN恢复相关问题,可从“等待宽带恢复后建立新请求,再查看客户端重连日志”开始阅读。旧请求报错并不证明新的网络路径仍然异常,需要结合具体环境判断。