名词都没搞清楚
所谓的DNS劫持
,是说,向DNS A发出DNS查询请求后,DNS B在中间提前返回查询结果。这个中间的查询结果不一定是错误的,可能是正确的(某些小运营商可能会重定向到一个中间的缓存服务器上加速)。在墙内向GFW外发起DNS查询请求返回不正确结果这叫DNS劫持。
另一种常见的被认为是DNS劫持
的,叫NXDOMAIN劫持
。是向DNS A发起一个不存在的域名查询,DNS A本来应该返回NXDOMAIN
也就是non-exist domain,实际返回的是一个DNS商自己的IP用于广告或用于引导用户到正确域名上。
最后一种是所谓的DNS缓存投毒
,建立在DNS劫持
基础上。是说DNS服务器发起递归查询时被DNS劫持
,然后查询结果被缓存在这台DNS服务器上导致结果不正确。在墙内向国内DNS服务器发起被污染域名的查询时返回不正确结果这叫DNS缓存投毒
所以对一个存在DNS缓存投毒
和NXDOMAIN劫持
的DNS服务商,你要求它不返回错误结果,这也太为难它了吧?