ipv4接口上的AAAA DNS查询

时间:2013-04-07 11:59:53

标签: dns bind ipv6 ipv4 named

我们使用RH5.8并禁用ipv6。

命名(绑定)服务处于正向模式(启用缓存)

options {
   directory "/var/named";
   listen-on { 127.0.0.1; };
   forwarders {10.10.12.1;};
   forward only;
};

似乎某些命令(如telnet)始终首先查询AAAA记录,当回退到查询A时,在命名缓存中记录答案(没有这样的名称)。

因此,客户总是收到错误。

在下面的示例中,10.10.10.1是本地IP:

127.0.0.1 -> 127.0.0.1    DNS Standard query AAAA testapp.test.com

10.10.10.1 -> 10.10.12.1 DNS Standard query AAAA testapp.test.com

10.10.10.1 -> 10.10.12.1 DNS Standard query AAAA testapp.test.com

10.10.12.1 -> 10.10.10.1 DNS Standard query response, No such name

127.0.0.1 -> 127.0.0.1    DNS Standard query response, No such name

127.0.0.1 -> 127.0.0.1    DNS Standard query A testapp.test.com

127.0.0.1 -> 127.0.0.1    DNS Standard query response, No such name
我在网上搜索,发现不仅我遇到了这样的问题 http://www.linuxforums.org/forum/red-hat-fedora-linux/136217-disabling-ipv6-dns-queries.html

less /etc/modprobe.conf
  alias net-pf-10 off
  alias ipv6 off
  options ipv6 disable=1

less /etc/sysconfig/network
 NETWORKING_IPV6=no

less /etc/sysconfig/named
 OPTIONS="-4"

named -v
 BIND 9.3.6-P1-RedHat-9.3.6-20.P1.el5

但遗憾的是到目前为止找不到任何解决方案......

1 个答案:

答案 0 :(得分:1)

根据评论中的要求:对负面缓存的一些解释。

NXDOMAIN和NODATA之间的区别在RFC 2308的第5节中描述:

  

由名称错误(NXDOMAIN)引起的否定答案应该是     缓存,以便可以检索并返回它以响应     对同一< QNAME,QCLASS>的另一个查询这导致了     缓存否定回应。

因此可以基于QNAME(即“blabla.example.com。”)和QCLASS(通常为“IN”)缓存NXDOMAIN。所以这意味着blabla.example.com根本不存在。负缓存条目独立于QTYPE。 NODATA答案不同:

  

无数据错误(NODATA)导致的否定答案应该是     缓存,以便可以检索并返回它以响应     另一个查询相同< QNAME,QTYPE,QCLASS>结果导致了     缓存的否定回应。

这里包括QTYPE(即“AAAA”)。 NODATA否定缓存条目仅表示该名称不存在此特定记录类型

所以:如果您收到NXDOMAIN响应,那么您知道任何记录类型的名称根本不存在。如果您收到NODATA响应,那么您知道所请求的记录类型不存在,但可能存在其他记录类型。

这也意味着在发送回复时,如果可能存在同名的不同记录类型的有效记录,则永远不会发送NXDOMAIN响应。域名不存在将被缓存,缓存将开始告诉其客户端该名称根本不存在。