DNS 污染是什么表现?
DNS 污染的本质,是有人在解析链路上给了你一个假答案。
四个典型表现
返回无关 IP:解析出来的地址跟你的服务器完全没关系,可能是某个广告页面、某个黑洞地址,甚至是别人的机器。
返回保留地址:0.0.0.0、127.0.0.1、10.x.x.x 这类地址本来不该出现在公网解析结果里,出现就是被干预了。
部分线路解析失败:某些地区直接返回 NXDOMAIN 或者超时,换个地区又正常。
换 DNS 结果就变:用运营商 DNS 查是错的,换成公共 DNS 查是对的。这一条几乎是污染的判定标准。
为什么会被污染
常见于几种场景:运营商为了拦截某些域名做的劫持、跨境访问时的中间干预、域名本身被列入某些黑名单。
还有一种是自己配置引起的「假污染」:智能解析线路漏配,某些地区没有匹配的记录,就返回了默认值或者空结果。这种不是被攻击,是配置问题。
怎么确认
第一步,多节点查一遍,看错误结果集中在哪些地区、哪些运营商。
第二步,指定不同的 DNS 服务器对比。运营商 DNS 错、公共 DNS 对,基本就实锤了。
第三步,直接查权威服务器。如果权威返回的是正确 IP,那问题一定在递归链路上。
能做什么
如果是运营商劫持,个人层面很难彻底解决,可以考虑上 HTTPS(能防内容篡改,但防不了解析劫持)、换域名、或者向运营商投诉。
如果是跨境链路的干预,通常需要换线路或者用国内节点中转。
如果是自己配置的问题,把智能解析的线路补全就行。
别急着下结论
看到错误 IP 先排除缓存。刚改完解析,旧记录还在各地递归里躺着,这时候查出来的「错误结果」可能只是没到期。
等 TTL 过了再测,才能分清是污染还是延迟。