绑定“找不到示例:SERVFAIL”

绑定“找不到示例:SERVFAIL”

我正在尝试在我的 LAN 上设置一个 dns 服务器,因为我的路由器不支持 nat 反射,并且我有需要在 apache 上运行的域(无法通过 IP 地址访问)的虚拟主机。我不太熟悉区域文件,但我认为我走在正确的轨道上。我的域名是 tenex.us,我想在我的 lan 上使用 tenex.local(在 apache 中添加适当的 vhost)访问它。dns 服务器正在运行,因为它解析并缓存其他地址,包括 tenex.us,但我得到

服务器找不到 tenex.local:SERVFAIL

我有如下的named.conf

include "/etc/bind/named.conf.options";

include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";

zone "tenex.local" IN {
  // this is the authoritative server for
  // tenex.us info
  type master;
  file "db.tenex";
};

和 db.tenex 如下

$TTL 86400

@       IN      SOA     ns1.tenex.local.      craig.tenex.local. (
                        2014120705
                        28800          
                        7200           
                        864000          
                        86400          
                        )

                IN   NS      ns1    
                IN   NS      ns2    
@               IN   A  10.1.1.2
ns1             IN   A  10.1.1.2
ns2             IN   A  10.1.1.2
www             IN   CNAME @    
dev             IN   CNAME @
ftp             IN   CNAME @

和 named.conf.options 如下(其他文件是自 2014 年 12 月 6 日起的默认安装文件)

acl clients {
        10.1.1.0/24;
        10.1.2.0/24;
        localhost;
        localnets;
};

options {
        directory "/var/cache/bind";

        recursion yes;
        allow-query { clients; };

        forwarders {
                8.8.8.8;
                8.8.4.4;
        };
        forward only;

        dnssec-validation yes;

        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
};

我不是 DNS 专家,但我认为这是它的工作原理。如果我错了,请纠正我,这将对我有很大帮助。

  1. 我向服务器查询 tenex.local,
  2. 它看到 tenex.local 列出了一个区域,然后将该条目的区域文件内容返回给查询它的设备。
  3. 设备看到权威名称服务器是 ns1.tenex.local,并且当前地址与区域文件中 ns1.tenex.local 的 A 记录的地址(10.1.1.2)匹配,因此它(应该)解析为 www.tenex.local/tenex.local/dev.tenex.local/etc 的 A 记录。

答案1

我认为,为了编写,ns1 IN A ...ns1.tenex.local. IN A ... 必须$ORIGIN tenex.local.在区域文件中定义。符号也应如此@

也可以看看BIND - 由于错误,区域未加载

相关内容