IPsec 不是一个协议,而是一套协议的组合:IKE 负责身份认证和密钥协商,ESP 负责把数据包加密封装。这套架构在企业组网、手机系统自带 VPN 和路由器之间都很常见。理解它主要需要弄清三件事:协商怎么完成,NAT 后面怎么传,地址变了怎么办。
IPsec 由哪两部分组成
IKE 运行在 UDP 500 端口,用来交换密钥、验证对方身份、协商算法。ESP 是 IP 协议号 50 的独立协议,不属于 TCP 也不属于 UDP,负责真正的数据加密。两者分工明确:协商成功后,数据面完全由 ESP 承担。

传输模式和隧道模式有什么区别
传输模式只加密 IP 负载,原始 IP 头保留,适合两台主机之间的直连;隧道模式把整个原始 IP 包封装进新的 IP 包,站点互联和远程接入用的都是隧道模式。
IKEv2:两次交换建立会话
IKEv1 要分阶段一和阶段二两个阶段,阶段一建立 IKE SA,阶段二建立 IPsec SA,消息数很多且模式繁杂。IKEv2 把这个过程简化为两次交换、共 4 条消息:IKE_SA_INIT 协商算法并完成 Diffie-Hellman 密钥交换,IKE_AUTH 在加密信道里完成身份认证,并同时建立第一个 CHILD SA(即用于 ESP 的子关联)。
IKE_AUTH 支持哪些认证方式
常见的有数字证书、预共享密钥和 EAP。EAP 可以接用户名密码或双因素认证,这是远程接入场景里手机和笔记本系统自带客户端能直接连上的原因。
为什么 IKEv2 比 IKEv1 更适合移动设备
IKEv2 支持 MOBIKE(RFC 4555),设备从 Wi-Fi 切到蜂窝网络、地址发生变化时,可以在原有会话上更新端点地址,不需要重新协商。IKEv1 没有这项能力,地址一变就要重建会话。
NAT 穿越怎么工作
ESP 没有端口号,传统 NAT 设备无法对它做端口映射。解决方法是检测到 NAT 后,整个会话切到 UDP 4500 端口,把 ESP 封装在 UDP 里。检测靠双方在协商时交换 NAT_DETECTION 载荷,比对看到的地址和端口是否被改写。

IKEv1 与 IKEv2 对照
| 维度 | IKEv1 | IKEv2 |
|---|---|---|
| 建立会话 | 两个阶段,消息较多 | 两次交换,4 条消息 |
| 设备地址变化 | 需要重建会话 | 通过 MOBIKE 更新 |
| 用户认证 | 需要扩展(XAUTH) | 原生支持 EAP |
| NAT 穿越 | 依赖扩展 | 内置 |
协商失败的常见原因
最常见的是防火墙只放行了 UDP 500,没有放行 UDP 4500,导致 NAT 后面的客户端协商成功但数据不通。其他原因包括两端提议不匹配(日志里出现 NO_PROPOSAL_CHOSEN)、证书过期或时钟偏差、身份标识不一致。排错时先看服务端日志里失败发生在 IKE_SA_INIT 还是 IKE_AUTH,就能区分是算法协商问题还是认证问题。
为什么协商成功了却没有数据
这通常是 ESP 或 UDP 4500 被中间设备丢弃,或者服务端没有开启 IP 转发和地址转换。分层排查的方法和其他隧道协议相同。




