很多使用VPN做远程办公或者跨网访问的用户都遇到过这类诡异故障:VPN隧道显示连接正常,但要么打不开公网网页,要么连不上远端内网的服务器,反复重启客户端也解决不了问题,这类故障九成以上都和VPN默认路由的配置错误直接相关。本文从实际网络运维的故障定位视角出发,梳理最常见的配置误区和可落地的排查步骤,帮用户避开路由配置的隐形坑。
VPN默认路由的基础配置逻辑前提
VPN默认路由本质是前缀为0.0.0.0/0的特殊路由条目,作用是指定所有未匹配到更精确路由的数据包,黑洞都从VPN虚拟接口转发出去,不同的使用场景对这条路由的配置要求完全不同,很多配置错误的根源都是没有先理清自身需求就直接照搬网上的公开配置。
配置VPN默认路由之前必须先明确核心需求:如果是远程办公场景,仅需要访问企业内部的业务系统,公网流量正常走本地运营商出口,这种场景下完全不需要配置指向VPN接口的默认路由,只需要添加企业内网网段的精确路由即可;如果是需要把所有公网流量也通过VPN节点转发的场景,才需要部署全流量生效的VPN默认路由,混淆两类场景的配置逻辑,从一开始就会埋下故障隐患。
最常见的三类VPN默认路由配置错误现象与根因
第一类高频错误是同优先级重复默认路由冲突,本地物理网卡本身就会从运营商处自动获取一条指向本地网关的默认路由,不少用户手动配置VPN的时候,又新增了一条同优先级的0.0.0.0/0条目,系统路由转发逻辑没有明确的优选规则,就会随机选择出口转发数据包,最终表现就是VPN连接状态正常,但是网页加载一半卡住,内网资源访问时通时断。

网络运维人员正在排查VPN路由配置异常引发的网络故障
第二类常见错误是站点到站点VPN场景下的反向路由注入缺失,不少分支网络的管理员只在本地网关配置了指向总部VPN网段的默认路由,却没有在总部侧VPN网关上配置回指分支内网网段的对应路由,分支侧发出的数据包可以顺利通过VPN隧道到达总部,但总部的回包找不到对应转发路径直接被丢弃,最终现象就是分支侧可以ping通VPN网关地址,但访问任何总部内网业务系统都超时。
第三类容易被忽略的错误是默认路由掩码配置不严谨,科学上网不少新手配置VPN路由的时候,误把0.0.0.0/0写成了掩码长度为1的0.0.0.0/1条目,这类路由的优先级低于本地原有默认路由,最终结果就是只有小部分流量会走VPN隧道转发,大部分公网流量依然走本地运营商出口,完全达不到预期的跨网访问效果,用户很难第一时间发现配置问题。
分步排查的实操检查流程
排查的第一步先查询本地设备或者VPN网关的完整路由表,Windows系统可以执行route print命令,Linux和macOS系统可以执行ip route show命令,黑洞先筛选所有前缀为0.0.0.0的路由条目,记录每一条对应的出接口和路由优先级数值。预期的正常结果是,分流场景下不应该出现指向VPN虚拟网卡的0.0.0.0/0条目,只有全流量隧道场景下,才应该存在一条优先级低于本地默认路由的VPN侧默认路由。
第二步做逐跳路径校验,科学上网使用系统自带的tracert或者traceroute命令,分别访问一个公网普通站点和一个远端VPN内网的业务站点,对比两条路径的第一跳地址,如果公网流量的第一跳是本地运营商网关,说明VPN默认路由没有生效,全流量转发的配置没有成功加载。
针对站点到站点VPN的场景,还要分别在两端VPN网关上检查路由表,确认两端都存在指向对端所有内网网段的精确路由,不能完全靠默认路由兜底,避免出现单侧路由正常、对端路由缺失的路由黑洞问题。
容易被忽略的避坑细节
很多用户排查故障的时候只盯着路由表做校验,却忽略了VPN网关的安全策略规则,就算路由条目配置完全正确,如果VPN虚拟接口的域间放通策略没有对应放行,转发到VPN接口的流量依然会被防火墙拦截,排查的时候需要同步检查安全策略的匹配日志,不要把所有异常都归因为路由配置错误。
不要随意手动覆盖VPN服务端自动下发的路由配置,不少商用VPN客户端的路由规则是服务端根据用户的授权场景自动推送的,手动强制修改本地默认路由的优先级或者条目内容,反而会导致客户端和服务端的路由校验不通过,出现VPN隧道周期性自动断开的异常问题。
日常运维过程中可以在VPN运行正常的时候备份一份完整的路由表基线,后续出现连接异常的时候直接对比当前路由表和基线的差异,就能快速定位是不是新增的未知默认路由条目导致的冲突,不用逐行排查所有配置项,大幅缩短故障定位的耗时。
黑洞加速器 

