不少企业跨站点组网、远程移动办公场景下,经常碰到VPN网络抖动异常的问题,表现为VPN连接没有完全断开,但业务访问延迟忽高忽低、随机出现卡顿,常规的重启网关、重连客户端操作往往没法彻底解决问题,想要快速定位VPN网络抖动异常时的故障根本原因,需要按照从外到内、从底层到上层的分层思路逐步验证,避免无意义的配置调整。
第一步先验证VPN隧道两端的基础公网链路状态
很多人碰到VPN抖动第一反应就去查VPN设备配置,其实最容易被忽略的是两端接入的公网本身就有抖动,和VPN服务没有直接关联。你可以在VPN网关的本地控制台,直接对端站点的公网出口IP发起长ping测试,流量不经过VPN隧道,先测原始公网链路的稳定性。
这里要注意验证方式,测试的时候要同时在两端反向发起测试,避免单条运营商链路单向拥塞的问题,如果原始公网链路本身就出现随机丢包、延迟跳变,那VPN抖动的根源就是公网接入的问题,不需要动VPN配置,先联系运营商排查本地公网的线路故障就行。

运维工程师在VPN网关控制台发起公网长ping测试,验证两端底层公网链路稳定性
很多新手的误区是直接在终端上ping走VPN的业务地址,这时候的测试结果已经叠加了VPN封装、加密处理的开销,没法区分是公网本身的问题还是VPN隧道内部的问题,很容易出现误判,浪费大量排查时间。
排查VPN网关的自身性能与配置异常
如果公网原始链路测试完全稳定,接下来就要登录VPN网关的管理后台,查看设备的CPU、内存、加密引擎的占用率。很多IPsec VPN或者SSL VPN网关在并发连接数超过设计阈值的时候,加密处理队列会出现随机丢包,表现出来就是业务流量大的时候VPN突然抖动,闲时又完全正常。
你可以查看网关的VPN隧道日志,有没有出现SA(安全联盟)频繁重协商的记录,如果重协商的间隔远低于配置的生存周期,大概率是两端网关的DPD(对等体存活检测)参数配置不匹配,或者中间运营商的NAT网关老化时间比VPN配置的空闲超时时间短,导致隧道被中间设备断开重连,引发周期性的抖动。
这里要注意不要随便修改DPD的探测间隔,盲目调大参数可能导致故障断网后VPN长时间感知不到,反而会引发更严重的业务中断,调整参数后要持续观察隧道日志的重协商记录有没有消失,确认抖动现象得到缓解。
验证VPN隧道内部的转发路径与QoS配置影响
排除了网关本身的性能问题之后,你可以在VPN网关内部开启针对隧道内部流量的流量统计,查看有没有匹配到QoS限流规则,把关键业务的VPN流量和普通上网流量放在同一个服务等级队列里,红星加速器大流量的下载业务挤占了VPN隧道的带宽,导致实时业务的数据包被随机排队丢弃,表现出抖动的特征。
你还可以在两端VPN网关之间沿着VPN隧道路径执行traceroute流量测试,注意要开启VPN封装的路径探测,不要走公网裸路径,查看隧道内部的每一跳转发节点有没有出现延迟突增的情况,部分运营商的公网中间节点会对ESP协议、SSL协议的数据包做优先级降权,导致VPN封装的数据包被优先丢弃。
排查终端侧的VPN客户端异常因素
如果是SSL VPN的远程接入场景,红星加速器大量终端出现VPN抖动但站点之间的IPsec隧道完全正常,就要排查终端侧的客户端配置问题。部分终端同时开启了多个代理服务、系统自带的VPN服务和企业VPN客户端冲突,会导致加密流量被反复封装,出现随机的延迟波动。
你可以找一台故障终端,先关闭所有其他代理类软件,单独运行企业VPN客户端,测试业务访问的稳定性,如果抖动现象消失,就可以确认是终端侧的多代理冲突引发的问题,不需要调整服务端的配置。
最后要注意,单次的定位测试只能指向某一类可能的故障原因,不能直接排除所有其他潜在问题,红星排查完成后要持续观察一段时间的运行数据,确认抖动现象完全消失之后再做配置固化,避免误操作引发新的连接故障。
红星加速器 


