不少多线办公、门店连锁场景的用户,部署双宽带做VPN线路冗余之后,经常碰到各类偶发的解析异常问题,比如远程接入VPN后内网业务域名时通时断、不同线路接入的用户拿到的解析结果不一致、分流规则标注的内网域名还是走本地公网出口解析,这类故障九成以上都和双宽带环境VPN的DNS配置疏漏有关,本文从实际排查场景出发,按现象定位、逐项核验的逻辑梳理全流程检查步骤,帮运维人员快速定位配置问题。
双宽带VPN场景下DNS异常的典型现象与前置排查前提
在启动DNS配置检查之前,首先要确认当前碰到的故障属于DNS类问题,常见的典型现象包括:VPN用户可以通过内网IP直接访问业务服务器,但输入内网域名就提示无法解析,部分终端连接VPN后解析出来的业务地址是公网的无效地址,切换VPN接入的宽带线路后解析结果直接发生变化。
正式检查前需要先排除基础连通性干扰,确认双宽带的两个WAN口在VPN网关层面没有出现路由冲突,两条线路的VPN隧道本身可以正常连通,内网不同网段的IP互访没有阻断,避免把路由类故障误判为DNS配置问题,浪费排查时间。
第一项检查:双WAN口DNS分流规则的绑定有效性
登录VPN网关的管理后台,找到DNS策略配置板块,逐一核对两条宽带线路对应的DNS绑定规则,很多运维人员图省事直接把公共DNS设为全局默认,导致走第二条宽带线路的VPN流量,解析请求反而被转发到第一条线路的DNS出口,跨线路转发很容易出现解析无响应、结果错乱的问题。
这一步的预期结果是,每条WAN口对应的DNS策略,仅允许绑定对应线路的VPN用户、或者对应分流规则下的流量发起解析请求,不会出现跨线路的DNS转发。你可以在网关的流量监控页面,分别用两条宽带下的VPN测试客户端发起内网域名解析,查看解析请求的出口是否和预设的绑定线路一致。
这里要注意常见的配置误区,不少人误以为双宽带环境下只要填两个不同的DNS地址就不会出问题,实际上如果没有配置源路由绑定,解析请求会被网关的负载均衡模块随机分配出口,很容易出现内网私有域名的解析请求走到公网线路,无法被内网DNS服务器识别的情况。
第二项检查:VPN推送DNS的优先级与覆盖规则
进入VPN服务端的用户组配置板块,检查给远程接入用户推送的DNS列表,有没有把内网私有DNS服务器的地址放在列表最前面,后面再追加公共DNS地址。双宽带环境下很多管理员会把两条宽带对应的运营商DNS都塞进推送列表,但是没调整优先级,导致终端优先用运营商DNS发起内网域名解析,自然得不到正确结果。
你可以用任意一台远程VPN接入的终端,连接VPN之后执行对应的系统命令查看网卡信息,Windows系统执行ipconfig /all,macOS或者Linux系统执行对应网卡查询命令,查看虚拟VPN网卡的DNS服务器顺序,确认内网私有DNS排在第一位,同时没有出现物理网卡的本地DNS优先级高于VPN虚拟网卡的情况。
如果检查发现终端拿到的DNS顺序不符合预期,可能的原因是VPN服务端的推送配置里没有开启“强制覆盖终端DNS”的选项,部分终端系统的本地DNS优先级默认更高,会绕过VPN隧道的解析规则,导致解析请求从本地宽带出口直接发出。
第三项检查:DNS防泄漏规则的双线路适配
双宽带环境下的VPN部署,很容易出现某条宽带的公网DNS泄漏问题,也就是内网私有域名的解析请求不小心从其中一条宽带的公网出口发出去,不仅会导致解析失败,还可能把内网域名的相关信息暴露给公网DNS服务商。你可以分别在两条宽带的出口做端口镜像抓包,查看所有发往53端口的DNS请求,有没有不属于公网域名的私有域名解析记录。
这一步的预期结果是,所有后缀属于内网私有域的解析请求,全部都只发往内网部署的私有DNS服务器,不会出现在任意一条宽带的公网出口流量里,公网域名的解析请求则按照之前配置的分流规则,走指定的宽带线路发起请求。
全部检查步骤完成后,你可以分别切换不同的双宽带线路作为VPN的接入出口,多次测试内网域名、公网域名的解析结果,确认不会出现解析跳转、偶发失败的情况,整个排查流程依托现有网关和终端的自带功能就能完成,不需要额外部署复杂工具,就能覆盖绝大多数双宽带VPN场景下的DNS配置类故障。
给梨加速器 
