为什么权威名称服务器和缓存名称服务器对任何类型都返回不同的记录?

为什么权威名称服务器和缓存名称服务器对任何类型都返回不同的记录?

为什么当请求“任何”记录时,DNS 记录权威名称服务器经常会给出与缓存名称服务器不同的结果?

权威名称服务器似乎始终提供比缓存更多的记录 - 例如返回 MX 或 TXT 记录,而缓存名称服务器仅在明确请求时才返回这些记录。

例如,在我的家用系统(OS X)上,以下两个命令的区别

$ dig -t ANY +noall +nottl +answer microsoft.com
$ dig -t ANY +noall +nottl +answer microsoft.com @ns1.msft.net

是第一个只返回记录NS;第二个添加了MXSOATXT。然而,在具有完全不同 DNS 设置的单独 Linux 系统上,“缺失”的记录只有MXSOA

答案1

dig您使用从输出中删除信息的选项来隐藏自己的答案,在本例中具体是 TTL。

如果我们看一下完整的答案部分:

;; ANSWER SECTION:
microsoft.com.          3600    IN      A       23.96.52.53
microsoft.com.          3600    IN      A       191.239.213.197
microsoft.com.          3600    IN      A       104.40.211.35
microsoft.com.          3600    IN      A       104.43.195.251
microsoft.com.          3600    IN      A       23.100.122.175
microsoft.com.          172800  IN      NS      ns3.msft.net.
microsoft.com.          172800  IN      NS      ns4.msft.net.
microsoft.com.          172800  IN      NS      ns1.msft.net.
microsoft.com.          172800  IN      NS      ns2.msft.net.
microsoft.com.          3600    IN      SOA     ns1.msft.net. msnhst.microsoft.com. 2016020503 7200 600 2419200 3600
microsoft.com.          3600    IN      MX      10 microsoft-com.mail.protection.outlook.com.
microsoft.com.          3600    IN      TXT     "v=spf1 include:_spf-a.microsoft.com include:_spf-b.microsoft.com include:_spf-c.microsoft.com include:_spf-ssg-a.microsoft.com include:spf-a.hotmail.com ip4:147.243.128.24 ip4:147.243.128.26 ip4:147.243.1.153 ip4:147.243.1.47 ip4:147.243.1.48 -all"
microsoft.com.          3600    IN      TXT     "FbUF6DbkE+Aw1/wi9xgDi8KVrIIZus5v8L6tbIQZkGrQ/rVQKJi8CjQbBtWtE64ey4NJJwj5J65PIggVYNabdQ=="

我们可以看到,并非所有记录都具有相同的 TTL,这反过来意味着它们将在不同时间从缓存解析服务器的缓存中被逐出。

这与ANY查询类型的定义方式相结合意味着完全有可能(并且有效)仅获取当前留在缓存中的内容作为响应。

由于这种行为,如果涉及缓存服务器,则不能依赖 QTYPE 来准确列出所有记录。它主要用于故障排除(并且,即使如此,我也只会在您很好地理解其含义的情况下才认为它有用*)。ANYANY

相关内容