DNS污染是指DNS查询收到伪造或被篡改的解析数据,使域名返回错误地址或其他非预期结果。用户输入的域名可能正确,但设备连接到了错误的服务器,表现为网站打不开、访问到陌生页面或出现证书错误。
判断DNS污染的关键,是核对解析结果是否来自可信的权威配置,并比较不同解析器、网络位置和时间的观测。不同地区返回不同IP、单次查询超时或Ping不通,都不能单独证明DNS污染。
什么是DNS污染
DNS负责将域名转换为IP地址。正常情况下,递归解析器查询权威DNS服务器并缓存答案,设备据此连接目标服务。错误数据若进入缓存,后续查询可能继续得到错误答案,直到缓存被纠正或过期。
严格意义上的DNS缓存污染,是将伪造数据写入解析器缓存;日常排障中,人们也常把查询路径上的伪造应答称为DNS污染。二者都可能导致非预期解析,但故障位置与处理方式不同。Cloudflare的DNS缓存污染说明介绍了错误缓存如何将访问导向错误地址。
还应区分几个相似现象:
| 现象 | 主要区别 |
|---|---|
| DNS缓存污染 | 解析器缓存中保存了伪造的DNS数据 |
| 查询路径上的应答伪造 | 查询过程中收到伪造答复,不一定进入缓存 |
| DNS劫持或配置篡改 | 设备、路由器、解析器或权威记录被修改 |
| 正常缓存未更新 | DNS变更后旧记录尚未过期,不一定涉及攻击 |
| CDN或智能DNS调度 | 根据地区、运营商等条件返回不同的合法地址 |
常用DNS污染检测方法
1. 使用DNS污染检测页面进行初步排查
TCPING.CN的DNS污染检测采用全国多节点检测方式,帮助站长和运维人员快速排查域名解析异常。通过对照不同网络位置的检测结果,可以观察异常的分布范围,减少逐个切换网络、手动查询的时间,并降低仅凭单点结果误判的风险。
网站打不开、部分地区访问异常或域名解析疑似被干扰时,可先使用该工具进行初步排查,再按异常范围选择后续核查方法。
检测链接以baidu.com为示例,实际排查时应使用目标域名。查看返回结果与提示,并记录检测时间,方便复测或提交给网络管理员、解析服务商。
若检测提示异常,应结合权威DNS记录及其他网络的查询结果进一步确认;若未发现异常,但网站仍无法访问,应继续检查本机DNS、浏览器解析设置与连接状态。检测结论对应本次检测的时间和节点范围,不代表所有网络始终正常或异常。
2. 对比不同DNS解析器的结果
对同一个域名、同一种记录类型,在接近的时间内分别查询当前DNS和另一可信解析器。记录返回地址、CNAME、TTL及响应状态,避免把IPv4的A记录与IPv6的AAAA记录直接比较。
Windows可使用以下命令,第二条中的地址应替换为你要核对的DNS服务器:
nslookup -type=A example.com
nslookup -type=A example.com <DNS服务器IP>
nslookup -type=AAAA example.com <DNS服务器IP>
若某个解析器持续返回非预期地址,而其他解析器正常,应进一步检查它的缓存、策略和查询路径。更换解析器后的差异是线索,仍需结合权威记录判断。
3. 从多个地区和运营商交叉查询
打开DNS查询,输入目标域名,分别核对A、AAAA和CNAME记录,观察异常是否集中在某个地区或运营商。
多地查询适合区分本机问题、局部网络异常与广泛解析异常。例如,只有办公网络异常,应优先检查本地DNS、路由器和企业策略;多个独立网络出现同样的非预期结果,则需要扩大排查范围。
CDN网站可能按地区返回不同IP。判断依据应是地址是否属于预期服务、CNAME是否符合配置,而非要求全球结果完全一致。
4. 核对权威DNS与域名变更记录
自有域名应以DNS管理后台、权威服务器和变更日志为核对依据。可先查询NS记录,再向相应权威服务器查询:
nslookup -type=NS example.com
nslookup -type=A example.com <权威DNS服务器名称>
重点核对是否刚修改过A、AAAA、CNAME或NS,旧记录是否仍在TTL有效期内。若权威配置本身被未经授权修改,应按账号或DNS配置安全事件处理;若权威记录正常而部分递归结果异常,则继续检查缓存与网络路径。
5. 检查本机缓存、Hosts与浏览器DNS设置
只有一台设备异常时,先检查Hosts文件、系统DNS设置、路由器下发的DNS,以及浏览器是否使用了独立的安全DNS解析器。系统命令与浏览器使用不同解析器,可能造成“命令正常、网页异常”。
保留异常结果后,可在Windows清理本机DNS缓存并复测:
ipconfig /flushdns
清理本机缓存不会清理运营商或公共解析器的缓存。复测正常也只能说明该次解析恢复,不能直接确认原因为恶意污染。
6. 用连接与HTTP结果补充验证
对可疑IP使用IP查询查看归属网络,再通过Tcping和网站测速检查连接与响应。
IP归属、证书不匹配或陌生页面可以提供辅助线索,但都不是单独定论。证书错误也可能来自部署失误或企业代理;直接访问IP失败,也可能是网站需要正确的域名、Host和TLS服务器名称。保留域名条件下的验证更有意义。
DNS污染的典型特征
- 非预期地址持续出现:解析结果与已核实的权威配置不符,且无法用缓存、CDN调度或近期变更解释。
- 异常集中于特定解析器或网络:同一域名在部分网络持续返回错误结果,而其他独立网络正常。
- 解析异常与访问异常对应:错误地址同时伴随陌生页面、非预期跳转或证书不匹配,需要进一步核对服务配置。
- 重复查询可复现:在记录类型和条件一致时,异常持续或规律性出现,具有可供服务商复核的时间与范围。
超时、NXDOMAIN和SERVFAIL也可能来自网络故障、记录不存在、解析器策略或DNSSEC配置错误。不能仅凭这些状态认定污染,也不能以国内外结果不同直接判断原因。
发现污染后的处理建议
- 先保存证据:记录域名、记录类型、查询时间与时区、DNS服务器、网络位置、完整答案与错误状态,并保留权威配置的对照信息。
- 检查本地配置:修正未经授权的Hosts、DNS或路由器设置;如配置反复被修改,应检查设备与路由器安全状况。
- 联系解析服务商处理:提供可复现结果,请运营商、公共DNS或企业网络管理员核查缓存与策略。按组织要求选用可信解析服务后再次验证。
- 站长核查账号和权威记录:检查注册商及DNS平台的登录与变更日志,撤销异常配置,并为管理账号启用多因素认证。
- 评估DNSSEC:DNSSEC提供DNS数据来源认证与完整性校验;域名正确签名且解析器执行验证时,可帮助识别伪造数据。它不加密查询,也不能解决所有访问故障。RFC4033定义了这些能力。
- 恢复后进行分层复测:依次核对多地DNS、TCP端口与HTTP响应。DNS正常但网站仍不可用时,应继续检查路由、TLS、CDN/WAF和应用服务。
常见问题
换DNS能解决污染吗?
如果异常来自特定解析器,使用另一可信解析器可能恢复正常;如果问题在本机、路由器、权威配置或查询路径,单纯更换DNS未必有效。应先确定异常范围。
加密DNS可以保证结果正确吗?
加密DNS保护设备与解析服务之间的传输,但结果仍取决于解析服务和权威数据的可信度。传输加密与DNSSEC的数据真实性验证解决的是不同问题。
Ping不通说明DNS污染吗?
不说明。Ping失败可能由ICMP过滤、目标离线或网络路径异常引起。应先确认实际解析地址,再用TCP和HTTP验证服务状态。