BIND: could not configure root hints from 'named.root': file not
found
Matthew
mpope at teksavvy.com
Fri Oct 1 18:03:59 UTC 2010
Hello,
I noticed my email client was taking just over two minutes to start up,
with the mail folder being accessed from a share on an NFS server.
After rebuilding my workstation (due to h/w heating problems), I deleted
my 50,000 emails from freebsd-questions, and ipfw folders. Now the
email client opens the NFS share and starts up in under two seconds :)
However, now I must use mmsearch at lists.freebsd.org to search mailing
list archives. This gives me Internal Server Error on most of my
searches, so I decided to post my question here.
I have been running a FreeBSD server in my basement for nearly a decade,
and like some on this email list, I also ran into trouble when
rebuilding my bind environment in a new server environment. (Server ran
out of space and my root partition was too small, so I decided to
rebuild the box, only to be reminded BIND is tricky to configure.)
The BIND files look like Greek to me (no offense intended to Grecians.)
Its been at least eight years since I read much of "DNS and Bind" and my
copy is now languishing at some former client or employer. I've been
reading man pages, handbooks, and the like for days. Here's my immediate
problem:
After building the server, with jails, before putting BIND in the jail,
I decided to get it working in the host FreeBSD environment.
# uname -a
FreeBSD www.mbpesecurity.com 8.1-RELEASE FreeBSD 8.1-RELEASE #0: Mon Jul
19 02:55:53 UTC 2010
root at almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
From this dir:
# pwd
/var/named/etc/namedb (symlinked to /etc/namedb)
When I start bind:
# /etc/rc.d/named onestart
Starting named.
/etc/rc.d/named: WARNING: failed to start named
# pwd
/var/named/etc/namedb
www# ls named.root
named.root
Syslogs Show:
Oct 1 12:36:35 www named[4663]: starting BIND 9.6.2-P2 -t /var/named -u
bind
Oct 1 12:36:35 www named[4663]: built with '--prefix=/usr'
'--infodir=/usr/share/info' '--mandir=/usr/share/man' '--enable-threads'
'--disable-ipv6' '--enable-getifaddrs' '--disable-linux-caps'
'--with-openssl=/usr' '--with-randomdev=/dev/random' '--without-idn'
'--without-libxml2'
Oct 1 12:36:35 www named[4663]: *could not configure root hints from
'named.root': file not found*
Oct 1 12:36:35 www named[4663]: loading configuration: file not found
Oct 1 12:36:35 www named[4663]: exiting (due to fatal error)
Oct 1 12:36:35 www mpope: /etc/rc.d/named: WARNING: failed to start named
This perplexes me since 'named.root' is in the starting dir:
/etc/namedb, and the 'master' subdir: /etc/namedb/master.
# pwd
/var/named/etc/namedb (symlinked dir for /etc/namedb)
www# ls -ald *
drwxr-xr-x 3 root wheel 512 Oct 1 12:28 aborted
drwxr-xr-x 2 bind wheel 512 Oct 1 12:33 dynamic
drwxr-xr-x 2 root wheel 512 Oct 1 12:36 master
-rw-r--r-- 1 root wheel 1783 Oct 1 12:29 named.conf
-rw-r--r-- 1 named named 3082 Sep 30 17:44 *named.root*
-rw------- 1 bind wheel 97 Sep 30 17:20 rndc.key
drwxr-xr-x 2 bind wheel 512 Oct 1 12:33 slave
drwxr-xr-x 2 bind wheel 512 Oct 1 12:36 working
# ls master
0.0.127.IN-ADDR.ARPA empty.db *named.root*
171.248.206.IN-ADDR.ARPA mbpesecurity.com
db.bind named.localhost
Perhaps BIND is actually starting from some other directory? Here is a
list of all namedb hits.
Since I'm not starting from the jail yet, the only other named dir is in
/usr/src/etc/named, the build dir, see listing below.
# pwd
/var/named/etc/namedb
# find / -name namedb
/usr/src/etc/namedb <== only other named dir
/usr/home/j/mroot/usr/src/etc/namedb = START of
JAIL Related dirs
/usr/home/j/mroot/var/named/etc/namedb |
/usr/home/j/skel/var/named/etc/namedb |
/usr/home/j/ns/s/etc/namedb |
/usr/home/j/ns/s/var/named/etc/namedb |
/usr/home/j/ns/usr/src/etc/namedb |
/usr/home/j/ns/var/named/etc/namedb |
/usr/home/j/mail/s/var/named/etc/namedb |
/usr/home/j/mail/usr/src/etc/namedb |
/usr/home/j/mail/var/named/etc/namedb |
/usr/home/j/www/s/var/named/etc/namedb |
/usr/home/j/www/usr/src/etc/namedb |
/usr/home/j/www/var/named/etc/namedb |
/usr/home/js/ns/etc/namedb |
/usr/home/js/ns/var/named/etc/namedb |
/usr/home/js/mail/var/named/etc/namedb V
/usr/home/js/www/var/named/etc/namedb = END of JAIL
dirs
/etc/namedb << -----------------Sym link dest
/var/named/etc/namedb <<----------------- Sym link src
In the unlikely event BIND were running from the build dir
(/usr/src/etc/named), there too the named.root file is found:
# cd /usr/src/etc/namedb
# pwd
/usr/src/etc/namedb
# ls -al named.root master/named.root
-rw-r--r-- 1 root wheel 3082 Oct 1 13:27 master/named.root
-rw-r--r-- 1 root wheel 3082 Jun 22 23:56 named.root
Here is my (primitive, just to get going) named.conf: I will bring the
.conf up to current security standards when I get this primitive version
going.
*
# cat **named.conf*
// $FreeBSD: src/etc/namedb/named.conf,v 1.15.2.1 2004/09/30 23:36:07
dougb Exp $
//
// Refer to the named.conf(5) and named(8) man pages, and the documentation
// in /usr/share/doc/bind9 for more details.
// this acl is actually not used as for now we will comein only on 127.0.0.1
acl "rndc-users" {
192.168.111.0/24;
127.0.0.1/24;
};
key "rndc-remote" {
algorithm hmac-md5;
secret "12345671234567";
};
options {
directory ".";
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
listen-on { 127.0.0.1; 192.168.111.99; 192.168.111.150; };
query-source address * port 53;
forwarders {
209.250.128.6;
209.250.128.4;
206.248.154.22;
};
};
controls {
// localhost - default key
inet 127.0.0.1 port 953 allow { localhost; 192.168.111.150; };
inet * port 953 allow {"rndc-users";} keys {"rndc-remote";};
// inet * port 7766 allow {"rndc-users";} keys {"rndc-remote";};
};
// If you enable a local name server, don't forget to enter 127.0.0.1
// first in your /etc/resolv.conf so this server will be queried.
// Also, make sure to enable it in /etc/rc.conf.
zone "." {
type hint;
file "named.root";
};
zone "localhost" {
type master;
file "master/named.localhost";
};
zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "master/0.0.127.IN-ADDR.ARPA";
};
// Never forget to include the reverse lookup (IN-ADDR.ARPA) zone!
// (This is named after the first bytes of the IP address, in reverse
// order, with ".IN-ADDR.ARPA" appended.)
zone "mbpesecurity.com" {
type master;
file "master/mbpesecurity.com";
};
zone "171.248.206.IN-ADDR.ARPA" {
type master;
file "master/171.248.206.IN-ADDR.ARPA";
};
*
END cat of named.conf*
Here I list the 'file' hits in the .conf file, and list the resultant
hits to make sure I have file reference integrity:
# grep file named.conf
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
file "named.root";
file "master/named.localhost";
file "master/0.0.127.IN-ADDR.ARPA";
file "master/mbpesecurity.com";
file "master/171.248.206.IN-ADDR.ARPA";
# ls named.root master/named.localhost master/0.0.127.IN-ADDR.ARPA
master/mbpesecurity.com master/171.248.206.IN-ADDR.ARPA
master/0.0.127.IN-ADDR.ARPA master/mbpesecurity.com named.root
master/171.248.206.IN-ADDR.ARPA master/named.localhost
I would be grateful for any pointers on how to resolve this. I suspect
the error message may not be exactly descriptive of whats happening.
Thank you,
Matthew
More information about the freebsd-questions
mailing list