飞鱼VPN
飞鱼VPN Logo
VPN按网段分流基于DNS配合的配置方法详解
Wi-Fi 与路由器

VPN按网段分流基于DNS配合的配置方法详解

很多用户部署VPN的时候并不希望全量流量都走加密隧道,比如企业远程办公场景下,仅内部OA、财务系统的访问需要走VPN链路,日常网页浏览、家用IoT设备联网的流量走本地宽带即可,仅靠静态路由表实现网段分流很容易出现DNS解析泄漏、分流规则匹配失效的问题,本文围绕VPN按网段分流:DNS配合方式展开,结合家用软路由、企业OpenVPN服务端的常见落地场景,拆解从原理到可复现配置的全流程方法,覆盖前置检查、分步操作、结果验证和常见排错环节,不需要依赖第三方付费工具就能完成稳定的分流配置。

VPN按网段分流配合DNS的核心原理

不少新手配置分流的时候只添加了静态路由规则,完全忽略DNS的联动配置,就会出现明明指定了普通公网流量走本地网关,结果DNS请求还是走VPN隧道,解析出来的IP地址和预设分流网段不匹配,最终全量流量都意外进入VPN隧道。VPN按网段分流:DNS配合方式的核心逻辑,是让不同分流网段对应的域名请求,直接由对应链路所属的DNS服务器完成解析,提前把域名解析出的IP段和预设的分流路由规则对齐,避免跨路径解析带来的规则匹配偏差。

比如常见的远程办公场景,员工在家用VPN连公司内网,要求公司内部系统网段走VPN隧道,飞鱼VPN其余家用上网流量走本地宽带,如果只在VPN客户端添加了公司内网的静态路由,没做对应DNS配合,用户访问公司OA域名的时候,本地宽带的公共DNS可能解析出运营商缓存的错误IP,这个IP不属于预设的内网网段,根本不会走VPN隧道,最终就会出现内网系统打不开的故障。

配置前的必要前置检查项

首先要梳理清楚两类分流网段的完整清单,一类是需要走VPN隧道的目标网段,比如企业内网所有私网网段、需要通过VPN访问的专属业务服务器公网网段,另一类是走本地网关的网段,比如运营商内网地址、VPN下载国内常用公共服务网段,提前排查两类网段的重叠部分,避免后续路由规则出现优先级冲突。

网络设备:VPN按网段分流:DNS配合方

多类网络设备联动,完成VPN网段分流的DNS配套配置实操

接下来要确认VPN服务端已经开启了允许自定义推送DNS的权限,不要强制把所有客户端的DNS都替换成VPN服务端的内网DNS,很多默认的VPN配置会下发全量DNS劫持规则,后续的分流DNS配置根本无法生效,这一步可以先在VPN客户端的运行日志里查看服务端推送的路由和DNS条目,把全量DNS覆盖的规则先在服务端后台关闭。

还要提前在本地网络侧确认两个DNS服务的连通性,走本地流量对应的公共DNS或者运营商DNS要能正常解析普通公网域名,走VPN隧道对应的内网DNS要能正常解析VPN侧的专属后缀域名,两个DNS单独测试都能正常返回结果之后,再开始后续的联动配置。

分步落地的配置操作流程

先在VPN客户端的分流路由表中,把所有需要走VPN隧道的网段全部添加成静态路由,下一跳指向VPN虚拟网卡的网关地址,其余所有未被匹配的网段默认走本地物理网卡的网关,这一步是分流的基础骨架,不要直接套用默认的全流量走VPN的配置模板。

接下来配置DNS的分流绑定,也就是VPN按网段分流:DNS配合方式的核心操作,在支持DNS策略路由的设备比如OpenWrt软路由、企业级VPN客户端里,添加两条DNS规则:所有访问后缀属于VPN侧专属域名的DNS请求,全部转发给VPN服务端推送的内网DNS服务器,返回的解析结果自动命中之前配置的VPN网段路由;其余所有普通域名的DNS请求,全部转发给本地运营商的公共DNS服务器,返回的IP自动走本地网关路由。

如果是在Windows、macOS这类单设备客户端上配置,不需要额外软路由的话,可以直接在系统DNS设置里,把VPN侧的专属搜索后缀添加到VPN虚拟网卡的DNS列表里,本地物理网卡的DNS只保留本地运营商的DNS地址,系统会自动根据域名后缀选择对应的DNS服务器发起请求,不需要额外安装第三方DNS工具。

配置完成后的结果验证方法

首先验证VPN侧专属域名的解析结果,在系统终端里用ping或者nslookup工具查询公司内网的OA域名,查看返回的IP是不是属于之前预设的走VPN隧道的内网网段,同时查看系统的路由跟踪路径,VPN下载确认这个IP的流量确实走了VPN虚拟网卡的网关。

接下来验证普通公网域名的解析结果,用同样的nslookup工具查询常用公网服务域名,确认返回的解析服务器地址是本地运营商的DNS,不是VPN侧的内网DNS,路由跟踪的第一跳是本地宽带的网关地址,没有进入VPN隧道。

常见配置误区的故障定位

最常见的误区是配置完之后发现部分公网网站的流量莫名其妙走了VPN,VPN下载排查的时候可以先看DNS的解析日志,大概率是部分公共DNS返回的IP段刚好被之前添加的VPN分流网段覆盖了,这时候要调整分流网段的掩码范围,不要把公网常用地址段误包含进去。

另一个常见问题是VPN断开之后本地网络无法正常解析域名,这是因为之前配置的时候把系统全局的DNS改成了VPN侧的内网DNS,没有做DNS的故障回退规则,只需要把本地物理网卡的DNS优先级调到高于VPN虚拟网卡,VPN断开之后系统就会自动切回本地DNS服务,不会影响日常上网。

连接排障编辑组
连接排障编辑组
内容编辑

按设备、网络、客户端和服务端逐层检查,让故障定位更有条理。

查看更多文章
配置入门

找到适合当前设备的指南

遇到OpenVPN证书过期相关问题,可从“通过服务方取得有效配置并核对身份”开始阅读。不能通过忽略证书错误恢复应有的身份保证,需要结合具体环境判断。