我想找出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时)。 我所知道的最常见的情况是:
RD
(recursion所需)标志的recursion服务器。 使用dig,这将通过+norecurse
选项完成。 在RFC所要求的环境之外,你将会在这个领域得到的是特定于实现的,不可靠的。 某些域名服务器软件提供了除RFC需要的时候不提供这些数据的选项,这对于减less放大攻击情况下的每个应答数据包大小是有用的。 BIND9的minimal-responses
选项就是一个例子。
最小的-响应
如果是的话,那么当生成响应时,服务器将只在需要时向权限和附加数据部分添加logging(例如,授权,否定响应)。 这可能会提高服务器的性能。 默认值是no。
简而言之,除非涉及转介或NXDOMAIN,否则您应将AUTHORITY部分中的数据视为便利因素。 在编写分析DNS答复的代码时,如果rcode在“答案”部分中为零,则只查看AUTHORITY部分。