bind 无法启动,也不会显示错误

bind 无法启动,也不会显示错误

我一直在使用 debian,因此 CentOS 7 中的情况有所不同。我尝试设置绑定,但是它无法启动。并且没有显示确切的错误。

错误 :

systemctl status -l named.service
named.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; vendor     preset: disabled)
   Active: failed (Result: exit-code) since Mon 2016-08-08 20:20:25 UTC; 8s ago
  Process: 8822 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" ==     "yes" ]; then /usr/sbin/named-checkconf -z /etc/named.conf; else echo "Checking     of zone files is disabled"; fi (code=exited, status=1/FAILURE)

Aug 08 20:20:25 asdfs bash[8822]: zone IP.in-addr.arpa/IN: loaded     serial 2016082802
Aug 08 20:20:25 asdfs bash[8822]: zone localhost.localdomain/IN: loaded     serial 0
Aug 08 20:20:25 asdfs bash[8822]: zone localhost/IN: loaded serial 0
Aug 08 20:20:25 asdfs bash[8822]: zone     1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN:     loaded serial 0
Aug 08 20:20:25 asdfs bash[8822]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
Aug 08 20:20:25 asdfs bash[8822]: zone 0.in-addr.arpa/IN: loaded serial 0
Aug 08 20:20:25 asdfs systemd[1]: named.service: control process exited, code=exited status=1
Aug 08 20:20:25 asdfs systemd[1]: Failed to start Berkeley Internet Name Domain (DNS).
Aug 08 20:20:25 asdfs systemd[1]: Unit named.service entered failed state.
Aug 08 20:20:25 asdfs systemd[1]: named.service failed.

我的反向文件:

$TTL 1d ;
$ORIGIN IP.IN-ADDR.ARPA.
@       IN      SOA     ns1.domain1.org.   info.domain1.org. (
                                   2016082802
                                   7200
                                   120
                                   2419200
                                   604800
)
    IN      NS      ns1.domain1.org.
    IN      NS      ns2.domain1.org.
1       IN      PTR     ns1.domain1.org.
2       IN      PTR     ns2.domain1.org.



@       IN      SOA     ns1.domain2.org.   info.domain2.org. (
                                   2016080931
                                   7200
                                   120
                                   2419200
                                   604800
)
    IN      NS      ns1.domain2.org.
    IN      NS      ns2.domain2.org.
1       IN      PTR     ns1.domain2.org.
2       IN      PTR     ns2.domain2.org.

我的named.conf:

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
#       listen-on port 53 { 127.0.0.1; };
#       listen-on-v6 port 53 { ::1; };
    directory       "/var/named";
    dump-file       "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    memstatistics-file "/var/named/data/named_mem_stats.txt";
    allow-query     { localhost;MY.SERVER.IP.ADDRESS; };

    /*
     - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
     - If you are building a RECURSIVE (caching) DNS server, you need to enable
       recursion.
     - If your recursive DNS server has a public IP address, you MUST enable access
       control to limit queries to your legitimate users. Failing to do so will
       cause your server to become part of large scale DNS amplification
       attacks. Implementing BCP38 within your network would greatly
       reduce such attack surface
    */
    recursion yes;

    dnssec-enable yes;
    dnssec-validation yes;
    dnssec-lookaside auto;

    /* Path to ISC DLV key */
    bindkeys-file "/etc/named.iscdlv.key";

    managed-keys-directory "/var/named/dynamic";

    pid-file "/run/named/named.pid";
    session-keyfile "/run/named/session.key";
};

logging {
    channel default_debug {
            file "data/named.run";
            severity dynamic;
    };
};

zone "." IN {
    type hint;
    file "named.ca";
};

zone "domain2.org" IN {
    type master;
    file "/etc/named/domains/domain2.db";
    allow-update { none; };
};

zone "domain1.org" IN {
    type master;
    file "/etc/named/domains/domain1.org.db";
    allow-update { none; };
};

zone "IP.in-addr.arpa" IN {
    type master;
    file "/etc/named/domains/reversefile.rev";
    allow-update { none; };
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

有什么帮助吗?

答案1

我猜是DISABLE_ZONE_CHECKING环境变量。我猜你肯定在某个地方设置了它,这/etc/sysconfig/named只是猜测。

答案2

最后我终于搞明白了。实际上在我的named.conf文件中我使用了allow-query { localhost; my.ip; };,但我没有使用,allow-transfer所以我只是交换了。简而言之,我在我的文件中添加了以下内容named.conf

allow-query { any; };
allow-transfer { localhost; server.ip; };

现在它开始工作了。感谢@yoonix 给我的建议/var/log/messages

相关内容