BIND 9.8.2 没有提供“dig domain.xxx ANY”的 A 记录

BIND 9.8.2 没有提供“dig domain.xxx ANY”的 A 记录

我的 BIND 9.8.2 设置出了问题。配置主区域后,发现运行正常,但无法使用带有选项的实用程序获取所有A记录的列表。digANY

这里有些例子:

google.com

如果我尝试 google.com 我能够获得A记录:

# dig google.com ANY
;  DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.4 <<>> google.com ANY
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51302
;; flags: qr rd ra; QUERY: 1, ANSWER: 21, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.com.                    IN      ANY
;; ANSWER SECTION:
google.com.             264     IN      A       46.28.246.109
google.com.             54220   IN      NS      ns3.google.com.
google.com.             264     IN      A       46.28.246.108
google.com.             264     IN      A       46.28.246.84
google.com.             264     IN      A       46.28.246.113
google.com.             264     IN      A       46.28.246.104
google.com.             54220   IN      NS      ns2.google.com.
google.com.             264     IN      A       46.28.246.99
google.com.             264     IN      A       46.28.246.118
google.com.             264     IN      A       46.28.246.119
google.com.             54220   IN      NS      ns4.google.com.
google.com.             264     IN      A       46.28.246.89
google.com.             264     IN      A       46.28.246.93
google.com.             264     IN      A       46.28.246.88
google.com.             264     IN      A       46.28.246.94
google.com.             60      IN      SOA     ns1.google.com. dns-admin.google.com. 1559778 7200 1800 1209600 300
google.com.             54220   IN      NS      ns1.google.com.
google.com.             264     IN      A       46.28.246.123
google.com.             264     IN      A       46.28.246.98
google.com.             264     IN      A       46.28.246.103
google.com.             264     IN      A       46.28.246.114

;; Query time: 47 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Thu Jun 26 18:43:50 2014
;; MSG SIZE  rcvd: 402

我的实验室域名 - MX 记录作为示例

MX如果我提出要求,我可能会得到记录:

# dig internal.bluenet.lab MX
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> internal.bluenet.lab MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40974
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;internal.bluenet.lab.          IN      MX

;; ANSWER SECTION:
internal.bluenet.lab.   257965  IN      MX      20 mail2.internal.bluenet.lab.
internal.bluenet.lab.   257965  IN      MX      10 mail1.internal.bluenet.lab.

;; AUTHORITY SECTION:
internal.bluenet.lab.   257439  IN      NS      ns.internal.bluenet.lab.

;; Query time: 2 msec
;; SERVER: 10.200.1.99#53(10.200.1.99)
;; WHEN: Thu Jun 26 18:53:35 2014
;; MSG SIZE  rcvd: 99

我的实验室域名 - 没有 A 记录

无论我是否使用ANYA选项,我都无法获得所有A记录作为答案。只有当我使用选项时,A我才能获得一条 A 记录

# dig internal.bluenet.lab ANY

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> internal.bluenet.lab ANY
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39681
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;internal.bluenet.lab.          IN      ANY

;; ANSWER SECTION:
internal.bluenet.lab.   257961  IN      MX      10 mail1.internal.bluenet.lab.
internal.bluenet.lab.   257961  IN      MX      20 mail2.internal.bluenet.lab.
internal.bluenet.lab.   257961  IN      SOA     ns.internal.bluenet.lab.         adminlab.bluenet.lab.internal.bluenet.lab. 3837556585 28800 7200 2419200 86400
internal.bluenet.lab.   257435  IN      NS      ns.internal.bluenet.lab.

;; AUTHORITY SECTION:
internal.bluenet.lab.   257435  IN      NS      ns.internal.bluenet.lab.

;; Query time: 0 msec
;; SERVER: 10.200.1.99#53(10.200.1.99)
;; WHEN: Thu Jun 26 18:53:40 2014
;; MSG SIZE  rcvd: 168

我有一个典型的 BIND 安装 - chrooted,只有一个主区域。我已阻止区域传输(以防止AXFR查询)。

我不知道为什么我无法获取A记录。请帮助我。应该有一些选项命名配置文件用于允许这一点?

答案1

假设确实存在A记录,我相信观察到的行为只是归结为ANY针对缓存服务器的查询的一般行为。

需要注意的重要一点(可能不太直观)是,任何服务器(无论是缓存服务器还是权威服务器)只需要返回查询中请求的名称的任何记录ANY

也就是说,如果缓存服务器的缓存中有内容,则返回缓存中仍存在的该名称的内容是完全有效的(也是最普遍的实现)。这意味着如果存在不同的 TTL,则结果的某些部分可能已过期。

这在实践中意味着ANY查询仅在非常特殊的情况下有用(通常不会内置到软件中,而是用于调试和类似用途)。

相关内容