There is always some confusion about how DNS, BIND, and named relate to each other, so let's try and explain it.
We know that DNS refers to the Domain Name System, and that it comprises both a client and a server portion within its specification. BIND is an acronym for Berkeley Internet Name Daemon and is a popular free software implementation of DNS. It includes a binary called named, which is its server portion, and supplies a set of libraries that are the client portion and perform the resolving.
Solaris bases its implementation of DNS on BIND, and, as with BIND, a server portion is included, which in this case is a binary called in.named. Again, the resolver client is a set of libraries included with the operating system.
As with any program, there have been quite a few changes to BIND over the years and these are also reflected in Sun's version of in.named. We don't want to complicate matters by describing details about each revision, but one we will show later is the difference between the top-level configuration files of BIND Version 4 and BIND Version 8 (known as /etc/named.boot and /etc/named.conf, respectively).
Table 16.1 shows the relationship between the Solaris Release and the version of BIND that in.named is based on.
Solaris Release | BIND Version |
---|---|
2.6 | 4.9.4 |
7 | 8.1.2 |
8 | 8.1.2 |
9 | 8.2.4 |
This can easily be confirmed by checking the binary itself. For example, a system running Solaris 9 would show something similar to the following:
antimony# strings /usr/sbin/in.named |grep "(#)in.named" @(#)in.named BIND 8.2.4 Tue Dec 11 22:09:49 PST 2001 s81_53-5.9-May 2002 antimony#
Now let's compare the two configuration file formats. We've created an example configuration that contains the equivalent entries within the two files so it's easy to see what is common between them. However, we'll also place the files in subdirectories to organize them better and ease future administration of them.
antimony# cat /etc/named.boot ; ; boot file for the name server ; directory /var/named cache . named.root primary solarisbootcamp.com hosts.primary secondary anotherDomain.com 137.84.63.1 hosts.secondary primary 44.168.192.in-addr.arpa hosts.reverse primary 0.0.127.in-addr.arpa hosts.local antimony#
antimony# cat /etc/named.conf // // named.conf file // options { directory "/var/named"; }; zone "." in { type hint; file "named.root"; }; zone "solarisbootcamp.com" in { type master; file "hosts.primary"; }; zone " anotherDomain.com " in { type slave; file "hosts.secondary"; masters { 137.84.63.1; }; }; zone "44.168.192.in-addr.arpa" in { type master; file "hosts.reverse"; }; zone "0.0.127.in-addr.arpa" in { type master; file "hosts.local"; }; antimony#
OK, so what does all this mean and how do the two files compare? Let's use Table 16.2 to show the different entries and how they relate to each other.
Version 4 | Version 8 | Meaning |
---|---|---|
; | # /*……*/ // | Used to specify a comment line. A common problem is forgetting to use the new comment syntax when upgrading from version 4 to version 8. |
directory /var/named | options { directory "/var/named"; }; | Specifies the location of the zone files for this name server. |
cache . named.root | zone."in" { type hint; file "named.root"; }; | Informs the name server which file contains information about the root servers (i.e., /var/named/named.root). |
primary solarisbootcamp.com hosts.primary | zone solarisbootcamp.com in { type master; file "hosts.primary"; }; | Specifies that the name server is acting as the master for the domain “solarisbootcamp.com” and that the zone file is called hosts.primary. |
secondary anotherDomain.com 137.84.63.1 hosts.secondary | zone "anotherDomain.com" in { type slave; file hosts.secondary"; masters { 137.84.63.1; }; }; | Specifies that the name server is acting as a slave for the domain “anotherDomain.com,” and the data can be obtained from 137.84.63.1 then stored in the zone file hosts.secondary. |
primary 44.168.192.in-addr.arpa hosts.reverse | zone "44.168.192.in-addr.arpa" in { type master; file "hosts.reverse"; }; | Specifies that the name server is acting as the master for the special domain used to provide reverse lookups. The zone file is called hosts.reverse. |
primary 0.0.127.in-addr.arpa hosts.local | zone "0.0.127.in-addr.arpa" in { type master; file "hosts.local"; }; | Specifies that the name server is acting as the master for the loopback interface. This is needed to translate “local host” reverse lookups. |