DNS 污染,本质上就是如楼上所说的 DNS 抢答。
因为常规 UDP 协议的明文 DNS 是不验证结果是否正确的,只会无脑接收第一个回答(即错误的 DNS 解析结果),后续收到的正确结果都会被抛弃。
所以只需要再全国各个地区加个旁路 DNS 服务器,检测明文的 DNS 请求,抢先返回错误的 DNS 解析结果,因此你收到被污染的 DNS 解析结果时,真正的 DNS 请求还在路上跑呢。。。
而且国外的 DNS 延迟/稳定性显然不如国内 DNS,解析结果也不如国内 DNS(国内如视频类网站的分发 CDN 非常依赖国内 DNS 来分地区 精细化解析,得到的解析 IP 才能离你更近,速度更快,国外 DNS 我遇到过解析国内网站,结果分配到国外 IP 的情况。。。
如果你用的是加密 DNS,那么就不建议使用国内的加密 DNS 了。
因为这些国内 DNS 虽然加密了,但是因为国情,这些国内公共 DNS 提供商必须主动污染自己的源头,因此哪怕加密 DNS 杜绝了 DNS 污染/劫持/抢答 问题,但依然被迫污染源头,用户得到的依然是错误 IP。
注意,这些国内加密 DNS 的源头污染是根据 IP 判断的,国内用户使用就会返回污染 IP,国外用户则是正确 IP。