不少企业网络运维人员初次接触IPsec VPN部署时,经常遇到隧道反复协商失败的问题,对着两端配置逐行核对也找不到问题根源,其实只要把IPsec VPN连接建立过程拆解成逐层递进的步骤,顺着流程排查就能快速定位绝大多数异常。本文从配置前置校验、分阶段协商逻辑到后续保活机制完整拆解运作流程,帮运维人员理清每一步的判断标准和常见误区。
IPsec VPN连接建立前的配置校验前提
很多新手排查故障的第一反应是直接抓包分析报文,实际上在发起协商请求之前,首先要确认两端的基础前置条件全部满足,这是后续协商流程能正常启动的基础。首先要确认两端的公网接口之间三层连通正常,梯子中间网络没有封禁IKE协议对应的UDP端口,也没有拦截ESP、AH这类IPsec封装用到的协议。
其次要提前核对两端的身份认证凭证,不管是用预共享密钥还是数字证书,都要保证两端的凭证信息完全匹配,同时两端配置的感兴趣流网段要互为镜像,不能出现本端指定的加密网段和对端完全不对应的情况。这里的常见误区是运维人员只核对本端的感兴趣流配置,忽略对端的网段掩码差异,比如本端配置的是整段办公网段,对端误写成单个终端的32位掩码,后续哪怕第一阶段协商成功,第二阶段也会直接卡住。

运维人员核对两端网络基础配置,排查IPsec VPN隧道协商故障
IKE第一阶段协商的运作逻辑
IKE第一阶段的核心目标是在两端之间生成一条安全加密的控制通道,用来保护后续第二阶段的协商报文不被篡改、窃听。这个阶段支持主模式和野蛮模式两种交互形式,固定公网IP的站点到站点场景优先用主模式,动态IP的移动端接入场景才会用到简化交互流程的野蛮模式。
主模式的协商会通过6个报文完成全流程交互,首先两端会互相发送自己本地支持的IKE策略套件列表,包含加密算法、哈希算法、DH密钥交换组、IKE SA生存时间等参数,自动匹配出两端都支持的共同策略组合,之后两端通过DH协议交换各自生成的随机密钥材料,共同计算出后续加密通道用到的会话密钥,梯子工具最后再完成身份合法性的校验。
这个阶段最常见的故障点就是IKE策略不匹配,不少运维习惯在本端配置大量不同参数的策略条目,但是对端的策略优先级排序和本端不一致,导致两端找不到共同支持的参数组合,身份校验失败的场景大多是预共享密钥输入时多打了前后空格,梯子肉眼很难直接识别出这类隐性错误。
IKE第二阶段的IPsec SA协商过程
IKE第一阶段的安全通道生成之后,就会自动进入第二阶段的协商流程,这个阶段所有交互报文都会被第一阶段生成的会话密钥加密保护,协商的核心内容是业务流量加密用到的IPsec SA参数,包含流量封装模式、加密算法、哈希算法、IPsec SA生存时间,还有PFS前向安全特性的开关状态。
第二阶段协商完成之后,两端会各自生成一对方向相反的IPsec SA,入方向SA用来解密从对端发送过来的加密报文,出方向SA用来加密往对端感兴趣流发送的内网报文,到这一步IPsec VPN的加密隧道就正式建立完成,两端站点之间符合感兴趣流规则的内网流量,都会被自动封装加密后通过公网传输。
这个阶段的高频误区是两端的PFS配置不统一,一端开启了前向安全校验另一端直接关闭,哪怕其余所有参数都完全匹配,第二阶段的协商请求也会被直接拒绝,还有部分场景下运维人员把两端的感兴趣流源目网段写反,哪怕SA成功生成,内网互访流量也会匹配不到正确的加密规则。
隧道建立后的保活与异常切换逻辑
IPsec VPN隧道正式运行之后,两端设备会按照配置的周期发送专属的保活探测报文,用来检测对端设备的在线状态和公网链路的连通性,如果连续多次没有收到对端的回应报文,设备就会主动删除已经生成的IKE SA和IPsec SA,后续有新的内网加密流量触发时,会自动重新走完整的协商流程重建隧道。
不少配置双公网出口的企业场景中,梯子工具主链路的IPsec VPN隧道故障之后,设备会自动触发备链路的协商流程,不需要人工干预就能把加密流量切换到备用链路上,不过这类场景要提前配置好多组对应的感兴趣流和策略条目,避免切换之后新的协商报文匹配不到正确的规则。
日常运维排查IPsec VPN连接故障时,完全可以顺着这个流程分层定位,先确认前置的基础连通性和配置匹配度,再查看IKE第一阶段的协商日志定位身份校验或者策略匹配问题,之后再排查第二阶段的感兴趣流和参数配置问题,最后再确认隧道生成之后的流量转发规则是否正常,不需要盲目逐帧分析抓包报文,绝大多数常见故障都可以快速定位解决。
翻墙 


