什么时候caching名称服务器包括权威部分?

我想找出swedbank.se域的权威名称服务器。 我为swedbank.se询问了几个caching名称服务器,而有些则回答权威名称服务器,其他则没有。 例如Google公共DNS服务器:

$ dig @8.8.8.8 swedbank.se +noall +authority ; <<>> DiG 9.6.1-P1 <<>> @8.8.8.8 swedbank.se +noall +authority ; (1 server found) ;; global options: +cmd $ dig @isp-nameserver swedbank.se +noall +authority ; <<>> DiG 9.6.1-P1 <<>> @isp-nameserver swedbank.se +noall +authority ; (1 server found) ;; global options: +cmd swedbank.se. 2719 IN NS ns2.foreningssparbanken.se. swedbank.se. 2719 IN NS ns1.foreningssparbanken.se. swedbank.se. 2719 IN NS ns3.foreningssparbanken.se. $ 

这只是一个caching名称服务器configuration的问题? 还是有这种行为的其他原因?

最准确的答案是“什么时候需要RFC,还有其他一些情况”。

唯一确保看到AUTHORITY部分的是远程服务器在答案部分回答零logging(即使这样,只有当rcode是NOERROR或NXDOMAIN时)。 我所知道的最常见的情况是:

  • 向授权服务器查询已委派给其他服务器的logging
  • 接收NXDOMAIN响应
  • 当logging不在caching中时,查询没有RD (recursion所需)标志的recursion服务器。 使用dig,这将通过+norecurse选项完成。

在RFC所要求的环境之外,你将会在这个领域得到的是特定于实现的,不可靠的。 某些域名服务器软件提供了除RFC需要的时候不提供这些数据的选项,这对于减less放大攻击情况下的每个应答数据包大小是有用的。 BIND9的minimal-responses选项就是一个例子。

最小的-响应
如果是的话,那么当生成响应时,服务器将只在需要时向权限和附加数据部分添加logging(例如,授权,否定响应)。 这可能会提高服务器的性能。 默认值是no。

简而言之,除非涉及转介或NXDOMAIN,否则您应将AUTHORITY部分中的数据视为便利因素。 在编写分析DNS答复的代码时,如果rcode在“答案”部分中为零,则只查看AUTHORITY部分。