0

I have been using debian, so things are different in CentOS 7. I was trying to setup bind however it fails to start. and doesn't show exact error.

Error :

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.

My reverse File:

$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.

My 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";

Any help?

1
  • 3
    Have you looked at your syslog logs for named errors? Most likely /var/log/messages...
    – user143703
    Aug 8, 2016 at 20:42

2 Answers 2

0

I guess it's the DISABLE_ZONE_CHECKING environment variable. I bet you have it set somewhere, in the /etc/sysconfig/named as a wild guess.

2
  • Nope, its commented. and after struggling with it, it starts successfully, however my domain isn't up. if I ping in my server e.g ping ns1.domain.com or ping domain.com I receive good response. I have also added the domain and server IP to my /etc/hosts/ as IP domain.com. named-checkzone gives me a good response. named-checkzone domain.com domain.com.db zone domain.com/IN: loaded serial 2016080931 OK. I have configured the name server in the domain, but domain remains down.
    – nix
    Aug 10, 2016 at 6:10
  • I believe that my named is privately setup. I mean my domain is only working on the server. e.g if I wget a file from my domain on server, it successfully downloads. However, publicly its down.
    – nix
    Aug 10, 2016 at 7:06
0

Finally I figured it out. Actually in my named.conf file I had used allow-query { localhost; my.ip; }; and I wasn't using allow-transfer So i just swapped. In short I added following to my named.conf

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

So its working now. Thank @yoonix for suggesting me about /var/log/messages

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .