DNS HOWTO : A resolving, caching name server. : Starting named
Previous: A resolving, caching name server.
Next: Resolvers

3.1. Starting named

After all this it's time to start named. If you're using a dialup connection connect first. Type `ndc start', and press return, no options. If that does not work try `/usr/sbin/ndc start' instead. If that back-fires see the qanda section. If you view your syslog message file (usually called /var/log/messages, but another directory to look in is /var/log and another file to look in is syslog) while starting named (do tail -f /var/log/messages) you should see something like:

(the lines ending in \ continues on the next line)

Dec 15 23:53:29 localhost named[3768]: starting.  named 8.2.2-P7 \
		Fri Nov 10 04:50:23 EST 2000 ^Iprospector@porky.\
		devel.redhat.com:/usr/src/bs/BUILD/bind-8.2.2_P7/\
		src/bin/named
Dec 15 23:53:29 localhost named[3768]: hint zone "" (IN) loaded\
		(serial 0)
Dec 15 23:53:29 localhost named[3768]: Zone "0.0.127.in-addr.arpa"\
		(file pz/127.0.0): No default TTL set using SOA\
		minimum instead
Dec 15 23:53:29 localhost named[3768]: master zone\
		"0.0.127.in-addr.arpa" (IN) loaded (serial 1)
Dec 15 23:53:29 localhost named[3768]: listening on [127.0.0.1].53 (lo)
Dec 15 23:53:29 localhost named[3768]: listening on [10.0.0.129].53\
		(wvlan0)
Dec 15 23:53:29 localhost named[3768]: Forwarding source address is\
		[0.0.0.0].1034
Dec 15 23:53:29 localhost named[3769]: Ready to answer queries.

If there are any messages about errors then there is a mistake. Named will name the file it is in. Go back and check the file. Run "ndc restart" when you have fixed it.

Now you can test your setup. Traditionally a program called nslookup is used for this. These days dig is recommended:

$ dig -x 127.0.0.1       

; <<>> DiG 8.2 <<>> -x 
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; QUERY SECTION:
;;      1.0.0.127.in-addr.arpa, type = ANY, class = IN

;; ANSWER SECTION:
1.0.0.127.in-addr.arpa.  1D IN PTR  localhost.

;; AUTHORITY SECTION:
0.0.127.in-addr.arpa.   1D IN NS        ns.penguin.bv.

;; Total query time: 30 msec
;; FROM: lookfar to SERVER: default -- 127.0.0.1
;; WHEN: Sat Dec 16 00:16:12 2000
;; MSG SIZE  sent: 40  rcvd: 110

If that's what you get it's working. We hope. Anything else, go back and check everything. Each time you change the named.conf file you need to restart named using the ndc restart command.

Now you can enter a query. Try looking up some machine close to you. pat.uio.no is close to me, at the University of Oslo:

$ dig pat.uio.no

; <<>> DiG 8.2 <<>> pat.uio.no 
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3
;; QUERY SECTION:
;;      pat.uio.no, type = A, class = IN

;; ANSWER SECTION:
pat.uio.no.             1D IN A         129.240.130.16

;; AUTHORITY SECTION:
uio.no.                 1D IN NS        nissen.uio.no.
uio.no.                 1D IN NS        ifi.uio.no.
uio.no.                 1D IN NS        nn.uninett.no.

;; ADDITIONAL SECTION:
nissen.uio.no.          1D IN A         129.240.2.3
ifi.uio.no.             1H IN A         129.240.64.2
nn.uninett.no.          1D IN A         158.38.0.181

;; Total query time: 112 msec
;; FROM: lookfar to SERVER: default -- 127.0.0.1
;; WHEN: Sat Dec 16 00:23:07 2000
;; MSG SIZE  sent: 28  rcvd: 162

This time dig asked your named to look for the machine pat.uio.no. It then contacted one of the name server machines named in your named.root file, and asked its way from there. It might take tiny while before you get the result as it may need to search all the domains you named in /etc/resolv.conf. Please note the "aa" on the "flags:" line. It means that the answer is authoritative, that it is fresh from an authoritative server. I'll explain "authoritative" later.

If you ask the same again you get this:

$ dig pat.uio.no

; <<>> DiG 8.2 <<>> pat.uio.no 
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3
;; QUERY SECTION:
;;      pat.uio.no, type = A, class = IN

;; ANSWER SECTION:
pat.uio.no.             23h59m58s IN A  129.240.130.16

;; AUTHORITY SECTION:
UIO.NO.                 23h59m58s IN NS  nissen.UIO.NO.
UIO.NO.                 23h59m58s IN NS  ifi.UIO.NO.
UIO.NO.                 23h59m58s IN NS  nn.uninett.NO.

;; ADDITIONAL SECTION:
nissen.UIO.NO.          23h59m58s IN A  129.240.2.3
ifi.UIO.NO.             1d23h59m58s IN A  129.240.64.2
nn.uninett.NO.          1d23h59m58s IN A  158.38.0.181

;; Total query time: 4 msec
;; FROM: lookfar to SERVER: default -- 127.0.0.1
;; WHEN: Sat Dec 16 00:23:09 2000
;; MSG SIZE  sent: 28  rcvd: 162

Note the lack of a "aa" flag in this answer. That means that named did not go out on the network to ask this time, as the information is in the cache now. But the cached information might be out of date (stale). So you are informed of this (very slight) possibility by the "aa" not being there. But, now you know that your cache is working.


DNS HOWTO : A resolving, caching name server. : Starting named
Previous: A resolving, caching name server.
Next: Resolvers