不少远程办公用户、跨网点互联的企业管理员都遇到过类似的问题:运营商签约的公网带宽数值不低,直接裸连公网测速能达到标称速率,但一旦接入VPN隧道传输业务数据,实际可用的VPN有效带宽就远达不到预期,速度波动大、大文件传输耗时久的问题反复出现。很多人排查故障时摸不到头绪,其实这类问题的排查完全可以从全链路的实际运行状态入手,我们就围绕VPN有效带宽:常见影响因素做逐层拆解,帮大家理清故障定位的思路。
VPN隧道封装协议的固有开销与配置偏差
不同类型的VPN协议本身就自带不同的封装机制,比如常用的IPsec协议,需要在原始传输的IP报文外层额外叠加加密头部、认证校验头部,部分场景下还会叠加外层UDP或者TCP的封装报文头,这些不属于原始业务数据的额外字段,本身就会占用一部分承载链路的带宽,这部分开销是加密传输的固有属性,不属于故障范畴。

运维人员正在逐层排查导致VPN有效带宽不达标的各类潜在因素
很多用户排查问题时只会直接测公网裸连的速度,很少调整VPN场景下的MSS钳制参数,如果没有针对VPN封装后的报文大小调整对应参数,原本符合公网MTU阈值的原始报文,叠加VPN封装头之后就会超过链路允许的最大传输单元,狗狗这类大报文要么被链路强制分片转发消耗额外资源,要么直接被中途节点丢弃引发反复重传,最终挤占大量带宽资源拉低VPN有效带宽,验证的时候可以在VPN两端分别发送设置了DF不拆包标记的大包,测试报文是否能正常传输,就能快速确认是不是MSS配置不当引发的带宽损耗。
VPN两端网关的硬件转发性能瓶颈
很多小型门店或者家庭远程办公场景里,管理员为了省事儿,直接在普通家用路由器上开启自带的VPN服务功能,这类消费级设备的硬件算力本来就是为普通家庭的报文转发设计的,没有专门针对加密解密任务做硬件加速,VPN隧道的所有加密、校验运算都要靠通用CPU处理,一旦同时接入的VPN用户数量变多,加密任务占满设备全部算力,哪怕公网出口带宽还有大量富余,也没办法跑出预期的VPN有效带宽。
还有不少部署年限比较久的企业VPN系统,直接运行在普通x86服务器上,没有搭配专门的加密加速硬件卡,所有隧道的加密解密任务都靠通用CPU软处理,当跨网点传输的业务流量上涨之后,VPN网关的CPU负载很快就会跑满,后续新进入的报文只能在缓冲区排队等待处理,甚至直接被网关丢弃,也会直接拉低整体的VPN有效带宽,排查的时候只要登录VPN网关的管理后台,查看加密相关任务的CPU占用率,就能快速确认是不是硬件性能已经触达上限。
公网中间链路的QoS策略与路由限制
不少运营商的公网链路调度规则里,会对带有明显VPN封装特征的报文做默认的流量管控,比如把IPsec、GRE这类封装协议的报文优先级调低,当公网链路出现拥塞的时候,会优先丢弃带VPN封装特征的报文,哪怕两端的带宽、设备配置都完全正常,也会出现VPN传输速度波动大、VPN有效带宽上不去的问题。
如果是跨运营商对接的VPN场景,比如VPN一端接入联通宽带、另一端接入电信宽带,中间的公网转发路径需要跨运营商的互联节点绕行,两端裸连的传输延迟和丢包率本身就偏高,叠加VPN的加密校验、丢包重传机制之后,实际能跑出来的VPN有效带宽,会比同运营商链路对接的场景低不少,验证的时候可以先单独测试两端不经过VPN的裸连传输速度,如果裸连速度本身就远低于运营商签约带宽,那带宽瓶颈其实出在中间的公网链路上,和VPN本身的配置没有直接关联。
客户端侧的配置与本地网络干扰
很多个人远程接入VPN的用户,自己本地的终端上同时运行着其他代理软件、终端安全防护软件,这类软件默认会对所有进出网卡的报文做内容扫描、甚至二次封装处理,VPN生成的封装报文从网卡发出之前,会先被本地安全软件拦截扫描一遍,额外的处理开销会占用本地终端的CPU和网卡资源,最终拉低端到端的VPN有效带宽。
还有不少用户排查故障的时候会忽略本地网络的其他流量占用,比如本地终端同时跑着大文件下载、高清视频直播的任务,本地出口带宽已经被这些非VPN业务占满,之后再启动VPN连接,能分配给VPN隧道的带宽自然所剩无几,不少用户会误以为是VPN服务本身的带宽不足,排查这类问题的时候可以先把本地所有非必要的大流量应用全部关闭,单独测试VPN场景下的文件传输速度,就能快速排除本地侧的流量干扰。
日常排查VPN有效带宽不足的问题时,不需要一上来就盲目更换加密协议或者升级硬件,按照从客户端本地、局域网链路、VPN网关、狗狗VPN网络测速方法公网中间链路的顺序逐层测试,就能逐步定位到对应的影响因素,避免做很多无效的调整操作。




