RHEL5-Bind 不返回 IPv6 记录

RHEL5-Bind 不返回 IPv6 记录

我有两个 DNS 解析器:

  • RHEL5 - BIND 9.7.0-P2-RedHat-9.7.0-17.P2.el5_9.2
  • RHEL6 - BIND 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.4

配置完全相同,两个 DNS 服务器均未配置 IPv6 地址,并且 BIND 不监听 IPv6 上的客户端查询。

我想知道为什么只有 RHEL6 返回 IPv6 记录,是否有与此相关的配置选项:

RHEL5

# dig @RHEL5 example.com NS

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> @RHEL5 example.com NS
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59564
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 12

;; QUESTION SECTION:
;example.com.           IN  NS

;; ANSWER SECTION:
example.com.        84843   IN  NS  ns01.example.com.
example.com.        84843   IN  NS  ns02.example.com.

;; ADDITIONAL SECTION:
ns01.example.com.   2233    IN  A   192.168.10.10
ns02.example.com.   2233    IN  A   192.168.20.20

;; Query time: 1 msec
;; SERVER: 10.10.1.10#53(10.10.1.10)
;; WHEN: Wed May  7 15:08:33 2014
;; MSG SIZE  rcvd: 464

RHEL6

# dig @RHEL6 example.com NS

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> @RHEL6 example.com NS
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59564
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 12

;; QUESTION SECTION:
;example.com.           IN  NS

;; ANSWER SECTION:
example.com.        84843   IN  NS  ns01.example.com.
example.com.        84843   IN  NS  ns02.example.com.

;; ADDITIONAL SECTION:
ns01.example.com.   2233    IN  A   192.168.10.10
ns01.example.com.   171236  IN  AAAA    2001:502:f4gg::1
ns02.example.com.   2233    IN  A   192.168.20.20
ns02.example.com.   171236  IN  AAAA    2410:a1:1024::1

;; Query time: 1 msec
;; SERVER: 10.10.2.10#53(10.10.2.10)
;; WHEN: Wed May  7 15:08:53 2014
;; MSG SIZE  rcvd: 464

答案1

当您查询缓存 DNS 服务器(ra在响应中设置了标志)时,您在该ADDITIONAL部分中得到的内容应被视为“尽力而为”,超出了 RFC 明确要求服务器执行的操作。有些服务器会禁用该ADDITIONAL部分完全除非 RFC 要求,即 BIND 的minimal-responses选项。

在这种情况下,该ADDITIONAL部分将包含服务器被动了解的记录,但您不能认为这些信息是详尽无遗的。它不会特意为您获取额外的数据,因为这将是不必要的工作,而且它有更好的事情要做。AAAA名称服务器 IP 并不经常被请求,并且它们经常不存在。

请看以下示例:

$ rpm -q bind97
bind97-9.7.0-17.P2.el5_9.1
$ dig @localhost +noall +additional serverfault.com
brad.ns.cloudflare.com. 82084   IN      A       173.245.59.105
roxy.ns.cloudflare.com. 6209    IN      A       173.245.58.142
$ dig @localhost +short brad.ns.cloudflare.com AAAA
2400:cb00:2049:1::adf5:3b69
$ dig @localhost +noall +additional serverfault.com
brad.ns.cloudflare.com. 82056   IN      A       173.245.59.105
brad.ns.cloudflare.com. 86397   IN      AAAA    2400:cb00:2049:1::adf5:3b69
roxy.ns.cloudflare.com. 6181    IN      A       173.245.58.142

我在这里所做的是演示我的缓存返回ADDITIONAL缺少AAAA记录的部分。然后我给缓存一个有用的提示,提示一条记录的存在AAAA,然后我随后的重试会拉下一个包含AAAA该记录响应但不包含另一条记录的附加部分。

权威名称服务器或引用名称服务器不会被动地填充该ADDITIONAL部分。

相关内容