定位分流规则与内网DNS故障,5项检查按成本排序

发布时间:

按成本从低到高排查内部域名解析异常:检查客户端解析器、比较 DNS 回答、核实到解析器的路由,并检查条件转发、访问控制与抓包证据。

访问内部网站失败时,先别急着改分流策略。分流规则通常决定流量走哪条路径,不会直接改写域名记录;但如果 DNS 查询本身被送到另一条网络,设备就可能收到不同答案,或根本收不到答案。定位分流规则导致内部域名解析异常的定位方法,关键是分别确认“问了谁、怎么到达、得到了什么回答”。以下五项检查按成本从低到高排列。

先确认故障边界:只有内部域名异常吗

记录一个失败的内部域名和一个正常的公共域名,并确认故障是否只发生在特定网络、特定设备或启用远程接入后。若公共域名也解析失败,优先排查整体网络或解析器可用性;若只有内部名称异常,则重点看客户端选用的解析器、DNS后缀和分流路径。不要把浏览器页面打不开直接等同于 DNS 故障,也可能是解析成功后到目标地址的路由不通。

定位分流规则与内网DNS故障,5项检查按成本排序

五项检查,按成本由低到高

1. 查看客户端当前使用的解析器

这是最快的一步,不改配置,只读取状态。macOS 可运行 scutil --dns 查看解析器及适用的域名范围;再用 networksetup -getdnsservers Wi-Fi 查看 Wi-Fi 服务配置。不同网络服务或系统版本显示方式可能不同。核对内部域名是否匹配预期解析器,也留意是否同时存在多个解析器或分域规则。分域解析配置遗漏时,查询可能落到公共解析器。

2. 分别向候选解析器发起查询

使用 dig @解析器地址 内部域名 A,把“解析器地址”替换为管理员提供的地址;再对另一个已知解析器执行同样查询。比较返回的地址、状态和响应时间。一个解析器返回记录、另一个返回 NXDOMAIN,说明两者的区域数据或转发配置不同;两个都超时,则问题更可能在连通性或服务可用性。查询到地址不代表应用流量一定能到达该地址。

3. 检查到 DNS 服务器的实际路由

针对解析器 IP 检查路由表,确认流量走的是预期接口,而非被更具体的分流条目导向其他网络。macOS 可运行 route -n get 解析器地址 查看选中的路由和接口。比较正常网络与故障网络的结果,并检查规则优先级、目标网段和下一跳。若解析器地址落在被排除的网段,或路由指向不可达的接口,调整应由网络管理员结合现有策略完成,不要直接扩大路由范围。

4. 核对 DNS 后缀、条件转发和访问控制

确认客户端查询的是完整内部域名,还是依赖 DNS 后缀补全的短名称;两者可能触发不同查询。再检查内部 DNS 是否配置了对应区域或条件转发,以及客户端来源网段是否被允许查询。分流规则将 DNS 请求送到另一台解析器时,该解析器可能没有内部区域,也未设置向正确服务器转发。应对照解析器地址、域名范围和客户端来源逐项核实,而不是只看“DNS 地址已配置”。

5. 在受控条件下抓取查询并做对照

前四项仍无法定位时,在客户端或 DNS 服务器侧捕获 DNS 流量,观察查询的目标地址、响应码与往返情况。可使用 tcpdump 等抓包工具,限定 DNS 流量并在短时间内复现一次故障;涉及明文 DNS 时,查询名称可能出现在捕获内容中,应按组织的隐私与安全要求处理。若请求发往非预期解析器,回查客户端分域设置和分流规则;若请求到达正确服务器却没有有效回答,再查区域、转发与防火墙日志。此步骤操作成本较高,也需要相应权限。

怎样判断是不是分流规则所致

如果切换网络或停用某条受控策略后,查询目标解析器随之改变,且同一域名在不同解析器上的回答不同,分流路径与解析异常存在较强关联。反之,查询始终发往同一解析器并得到正确地址,但连接仍失败,应转查目标网段路由、端口访问和服务状态。排查分流规则导致内部域名解析异常的定位方法时,保留故障时间、查询域名、解析器地址、返回结果和路由接口,便于复核;不要仅凭一次成功或失败就修改生产规则。

常见问题

分流规则会直接改变 DNS 记录吗?

通常不会。它主要影响流量路径;但改变 DNS 查询所到达的解析器后,设备可能得到不同答案。

内部域名返回 NXDOMAIN,代表 DNS 服务器坏了吗?

不一定。也可能是查询发到了没有该内部区域的解析器,或域名拼写、DNS 后缀不符合预期。

查到内部 IP,为什么网页仍打不开?

解析只完成名称到地址的转换。还需确认到该地址的路由、访问策略以及目标服务是否可用。

先确认解析器,再比较查询结果与到服务器的路由,最后检查转发和抓包,通常能以较小改动缩小范围。这就是分流规则导致内部域名解析异常的定位方法的核心:把 DNS 查询路径与应用访问路径分开验证。