我的 Ubuntu 11.10 bind9 配置有什么问题?

我的 Ubuntu 11.10 bind9 配置有什么问题?

我按照几个教程安装自己的名称服务器,但几乎束手无策,因为我无法解析它们。请注意,出于隐私考虑,实际域和 IP 地址已更改为 example.com 和 192.168.0.1。我的 named.conf.local 文件:

zone "example.com" {
    type master;
    file "/var/cache/bind/example.com.db";
};

zone "0.168.192.in_addr.arpa" {
  type master;
  file "/var/cache/bind/192.168.0.db";
};

我的named.conf.options文件:

options {
    forwarders {
       192.168.0.1;
     };

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

我的 resolv.conf 文件:

search example.com.
nameserver 192.168.0.1

我的转发 DNS 文件:

ORIGIN example.com.
$TTL  86400
@    IN    SOA   ns1.example.com.    root.example.com. (
    2012083101  ; Serial
    604800  ; Refresh
    86400  ; Retry
    2419200  ; Expire
    3600 )  ; Negative Cache TTL

example.com. NS    ns1.example.com.
example.com. NS    ns2.example.com.
example.com. MX    10 mail.example.com.

@        IN  A  192.168.0.1
ns1.example.com       IN  A  192.168.0.1
ns2.example.com       IN  A  192.168.0.2
mail     IN  A  192.168.0.1
server1  IN  A  192.168.0.1

gateway    IN CNAME ns1.example.com.
headoffice IN CNAME server1.example.com.
smtp       IN CNAME mail.example.com.
pop        IN CNAME mail.example.com.
imap       IN CNAME mail.example.com.
www        IN CNAME server1.example.com.
sql        IN CNAME server1.example.com.

我的反向 DNS:

$ORIGIN 0.168.192.in-addr.arpa.
$TTL  86400
@  IN  SOA  ns1.example.com.  root.example.com. (
    2009013101  ; Serial
    604800  ; Refresh
    86400  ; Retry
    2419200  ; Expire
    3600 )  ; Negative Cache TTL

1    PTR mail.example.com.
1    PTR server1.example.com.
2    PTR ns1.example.com.

然而,当我重新启动 bind9 并执行以下时:

host ns1.example.com localhost

我得到:

Using domain server:
Name: localhost
Address: 127.0.0.1#53
Aliases: 

Host ns1.example.com.example.com not found: 2(SERVFAIL)

同样地,对于:

host 192.168.0.1 localhost

我得到:

;; connection timed out; no servers could be reached

有人知道发生了什么吗?顺便说一句,我在这个问题中使用的域名“www.example.com”正在转发到我的 ISP 的名称服务器。这会影响我的 bind9 配置吗?我想学习如何自行设置名称服务器以供学习,所以我才经历了这么多麻烦。

答案1

这两个答案都很好.. bind 附带了一个可用于检查区域/conf 文件的工具

named-checkzone domain.com /path/to/domain.com.zone

还有

named-checkconf 

检查您的配置。

答案2

将 替换_为,-in-addr

zone "0.168.192.in_addr.arpa" {
  ...
};

应该

zone "0.168.192.in-addr.arpa" {
  ...
};

答案3

有问题的条目在这里:

ns1.example.com       IN  A  192.168.0.1
ns2.example.com       IN  A  192.168.0.2

如果您没有用句点结束这些内容,您的域名将被添加到每个内容的末尾。要使其正常工作,请将它们更改为:

ns1       IN  A  192.168.0.1
ns2       IN  A  192.168.0.2

您还需要进行@Zoredache 给出的更改来修复您的反向 DNS(但您直到后来才发现该问题......)

答案4

首先……启动named后,确保它仍在运行,并且没有因某种错误而退出。named是否显示在ps输出中?它向系统日志记录了什么?您是否配置了rndc?如果配置了,那么“rndc status”显示什么?当您收到SERVFAIL和“连接超时”消息(如上所述)时,您需要确保您正在与实时服务器通信。

除了 syslog 之外,它还会在其他地方记录吗?(您只向我们展示了您的 named.conf 的一个子集,所以我不确定主 named.conf 是否有声明将日志信息发送到其他地方的日志记录节。)

检查 ps 以确保 named 正在运行,并检查 syslog 以查看它在尝试启动时是否有任何抱怨。

除此之外,您打算通过配置中声明转发器的行来实现什么目的?

当您准备测试时,请使用完全限定域名(FQDN)进行测试,例如:

dig ns1.example.com. @localhost

以避免出现上述混淆的情况:

Host ns1.example.com.example.com not found: 2(SERVFAIL)

(您可以看到,由于 resolv.conf 文件中的搜索规则,“example.com”被附加到已经包含它的域名...您可以使用 FQDN 消除歧义。)

相关内容