为什么 nslookup 和 dig 给出“警告:ID 不匹配...得到 0”错误?

Ral*_*way 6 domain-name-system dig nslookup dns-lookup

我正在尝试解决一些持续存在的连接问题,但在使用 dig 或 nslookup 时经常收到以下错误消息。

bash$ nslookup
> www.google.com
;; Warning: ID mismatch: expected ID 36298, got 0
;; Warning: ID mismatch: expected ID 36298, got 0
;; Warning: ID mismatch: expected ID 36298, got 0

bash$ dig www.google.com
;; Warning: ID mismatch: expected ID 34149, got 0
;; Warning: ID mismatch: expected ID 34149, got 0
;; Warning: ID mismatch: expected ID 34149, got 0

; <<>> DiG 9.8.3-P1 <<>> www.capitalone360.com
;; global options: +cmd
;; connection timed out; no servers could be reached
Run Code Online (Sandbox Code Playgroud)

任何人都可以阐明此错误消息的含义,特别是“得到 0”部分吗?

Dav*_*rtz 6

这意味着nslookupordig收到了 ID 为零的回复,而不是它期望的 ID。作为防止伪造 DNS 回复的一部分,每个 DNS 查询都包含一个 ID(通常是随机选择的)。DNS 服务器将 ID 复制到回复中,允许客户端将回复与查询进行匹配,并防止伪造的 DNS 回复被接受。

这可能是由于 DNS 服务器损坏或 DNS 转发或重写方案损坏造成的。它也可能是由欺骗性 DNS 回复攻击引起的,尽管这种可能性不大。