很多企业部署站点到站点VPN打通多分支办公网络之后,经常发现跨站点访问共享文件、调取总部业务系统的速度比直连公网慢,不少运维人员第一反应是运营商带宽不足,扩容带宽之后速度提升依然不明显,其实大部分这类问题都和站点到站点VPN本身的封装机制、配置逻辑强相关。本文从实际一线排查路径出发,梳理这类VPN拖慢连接速度的核心原因,以及可落地的逐项检查优化方法,帮运维人员定位真实的性能瓶颈,消除不必要的传输损耗。
站点到站点VPN影响连接速度的核心底层逻辑
站点到站点VPN和普通个人用户使用的远程访问VPN属性完全不同,它是在两个独立站点的出口网关之间建立专属加密隧道,所有跨站点的内网流量都要先经过隧道协议的封装、加密、完整性校验,再通过公网传输,到达对端网关之后还要依次完成解封装、解密、重新路由的流程,这个过程本身就会给流量带来额外的处理开销,这是所有加密传输类VPN部署都天然存在的基础属性,不属于故障,是实现跨站点隐私保护必须付出的基础成本。
很多运维人员一开始会混淆“公网出口带宽”和“VPN隧道可用带宽”的概念,以为两个站点出口都是千兆带宽,隧道就能跑满千兆的传输速度,但实际上加密运算、封装带来的额外报文头部开销,都会挤占原本的有效载荷传输空间,这也是普通用户感知跨站点传输速度下降的最普遍初始原因。
第一步排查:隧道两端网关的硬件算力负载
如果出现跨站点传输大文件的时候速度明显掉速,甚至出现间歇性断流的现象,优先登录两端的VPN网关设备,查看CPU核心的占用率,特别是专门负责加密运算的核心的负载情况,这是排查站点到站点VPN拖慢速度的第一优先级步骤。
如果网关没有开启对应的硬件加密加速功能,所有IPsec加密解密的运算都要靠通用CPU完成,当隧道内流量上来之后,CPU算力会先成为瓶颈,哪怕公网带宽还有大量剩余,网关也没办法处理更多的加密流量。这种情况的预期排查结果是,临时关闭VPN隧道之后直接在两端网关之间跑公网测速,速度可以跑满运营商提供的带宽,开启隧道之后速度立刻出现明显下跌,同时网关的CPU加密相关核心占用率长期处于高位。
这里的常见误区是很多运维人员会直接给网关扩容出口带宽,完全忽略设备本身的算力上限,哪怕把出口带宽升级到更高规格,网关算力跟不上的话,隧道的实际传输速度也不可能得到明显提升。
第二步排查:隧道配置的协议与报文适配规则
很多站点到站点VPN的出厂默认配置没有针对公网的报文传输规则做适配,最常见的问题就是MSS值设置不合理,封装之后的报文总大小超过公网链路允许的最大MTU,导致报文被强制分片甚至直接丢弃,跨站点访问的时候就会出现打开大页面慢、传输大文件卡顿的现象。
排查的时候可以在两端内网的普通主机上,用不分片的参数向对端内网主机发送大包的ping测试,如果出现丢包或者完全不通的情况,基本就可以定位是MSS适配的问题,调整隧道接口的MSS值到适配公网链路的合理区间之后,跨站点的大流量传输卡顿现象通常会得到明显缓解。
另外还要检查隧道协商的加密套件配置,如果选择了运算复杂度极高的非必要加密算法,也会额外增加两端网关的处理负担,在满足企业安全合规要求的前提下,选择性能和安全性平衡的加密套件,也能减少不必要的算力消耗,提升隧道的传输效率。
第三步排查:公网传输路径的路由绕行问题
很多运维部署站点到站点VPN的时候,默认让所有跨站点的加密流量都走默认公网路由,没有考虑两个站点的运营商线路对接情况,比如两个站点分别接入了不同运营商的宽带,跨运营商传输本身就存在路由绕行、延迟偏高的问题,叠加VPN封装带来的额外开销之后,速度下降的用户感知会被进一步放大。
排查的时候可以分别在开启和关闭VPN隧道的情况下,对两个站点的公网网关做traceroute路由跟踪,对比两次的路由跳数、平均延迟,如果开启VPN之后的路径跳数明显变多,就可以考虑调整VPN流量的出站策略,选择对应运营商的对等线路传输隧道流量,减少绕行带来的额外传输开销。
所有优化操作都要在不破坏企业跨站点传输的隐私保护规则的前提下开展,不能为了提升速度直接取消加密隧道的必要校验机制,避免跨站点的传输流量暴露在公网当中带来数据泄露风险,优化的核心是消除不必要的性能损耗,而不是追求无意义的速度数值。
白熊加速器 
